NEWS
Mehrere Objekte überwachen
-
Hallo zusammen!
Ich bin neue hier und arbeite mich gerade in das Thema ein. Ich möchte gerne eine Variable auf "Wahr" bzw. "Falsch" setzen, falls bestimmte Datenpunkte Wahr bzw. Falsch sind.
Hinergund
Auf meiner Visualisierung möchte ich sehen, ob irgendeines meiner 16 Fenster geöffnet ist. Falls nur eines davon auf ist, soll meine Variable "Wahr" sein, damit ich direkt auf einen Blick sehe, ob eines der Fenster auf ist.Falls alle Fenster zu sind, soll die Variable "Falsch" ausgeben, und ich will in meiner Visualisierung ein geschlossenes Fenster sehen.
Ich wollte das mit Blockly realisieren, aber ich kriege es nicht hin. Ich hatte folgendes erstellt:
Nun weiß ich aber noch nicht, wie ich den Status wieder zurück auf "Falsch" setzen kann, wenn alle Fenster wieder zu sind.
Kann mir hier jemand einen Tipp geben?Vielen Dank!
-
@new_home sagte: Falls nur eines davon auf ist, soll meine Variable "Wahr" sein
Dann müssen alle Werte per ODER verknüpft werden.
-
@new_home ich arbeite zwar mit NodeRed, aber ein bisschen kann ich Blockly inzwischen lesen.
Im Prinzip lässt Du jedes Fenster triggers, aber Du wertest ja die Werte/Zustände nicht aus.
Im Prinzip musst Du alle Werte mit ODER verknüpfen, wenn Fenster offen = True ist, oder alle Werte mit UND verknüpfen, wenn Fenster offen = False ist. Das weiß ich nicht, wie das bei Dir funktioniert.Die Zustandsvariable oder Datenpunkt ist dann das Ergebnis der logischen Verknüpfung.
Du kannst also jedes Fenster triggers lassen, musst dann aber den Zustand jedes Fensters abfragen.
Eine andere Möglichkeit : ich sammle alle Trigger in einem Objektdatenpunkt und analysiere den, sobald der neu geschrieben. Also erzeuge ein Objekt und schreibe diesen in einen Datenpunkz und analysiere diesen, wenn er aktualisiert wird.
Bei mir ist das so, dass wenn ein Fenster offen ist, der Wert true ist. Ich schreibe mit jedem Trigger folgenden Überwachungspunkt als JSON String:
Wenn dieser Datenpunkt neu geschrieben wird, dann wird das logisch mit ODER überprüft und wenn ein Fenster true ist, dann ist geöffnet insgesamt true.
Man muss für die 2. Methode auch nicht gleich alle Fenster abfragen, sondern lässt den Datenpunkt mit jedem Trigger wachsen. Das kannst halt alles selbst entscheiden.
Ansonsten kannst Du wahrscheinlich auch im Blockly den Trigger vereinfachen, wenn die Struktur Deiner Fenster Status identisch ist. Sonst wäre es empfehlenswert über Alias ggf. eine einheitliche Struktur zu schaffen.
So wäre dann als Trigger einfach alias.0.fenster.*.status möglich. Der Stern (Wildcard) steht dann für jedes Zimmer.Ich hab hier mal die Verfügbarkeit meiner Zigbee Devices mit Wildcards implementiert: https://forum.iobroker.net/topic/44765/gelöst-überwachung-eingeschaltete-verbraucher/6
bzw. dargestellt. -
@new_home
Bei so vielen Fenstern ist es besser, den Fenster-Datenpunkten eine Aufzählung "enum.functions.fenster" zuzuweisen, dann den Selektor zu verwenden und alle Fenster in einer Schleife abzufragen: -
@paul53 Das ist ja echt der Wahnsinn, wie schnell ich hier kompetente Hilfe bekommen. Vielen Dank!!!
Eigentlich habe ich in irgendeinem Video-Tutorial etwas gesehen was ich gerne umsetzen würde. Da war eine Lampe, die entweder an oder aus war. Wenn sie an war, dann war darin eine kleine Zahl zu sehen die angegeben hat, wie viele Lampen an sind.
Das gleiche hätte ich mir für die Fenster vorgestellt.Aber die hier gezeigte Lösung sollte es auch erstmal tun.
Vielen Dank!!! -
@new_home du kannst dieses Script nutzen, damit hast du sämtliche Datenpunkte, die du anschliessend in deiner Vis anzeigen lassen kannst, unter anderm die Anzahl der geöffneten/gekippten Fenster/Türen
https://github.com/Pittini/iobroker-Fensterauswertung
https://forum.iobroker.net/topic/31674/vorlage-generisches-fensteroffenskript-vis