NEWS
[gelöst] Javascript-adapter ruft on ereignis doppelt auf
-
@haus-automatisierung aktuell ist es so eingestellt:
Setze ich den Haken ganz unten, dann bekomme ich alle 15s ein Ereignis, obwohl nichts passiert ist.Der Gedanke war ja so, dass wenn auf den Switch geschrieben wird, dieser auf jeden Fall zurück gemeldet wird mit ack =true, wenn das Gerät dies übernommen hat, aber nicht generell alle x Sekunden.
Es war ja vorher schon alles soweit ok, nur wurde ja wie gesagt eine Änderung immer doppelt mit ack=true bestätigt.
-
@ben1983 sagte in [gelöst] Javascript-adapter ruft on ereignis doppelt auf:
Es war ja vorher schon alles soweit ok, nur wurde ja wie gesagt eine Änderung immer doppelt mit ack=true bestätigt.
Bei welchem Datenpunkt passiert das denn genau? Nach deinem Script oben weiß ich ja immernoch nicht was in
IdFrischwasserstellmotor
für eine ID steht.Nur einige Informationen werden alle x Sekunden per HTTP abgefragt. Die kritischen Sachen werden eigentlich sofort per CoAP oder MQTT vom Gerät zurückgemeldet (wie schon geschrieben).
Bitte mach mal einen GitHub Issue auf mit einer genauen Beschreibung zum Gerät und einem kleinen Beispiel-Script, welches das Problem mit Logs darstellt.
-
@haus-automatisierung sagte: Beispiel-Script, welches das Problem mit Logs darstellt.
@Ben1983 Ersetze bitte in diesem Skript die Variable
IdFrischwasserstellmotor
durch die echte ID. -
@paul53 @haus-automatisierung ich mache ein issu.
Nur soviel:das hier:
on({id:"shelly.0.SHSW-25#C45BBE612F7A#1.Relay0.Switch", ack:true}, (dp) =>{ log("shelly.switch.val = " + dp.state.val); log("shelly.switch.ack = " + dp.state.ack); });
und die einstellung:
führen zu dem Log:
16:59:41.594 info javascript.0 (6947) script.js.common.Zisterne: shelly.switch.val = true 16:59:41.594 info javascript.0 (6947) script.js.common.Zisterne: shelly.switch.ack = true 16:59:56.595 info javascript.0 (6947) script.js.common.Zisterne: shelly.switch.val = true 16:59:56.595 info javascript.0 (6947) script.js.common.Zisterne: shelly.switch.ack = true 17:00:07.615 info javascript.0 (6947) script.js.common.Zisterne: shelly.switch.val = true 17:00:07.616 info javascript.0 (6947) script.js.common.Zisterne: shelly.switch.ack = true
Konnte ich bei shelly 2 & 2.5 nachstellen,
beim 1er nicht -
@haus-automatisierung
Hier:on({id:"shelly.0.SHSW-25#C45BBE612F7A#1.Relay0.Switch", ack:true}, (dp) =>{ log("shelly.switch.val = " + dp.state.val); log("shelly.switch.ack = " + dp.state.ack); });
würde ich also bei jedem Beschreiben des States EINE Bestätigung direkt danach erwarten.
Und hier
on("shelly.0.SHSW-25#C45BBE612F7A#1.Relay0.Switch", (dp) =>{ log("shelly.switch.val = " + dp.state.val); log("shelly.switch.ack = " + dp.state.ack); });
Würde ich nur eine Bestätigung erwarten, wenn wirklich eine Wertänderung des switch.val vorliegt.
-
@haus-automatisierung Ist der issue soweit ok und verständlich?
-
@alcalzone ist es generell so, dass:
on(„insstanz.0.xyz“,dosomething);
Nur bei Änderung des val den callback aufruft und:
on({id:“Instanz.0.xyz“},dosomething);
Bei jeder Änderung aufgerufen wird?
Also auch bei ack Änderung ohne dass sich der val ändert?
Ich meine das hätte ich mal so beobachtet. -
@ben1983 sagte in [gelöst] Javascript-adapter ruft on ereignis doppelt auf:
Also auch bei ack Änderung ohne dass sich der val ändert?
Da gibts noch eine Option im Objekt:
on({id: "Object ID", change: "any"}, (dp) => { });
Oder nur bei Änderung (
ne
= "not equals"):on({id: "Object ID", change: "ne"}, (dp) => { });
Gibt auch noch
gt
für größer als uvm. -
@ben1983 Ja, steht auch in der Doku:
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#on---subscribe-on-changes-or-updates-of-some-statePlease note, that by default "change" is equal to "any", except when only id as string is set (like on("id", function (){});). In last case change will be set to "ne".
-
@haus-automatisierung Ah ok.
Danke für die Info. Hatte ich so in der Doku gar nicht gesehen.
Wie gehst Du nun weiter mit dem Shelly Adapter vor?
-
@ben1983 sagte in [gelöst] Javascript-adapter ruft on ereignis doppelt auf:
Wie gehst Du nun weiter mit dem Shelly Adapter vor?
Wenn ich Zeit finde, gucke ich mir das an. Das wird aber noch dauern, da ich in letzter Zeit alles andere unter der Entwicklung gelitten hat Du brauchst also nicht täglich zu fragen.