Haussteuerung - Waschmaschine fertig
Hier kommen wir jetzt mal wieder zu einem weiteren Beispiel der Kategorie nicht nötig aber nützlich :)
Auf der Suche nach Dingen die man automatisieren kann, bin ich auch irgendwann mal auf die Waschmaschine gekommen. Auch hier wird sich der skeptische Leser sicher wieder fragen - was soll das? Um es kurz zu machen geht es nur darum, ein Feedback zu bekommen, wenn der Waschvorgang abgeschlossen ist. Jedem ist es sicher schonmal passiert, dass er vergessen hat, die Wäsche aufzuhängen, weil er einfach nicht mehr daran gedacht hat, dass er die Waschmaschine angestellt hatte.
Da meine Waschmaschine keinen Netzwerkanschluss oder irgendeine andere Schnittstelle hat (gibt es überhaupt Geräte?), musste ein anderer Ansatz her. Die einfachste Lösung ist den Stromverbrauch zu monitoren. Damit ich das auch kann, verwende ich einen Homematic Funk-Schaltaktor 1fach mit Leistungsmessung.
Die Funktionsweise der Lösung ist recht einfach:
- steigt der Verbrauch auf > 30 Watt, was sofort eintritt, wenn die Trommel losdreht, ist das ein Zeichen dafür, dass die Waschmaschine läuft
- sinkt der Verbrauch danach für wenigstens 5 min unter 9Watt, gehe ich davon aus, dass die Waschmaschine fertig ist und sende eine Pushnachricht ans Handy, sowie gebe auch aktustisch eine Rückmeldung
- 15 min nachdem die Fertigmeldung kam, wird dann auch der Aktor und somit die Waschmaschine komplett ausgeschaltet

Und damit Ihr das Ganze jetzt noch Programmtechnisch nachvollziehen könnt, ist hier der Code dazu:

define HK.Waschmaschine CUL_HM 38B715
attr HK.Waschmaschine IODev CUL1
attr HK.Waschmaschine IOgrp CCU:CUL1
attr HK.Waschmaschine actCycle 000:10
attr HK.Waschmaschine actStatus alive
attr HK.Waschmaschine autoReadReg 4_reqStatus
attr HK.Waschmaschine expert 2_full
attr HK.Waschmaschine firmware 1.6
attr HK.Waschmaschine group 2: Geräte
attr HK.Waschmaschine model HM-ES-PMSw1-Pl
attr HK.Waschmaschine room UG.Heizungskeller
attr HK.Waschmaschine serialNr MEQ0170626
attr HK.Waschmaschine subType powerMeter
attr HK.Waschmaschine webCmd getConfig:clear msgEvents

define HK.Waschmaschine_Sw CUL_HM 38B71501
attr HK.Waschmaschine_Sw devStateIcon on:black_Steckdose.on off:black_Steckdose.off
attr HK.Waschmaschine_Sw event-on-change-reading state
attr HK.Waschmaschine_Sw group 2: Geräte
attr HK.Waschmaschine_Sw model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_Sw peerIDs 00000000,
attr HK.Waschmaschine_Sw room UG.Heizungskeller
attr HK.Waschmaschine_Sw subType switch
attr HK.Waschmaschine_Sw webCmd statusRequest:toggle:on:off
define HK.Waschmaschine_Pwr CUL_HM 38B71502
attr HK.Waschmaschine_Pwr event-on-change-reading current,power
attr HK.Waschmaschine_Pwr model HM-ES-PMSw1-Pl
define HK.Waschmaschine_SenPwr CUL_HM 38B71503
attr HK.Waschmaschine_SenPwr event-on-change-reading none
attr HK.Waschmaschine_SenPwr model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_SenPwr peerIDs 00000000,
define HK.Waschmaschine_SenI CUL_HM 38B71504
attr HK.Waschmaschine_SenI event-on-change-reading none
attr HK.Waschmaschine_SenI model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_SenI peerIDs 00000000,
define HK.Waschmaschine_SenU CUL_HM 38B71505
attr HK.Waschmaschine_SenU event-on-change-reading none
attr HK.Waschmaschine_SenU model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_SenU peerIDs 00000000,
define HK.Waschmaschine_SenF CUL_HM 38B71506
attr HK.Waschmaschine_SenF event-on-change-reading none
attr HK.Waschmaschine_SenF model HM-ES-PMSw1-Pl
attr HK.Waschmaschine_SenF peerIDs 00000000,

-> Definition der Geräte

#Dummy WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
define HK.WaschmaschineWatt dummy
attr HK.WaschmaschineWatt event-on-change-reading state
attr HK.WaschmaschineWatt group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineWatt room UG.Heizungskeller

#Dummy HK.WaschmaschineWatt mit Werten versorgen
define HK.WaschmaschineWattSet notify HK.Waschmaschine_Pwr {my $power =ReadingsVal("HK.Waschmaschine_Pwr","power","");; fhem ("set HK.WaschmaschineWatt $power")}
attr HK.WaschmaschineWattSet group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineWattSet room UG.Heizungskeller

define HK.WaschmaschineBetrieb dummy
attr HK.WaschmaschineBetrieb event-on-change-reading state
attr HK.WaschmaschineBetrieb group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineBetrieb room UG.Heizungskeller

-> Definition der Dummies

define HK.WaschmaschineBetriebCheck DOIF ([HK.Waschmaschine_Pwr:power]>30) (set HK.WaschmaschineBetrieb on) \
DOELSEIF \
([HK.Waschmaschine_Pwr:power]<9) (set HK.WaschmaschineBetrieb off, set Pushover msg 'FHEM' 'Waschmaschine ist fertig', set HM_3674FE playTone 032, setstate HK.WaschmaschineAutoOff defined, trigger HK.WaschmaschineBetrieb off)
attr HK.WaschmaschineBetriebCheck event-on-change-reading state
attr HK.WaschmaschineBetriebCheck group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineBetriebCheck room UG.Heizungskeller
attr HK.WaschmaschineBetriebCheck wait 60:300

define HK.WaschmaschineAutoOff watchdog HK.WaschmaschineBetrieb:off 00:15 HK.WaschmaschineBetrieb:on {fhem("set HK.Waschmaschine_Sw off");;;;fhem("set Pushover msg 'FHEM' 'Waschmaschine wurde ausgeschaltet'")}
attr HK.WaschmaschineAutoOff group 1: Automatisierung Waschmaschine
attr HK.WaschmaschineAutoOff regexp1WontReactivate 1
attr HK.WaschmaschineAutoOff room UG.Heizungskeller

-> die Logik