@oFbEQnpoLKKl6mbY5e13 Es funktioniert!! Ich habe jetzt einfach alles in Blockly umgesetzt (danke für den Link!!) und jetzt geht es. Ich kann immer noch nicht ganz genau sagen was das Problem ist, aber da es jetzt geht ist mir das egal, vielen Dank für die Hilfe!
NEWS
smart-home-neuling
@smart-home-neuling
Latest posts made by smart-home-neuling
-
RE: Homematic IP Cloud Access Point Adapter
-
RE: Homematic IP Cloud Access Point Adapter
@oFbEQnpoLKKl6mbY5e13 Ja, es wird hochgezählt. Ich versuche mal den obigen Code und probiere es evtl doch über Blockly, vielen Dank schonmal für deine Ideen
-
RE: Homematic IP Cloud Access Point Adapter
@oFbEQnpoLKKl6mbY5e13 Das ändert leider nichts, ich erhalte dieselbe Warnmeldung im Log. Es scheint irgendein Problem mit der Statusänderung des Datenpunkts zu geben, aber ich habe noch nicht genug Erfahrung mit Javascript um genau sagen zu können wo der Fehler liegt.
-
RE: Homematic IP Cloud Access Point Adapter
@oFbEQnpoLKKl6mbY5e13 Wenn ich das richtig verstehe sollte die on(...)-Funktion den Status eines Datenpunktes überwachen (z.B. den vom leftCounter des SPDR). Sobald sich dieser Status ändert (also wenn jemand an dem Sensor vorbeigeht) sollte dann die Funktion ChangeLight() aufgerufen werden, die dann entsprechend der Counter-Werte das Licht an oder ausschaltet. Aber das passiert eben leider nicht.
Ich habe bisher noch nie mit Blockly gearbeitet, aber auf den ersten Blick erscheint es mir sehr viel komplizierte als das Skript-Schreiben... Gibt es da irgendwo eine gute Einführung mit der man das lernen kann?
-
RE: Homematic IP Cloud Access Point Adapter
Hi, ich versuche momentan ein erstes Skript zu schreiben, dass das Licht an der Treppe anschaltet, wenn der HomematicIP-Durchgangsensor aktiviert wird. Mein bisheriger Ansatz sieht so aus:
function ChangeLight(){ var betreten = getState("hmip.0.devices.3014F711A0000C5709AE731E.channels.1.leftCounter").val + getState("hmip.0.devices.3014F711A0000C5709AE7352.channels.1.rightCounter").val; var verlassen = getState("hmip.0.devices.3014F711A0000C5709AE731E.channels.1.rightCounter").val + getState("hmip.0.devices.3014F711A0000C5709AE7352.channels.1.leftCounter").val; if(betreten-verlassen != 0){ setState("alexa2.0.Smart-Home-Devices.b561c566-3b16-4c02-b7b1-f51d8fd97282.powerState",true); setState("alexa2.0.Smart-Home-Devices.4a33d6e9-5442-495a-b786-55540825085f.powerState",true); } else { setState("alexa2.0.Smart-Home-Devices.b561c566-3b16-4c02-b7b1-f51d8fd97282.powerState",false); setState("alexa2.0.Smart-Home-Devices.4a33d6e9-5442-495a-b786-55540825085f.powerState",false); } } on({id:"hmip.0.devices.3014F711A0000C5709AE731E.channels.1.leftCounter", change: "ne", ack: "true"}, ChangeLight()); on({id:"hmip.0.devices.3014F711A0000C5709AE7352.channels.1.rightCounter", change: "ne", ack: "true"}, ChangeLight()); on({id:"hmip.0.devices.3014F711A0000C5709AE731E.channels.1.rightCounter", change: "ne", ack: "true"}, ChangeLight()); on({id:"hmip.0.devices.3014F711A0000C5709AE7352.channels.1.leftCounter", change: "ne", ack: "true"}, ChangeLight());
Das An- und Ausschalten des Lichts alleine funktioniert problemlos, aber aus irgendeinem Grund klappt das mit dem Triggern nicht richtig. Hier ist noch mein Log, falls das hilft:
2021-01-04 16:02:01.259 - info: javascript.0 (3684) Start javascript script.js.common.Test 2021-01-04 16:02:01.266 - info: javascript.0 (3684) script.js.common.Test: registered 4 subscriptions and 0 schedules 2021-01-04 16:02:09.953 - warn: javascript.0 (3684) State "undefined" not found 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Object.setState (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Object.callback (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1041:33) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Object.callback (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1055:38) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Object.stateChange (C:\ioBroker\node_modules\iobroker.javascript\main.js:472:25) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at Immediate._onImmediate (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:5384:37) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at processImmediate (internal/timers.js:456:21) 2021-01-04 16:02:09.954 - warn: javascript.0 (3684) at process.topLevelDomainCallback (domain.js:137:15) 2021-01-04 16:02:15.472 - warn: javascript.0 (3684) State "undefined" not found 2021-01-04 16:02:15.472 - warn: javascript.0 (3684) at Object.setState (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1358:20) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at Object.callback (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1041:33) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at Object.callback (C:\ioBroker\node_modules\iobroker.javascript\lib\sandbox.js:1055:38) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at Object.stateChange (C:\ioBroker\node_modules\iobroker.javascript\main.js:472:25) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at Immediate._onImmediate (C:\ioBroker\node_modules\iobroker.js-controller\lib\adapter.js:5384:37) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at processImmediate (internal/timers.js:456:21) 2021-01-04 16:02:15.473 - warn: javascript.0 (3684) at process.topLevelDomainCallback (domain.js:137:15)
Ich bin noch ziemlich am Anfang, deshalb entschuldigt bitte, falls es eine dumme Frage ist. Ich würde mich freuen wenn jemand helfen kann.
Viele Grüße,
Pascal