NEWS
Alias auf Shelly - unerwartete Änderung des Aliastyps
-
@iomas sagte: Debugausgabe
Passiert das auch, wenn die Read-Konvertierung weg gelassen wird (automatische Konvertierung)?
-
@paul53
Meinst du im Alias die Zeile 15 leeren "read": "val=='on'",?
Im Admin Adapter stet dann direkt val, das kann man wohl nicht löschen.
ich habe das jetzt mal getestet: allerdings ohne den javascriptadapter neu zu starten, ich hätte da ein anderes Ergebnis erwartet aber das folgende ist passiert:#case normal durch bewegungsmelder 19:32:50.355 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0: Bewegung 19:32:50.357 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:boolean Wert ist: false 19:32:50.357 debug javascript.0 (783) script.js.EG.kueche.beweg2: 1: erkanntfalse 19:32:50.358 debug javascript.0 (783) script.js.EG.kueche.beweg2: 2: Licht ist aus 19:32:50.361 debug javascript.0 (783) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten 19:33:22.338 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0: Bewegung 19:33:22.339 debug javascript.0 (783) script.js.EG.kueche.beweg2: 1: nicht erkannt 19:33:50.366 debug javascript.0 (783) script.js.EG.kueche.beweg2: X: Licht ausschalten #case durch beweg an durch manuelles schalten ausgeschaltet 19:33:53.270 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0: Bewegung 19:33:53.270 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:boolean Wert ist: false 19:33:53.271 debug javascript.0 (783) script.js.EG.kueche.beweg2: 1: erkanntfalse 19:33:53.271 debug javascript.0 (783) script.js.EG.kueche.beweg2: 2: Licht ist aus 19:33:53.272 debug javascript.0 (783) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten 19:34:25.254 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0: Bewegung 19:34:25.255 debug javascript.0 (783) script.js.EG.kueche.beweg2: 1: nicht erkannt 19:34:53.274 debug javascript.0 (783) script.js.EG.kueche.beweg2: X: Licht ausschalten 19:35:36.111 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0: Bewegung 19:35:36.113 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:string Wert ist: off 19:35:36.114 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0.5: Bugfix wrong typestring Wert ist: off 19:35:36.114 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0.5b: aus 19:35:36.115 debug javascript.0 (783) script.js.EG.kueche.beweg2: 1: erkanntfalse 19:35:36.115 debug javascript.0 (783) script.js.EG.kueche.beweg2: 2: Licht ist aus 19:35:36.117 debug javascript.0 (783) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten 19:36:08.093 debug javascript.0 (783) script.js.EG.kueche.beweg2: 0: Bewegung 19:36:08.094 debug javascript.0 (783) script.js.EG.kueche.beweg2: 1: nicht erkannt 19:36:36.122 debug javascript.0 (783) script.js.EG.kueche.beweg2: X: Licht ausschalten
das verhalten hat sich nicht geändert :? soll ich den js adapter einmal neu starten?
-
@iomas
Kleiner Nachtrag das neustarten des Scriptes (nicht des adapters) ändert daran leider auc nichts -
@iomas
Nachtrag 2, In der Adminoberfläche macht es keinen Unterschied ob ich konvertiere oder nicht in beiden Fällen wird entsprechend true oder false angezeigt, habe mich dennoch entschieden es wieder auf val=='on' zu setzen da das mit meiner Logik irgendwie mehr entspricht :? -
@iomas sagte: soll ich den js adapter einmal neu starten?
Der Alias wird im js-controller verarbeitet.
-
@paul53
habe die readfunktionalität noch einmal entfernt und auch den js adapter neu gestartet leider mit gleichem Ergebnis. -
@iomas sagte: js adapter neu gestartet
Starte mal ioBroker neu.
-
@paul53
hat leider nichts gebracht -
@iomas sagte: hat leider nichts gebracht
Noch ein Versuch: Ändere die Rolle des Alias in "switch".
-
@paul53
habe die Rolle in switch geändert leider bleibt es dabei, es wird ein string draus. -
@iomas sagte: bleibt es dabei, es wird ein string draus.
Mal InfluxDB auf dem Alias deaktiviert?
-
@paul53
InfluxDB abschalten hat leider keinen Einfluß auf das beschriebene Verhalten. -
@iomas
Ich habe den Javascript-Code mal zum Testen übernommen, zwei Aliase und zwei MQTT-Datenpunkte erstellt und getestet: Ich erhalte immer nur:0.1: Hinweise: Typ:boolean Wert ist: false
oder true. Mit welchem Ablauf erscheint?
0.1: Hinweise: Typ:string Wert ist: off
-
@paul53
Dieser erscheint wenn ich den shelly über die app frühzeitig ausschalte, also Licht geht an, ich schalte per App oder phsyikalisch den Schalter aus. Wenn danach erneut der Bewegungsmelder aktiviert wird, dann kommt es zu besagtem Wechsel des Typs. -
@iomas sagte in Alias auf Shelly - unerwartete Änderung des Aliastyps:
Licht geht an, ich schalte per App oder phsyikalisch den Schalter aus. Wenn danach erneut der Bewegungsmelder aktiviert wird
Habe ich mal nachgestellt:
16:49:48.115 info javascript.1 (2077) script.js.common.Neuer_Test: 0: Bewegung 16:49:48.116 info javascript.1 (2077) script.js.common.Neuer_Test: 0.1: Hinweise: Typ:boolean Wert ist: false 16:49:48.116 info javascript.1 (2077) script.js.common.Neuer_Test: 1: erkanntfalse 16:49:48.117 info javascript.1 (2077) script.js.common.Neuer_Test: 2: Licht ist aus 16:49:48.117 info javascript.1 (2077) script.js.common.Neuer_Test: 3: kleiner Schwellwert->Licht anschalten 16:49:48.248 info javascript.1 (2077) script.js.common.Neuer_Test: Alias: true, Ack: true, Skript: script.js.common.Shelly1 16:50:00.164 info javascript.1 (2077) script.js.common.Neuer_Test: Alias: false, Ack: true, Skript: script.js.common.Shelly1 16:50:48.117 info javascript.1 (2077) script.js.common.Neuer_Test: X: Licht ausschalten 16:50:48.176 info javascript.1 (2077) script.js.common.Neuer_Test: Alias: false, Ack: true, Skript: script.js.common.Shelly1 16:51:02.813 info javascript.1 (2077) script.js.common.Neuer_Test: 0: Bewegung 16:51:02.813 info javascript.1 (2077) script.js.common.Neuer_Test: 0.1: Hinweise: Typ:boolean Wert ist: false 16:51:02.813 info javascript.1 (2077) script.js.common.Neuer_Test: 1: erkanntfalse 16:51:02.813 info javascript.1 (2077) script.js.common.Neuer_Test: 2: Licht ist aus 16:51:02.813 info javascript.1 (2077) script.js.common.Neuer_Test: 3: kleiner Schwellwert->Licht anschalten 16:51:02.886 info javascript.1 (2077) script.js.common.Neuer_Test: Alias: true, Ack: true, Skript: script.js.common.Shelly1 16:52:02.817 info javascript.1 (2077) script.js.common.Neuer_Test: X: Licht ausschalten 16:52:02.916 info javascript.1 (2077) script.js.common.Neuer_Test: Alias: false, Ack: true, Skript: script.js.common.Shelly1
Der zusätzliche Log-Eintrag kommt aus dem Debug-Log auf dem Alias:
on({id: idLichtSchalter}, function(dp) { log('Alias: ' + dp.state.val + ', Ack: ' + dp.state.ack + ', Skript: ' + dp.state.c); });
Was mir auffällt: Der Debug-Trigger liefert stets "Ack: true", d.h. auf das ursprüngliche Setzen mit ack = false reagiert der Trigger nicht. Allerdings reagiert das MQTT-Kommando:
17:25:49.123 info javascript.1 (2077) script.js.common.Neuer_Test: X: Licht ausschalten 17:25:49.127 info javascript.1 (2077) script.js.common.Neuer_Test: MQTT Command: off, Ack: false 17:25:49.180 info javascript.1 (2077) script.js.common.Neuer_Test: Alias: false, Ack: true, Skript: script.js.common.Shelly1
-
@paul53 said in Alias auf Shelly - unerwartete Änderung des Aliastyps:
on({id: idLichtSchalter}, function(dp) {
Ich habe mein Script mal um folgendes erweitert, analog zu deinem JS, hoffe ich...
on({id: [].concat(idLichtSchalter), change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.debug((['Alias: ',(obj.state ? obj.state.val : ""),', Ack: ',(obj.state ? obj.state.ack : ""),', Skript: ',(obj.state ? obj.state.from : "")].join(''))); });
ist was im blockly unter JS dazukam.
Die Ausgabe sieht bei mir danach wie folgt aus:17:21:44.814 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung 17:21:44.815 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:boolean Wert ist: false 17:21:44.815 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 1: erkanntfalse 17:21:44.817 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 2: Licht ist aus 17:21:44.821 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten 17:21:44.913 debug javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0 17:22:03.022 debug javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0 17:22:16.783 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung 17:22:16.784 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 1: nicht erkannt 17:22:44.823 debug javascript.0 (291426) script.js.EG.kueche.beweg2: X: Licht ausschalten 17:22:54.973 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung 17:22:54.974 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:string Wert ist: off 17:22:54.974 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0.5: Bugfix wrong typestring Wert ist: off 17:22:54.974 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0.5b: aus 17:22:54.975 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 1: erkanntfalse 17:22:54.976 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 2: Licht ist aus 17:22:54.977 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten 17:22:55.046 debug javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0 17:23:26.961 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung 17:23:26.962 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 1: nicht erkannt 17:23:54.979 debug javascript.0 (291426) script.js.EG.kueche.beweg2: X: Licht ausschalten 17:23:55.052 debug javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0
hilft das weiter?
-
@iomas sagte: hilft das weiter?
Nicht wirklich. Ich kann das Verhalten mit "Wert ist: off" bei mir nicht nachstellen - bei gleichem Ablauf. Version des Hosts (js-controller)?
Außerdem triggert mein Debug-Trigger auf "wurde aktualisiert". -
@paul53
habe es auf aktualisiert geändert:
on({id: [].concat(idLichtSchalter), change: "any"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; console.debug((['Alias: ',(obj.state ? obj.state.val : ""),', Ack: ',(obj.state ? obj.state.ack : ""),', Skript: ',(obj.state ? obj.state.from : "")].join(''))); });
Debugausgabe:
17:36:35.502 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung 17:36:35.502 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:boolean Wert ist: false 17:36:35.503 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 1: erkanntfalse 17:36:35.503 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 2: Licht ist aus 17:36:35.504 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten 17:36:35.588 debug javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0 17:36:45.637 debug javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0 17:37:07.496 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung 17:37:07.498 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 1: nicht erkannt 17:37:35.507 debug javascript.0 (291426) script.js.EG.kueche.beweg2: X: Licht ausschalten 17:37:49.309 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung 17:37:49.310 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0.1: Hinweise: Typ:string Wert ist: off 17:37:49.310 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0.5: Bugfix wrong typestring Wert ist: off 17:37:49.310 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0.5b: aus 17:37:49.310 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 1: erkanntfalse 17:37:49.310 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 2: Licht ist aus 17:37:49.311 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 3: kleiner Schwellwert->Licht anschalten 17:37:49.417 debug javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: true, Ack: true, Skript: system.adapter.mqtt.0 17:38:21.305 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 0: Bewegung 17:38:21.306 debug javascript.0 (291426) script.js.EG.kueche.beweg2: 1: nicht erkannt 17:38:49.312 debug javascript.0 (291426) script.js.EG.kueche.beweg2: X: Licht ausschalten 17:38:49.425 debug javascript.0 (291426) script.js.EG.kueche.beweg2: Alias: false, Ack: true, Skript: system.adapter.mqtt.0
Host js sollt 4.0.24 sein.
-
@iomas sagte: Debugausgabe:
Wie bei mir - außer der Typänderung in String mit "off".
@iomas sagte in Alias auf Shelly - unerwartete Änderung des Aliastyps:
Host js sollt 4.0.24 sein.
Bei mir auch. An der Version kann es nicht liegen. Ich nutze allerdings noch Node.js 16.
-
@paul53 said in Alias auf Shelly - unerwartete Änderung des Aliastyps:
Was mir auffällt: Der Debug-Trigger liefert stets "Ack: true", d.h. auf das ursprüngliche Setzen mit ack = false reagiert der Trigger nicht. Allerdings reagiert das MQTT-Kommando:
Da bin ich tatsächlich noch am schwimmen, bin erst seit Anfang des Monats dabei und habe diese Woche noch dazu ein Video angeschaut...