NEWS
subscribe dynamisch erstellen?
-
Hallo zusammen
Ich schreibe gerade meine eigene Shelly-Strommessung/Speicherung für Tag-/Nachtstrom etc...
Das funktioniert auch ganz ok, aber ich möchte, falls ich einen neuen Shelly hinzufüge, dies dynamisch hinzufügen.
Dazu muss ich einen Wert subscriben - nur sollte das dynamisch sein, also sobald ein neuer Shelly da ist, soll auch auf diesen Wert "gehört" werden.Statisch geht das ja so:
on({id: 'irgendwas', change: "ne"}, function (obj){ })
Nun müsste ich, aus einer funktion raus, sobald ich merke, dass ein neuer Shelly da ist, diese subscription machen für den neuen Shelly...
Aus einer Funktion raus kann ich ja alle Shellys abrufen und dann auch vergleichen, ob einer neu ist:
$('shelly.*.*.Relay0.Energy').each(function(id) { .... if(istNeu){ subscribe-Logik(); } }
Brauchen tue ich das, weil der Shelly seinen Energy-Wert auf 0 setzt, sobald er Stromlos ist - das muss ich abfangen können.
Geht das irgendwie?
Danke
-
@dominic-reber Ehrlich gesagt verstehe ich Dich nicht. Wenn Du mit * subscribst, kann Dir das doch egal sein, ob alt oder neu. Der neue ist in jedem Fall mit dabei und kann doch dann wie die alten gelesen werden???? Es wird immer auf alle gehört und zwar dynamisch.
-
@dominic-reber sagte: Aus einer Funktion raus kann ich ja alle Shellys abrufen und dann auch vergleichen, ob einer neu ist:
Der $Selector erkennt keine neuen Datenpunkte, da er den Puffer der Javascript-Instanz verwendet. Eine Subscription mit RegExp erfasst neue Datenpunkte.
on({id: /^shelly\..+\.Relay0\.Energy$/}, function(dp) { if(!ids.includes(dp.id)) { // DP ist neu ids.push(dp.id); ... } });