NEWS
Wie bekommt man Änderung mit on function und Array mit?
-
IDs stehen in einem DP. Daraus soll eine Subscription gesetzt werden, um die Änderungen bei allen DPs mitzubekommen.
javascript 5.6.0, admin 6.1.2
Mein Versuch, so funktioniert es nicht.let iDs =JSON.parse(getState(dpListDPs).val); for (let i=0;i<iDs.length;i++){ log(iDs[i]); on({id: iDs[i] , change: "any"}, function (obj){ log(obj.channelId+' geändert') }); } Ergebnis: 16:17:12.998 info javascript.0 (1684) Start javascript script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach 16:17:13.641 info javascript.0 (1684) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature 16:17:13.642 info javascript.0 (1684) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: registered 27214 subscriptions and 0 schedules
@paul53 ?
Vielen Dank.
EDIT: mit diesem funktioniert es bei admin 5.2.3 , javascript 5.2.21
Diese Version funktionierte beim admin 6.1.2, javascript 5.6.0 nicht.let iDDPs =JSON.parse(getState(dpListDPs).val); on({id:iDDPs, change:"ne"}, function (obj){ log(obj.channelId+' geändert') });
-
@mcu sagte: funktionierte beim admin 6.1.2, javascript 5.6.0 nicht.
Das kann ich mit Javascript 5.7.0 nicht nachvollziehen.
Was ergibt?
let iDDPs =JSON.parse(getState(dpListDPs).val); log(iDDPs);
-
@paul53 Komischerweise läuft es jetzt mit admin 5.2.3.
Bekomme jetzt die logs nur 2x?17:53:20.454 info javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature geändert auf 27.33 °C 17:53:20.455 info javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature geändert auf 27.33 °C 17:53:20.518 info javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.humidity geändert auf 60.03 °C 17:53:20.519 info javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.humidity geändert auf 60.03 °C 17:53:26.060 info javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature geändert auf 26.88 °C 17:53:26.060 info javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.temperature geändert auf 26.88 °C 17:53:26.089 info javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.humidity geändert auf 80.05 °C 17:53:26.089 info javascript.0 (1804) script.js.JARVIS.JSONtable.JSONTable_mit_Türen_mehrfach: zigbee.0.00158d00025ea1d6.humidity geändert auf 80.05 °C
['zigbee.0.00158d00025ea1d6.temperature','zigbee.0.00158d00025ea1d6.humidity','zigbee.0.00158d0004607e34.opened']
Habe den admin wieder auf stable gesetzt?
-
@mcu sagte: Habe den admin wieder auf stable gesetzt?
Der Javascript-Adapter funktioniert unabhängig vom Admin.
@mcu sagte in Wie bekommt man Änderung mit on function und Array mit?:
Bekomme jetzt die logs nur 2x?
Skript? Laufen 2 gleiche (ähnliche) Skripte parallel?
-
if (existsState(dpListDPs)){ let iDDPs = JSON.parse(getState(dpListDPs).val); log(iDDPs); on({id:iDDPs, change:"ne"}, function (obj){ log(obj.id+' geändert auf ' +getState(obj.id).val +' °C'); }); }
Jetzt nur noch eine 1. Also irgendetwas war faul?
Hat der Admin Einfluss auf javascript?
-
@mcu
WeshalbgetState(obj.id).val
und nichtobj.state.val
? Der Zugriff auf eine existierende Variable ist effizienter als der Funktionsaufruf. -
@paul53 Stimmt, korrigiere ich, danke.
-
@mcu sagte: Hat der Admin Einfluss auf javascript?
Auf die Skriptabarbeitung nicht, höchstens auf die Log-Darstellung.
-
@paul53 Dann war bei mir irgendetwas nicht ok. Nach Neustart funktioniert es. Danke.