openHAB 5 - Waschmaschine fertig

Die meisten Waschmaschinen verfügen noch nicht über ein WLAN Modul und können nicht in die Hausautomatisierung integriert werden. Zumindest zeigen viele Waschmaschinen an, wie lange das gewählte Programm läuft. Aber wer denkt nach zwei Stunden noch daran, dass man die Waschmaschine eingeschaltet hat? Wäre es nicht schön, wenn man benachrichtet wird, sobald das Programm beendet ist? Realisieren lässt sich das über einen Zwischenstecker mit Leistungsmessung. Mit Shelly Produkten habe ich bisher sehr gute Erfahrungen gemacht und nutze für diesen Zweck den Shelly Plug M Gen 3. Ursprünglich wollte ich in der Unterputzdose der Steckdose einen Shelly Mini verbauen. Laut Datenblatt darf dieser aber maximal mit 2000 Watt belastet werden. Meine Waschmaschine ist aber mit 2,1 - 2,4 kW angegeben. Die maximale Belastung beim Shelly Plug M Gen 3 liegt bei 3000 Watt (13 A).

Der Shelly Plug M Gen 3 wird in openHAB als Thing mit dem Label Waschmaschine hinzugefügt. Zusätzlich benötige ich noch ein Item, dass mir den aktuellen Stromverbrauch anzeigt. Dieses Item erhält in meiner Umgebung den Namen Waschmaschine_Power_Consumption.

Der Stromverbrauch einer Waschmaschine schwankt von Modell zu Modell. Folgende Annahmen dürften für viele Waschmaschinen passen:


Wenn man es genauer wissen möchte, prüft man die Logdatei events.log, die sich üblicherweise im Verzeichnis userdata\logs befindet und filtert den Inhalt nach dem Namen des Items.

Wird die Waschmaschine eingeschaltet, damm befindet sich diese im Standby. Die Waschmaschine wird gefüllt und das passende Programm gestartet. Damit ist die Waschmaschine aktiv (Verbrauch größer als 10 Watt). Fällt die Leistungsaufnahme wieder unter 10 Watt, dann ist das Waschprogramm beendet.

Für die Überwachung der Waschmaschine werden ein Item für den aktuellen Status und eine Regel benötigt, die aufgerufen wird, sobald sich der Stromverbrauch der Waschmaschine ändert.

Unter Items wird ein neues Item angelegt:

In diesem Item wird dann vom Script in der Regel der aktuelle Waschmaschinen Status abgespeichert:


In Rules wird eine neue Regel angelegt (rechts unten: blauer Kreis mit weißem Plus-Zeichen):

Das Script selbst:

const STATUS_AUS = 0
const STATUS_STANDBY = 1
const STATUS_AKTIV = 2
const STATUS_FERTIG = 3

if (items.getItem("Waschmaschine_Power_Consumption").numericState < 0.8) items.getItem("Waschmaschine_Status").postUpdate(STATUS_AUS);
else if (items.getItem("Waschmaschine_Power_Consumption").numericState > 10) items.getItem("Waschmaschine_Status").postUpdate(STATUS_AKTIV)
else if (items.getItem("Waschmaschine_Power_Consumption").numericState < 8)
{
  if (items.getItem("Waschmaschine_Status").state == STATUS_AUS)
  {
    items.getItem("Waschmaschine_Status").postUpdate(STATUS_STANDBY)
  }
  else if (items.getItem("Waschmaschine_Status").state == STATUS_AKTIV)
  {
    // Benachrichtigung fertig
  }
}

Der Code für die Benachrichtigung fertig hängt von den Anforderungen ab. E-Mail? WhatsApp? Sprachausgabe amazon Echo?
In meiner Umgebung nutze ich WhatsApp und Sprachausgabe.

Hinweise: