NEWS
Mehrfach Triggern verhindern? (Ohne Verlust)
-
@paul53 said in Mehrfach Triggern verhindern? (Ohne Verlust):
Was sind das für Datenpunkte, die sich so verhalten (kurz aufeinander den Wert ändern)?
Das sind soll wert DP einer Heizung, diese werden hauptsächlich aus der API aktualisiert, allerdings kann hier jeder seinen Intervall selber einstellen und dann kommen noch manuelle Änderungen aus iobroker hinzu sowie Änderungen von Fenstersensoren.
Ich sag mal so, dass funktioniert schon so, nur ist es halt irgendwie auch nicht schön!
In der Regel erfolgen Änderungen nicht parallel aber ich kann nicht von der Regel ausgehen, es kann durch eine Intervall Aktualisierung durchaus auch vorkommen, dass sich Aktualisierungen überschneiden, auch gerade weil einige Änderungen eine Aktualisierung beinhalten was im Zweifel wenn es mal hart auf hart kommt, 2-3 sehr kurze Aktualisierungen bedeuten könnte! Ich versuche es natürlich zu unterbinden aber ich rechne eher mit der Ausnahme als mit der Regel…Eine Möglichkeit, die ich bei sowas nutze, ist die zyklische Abfrage von Signalen. Also z.B. Temperaturen oder Energieverbrauch im 30s Takt. Macht gegenseitige Abhängigkeiten, Regler, komplexe Logik usw. einfacher.
Ist in der Prozesstechnik weit verbreitet. -
Eine Möglichkeit, die ich bei sowas nutze, ist die zyklische Abfrage von Signalen. Also z.B. Temperaturen oder Energieverbrauch im 30s Takt. Macht gegenseitige Abhängigkeiten, Regler, komplexe Logik usw. einfacher.
Ist in der Prozesstechnik weit verbreitet.@blockmove sagte: zyklische Abfrage von Signalen.
Wie wendet man dabei den RegExp an?
-
Eine Möglichkeit, die ich bei sowas nutze, ist die zyklische Abfrage von Signalen. Also z.B. Temperaturen oder Energieverbrauch im 30s Takt. Macht gegenseitige Abhängigkeiten, Regler, komplexe Logik usw. einfacher.
Ist in der Prozesstechnik weit verbreitet.@blockmove sagte in Mehrfach Triggern verhindern? (Ohne Verlust):
Ist in der Prozesstechnik weit verbreitet.
da wird auch seltenst eventbasiert mit js gearbeitet.
Eine SPS tickt da anders -
@blockmove sagte in Mehrfach Triggern verhindern? (Ohne Verlust):
Ist in der Prozesstechnik weit verbreitet.
da wird auch seltenst eventbasiert mit js gearbeitet.
Eine SPS tickt da anders@homoran said in Mehrfach Triggern verhindern? (Ohne Verlust):
@blockmove sagte in Mehrfach Triggern verhindern? (Ohne Verlust):
Ist in der Prozesstechnik weit verbreitet.
da wird auch seltenst eventbasiert mit js gearbeitet.
Eine SPS tickt da andersNaja auch eine SPS hat Events (Hardware, Zeit, und im Prinzip auch Flanken).
Das schöne an ioBroker ist ja, dass ich auch im SPS-Stil Aufgaben lösen kann.
Für jede Aufgabe eben das richtige Werkzeug nehmen -
@blockmove sagte: zyklische Abfrage von Signalen.
Wie wendet man dabei den RegExp an?
@paul53 said in Mehrfach Triggern verhindern? (Ohne Verlust):
@blockmove sagte: zyklische Abfrage von Signalen.
Wie wendet man dabei den RegExp an?
Innerhalb des Intervalls verknüpft man ja anhand der Logik die Werte von getStateAsync und schreibt dann mit setStateAync die Ergebnisse. Wenn das ganze mehrfach identisch passieren sool (z.B. mehrere Räume) dann ist es von Vorteil, wenn die entsprechenden Datenpunkte VOR dem Trigger bekannt sind und z.B. in Arrays oder Objekten vorhanden sind. Diese kann man dann innerhalb des Triggers z.B. mit each oder forEach abarbeiten. Das spart Rechenzeit innerhalb des Intervalls.
Die Regular Expressions verwende ich eigentlich nie. Du musst halt schauen, wie du sie auf z.B. GetObject zum Ermitteln der Datenpunkte anwenden kannst.
Natürlich ist das komplexer als ein einfaches:on({id: new RegExp("0_userdata.0.Devices\.[a-zA-Z0-9]"), change:"ne"}, function (obj) { tu irgendwas });Vorteil ist, dass ich mehr Kontrolle über den Code-Ablauf habe und Eventkaskaden bei gegenseitiger Beeinflussung von Datenpunkten vermeide. Eben weil die Datenpunkte gar keine Events auslösen.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden