Wie du mit einem Sonoff POW deine Waschmaschine smart machst (Teil 3)
In Teil 1 habe ich dir gezeigt, wie du die Leistungsdaten deiner Waschmaschine ins Netz bringst und in Teil 2 hast du erfahren, wie openHAB die Daten auswertet und den Zustand der Waschmaschine ermittelt.
In diesem Blog-Post erkläre ich dir, wie du die Daten visualisierst und wie du Nachrichten auf dem Handy erhältst, wenn die Wäsche fertig ist.
Visualisierung mit HABPanel
Falls du das HABPanel noch nicht installiert hast, holst du das im Paper UI nach. Unter Add-ons wählst du den Reiter USER INTERFACES und installierst HABPanel. Daraufhin erscheint auf deiner openHAB Startseite der Eintrag HABPANEL. Du erreichst es unter der URL http:// <dein Server:Port>/habpanel/index.html
.
Falls noch nicht geschehen, lege mit Add new dashboard einen neuen Eintrag an und vergib einen beliebigen Namen. Danach klickst du das neue Dashboard an und du landest im Editor für die Dashboard-Einträge.
Wähle oben rechts Add Widget und Template. Klicke auf die drei Punkte im Widget und auf Edit.... Bei einem Template kannst du direkt das HTML für die Anzeige eintragen. Es handelt sich um eine Angular JS Komponente. Somit stehen dir die verschiedenen Elemente, wie z.B. ng-if, zur Verfügung.
Füge den folgenden HTML-Code ein:
Aus Läuft Fertig
Hier habe ich drei Blöcke angelegt, die je nach Zustand der Waschmaschine angezeigt werden. Den Zustand frage ich über die Java-Script-Funktion itemValue() ab. Als Parameter gibt man das Item aus der Konfiguration an. Über die AngularJS Direktive ng-if wird dann nur das gewünschte Element angezeigt.
Zum Speichern klickst du auf Save der Template Settings und auf Save im Dashboard, danach auf Run. Und schon wird dir der Status im Dashboard angezeigt :-)
Telegram
Für die Benachrichtigung am Handy verwende ich den Messenger Telegram. Installiere zuerst das Modul wieder über das Paper UI im Bereich Add-ons. Unter dem Reiter Actions findest du die Telegram Action. Da das Modul noch in der 1.X Version vorliegt, geschieht die Konfiguration in der Textdatei serivces/telegram.cfg
.
Für die Einrichtung benötigst du ein Token und die Chat-ID. Öffne in deiner Telegram App den Chat mit BotFather. Sende /newbot
und folge den Anweisungen. Denke dir also ein paar Namen aus. Am Ende erhältst du den Token für die API. Du siehst auch einen Link zum Chat mit deinem neuen Bot. Den wählst du aus sendest eine beliebige Nachricht in den neuen Chat. Nun kannst du in einem Web-Browser die URL
https://api.telegram.org/bot
aufrufen und erhältst eine JSON-Antwort. Hierin ist hinter "id" die Benötigte Chat-ID enthalten.
Die so gewonnen Daten trägst du in der Konfigurationsdatei ein:
bots=michael michael.chatId=112233445 michael.token=123123123:ABCabc...
Als letztes fehlt uns noch eine Regel, die eine Nachricht beim Wechsel des Waschmaschinenstatus von "Läuft" auf "Fertig" sendet:
rule "Washingmachine state: Notify finished" when Item Cellar_Bathroom_Washingmachine_OpState changed from 1 to 2 then logInfo(filename, "Washingmachine done") sendTelegram("michael", "Waschmaschine fertig.") end
Wichtig ist hier, dass in dem when
-Zweig die Statuswerte als
Zahlen (hier 1
und 2
) und nicht als Variablen-Namen (MODE_ACTIVE
oder MODE_FINISHED
) stehen. Ansonsten wird die Regeln nicht ausgeführt.
(Danke an Andreas für's rausfinden)
Das war's soweit mit der Waschmaschine. Den Trockner habe ich genauso eingebunden. Hier ist der Unterschied, dass es nur die Zustände Aus und Läuft gibt. Bei meinem Trockner kann ich den Unterschied zwischen "Fertig" und "Aus" nicht anhand der Leistungsaufnahme unterscheiden. Das vereinfacht die Konfiguration im Endeffekt etwas.