matthiask
Members-
Gesamte Inhalte
3 -
Benutzer seit
-
Letzter Besuch
matthiask's Achievements
-
Hallo Erik, danke für Dein Feedback! Beim Aufruf kommen immer Fehler. Die Parameterkonvertierung klappt nicht. Sowas wie Rule 'Test Rule for Ledstrip': Primitive conversion failed: argument type mismatch Die Action hat als Parameter 3x short[] für die Farben. Beim LedBricklet V2 ist es übrigens ein int[] genauso wie bei den anderen API-Beispielen aus der Tinkerforge-openHAB-Doku. Falls Du da noch einen Tip für mich hast... Wäre aber nicht schlimm, da ich mir erstmal mit dem String-Channel helfen kann. Alles gut. Wenn ich mittels der klassischen Java-API zugreife (BrickletNFCRFID.StateChangedListener), klappt das Lesen der Tags dauerhaft einwandfrei. Wenn ich das Xtend Scan Loop Beispiel verwende, dann geht das Lesen des Tags einige Male, irgendwann kommen dann aber Fehler im Log und er liest die Tags nicht mehr. 2020-04-11 17:45:20.690 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.Timer 51 2020-04-11T17:45:20.687+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | { <XFeatureCallImplCustom>.brickletNFCRFIDRequestTagID(<XCastedExpressionImpl>) } ] threw an unhandled Exception: java.lang.reflect.UndeclaredThrowableException: null at com.sun.proxy.$Proxy1678.apply(Unknown Source) ~[?:?] at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [bundleFile:?] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?] Caused by: com.tinkerforge.InvalidParameterException: Got invalid parameter for function ID 1 at com.tinkerforge.DeviceBase.sendRequest(DeviceBase.java:247) ~[?:?] at com.tinkerforge.BrickletNFCRFID.requestTagID(BrickletNFCRFID.java:163) ~[?:?] at org.eclipse.smarthome.binding.tinkerforge.internal.device.BrickletNFCRFIDActions.brickletNFCRFIDRequestTagID(BrickletNFCRFIDActions.java:36) ~[?:?] at org.eclipse.smarthome.binding.tinkerforge.internal.device.BrickletNFCRFIDActions.brickletNFCRFIDRequestTagID(BrickletNFCRFIDActions.java:42) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1175) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1150) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1136) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:861) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?] ... 4 more 2020-04-11 17:45:20.705 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.Timer 51 2020-04-11T17:45:20.687+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | { <XFeatureCallImplCustom>.brickletNFCRFIDRequestTagID(<XCastedExpressionImpl>) } ] threw an exception. org.quartz.SchedulerException: Job threw an unhandled exception. at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [bundleFile:?] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?] Caused by: java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy1678.apply(Unknown Source) ~[?:?] at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?] ... 1 more Caused by: com.tinkerforge.InvalidParameterException: Got invalid parameter for function ID 1 at com.tinkerforge.DeviceBase.sendRequest(DeviceBase.java:247) ~[?:?] at com.tinkerforge.BrickletNFCRFID.requestTagID(BrickletNFCRFID.java:163) ~[?:?] at org.eclipse.smarthome.binding.tinkerforge.internal.device.BrickletNFCRFIDActions.brickletNFCRFIDRequestTagID(BrickletNFCRFIDActions.java:36) ~[?:?] at org.eclipse.smarthome.binding.tinkerforge.internal.device.BrickletNFCRFIDActions.brickletNFCRFIDRequestTagID(BrickletNFCRFIDActions.java:42) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1175) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1150) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1136) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:861) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?] at com.sun.proxy.$Proxy1678.apply(Unknown Source) ~[?:?] at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?] ... 1 more 2020-04-11 17:45:21.677 [ERROR] [org.quartz.core.JobRunShell ] - Job DEFAULT.Timer 52 2020-04-11T17:45:21.668+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | { <XFeatureCallImplCustom>.brickletNFCRFIDRequestTagID(<XCastedExpressionImpl>) } ] threw an unhandled Exception: java.lang.reflect.UndeclaredThrowableException: null at com.sun.proxy.$Proxy1678.apply(Unknown Source) ~[?:?] at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [bundleFile:?] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?] Caused by: com.tinkerforge.InvalidParameterException: Got invalid parameter for function ID 1 at com.tinkerforge.DeviceBase.sendRequest(DeviceBase.java:247) ~[?:?] at com.tinkerforge.BrickletNFCRFID.requestTagID(BrickletNFCRFID.java:163) ~[?:?] at org.eclipse.smarthome.binding.tinkerforge.internal.device.BrickletNFCRFIDActions.brickletNFCRFIDRequestTagID(BrickletNFCRFIDActions.java:36) ~[?:?] at org.eclipse.smarthome.binding.tinkerforge.internal.device.BrickletNFCRFIDActions.brickletNFCRFIDRequestTagID(BrickletNFCRFIDActions.java:42) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1175) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1150) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1136) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:861) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?] ... 4 more 2020-04-11 17:45:21.714 [ERROR] [org.quartz.core.ErrorLogger ] - Job (DEFAULT.Timer 52 2020-04-11T17:45:21.668+02:00: Proxy for org.eclipse.xtext.xbase.lib.Procedures$Procedure0: [ | { <XFeatureCallImplCustom>.brickletNFCRFIDRequestTagID(<XCastedExpressionImpl>) } ] threw an exception. org.quartz.SchedulerException: Job threw an unhandled exception. at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [bundleFile:?] at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [bundleFile:?] Caused by: java.lang.reflect.UndeclaredThrowableException at com.sun.proxy.$Proxy1678.apply(Unknown Source) ~[?:?] at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?] ... 1 more Caused by: com.tinkerforge.InvalidParameterException: Got invalid parameter for function ID 1 at com.tinkerforge.DeviceBase.sendRequest(DeviceBase.java:247) ~[?:?] at com.tinkerforge.BrickletNFCRFID.requestTagID(BrickletNFCRFID.java:163) ~[?:?] at org.eclipse.smarthome.binding.tinkerforge.internal.device.BrickletNFCRFIDActions.brickletNFCRFIDRequestTagID(BrickletNFCRFIDActions.java:36) ~[?:?] at org.eclipse.smarthome.binding.tinkerforge.internal.device.BrickletNFCRFIDActions.brickletNFCRFIDRequestTagID(BrickletNFCRFIDActions.java:42) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_152] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_152] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_152] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_152] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1175) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1150) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1136) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:1081) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:151) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:861) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:231) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:458) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:239) ~[?:?] at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:226) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:215) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:201) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.ClosureInvocationHandler.doInvoke(ClosureInvocationHandler.java:46) ~[?:?] at org.eclipse.xtext.xbase.interpreter.impl.AbstractClosureInvocationHandler.invoke(AbstractClosureInvocationHandler.java:29) ~[?:?] at com.sun.proxy.$Proxy1678.apply(Unknown Source) ~[?:?] at org.eclipse.smarthome.model.script.internal.actions.TimerExecutionJob.execute(TimerExecutionJob.java:48) ~[?:?] at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[?:?] ... 1 more Danke, viele Grüße Matthias
-
Hallo @rtrbt, danke für das schnelle Feedback. Der Fix hat auf der einen Seite geholfen, d. h. ich kann jetzt mehrere LED's addressieren. Allerdings passt der Startindex nun nicht mehr, ich bekomme jetzt nur noch Zugriff auf jede dritte LED. Das liegt daran, dass die Methode parseLEDValueIndex nun mit 3 oder 4 multipliziert. Aus meiner Sicht war die vorherige Implementierung dieser Methode aus beta20 besser: public static int parseLEDValueIndex(String string, Logger logger) { try { return Integer.valueOf(string.split(",")[0]); } catch (Exception e) { logger.warn("Could not parse LED Value command: {}", e.getMessage()); return 0; } Grundsätzlich fände ich es gut, wenn man auch über einen Colorpicker direkt zugreifen kann. Gerne umstellen. Persönlich möchte ich auch die Einzel-LED's steuern, das mache ich aktuell über den String LEDValues (vielleicht müsste man den nicht unbedingt entfernen, wenn der Colorpicker kommt). Ich bin aber auch offen, die Steuerung über die Actions zu machen. Mit der vorhandenen Action brickletLEDStripSetRGBValues hatte ich probiert, habe damit aber keinen Erfolg gehabt und dann erstmal das String-Attribut mit einer Xtend-Function verwendet. val org.eclipse.xtext.xbase.lib.Functions$Function6 setColorString = [ int startIndex, int endIndex, int red, int green, int blue, org.openhab.core.library.items.StringItem tink_ledstrip | val String ledstrip = "" val ledcounter = 0 val ledindex = startIndex - 1 for(val i=startIndex-1;i<endIndex;i++){ ledcounter++ ledstrip = ledstrip +","+ String.valueOf(blue) + ","+String.valueOf(green)+","+String.valueOf(red) if (ledcounter % 16==0||ledindex+ledcounter==endIndex){ ledstrip = String.valueOf(ledindex)+ledstrip sendCommand(tink_ledstrip,ledstrip) ledstrip = "" ledcounter = 0 ledindex = i+1 } } ] rule "Lamp LEDStrip Selector Inner" when Item TINK_LAMP_COLOR_INN changed then var HSBType currentState currentState = TINK_LAMP_COLOR_INN.state var r = (currentState.getRed * 255 / 100).intValue var g = (currentState.getGreen * 255 / 100).intValue var b = (currentState.getBlue * 255 / 100).intValue //now setting the hsb value to tinkerforge ledstrip setColorString.apply(9,13,r,g,b,TINK_LAMP_LED) setColorString.apply(16,20,r,g,b,TINK_LAMP_LED) setColorString.apply(23,28,r,g,b,TINK_LAMP_LED) setColorString.apply(31,35,r,g,b,TINK_LAMP_LED) setColorString.apply(38,42,r,g,b,TINK_LAMP_LED) end Kommt zu den LED Strip Actions noch etwas mehr Doku bzgl. Parametern? Dann würde ich da nochmal weiter probieren. Wenn ich mir noch was bzgl. Modellierung bei den Devices wünschen könnte... Habe noch ein NFC/RFID Bricklet. Weiter oben im Thread war ein Beispiel bzgl. NFC Scan Loop. Ich finde die Xtend - Skripte grundsätzlich schon recht hakelig, da wäre das mit dem Timer und Tag nachlesen vielleicht ganz gut als openHAB Event modelliert... Danke, Matthias
-
matthiask ist der Community beigetreten
-
Hallo zusammen, vielen Dank für die Entwicklung des Bindings. Ich nutze ein Ledstrip Bricklet (V1) mit der Beta20 und kann über den Channel BrickletLEDStripLEDValues leider nur eine LED gleichzeitig setzen. Aus meiner Sicht liegt das an der Klasse org.eclipse.smarthome.binding.tinkerforge.internal.device.Helper. In der Methode parseLED1Values wird die Variable nextInsert in der Schleife nicht erhöht. Danke, Matthias