Blockly – Einmalige Aktion bei Unterschreitung eines Wertes
In dieser Artikelserie möchte ich das Thema Blockly in ioBroker näher erklären. In diesem Beispiele zeige ich Dir, wie ich mir bei der Unterschreitung eines kritischen Wertes einmalig eine Benachrichtigung sende.
Für unsere Regenwasser-Tanks möchte ich eine Benachrichtigung implementieren, welche mir bei Erreichen eines kritischen Wasserstands eine E-Mail zusendet. Diese E-Mail Benachrichtigung möchte ich aber nur einmal erhalten. Hier der grobe Ablauf des Scripts
- Trigger auf Sensor-Stand
- Bei Unterschreitung von 20% einmalig eine E-Mail versenden
- Bei weiterer Absenkung keine Nachricht mehr
- Füllstand Anstieg über 20%
- Füllstand Absenkung unter 20% – Versand einer weiteren E-Mail
- Usw…
Im Script wird im ersten Schritt ein Trigger auf den entsprechenden Datenpunkt „SensorA.level“ angelegt. Dieser Trigger löst bei einer Änderung des Wertes aus. Im nächsten Schritt wird mit einem Falls-Block die Bedingung für das Versenden der E-Mail geprüft. In einen logischen Und-Block wird als erstes geprüft ob der aktuelle Wert des Sensors kleiner gleich 20 ist. In der zweiten Bedingung wird geprüft ob der vorherige Wert des Datenpunkts „SensorA.level“ über 20% war. Wenn beide Bedingungen zutreffen (logisches UND) wird im nächsten Block eine E-Mail generiert. In der E-Mail wird die E-Mail Adresse des Empfängers sowie der Betreff und der Text festgelegt. Für mich reicht hier die Ausgabe, dass der Füllstand unter 20% gesunken ist. Optional könnten wir hier noch den aktuellen Füllstand in Prozent ausgeben. Wenn der Füllstand nun wieder ansteigt (mehr als 20%) und dann erneut abfällt (unter 20%) trifft die Bedingung erneut zu und eine E-Mail wird versendet.
Durch die verschiedenen Wert-Optionen des Triggers kann so sehr einfach auf die neuen und vorherigen Werte reagiert werden.
Ich hoffe Dir gefällt der Artikel. Ich freue mich über Deinen Kommentar oder Fragen 🙂
Hallo,
schöne beispiele, aber ständig finde ich die bausteine nicht die verwendet werden. Hier z.B. der „und“ baustein.
Hinweise/bilder unter welchem verzeichnis die zu finden sind wäre hilfreich.
Nimm den „und“ baustein aus logik (dritter von oben) gehe dort mit dem rechten mausklick drauf und wähle dort „externe eingänge“ aus
Hallo Matthias!
Danke dir, damit hast du mein „Waschmaschine-ist-fertig-Erkennungs-Problem“ endgültig gelöst!!!
Die Mehrfachmeldungen gehören endlich der Vergangenheit an 🙂
Viele Grüße
Michael
Hallo, erstmal vielen Dank für das Beispielskript,
ich habe es gerade versucht scheitere allerdings an den Variablen.
Könntest Du zur Erstellung der Variablen eine Hilfestellung geben?
Vielen Dank und Viele Grüße
Micha
Hallo Matthias,
Vielen Dank für das Skript. Das ist sehr nützlich und will ich zur Steuerung meiner Tränkenheizung im Hühnerstall einsetzen.
Kannst Du mir helfen wo ich die Bausteine „Wert“ und „vorheriger Wert“ in Blockly finden kann?
Danke!
Matthias
Hallo Matthias,
schau mal in den Blöcken unter Trigger und dann den Block Object-ID. Mit einem Klick auf den Block kannst Du dann den Typ auf Wert noch andere Typen wie z.B. vorheriger Wert setzen.
Ich hoffe ich konnte Dir damit helfen.
Viele Grüße und einen schönen Samstag,
Matthias