Aug26
Waschmaschine sagt fertig

Ich habe in openhab eine klein Regel geschrieben, die uns eine Nachricht schickt, wenn die Waschmaschine fertig ist.

Anforderung

Da die Waschmaschine im Keller steht, möchte ich eine Benachrichtigung auf das Smartphone bekommen, sobald sie fertig ist. Da wir keine smarte Waschmaschine haben und auch keine neue kaufen wollen, muss eine Lösung her, die nachträglich installiert werden kann.

Lösungsstrategie

Es wird ein Strommessgerät zwischen Waschmaschine und Steckdose gehängt. Dieses sendet den Stromverbrauch an openhab. Sobald der Stromverbrauch unter einen definierten Wert fällt, sendet openhab eine Telegram Nachricht.

Umsetzung

Als Strommessgerät verwendet ich den Funk-Schaltaktor mit Leistungsmessung von Homematic.  Wie dieser in Homematic eingerichtet wird, werde ich an dieser Stelle nicht erklären. Auch nicht, wie Homematic an openhab angebunden wird. Dafür gibt es genug Tutorials im Internet. Es kann auch jedes andere Strommessgerät verwendet werden, das mit openhab kompatibel ist.

In openhab benötige ich zwei Items:

  1. Ein Item, das an das Strommessgerät gebunden ist und den gemessenen Stromverbrauch repräsentert
  2. Ein Item, das den Status der Waschmaschine repräsentiert. Dieses hat kein Binding und wird durch die Regel aktualisiert.
Number Washingmachine_Power  "Waschmaschine Leistung [%.2f W]"  <washingmachine>  (Energy)  {channel="homematic:...."}
Number Washingmachine_State  "Waschmaschine Status [MAP(washingmachine.map):%s]"  <washingmachine>  (Energy)

Die Regel reagiert auf Änderungen des Stromverbrauchs. Je nach dem, wie hoch der Verbrauch ist und wie der Status bisher war, wird ein neuer Status gesetzt.

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

rule "Washingmachine Status"
when
	Item Washingmachine_Power received update
then
	// > 1.5 aktiv
	// 1.5 - 0.2 standby
	// < 0.2 aus
	if (Washingmachine_Power.state < 0.2) { 
           postUpdate(Washingmachine_State, MODE_OFF) 
        } else if (Washingmachine_Power.state > 1.5) {
           postUpdate(Washingmachine_State, MODE_ACTIVE)		
        } else if (Washingmachine_Power.state <= 1.5) {
           if (Washingmachine_State.state == MODE_OFF) {
              postUpdate(Washingmachine_State, MODE_STANDBY)
           } else if (Washingmachine_State.state == MODE_ACTIVE) {
              postUpdate(Washingmachine_State, MODE_FINISHED)
              sendTelegram("Marco", "Die Waschmaschine ist fertig.")
              sendTelegram("Julia", "Die Waschmaschine ist fertig.")
           }
       }
end
  1. Ist der Stromverbrauch, bzw. die Leistung, kleiner 0.2 Watt -> Status AUS.
  2. Ist die Leistung größer 1.5 Watt -> Status AKTIV
  3. Ist die Leistung zwischen 0.2 und 1.5 
    1. Wenn der Status bisher AUS war -> Status STAND BY
    2. Wenn der Status bisher AKTIV war -> Status FERTIG

Wichtig ist, dass man zunächst beobachtet, wie die Leistung sich in einem Waschgang ändert. Die Maschine hat Ruhephasen, in denen die Leistung sehr niedrig ist, bei mir teilweise nur bei 4 Watt.  Und aus bedeutet nicht Leistung ist bei 0. Das wird bei jeder Waschmaschine anders sein und muss individuell angepasst werden.

Schreibe einen Kommentar

Anmelden um einen Kommentar abzugeben.

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

*