Überwachung der Waschmaschine mit Homematic und Sonoff: Push Nachricht, wenn die Wäsche fertig

Überwachung der Waschmaschine mit Homematic und Sonoff: Push Nachricht, wenn die Wäsche fertig

In diesem Artikel zeige ich euch, wie ihr kostengünstig eure Waschmaschine dazu bringt, eine Push-Nachricht zu schicken, wenn die Wäsche fertig gewaschen ist. Im Internet gibt es viele Anleitungen, in denen es erläutert wird, allerdings sind diese Lösungen meistens zu teuer oder unzuverlässig. Hier beschreibe ich, wie die Überwachung der Waschmaschine zuverlässig und kostengünstig mithilfe von Sonoff Pow und Homematic realisiert werden kann. Zudem bekommt ihr die Möglichkeit, die Waschmaschine aus der Ferne ausschalten, zum Beispiel beim Wasseraustritt.

Vorwort

Bis jetzt habe ich immer die Tasmota-Firmware für die ESP8266-Geräte eingesetzt. Die Tasmota-Firmware ist (vermutlich) aufgrund der Endgeräte von Sonoff entstanden. Diese recht günstigen Geräte mit dem ESP8266 erlauben das Schalten von 230V-Verbrauchern und vieles mehr. Mittlerweile gibt es auch andere Geräte wir z.B. Shelly oder Wemos, die ebenfalls unterstützt werden. Tasmota hat also weniger den Bastler, der an einen ESP8266 die verschiedensten Sensoren anbinden als Zielgruppe, sondern die Hausautomatisierungsfreunde, die Fertiggeräte umdefinieren und die meist chinesische Firmware durch eine offene Firmware ersetzen wollen. Wer etwas mehr von der Firmware will, wie z. B. mehr interner Logik, soll sich ESPEasy anschauen. Mit ESPEasy gibt es nun eine Firmware, die den Einstieg, meiner Meinung nach, noch einfacher machen soll, dabei aber mehr Möglichkeiten zur Konfiguration des Geräts öffnet. Ihr ladet sich ESPEasy-Firmaware herunter und flasht diese auf ihren ESP822 mit einem speziell entwickelten Flash-Tool. Über die Webseite könnt ihr den ESP8266 konfigurieren, z. B. die Funktion der Ein/Ausgänge festlegen und per einfacher Skriptsprache sogar Aktionen auslösen können. Die Firmware verfügt über sehr leistungsfähige Laufzeit-Konfiguration im Vergleich zu Tasmota-Firmware und ist am weitesten fortgeschritten, wenn es um lokale Entscheidungen geht, wodurch der Bedarf an MQTT-Broker und externer Automatisierungslogik reduziert werden kann. Darüber hinaus unterstützt ESPEasy eine sehr große Anzahl von Sensoren.

Was wird benötigt

  • Sonoff Pow/Sonoff Pow R2
  • Ein guter USB TTL Konverter, der 3,3 V für die Stromversorgung des Geräts (oder ein separates 3,3 V-Netzteil) liefern kann
    Bitte beachten, dass es einige USB TTL Konvertern gibt, die zwischen 3,3 V und 5 V umgeschaltet werden können, trotzdem 5 V liefern, obwohl 3 V eingeschaltet sind. Dadurch kann ihr Gerät beschädigt werden. Ihr solltet daher überprüfen, dass sowohl die Daten- als auch die Power-Pins 3,3 V liefern.
  • 2,54 mm-Stiftleiste
  • (Lötkolben)

Sonoff Pow flashen

Unverändert nutzen diese Geräte eine in China basierende Cloudlösung und müssen für die Verwendung im Homematic-System auf ESPEasy-Firmware umgeflasht werden. Die ESPEasy-Firmware macht es leicht, aus jedem ESP-Modul einen multifunktionalen Sensor oder ein Modul für ihr Smart Home System wie Homematic zu erzeugen. Ihr müsst nur die ESPEasy-Firmware einmalig auf Ihr ESP-Modul einspielen. Anschließend werden alle Systemeinstellungen und Gerätekonfigurationen über eine praktische Weboberfläche im Browser vorgenommen. Für die tägliche Arbeit mit dem Modul benötigen Sie keine zusätzlichen Programme. Der Flashvorgang selbst ist dank dem beigefügten Flash-Tool sehr einfach.

ESPEasy-Firmware herunterladen

Die benötigten Dateien können aktuell von GitHub heruntergeladen werden. Benötigt wird hier die ZIP-Datei (ESPEasy_mega-XXXXXXXX.zip)  mit den benötigten Firmwares und dem Flash-Tool.

Die heruntergeladene Firmware in einen lokalen Ordner entpacken.

Sonoff POW vorbereiten

Das Gerät muss zu Anfang geöffnet werden. Das Gehäuse von Sonoff POW wird geöffnet, indem die Schraube am Klemmendeckel entfernt wird.  Anschließend mit einem Schraubendreher oder Ähnlichem rund um den Deckel gehen, damit sich der Deckel von den Clips löst.

Sonoff-Pow-dissembling

Nachdem das Gerät nun geöffnet ist, muss nun noch die 2,54-mm-Stiftleiste angelötet werden. Diese ermöglicht eine stabile Verbindung während der Programmierung, sodass der Programmiervorgang erfolgreich durchlaufen kann. Nach dem Löten Sonoff mithilfe von Jumper-Kabeln mit dem Programmieradapter verbinden.

USB TTL Konverter anschließen

Beim Anschließen des  USB TTL Konverters soll überprüft werden, dass der Treiber vom TTL Konverter installiert wurde! Auch wenn der Adapter verbunden scheint, die meisten Probleme treten schon hier auf. Daher an dieser Stelle einmal in den Gerätemanager schauen, ob der Adapter von Windows korrekt erkannt wurde:

Der Anschluss an den Sonoff erfolgt wie in dem Bild unten dargestellt. Wichtig ist: NIEMALS Netzspannung an den Sonoff während der Programmierung anschließen! Lebensgefahr!!!

Beim Anschließen des USB-TTL Serial Adapters auf gekreuzte RX- und TX-Leitungen achten! Der Anschluss an den Adapter kann variieren, je nachdem welcher vorhanden ist.

Das „Kernstück“ des Sonoff-Moduls – ESP8266 soll in den Flash-Modus versetzt werden, bevor die neue Firmware übertragen werden kann. Diese geschieht durch das Kurzschließen des GPIO0-Pins an GND während des Boot-Vorgangs des Moduls. Beim Sonoff Pow ist die Steuertaste verfügbar, die GPIO0 mit GND verbindet, wodurch die Versetzung des Moduls in den Flash-Modus sehr einfach ist.

Die Vorgehensweise ist folgende:

  1. WICHTIG! Das Modul soll zuerst von der 230V-Stromversorgung getrennt werden!
  2. USB TTL 3.3V-Konverter mit dem Sonoff-Modul verbinden
  3. GPIO0 und GND durch Drücken der roten On-Board-Taste verbinden
  4. USB TTL 3.3V-Konverter mit dem PC verbinden (den Taster gedrückt halten), somit wird das Sonoff-Modul mit Strom versorgt
  5. Die Taste nach ca. drei Sekunden loslassen, somit wird GPIO0 von GND getrennt

Wenn alles gut gelaufen ist, befindet sich das Sonoff-Gerät im Flash-Modus, die ESPEasy-Firmware kann eingespielt werden. Wenn der Upload nicht gestartet werden kann, trennt das Modul ab und beginnt von vorne.

ESPEasy-Firmware einspielen

Der Flashvorgang selbst ist dank dem beigefügten Flash-Tool sehr einfach. Das Flash-Tool wird durch das Öffnen der Datei „ESP.Easy.Flasher.exe“ gestartet. Anschließend die gewünschte Firmware auswählen. Je nach Flash-Größe des verwendeten ESP-Chips und der gewünschten Firmware-Version gibt es ein entsprechendes bin-File. Die Sonoff-Pow geräte verwenden einen 1024-Byte (ESP_Easy_mega-XXXXXXXX_normal_ESP8266_1M.bin) großen Flashspeicher. Die Versionen unterscheiden sich des Weiteren unter „dev“, „test“ und „normal“. Für den laufenden Betrieb empfehle ich euch auf die normale Version zu setzen, da diese nur getestete und stabile Funktionen enthält. Der passende COM-Port wird automatisch ausgewählt, sobald das TTL-Konverter an den Rechner angeschlossen wird. Als Bord-Rate ist 115200 auswählen.

Des Weiteren können die WiFi-Daten eingegeben werden, sodass das Sonoff-Modul sich direkt nach dem Flashen mit dem WiFi verbinden kann. Dazu ein Häkchen beim „Post flash actions“ setzen und eure eigenen WiFi-Daten eingeben. Nach dem erfolgreichen Flashen der ESPEasy-Firmware wird das Sonoff-Modul sich mit eurem Wifi automatisch verbinden.

Anfangskonfiguration des Geräts nach dem Flashen

Grundeinstellungen

Ist die ESP-Firmware erfolgreich auf ihr Sonoff-Modul hochgeladen worden? Wenn ja, dann können wir mit der Konfiguration des Sonoff-Moduls starten. Das Sonoff-Modul sollte sich nun mit eurem WiFi verbinden. Die IP-Adresse, die meist per DHCP vergeben wird, wird nun wie gewohnt im Router ermittelt. Es ist empfohlen, eine feste IP-Adresse dem Sonoff-Modul zu vergeben, diese kann in eurem Router eingestellt werden. Nach der Eingabe der IP-Adresse von Sonoff-Modull http://[sonoff-ip]/ im Browser wird die WEB-Oberfläche von ESPEasy geöffnet. Als Erstes die Registerkarte „Devices“ öffnen. Wie ihr sieht, ist die Liste noch leer. Hier müssen die Sensoren und Aktoren, wie Tasten, Relais usw. hinterlegt und parametrisiert werden. Bei der ersten Aufgabe auf das „Edit“ klicken, um den ersten Aktor hinzufügen, in diesem Fall ist es die Taste, die am GPIO-0 angeschlossen ist.

Die Konfigurationsdaten sollen wie in unterem Bild angezeigt eingegeben werden. Hinweis: Der Name kann in einen beliebigen Namen geändert werden, aber ihr benötigt diesen Namen später in dem Skript.

Abschließend „submit“ drücken, die Einstellungen werden gespeichert. Diese Aufgabe überwacht das Drücken der Taste auf dem Sonoff-Gehäuse. Sobald die Taste gedrückt ist, wird der Parameter [Button#Switch] von 0 auf 1 umgeschaltet, beim nochmaligen Drücken umgekehrt von 1 auf 0.

Mit der zweiten Aufgabe soll der Schaltzustand des Relais überwacht werden, das am GPIO-12 hängt. Dazu bei der zweiten Aufgabe auf das „Edit“ klicken und die Einstellungen vornehmen, die auf dem folgendem Bild gezeigt sind. Ihr könnt auch hier die eigenen Namen verwenden, die aber bitte merken, da diese im Skript wieder auftauchen.

Sobald das Relais geschlossen ist, wird der Parameter [relay#switch] von 0 auf 1 umgeschaltet, beim öffnen des Relais umgekehrt von 1 auf 0.

Die dritte Aufgabe, die hinzugefügt werden soll, liefert die Messwerte von Strom und Leistung. Dazu bei der dritten Aufgabe auf das „Edit“ klicken. Den Gerät „Voltage and Current (AC) – HLW8012 [TESTING]“ auswählen und abschließend „submit“ drücken, um die Einstellungen zu speichern.

Letzte vierte Aufgabe wird benötigt, um die Variablen speichern zu können, wobei ein Dummy-Gerät erstellt wird. Das Dummy-Gerät ist die einzige Methode, um den Wert einer Variablen zu speichern und zu lesen. Dazu bei der vierten Aufgabe auf das „Edit“ klicken und ein Generic – Dummy Device erstellen, die darin enthaltenen Variablen mit var1, var2. var3 und var4 benennen.

Im nächsten Schritt müssen die Regeln (rules) konfiguriert werden. Mithilfe von Regeln können einfache Programme zum Steuern von ESP-Geräten erstellt werden. Zuerst sollen die Regeln aktiviert werden. Um Regeln zu aktivieren, gehen Sie zu Extras / Erweitert und aktivieren Sie das Kontrollkästchen Regeln:

Nachdem ihr auf „submit“ geklickt haben, wird eine neue Seite „Rules“ hinzugefügt. Hier können die Regeln eingegeben werden.

Rules Set 1:

Das folgende Teil des Skripts schaltet das Relais ein oder aus, sobald die Taste auf dem Sonoff-Gehäuse gedrückt wird:

on button#switch do
  if [button#switch]=1
    gpio,12,1
  else
    gpio,12,0
  endif
endon

Dieses Teil ist für die Leuchtdiode verantwortlich. Sobald das Relais ein- oder ausgeschaltet wird, geht die Leuchtdiode an bzw. aus.

on relay#switch do
  if [relay#switch]=1
    gpio,13,1
  else
    gpio,13,0
  endif
endon

Mit dem abschließenden Teil des Programms werden zwei Befehle PowerOn und PowerOff erstellt, die mit folgenden HTTP-Abfragen ausgeführt werden können: http://[sonoff-ip]/control?cmd=event,PowerOn und http://[sonoff-ip]/control?cmd=event,PowerOff. Befehle PowerOn und PowerOff schalten das Relais ein bzw. aus (wie man aus den Befehlsnamen ahnen könnte).

On PowerOn do
  gpio,12,1
endon

On PowerOff do
  gpio,12,0
endon

Rules Set 2:

Dieses Programm ist für das Senden der gemessenen Daten an die Homematic CCU verantwortlich. Sobald die gemessenen Daten sich ändern, werden die neuen Messwerte mittels einer HTTP-Anfrage in den entsprechenden CCU-Systemvariablen gespeichert.

on Energy#Voltage do
  if [dummy#var1]!=[Energy#Voltage]	
    TaskValueSet 2,1,[Energy#Voltage]
    SendToHTTP 192.168.XXX.XX,8181,/test.exe?x=dom.GetObject("Waschmaschine:%20Spannung").State([dummy#var1])
  endif
endon

on Energy#Power do
  if [dummy#var1]!=[Energy#Power]	
    TaskValueSet 2,2,[Energy#Power]
    SendToHTTP 192.168.XXX.XX,8181,/test.exe?x=dom.GetObject("Waschmaschine:%20Leistung").State([dummy#var2])
  endif
endon

on Energy#Current do
  if [dummy#var1]!=[Energy#Current]	
    TaskValueSet 2,3,[Energy#Current]
    SendToHTTP 192.168.XXX.XX,8181,/test.exe?x=dom.GetObject("Waschmaschine:%20Strom").State([dummy#var3])
  endif
endon

Ihr könnt natürlich die eigenen Namen von Systemvariablen auf der CCU verwenden, die im Skript angepasst werden müssen. In meinem Fall sind die Namen: Waschmaschine: Spannung; Waschmaschine: Leistung und Waschmaschine: Strom. Dabei bitte bedenken, dass in der HTTP-Anfrage keine Leer- bzw. Sonderzeichen sein sollen. Beispielsweise wird ein Leerzeichen in aller Regel als Ende der URL interpretiert, nachfolgende Zeichen würden ignoriert oder führten zu einem Fehler. Mit der URL-Kodierung kann ein Leerzeichen durch die Zeichenfolge %20 übergeben werden. Des Weiteren soll die IP-Adresse 192.168.XXX.XX von CCU durch eure eigene ersetzt werden.

Anbindung des Sonoff Pow an Homematic CCU

Das Sonoff-Gerät wird im Homatic System mit einem virtuellen CUxD-Gerät dargestellt. Mithilfe des virtuellen Geräts wird das Sonoff-Gerät gesteuert. Um ein neues CUxD-Device anzulegen  soll die CuXD-Console geöffnet werden, die ist unter Startseite > Einstellungen > Systemsteuerung zu finden.

cuxd02

Danach auf die Geräte-Seite wechseln. Dort das Gerät (28) System auswählen. Als Funktion „Exec“ und als Control „Schalter“ auswählen. Optional kann der Namen eingetragen und der Geräte-Icon ausgewählt werden. Abschließend „Gerät auf der CCU erzeugen!“ drücken und in die CCU2 Web-Oberfläche gehen.

In der CCU-Weboberfläche fügen wir nun ein neues Gerät hinzu, im Posteingang sollte das soeben erstelle neue Gerät bereits angezeigt werden. Es wird ein virtuelles Gerät mit 16 Kanälen erzeugt. Mit einem einzelnen CUxD Gerät mit 16 Kanälen sind somit 16 verschiedene Sonoff-Geräte steuerbar, nicht verwendete Kanäle können auch in den Einstellungen ausgeblendet werden.

Nun soll der zuvor erstellte CUxD-Gerät konfiguriert werden, dazu im WebUI in die Einstellungen->Geräte gehen, den zuvor erstellten CUxD-Gerät aussuchen und auf das „Einstellen“ drücken:

Hier kann die Steuerung der Sonoff-Geräte eingerichtet werden:

Folgende Geräteparameter sollen eingetragen werden:

  • PARAM1: /usr/local/addons/cuxd/curl -s

Folgende Kanalparameter sollen eingetragen werden:

Kanalparameter (tasmota ohne Passwort im WebUI)

  • Unter „SWITCH|CMD_SHORT“ wird der Ausschaltbefehl eingetragen:
    $_P1$ http://$_C1$/control?cmd=event,PowerOff
  • Unter  „SWITCH|CMD_LONG“ wird der Einschaltbefehl eingetragen:
    $_P1$ http://$_C1$/control?cmd=event,PowerOn
  • Unter  „SWITCH|CH_PARAM1“ wird die IP-Adresse des Sonoff-Geräts eingetragen:
    192.168.XXX.XX

Für die Darstellung und spätere Auswertung der Energiedaten werden drei Variablen vom Typ Zahl angelegt:

  • Waschmaschine: Strom
  • Waschmaschine: Spannung
  • Waschmaschine: Leistung

Die Namen der Variablen können beliebig gewählt werden, ihr solltet nur aufpassen, dass ihr bei der Konfiguration des Sonoff-Moduls die gleichen Namen verwendet habt. Die Variablen können per Kanalzuordnung dem Gerät zugeordnet werden. Dafür auf die Kanalauswahl klicken und den Sonoff Pow Gerät auswählen. Die Kanalzuordnung dient nur für eine bessere Darstellung der Energiedaten, solche Variablen werden direkt unter dem Gerät angezeigt und sind in der Variablenliste der CCU nicht sichtbar.

Soweit der jeweilige Parameter am Sonoff Pow sich ändert, wird der per WebSend-Kommado in diesen Variablen auf der CCU gespeichert.

Auswertung des Waschmaschinenzustandes

Für die Auswertung wird eine weitere Variable „Status Waschmaschine“ vom Typ „Werteliste“ benötigt. Die Variable soll folgende Wertebezeichnungen haben: Läuft;Überprüfung (wahr);Überprüfung (falsch);Fertig. Wie die einzelnen Wertebezeichnunge genannt werden ist im Prinzip egal, Hauptsache die Anzahl und Reihenfolge soll übereinstimmen.

Insgesamt solltet ihr viel Variablen haben, die der Zustand der Waschmaschine zeigen. Jetzt kann mit der Überwachung der Waschmaschine angefangen werden. Jede (moderne) Waschmaschine befindet sich nach dem Waschgang im Standby-Modus und arbeitet dadurch mit einer deutlich geringeren Leistung als während des Waschgangs. Diese nutzen wir als Marker, um den Status der Waschmaschine auszuwerten. Sobald die Leistung auf einen bestimmten Wert sinkt, wird der Status auf „Fertig“ geändert. Bei den modernen Waschmaschinen kann es vorkommen, dass die Leistung während des Waschvorgangs auf diesen niedrigen Wert je nach Waschprogramm mehrmals sinkt.  Somit ein einmaliges Prüfen, ob kein Verbrauch vorhanden ist, würde bei einer modernen Waschmaschine innerhalb der ersten Minuten fertig signalisieren. Damit das nicht passiert, wird bei dieser Lösung mehrmals zeitlich versetzt geprüft, ob nach einer Waschmaschinen- bzw. Energie-Pause immer noch eine Energie-Pause besteht, und setzt erst dann die Variable Status Waschmaschine auf „Fertig“.

Als Erstes soll überprüft werden, wie der Verbrauch eurer eigener Waschmaschine (Leistungsverlauf während eines Waschprogramms) aussieht. Dazu das Häkchen „protokoliert“ bei der Variable „Waschmaschine: Leistung“ setzen und einen Waschvorgang durchlaufen lassen. Nach dem Waschvorgang findet ihr im Systemprotokoll die Werte der gemessenen Leistung. Bei mir sehen die gemessenen Werte zum Beispiel so aus:

Es ist deutlich erkennbar, dass im Standby-Modus nicht mehr als 2 W benötigt wird, der Waschvorgang startet dagegen bei ca. 7 W Leistung. Es kann auch vorkommen, dass mitten im Waschvorgang kurzzeitig keine Leistung benötigt wird, es hängt vom Waschprogramm ab. Der gesamte Leistungsverlauf während des Waschvorgangs sieht bei mir so aus:

Anhand dieser Daten legen wir das CCU-Programm an, das den Zustand der Waschmaschine überwachen wird.

Das Programm besteht aus drei Teilen. Das erste Teil des Programms überprüft, ob die Waschmaschine sich in einem Waschvorgang befindet. Das Programm wird ausgelöst, sobald die gemessene Leistung größer als 5 W wird. Beim Auslösen des Programms wird der Waschmaschinenstatus auf „Läuft“ geändert.

Mit dem zweiten Teil des Programms wird überwacht, wann der Waschvorgang beendet wird. Die Überprüfung wird ausgelöst, wenn die Leistung weniger als 4 W gemessen wird.

Nach dem Auslösen des Programms wird 5-mal in 4 Sekunden Takt mit felgendem Skript überprüft, ob die Leistung immer noch unter 4 W liegt. Die Anzahl der Überprüfungen und die zeitliche Verschiebung können natürlich nach eigenem Bedarf angepasst werden.

! Statusüberprüfung ............................................

if (dom.GetObject("Waschmaschine: Leistung").Value() > 4) {
  dom.GetObject("Waschmaschine: Status").State(2);   !Status: Überprüfung (falsch)
}

Mit folgendem Skript wird abschließend kontrolliert, ob die Statusüberprüfung alle 5-mal erfolgreich abgelaufen wurde und falls es der Fall sein sollte, wird der Status der Waschmaschine auf „Fertig“ geändert.

! Statussetzung..............................................

if (dom.GetObject("Waschmaschine: Status").State() == 1) {  !Status: Überprüfung (wahr)	 
  dom.GetObject("Waschmaschine: Status").State(3);      !Status: Fertig
} else {
  dom.GetObject("Waschmaschine: Status").State(0);	!Status: Läuft
}

Das nächste Teil sorgt dafür, dass alle gemessenen Werte genullt werden, wenn das Sonoff-Gerät ausgeschaltet wird.

Das abschließende Teil des Programms macht genau das, wofür das ganze gedacht wurde, es versendet nämlich die Pushover-Benachrichtigung, sobald die Waschmaschine mit dem Waschvorgang fertig ist. Wie das Versenden der Pushover-Benachrichtigungen mit Homematic realisiert werden kann, habe ich in dieser Anleitung erklärt. In diesem Programmteil können auch andere Aktivitäten beim Beenden des Waschvorgangs ausgeführt werden, z. B. Licht in der Waschküche einschalten usw.

Somit sind wir fertig! Ab jetzt werdet ihr benachrichtigt, sobald der Waschvorgang abgeschossen wurde!

... und noch eine Kleinigkeit

Für Anmerkungen, Vorschläge, Hinweise, Anregungen und konstruktive Kritik zu diesem Artikel bin ich euch dankbar! Falls dieser Artikel euch geholfen hat oder ihr den nützlich findet, würde ich mich über eine Tasse Kaffee freuen, die ihr oben rechts für mich bestellen können. Vielen Dank.

 

 

 

Schreibe einen Kommentar

Menü schließen