Die Idee ist nicht neu: Eine Waschmaschine meldet per Telegram Nachricht, dass sie fertig ist dazu soll sie gleich noch die Dauer des Waschgangs sowie den Verbrauch mitgeben.
Doch dennoch möchte ich euch mein Skript vorstellen und erklären wie es funktioniert, vielleicht kannst du ja noch was neues mitnehmen.
Wie das mithilfe von ioBroker und Blockly funktioniert, das sehen wir uns heute in diesem Beitrag an.
Ich stelle das Blockly Skript natürlich zur Verfügung so, dass du es einfach übernehmen kannst.
Nachrichten aufs Handy


Ich habe, zur besseren Veranschaulichung, mal drei Skripte vorbereitet:
WaMa1, WaMa2 und WaMa3. Das hat den Hintergrund, dass ich in WaMa1 erstmal nur zeigen möchte wie funktioniert überhaupt das melden, dass die Waschmaschine fertig ist.
In WaMa2 bringen wir dann die Waschdauer noch mit rein und in WaMa3 sehen wir uns an wie die Verbrauchsmessung funktioniert.
Damit das Skript nicht von Anfang an so überladen wirkt und man keinen Durchblick hat habe ich das in drei Skripte aufgeteilt.






Der Datenpunkt Power bekommt, in meinem Fall, bzw. wenn man Tasmota in Verbindung mit dem Sonoff Adapter benutzt, alle 10 Sekunden einen neuen Wert gemeldet. Undzwar den Wert den die Steckdose gerade misst.

Wenn also ein neuer Wert gemeldet wird, löst der “Falls Objekt” Trigger aus und dann kommt die Bedingung ins Spiel.
Da das Objekt, ja alle 10 Sekunden einen neuen Wert gemeldet kriegt wird der Trigger weiterhin alle 10 Sekunden ausgelöst. Solange wie also der Wert über 10 Watt bleibt, passiert nicht mehr als dass das Skript immer wieder gesagt bekommt, “ich bin aktiv”… “ich bin aktiv”… “ich bin aktiv…”. Solange bleibt die variable “WaMa_EinAus” auf “wahr”.
Das passiert solange bis die Waschmaschine abschaltet und dem Skript nicht mehr einen Verbrauch von über 10 Watt gemeldet wird.
Dann löst die “sonst falls” Bedingung aus.
Es wird geprüft ob der “Power” Wert auch gleich 0 ist, also die Waschmaschine nicht läuft und “ich bin aktiv”-Status durch die “WaMa_EinAus”-Variable noch auf wahr ist.
Jetzt läuft der ganze Ablauf ab. Das Skript setzt den “ich bin aktiv”-Status wieder auf falsch. So, dass das Skript wieder in den Standby Modus wechselt.
Zusätzlich wird ein debug output ausgeführt. Der ist lediglich dazu da im Log zu dokumentieren, dass der Status der Waschmaschine “Ein/Aus” nun wieder auf falsch steht.
Das ist so wie es da steht das fertige Skript. Die Waschmaschine meldet per Telegram, dass sie fertig ist.
Wie versprochen kannst du dir die Teil- bzw auch das letzte komplette Skript herunterladen. Klicke dazu rechts auf den Link.
Um die Dauer auszugeben muss diese gezählt werden. Dafür habe ich ganz oben zum initialisieren des Skripts eine neue Variable definiert. Die nennt sich “WaMa_Dauerzähler” und wird zu beginn auf 0 gesetzt.
Wenn die Waschmaschine gestartet wird und aktiv ist dann wird dieser Dauerzähler gestartet mit einem Intervall der auf einer Minute läuft.
Durch den “erhöhe WaMa_Dauerzähler” Block wird diese Variable jede Minute um 1 erhöht und die Zeit in Minuten mitgezählt.
Wenn die Waschmaschine aus dem “ich bin aktiv…”-Modus herausgeht und das Skript wieder zu dem Teil kommt die Nachricht zu senden wird der Intervall gestoppt.
Im telegram Baustein wurde nun entsprechend, nach einem Zeilenumbruch, die Nachricht um die Dauer ergänzt.
Zuletzt haben wir noch einen dritten Timeout unten stehen. Nach 10 Sekunden wird der ausgeführt und setzt die Variable des Dauerzählers wieder auf 0.
Warum erst nach 10 Sekunden und nicht direkt an der selben Stelle wie der telegram-Nachricht Block ?
Das liegt daran, weil Blockly asynchron arbeitet, ganz vereinfacht gesagt, kann es passieren, dass ein Block der unter einem anderen Block steht zuerst abgearbeitet wird als der Block darüber.
Aus dem Grund habe ich vorsichtshalber den Timeout eingefügt. Sonst könnte es passieren, dass in der Nachricht nachher 0 Minuten Dauer steht weil der “setze WaMa_Dauerzähler” Block möglicherweise vor dem Senden der Nachricht ausgeführt wurde.
Der “Waschstart” und “Waschende” Datenpunkt wird gefüttert mit dem Gesamtverbrauch der Steckdose “Energy_Total”.
Also zu Beginn merkt sich das Skript den aktuellen Gesamtverbrauch.
Sobald das Skript dann stoppt merkt es sich in einem anderen Datenpunkt, bzw einer Variable, ebenfalls den Gesamtverbrauch.
Daraus ergibt sich eine Differenz. Diese Differenz geben wir dann im nächsten Schritt mit in der Telegram Nachricht über.
Damit ist das Skript finalisiert.
Um die Skripte zu übernehmen klicke rechts auf das Bild.
Ich hoffe dir hat mein Beitrag zur smarten Waschmaschine gefallen und ich würde mich freuen wenn du mir Feedback dalässt. Wenn du meine Arbeit unterstützen möchtest kannst du das gerne tun indem du bei Amazon über diesen Link einkaufst.
Vielen Dank fürs Lesen!
- Chris
- März 7, 2022
- 11:55 pm
- No Comments