Leben, Essen, Schlafen

Schnipsel, Anregungen, Haltbares

Projekte, Aufgaben, Einfaches

Wie die Waschmaschine smart wird

Wie die Waschmaschine smart wird

Die Waschmaschine steht im Keller und sagt nicht bescheid wenn sie fertig ist? Dann lassen wir sie doch einfach sprechen!
Grundsätzlich ganz einfach mittels OpenHAB und einer smarten Steckdose. In meinem Fall habe ich eine devolo Schalt- und Messsteckdose, die über Z-Wave kommuniziert, genommen. Dafür hängt am OpenHAB Raspberry Pi ein Razberry-Modul am GPIO. Die Einrichtung erspare ich mir mal. Der eigentliche Trick ist ganz einfach, anhand des Verbrauchs werden Modi der Maschine festgelegt. Dazu muss einmalig ein kompletter Waschmaschinengang gemessen werden. OpenHAB schreibt alles schon mit, aus dem Log müssen nur die richtigen Zeilen entnommen werden.

grep "steckdose_bz_wama_watt changed" /var/log/openhab2/events.log

Gibt dann folgendes aus:

...
2019-03-29 15:12:14.953 [vent.ItemStateChangedEvent] - steckdose_bz_wama_watt changed from 194.5 to 182.2
2019-03-29 15:17:18.166 [vent.ItemStateChangedEvent] - steckdose_bz_wama_watt changed from 182.2 to 12.8
2019-03-29 15:17:44.169 [vent.ItemStateChangedEvent] - steckdose_bz_wama_watt changed from 12.8 to 16.7
2019-03-29 15:17:53.172 [vent.ItemStateChangedEvent] - steckdose_bz_wama_watt changed from 16.7 to 24.9
2019-03-29 15:17:56.195 [vent.ItemStateChangedEvent] - steckdose_bz_wama_watt changed from 24.9 to 26.3
...

Um das ganze einfacher auszuwerten schmeißen alles unnötige raus.

grep "steckdose_bz_wama_watt changed" /var/log/openhab2/events.log | sed 's/.[0-9]* \[vent.ItemStateChangedEvent.* to /;/'

Und erhalten folgendes:

...
2019-03-29 15:12:14;182.2
2019-03-29 15:17:18;12.8
2019-03-29 15:17:44;16.7
2019-03-29 15:17:53;24.9
2019-03-29 15:17:56;26.3
...

Das lässt sich dann grafisch aufbereiten.

Leistungsdiagramm Waschmaschine

Ein Waschgang

Grundsätzlich ist die Waschmaschine

  • Aus,
  • im Standby,
  • Aktiv,
  • fertig.

Die große Schwierigkeit ist die Übergänge zwischen den einzelnen Zuständen herauszufinden. Zu erkennen ist auf Anhieb, dass alles knapp über 0 Zustand ‘Aus‘ ist. Größer als 5 ist ‘aktiv‘ und wenn nach einer aktiven Phase der Wert auf unter 4,5 fällt ist die Maschine ‘fertig‘. Für ‘Standby’ bleibt dann die Lücke 1 x 5. Hier sind je nach Maschine natürlich individuelle Werte notwendig. Je nach Maschine sind auch verschiedene Waschgänge zu untersuchen um alles abzudecken.

Als Anzeige dient ein einfaches Item und zur Übersetzung eine Map.

Number wama_status "Waschmaschine Status [MAP(wama_status.map):%d]"
0=Aus
1=Standby
2=Aktiv
3=Fertig

Das ganze Prozedere zur Statuserkennung in eine Rule verpackt sieht dann so aus:

val Number MODE_OFF = 0
val Number MODE_STANDBY = 1
val Number MODE_ACTIVE = 2
val Number MODE_FINISHED = 3

rule "Waschmaschinenstatus"
when
    Item steckdose_bz_wama_watt changed
then
    if (steckdose_bz_wama_watt.state < 1) wama_status.postUpdate(MODE_OFF)
    else if (steckdose_bz_wama_watt.state > 5) wama_status.postUpdate(MODE_ACTIVE)
    else if (steckdose_bz_wama_watt.state < 4.5) {
        if (wama_status.state == MODE_OFF) wama_status.postUpdate(MODE_STANDBY)
        else if (wama_status.state == MODE_ACTIVE) {
		wama_status.postUpdate(MODE_FINISHED)
		echo_wohnzimmer_TTS.sendCommand('Ich glaube die Waschmaschine ist fertig') 
		sendTelegram("sensorenbot", "Die Wäsche ist fertig!")
		}		
    }
end

Zusätzlich sind noch eine Telegramnachricht und eine Alexa Sprachausgabe eingebaut.

Quelle: https://community.openhab.org/t/washing-machine-state-machine/15587


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere