HomeMatic Funk-Steckdose mit Leistungsmessung: Deine Waschmaschine ist fertig

IM EINSATZ?

Dann schau dir UNSEREN LOXKURS an und profitiere von unserem Wissen!

Wie im Artikel HomeMatic Funk-Steckdose mit Leistungsmessung: Erweiterte Szenarien mit FHEM erstellen bereits einleitend erklärt, lässt sich der Homematic Funk-Schaltaktor 1-fach mit Leistungsmessung HM-ES-PMSw1-PI (Affiliate-Link) in Kombination mit FHEM idealerweise auch dazu nutzen, bei bestimmten Messwerten entsprechende Aktionen zu triggern. Da der vorgestellte Funk-Schaltaktor bis zu 3680 Watt verträgt, ist er natürlich geradezu prädestiniert im Hauswirtschaftsraum die Waschmaschine zu schalten und deren Leistungswerte zu überwachen, um bspw. bei fertigem Waschprogramm eine entsprechende Push-Nachricht aufs Smartphone zu schicken und kurze Zeit später den Strom zur Waschmaschine komplett zu trennen, um den Standbyverbrauch der Waschmaschine zu eliminieren. Wie die Einrichtung, die in der Tat etwas aufwändiger ist, funktioniert, wird nachfolgend in einem Howto beschrieben.

Anlernen des Funk-Aktors in FHEM

Gekoppelt wird der Homematic Funk-Schaltaktor HM-ES-PMSw1-PI (Affiliate-Link), wie jeder andere Homematic-Adapter auch, direkt in der Weboberfläche des FHEM-Servers über den Kommandozeilenbefehl:

set HMLAN1 hmPairForSec 60

Mit einem anschließenden Druck auf die Enter-Taste ist der HMLan-Adapter (Affiliate-Link) ab jetzt für 60 Sekunden bereit für neue Geräteanmeldungen. Wer statt HMLAN1 einen anderen Namen vergeben hat, muss den Eintrag entsprechend anpassen.

Um den Anlernvorgang einzuleiten, muss die einzige Gerätetaste des Funk-Schaltaktors (Affiliate-Link) für mindestens vier Sekunden gedrückt werden. Daraufhin steht der Adapter sofort in FHEM zur Verfügung. Der Funk-Stellantrieb besitzt jede Menge Kanäle (Channels), von denen nachfolgend nur die Benötigten beschrieben und genutzt werden. Hier wird auch gleich eine Umbenamung über die FHEM-Kommandozeile vorgenommen, um sprechende Namen (in diesem Fall HR.Waschmaschine) zu erhalten.

#Hier wird das Hauptdevice umbenannt, welches den darunter aufgelisteten Channel beinhaltet.
rename CUL_HM_HM_ES_PMSw1_Pl_24A726_Sw HR.Waschmaschine
attr HR.Waschmaschine room Hauswirtschaftsraum

#Hier wird der Channel umbenannt, welcher die Leistung in Watt verwaltet.
rename CUL_HM_HM_ES_PMSw1_Pl_24A726_Pwr HR.Waschmaschine_Power
attr HR.Waschmaschine_Power room Hauswirtschaftsraum

Danach “Save config” in FHEM anklicken, um die Änderungen dauerhaft zu speichern.

fhem.cfg erweitern

Als erstes wird der Dummy HR.WaschmaschineWatt in der fhem.cfg definiert, welcher die aktuelle Leistung in Watt anzeigt. Das ist zwar nicht zwingend notwendig aber dennoch zumindest für Testzwecke sinnvoll, da der Verbrauch sonst nur im Reading von HR.Waschmaschine_Power steckt und nicht direkt im FHEM-Interface angezeigt wird.

#Dummy HR.WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
define HR.WaschmaschineWatt dummy
attr HR.WaschmaschineWatt room Hauswirtschaftsraum

#Dummy HR.WaschmaschineWatt mit Werten versorgen
define HRWaschmaschineWattSet notify HR.Waschmaschine_Power {my $power =ReadingsVal(“HR.Waschmaschine_Power”,”power”,””);; fhem (“set HR.WaschmaschineWatt $power”)}

Jetzt wird der Dummy HR.WaschmaschineBetrieb benötigt, welcher signalisiert, ob die Waschmaschine gerade arbeitet (on), oder nicht (off) bzw. ob ein Waschvorgang gerade abgeschlossen wurde (standby).

#Dummy HR.WaschmaschineBetrieb definieren
define HR.WaschmaschineBetrieb dummy
attr HR.WaschmaschineBetrieb event-on-change-reading state
attr HR.WaschmaschineBetrieb room Hauswirtschaftsraum

Nun wird der Dummy HR.WaschmaschineBetrieb eingeschaltet, sobald der Funk-Schaltaktor (Affiliate-Link) einen Stromverbrauch von mehr als 30 Watt erkennt und somit angenommen werden kann, dass die Waschmaschine den Waschvorgang gestartet hat. Den Wert kann man natürlich auch entsprechend den eigenen Bedürfnissen anpassen. Zusätzlich wird noch der später benötigte watchdog HRWaschmaschineAutoOff auf “defined” gesetzt.

#Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
define HRWaschmaschineBetriebAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb on;; setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}

Update vom 13.03.2014: Bisher (rot markiert) wurde durch einen kurzzeitigen Verbrauch von unter 5 Watt signalisiert, dass der Waschvorgang abgeschlossen ist. Einige hatten aber das Problem, dass sich die Waschmaschine beim laufenden Betrieb zeitweise kleine Pausen gegönnt hat, in welchen der Verbrauch unter diese Grenze gesunken ist. Infolgedessen wurde fälschlicherweise eine Push-Nachricht “Waschvorgang abgeschlossen” verschickt, obwohl die Waschmaschine noch nicht fertig war. Um dieses Problem zu beheben, habe ich mir eine Lösung für dieses Problem mit Hilfe eines Watchdogs (grün markiert) überlegt. Es kann also ENTWEDER der rot markierte Text ODER der grün markierte Text verwendet werden.

Update vom 12.01.2015: Wer seine Waschmaschine automatisch abschalten bzw. vom Strom trennen möchte, sollte sich bewusst sein, dass die eingebaute Aqua-Stop nicht mehr funktioniert. Danke an spilu für den Hinweis.

Der Dummy HR.WaschmaschineBetrieb wird wieder ausgeschaltet, sobald der Verbrauch unter 5 Watt fällt und damit angenommen werden kann, dass die Waschmaschine den Waschvorgang abgeschlossen hat. Diese für jede Maschine individuelle Grenze lässt sich relativ einfach ermitteln, indem man den aktuellen Wert in FHEM abließt, wenn die gerade nicht arbeitende Waschmaschine am eingeschalteten Funk-Schaltaktor (Affiliate-Link) hängt. Bei meiner etwas älteren Waschmaschine kommt dabei ein Standby-Verbrauch von 4,4 Watt heraus – völlig verrückt, wenn man bedenkt, dass EINE WASCHMASCHINE im ausgeschalteten Zustand knapp 5 Watt verjubelt und dabei NICHTS macht.

#Dummy HR.WaschmaschineBetrieb ausschalten bei Verbrauch kleiner gleich 5 Watt
define HRWaschmaschineBetriebAus notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb standby”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) <= 5 && Value(“HR.WaschmaschineBetrieb”) eq “on”)}

Dummy HR.WaschmaschineBetrieb wird wieder ausgeschaltet, sobald der Verbrauch für mindestens 5 Minunten unter 5 Watt verbleibt und damit sicher angenommen werden kann, dass die Waschmaschine den Waschvorgang tatsächlich abgeschlossen hat. Dazu wird der Dummy HR.WaschmaschineHoherVerbrauch definiert, welcher je über ein Notify auf On bzw. Off geschaltet wird, sobald im laufenden Betrieb der angegebene Schwellwert (5 Watt) über bzw. unterschritten wird. Abschließend wird dann über einen Watchdog überwacht, ob der Schwellwert für eine gewisse Zeit (hier 5 Minuten) kontinuierlich unter dem Schwellwert bleibt und in diesem Fall das Ende des Waschgangs signalisiert (set HR.WaschmaschineBetrieb standby).

#Dummy HR.WaschmaschineHoherVerbrauch definieren
define HR.WaschmaschineHoherVerbrauch dummy
attr HR.WaschmaschineHoherVerbrauch event-on-change-reading state
attr HR.WaschmaschineHoherVerbrauch room Hauswirtschaftsraum

#Dummy HR.WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 5 Watt bei laufendem Betrieb
define HRWaschmaschineHoherVerbrauchAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch on;; setstate HRWaschmaschineAutoStandby defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) > 5 && Value(“HR.WaschmaschineBetrieb”) eq “on”)}

#Dummy HR.WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 5 Watt bei laufendem Betrieb
define HRWaschmaschineHoherVerbrauchAus notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) <= 5 && Value(“HR.WaschmaschineBetrieb”) eq “on”)}

#Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter obigem Schwellwert (5 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
define HRWaschmaschineAutoStandby watchdog HR.WaschmaschineHoherVerbrauch:off 00:05 HR.WaschmaschineHoherVerbrauch:on set HR.WaschmaschineBetrieb standby
attr HRWaschmaschineAutoStandby regexp1WontReactivate 1
attr HRWaschmaschineAutoStandby room Hauswirtschaftsraum

Da der Dummy HR.WaschmaschineBetrieb den Status “standby” verpasst bekommt, kann dies genutzt werden, um eine Push-Nachricht per “Pushover” aufs Smartphone zu schicken. Die Voraussetzung dafür werden im Artikel Howto: Mit FHEM Push-Nachrichten aufs iPhone schicken (Update) beschrieben.

#Pushover-Notification bei abgeschlossenem Waschvorgang verschicken – token und user ist bei jedem anders und muss entsprechend geändert werden
define HRWaschmaschineWaschvorgangAbgeschlossenPushover notify HR.WaschmaschineBetrieb:standby {system (“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‘ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‘ -F ‘message=HauswirtschaftsraumnWaschvorgang abgeschlossen’ https://api.pushover.net/1/messages.json”)}

Wer noch eine entsprechende Sprachausgabe nutzen möchte, kann dies natürlich auch realisieren. Die Voraussetzungen dafür werden im Artikel “Willkommen Zuhause!” – Sprachausgabe in FHEM realisieren beschrieben. Die beiden nachfolgend genutzten MP3-Sprachdateien sind im zip-File geupdatet: Funkgong-Beispiel-mp3s.zip (11851 Downloads )

#Sprachausgabe bei abgeschlossenem Waschvorgang wiedergeben
define HRWaschmaschineWaschvorgangAbgeschlossenMP3 notify HR.WaschmaschineBetrieb:standby set FL.GongMP3 playTone 012

Wie bereits oben erwähnt, kann eine Waschmaschine im Standby ordentlich Strom fressen – in meinem Fall etwas mehr als 4 Watt, was im Jahr knapp 10 Euro entspricht (bei 30 Cent pro KWh). Um dem entgegenzuwirken, soll der Funk-Schaltaktor (Affiliate-Link) den Strom zur Waschmaschine automatisch nach 15 Minuten trennen, nachdem diese den Waschvorgang abgeschlossen hat und kein neuer Waschvorgang gestartet wurde. Das bedeutet im Umkehrschluss auch, dass vor einem Waschvorgang die Taste am Funk-Schaltaktor (Affiliate-Link) kurz gedrückt werden muss, wenn ein vorhergehender Waschgang mehr als 15 Minuten zurückliegt, um die Waschmaschine wieder mit Strom zu versorgen. (Wer einen Bewegungsmelder im Hauswirtschaftsraum hat, könnte das natürlich auch umgehen, indem durch die erkannte Bewegung der Funk-Schaltaktor (Affiliate-Link) einschaltet und nach x Minuten wieder ausschaltet, sofern kein neuer Waschvorgang gestartet wird.)

#HR.Waschmaschine 15 Minuten nach dem letzten Waschgang vom Strom trennen
define HRWaschmaschineAutoOff watchdog HR.WaschmaschineBetrieb:standby 00:15 HR.WaschmaschineBetrieb:on set HR.Waschmaschine off set HR.WaschmaschineBetrieb off
attr HRWaschmaschineAutoOff regexp1WontReactivate 1
attr HRWaschmaschineAutoOff room Hauswirtschaftsraum

Und zum Schluss noch die entsprechenden Benachrichtigungen, sobald die Waschmaschine ausgeschaltet bzw. durch den Funk-Schaltaktor (Affiliate-Link) vom Strom getrennt wird.

#Pushover-Notification sobald die Waschmaschine ausgeschaltet wird – token und user ist bei jedem anders und muss entsprechend geändert werden
define HRWaschmaschineWirdAusgeschaltetPushover notify HR.WaschmaschineBetrieb:off {system(“curl -s -F ‘token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‘ -F ‘user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‘ -F ‘message=HauswirtschaftsraumnWaschmaschine wird ausgeschaltet’ https://api.pushover.net/1/messages.json”)}

#Sprachausgabe wiedergeben sobald die Waschmaschine ausgeschaltet wird
define WRWaschmaschineWirdAusgeschaltetMP3 notify HR.WaschmaschineBetrieb:off set FL.GongMP3 playTone 013

Aus meinem täglichen Leben

Das hier vorgestellte Szenario verrichtet bei mir bereits seit Längerem zuverlässig seinen Dienst. Ich hatte jedoch bisher einen AVM FRITZ!DECT 200 (Affiliate-Link) Zwischenstecker im Einsatz, welcher zwar ebenfalls eine Strommessfunktion hatte, aber nur für Geräte bis 2.300 Watt ausgelegt war, was aber für meine Waschmaschine gerade noch ausreichte. Zudem hat er bei mir nicht zuverlässig seinen aktuellen An-Aus-Zustand an die Zentrale zurückgemeldet, wenn man am Zwischenstecker selbst manuell ein- bzw. ausgeschaltet hatte.

Der Homematic Funk-Schaltaktor HM-ES-PMSw1-PI (Affiliate-Link) verkraftet dagegen Geräte bis zu 3.680 Watt und meldet seinen Zustand bis jetzt zuverlässig an die FHEM-Zentrale. Auch werden sich ändernde Verbräuche fast in Echtzeit an die Zentrale mitgeteilt, wodurch die Reaktionszeit sehr kurz ist und das obige Szenario zuverlässig und zeitnah über sich ändernde Zustände informiert. Insgesamt bleibt es natürlich “nur” eine lustige Spielerei, die ich jedoch nicht mehr missen möchte.

209 Kommentare
  1. Hallo,

    echt netter Artikel und verständlich erklärt. Finde ich echt super.

    Aber mal ne doofe Frage nebenbei…
    Wenn Du jetzt eine neue Maschine anstellen willst, musst Du vorher erstmal in FHEM die Steckdose einschalten, dann zur Maschine gehen und dann das Programm wählen etc.
    Ist das so?
    Wenn ja, ist das nicht Hausfrauengerecht, denn wie meine Frau fluchen würde wenn Sie vor der Maschine steht und das Smartphone oben vergessen hat möchte ich nicht erleben 🙂

    Meine Maschine kann ich nicht mechanisch voreinstellen, und dann die Maschine per PowerOn loslaufen lassen. Ich muss immer noch an der Maschine ein “Start” drücken.

    1. Hi Holger,
      danke für das positive Feedback!
      Die Steckdose (bzw. der Zwischenstecker) lässt sich direkt über den An-Aus-Schalter am Zwischenstecker selbst einschalten. Dachte das hatte ich im Artikel eigentlich kurz erklärt… Sollte also insgesamt “hausfrauengerecht” genug sein… 🙂

    1. Ich hab ihn über Amazon bezogen. Ein Marketplace-Lieferant gab mir eine Absage, der andere hat ihn verschickt. Aber sehe auch gerade, dass der Adapter aktuell gar nicht mehr über Amazon verfügbar ist. Ich würde einfach mal einige Tage warten und es nochmal über diesen Link (Affiliate-Link) versuchen…

  2. Hi Jörg,
    ich verfolge die Seite schon eine Weile, da ich gerade in die Hausautomation gestartet bin. Deine Artikel haben mir beim Einrichten und verstehen der Materie extrem geholfen! Dafür erstmal ein fettes Dankeschön!

    Nun habe ich heute auch den HM-ES-PMSw1-PI aktiviert und wollte auch gleich einen Plot erstellen, was auch nicht weiter schwierig war, nachdem ich eine weitere Logdatei angelegt habe. Aber ein wenig komme ich doch ins schwimmen mit den Werten die geloggt werden.

    Hier kleine Auszüge der Log-Datei
    eingeschaltet:
    2014-01-20_23:33:22 PW_Wohnzimmer_Pwr frequency: 52.52
    2014-01-20_23:33:22 PW_Wohnzimmer_Pwr boot: on
    2014-01-20_23:35:25 PW_Wohnzimmer_Pwr energy: 298.6
    2014-01-20_23:35:25 PW_Wohnzimmer_Pwr power: 0.08
    2014-01-20_23:35:25 PW_Wohnzimmer_Pwr current: 1
    2014-01-20_23:35:25 PW_Wohnzimmer_Pwr voltage: 232.9
    2014-01-20_23:35:25 PW_Wohnzimmer_Pwr frequency: 52.53

    ausgeschaltet:
    2014-01-20_23:40:54 PW_Wohnzimmer_Pwr boot: on
    2014-01-20_23:43:17 PW_Wohnzimmer_Pwr energy: 298.6
    2014-01-20_23:43:17 PW_Wohnzimmer_Pwr power: 0.08
    2014-01-20_23:43:17 PW_Wohnzimmer_Pwr current: 1
    2014-01-20_23:43:17 PW_Wohnzimmer_Pwr voltage: 233
    2014-01-20_23:43:17 PW_Wohnzimmer_Pwr frequency: 50.01

    Was für Werte werden dort neben Watt noch angezeigt?
    Power = Watt (klar)
    Energy = Ws, J? (unklar)
    Current = Aktuelle Energie? (unklar)

    Und warum, obwohl Funksteckdose ausgeschaltet ist, ist die Energie noch relativ hoch, bei gerade 298,6?
    Hast du vielleicht Ideen dazu?

    Gruß & Danke
    CarlMcCoy

  3. Hi Jörg,

    bin im forum.fhem.de fündig geworden.

    Energy ≙ Wh
    Power ≙ W
    current ≙ mA

    Mein Problem mit den gemessenen 298,6 schien durch ein Trennen der Funksteckdose behoben worden zu sein. Jetzt werden plausible Werte angezeigt.

    Gruß
    CarlMcCoy

  4. Hallo Jörg,
    wieder einmal eine super Anleitung. Vielen Dank dafür!
    Ich habe nur folgendes Problem, nach der Programmierung wie hier beschrieben lief beim ersten test alles 1a, als ich dann einen Tag später die Steckdose an der Waschmaschine anschaltete sagte mir der Gong die Waschmaschine sei fertig allerdings schaltete die Steckdose nicht aus. Vor dem nächsten Versuch habe ich den Raspberry vom Strom kurz getrennt, dann ging wieder beim ersten Versuch alles wie es soll und beim zweiten Waschvorgang wieder das selbe Problem die Steckdose schaltet nicht ab.
    Hier einen auszug meiner cfg.

    define CUL_HM_HM_ES_PMSw1_Pl_24A7D7 CUL_HM 24A7D7
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 .devInfo 3F0100
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 .stc 51
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 IODev HMLAN1
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 actCycle 000:10
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 actStatus alive
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 autoReadReg 4_reqStatus
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 expert 2_full
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 firmware 1.4
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 peerIDs
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 room CUL_HM
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 serialNr KEQ0966121
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7 subType powerMeter
    define FileLog_CUL_HM_HM_ES_PMSw1_Pl_24A7D7 FileLog ./log/CUL_HM_HM_ES_PMSw1_Pl_24A7D7-%Y.log CUL_HM_HM_ES_PMSw1_Pl_24A7D7
    attr FileLog_CUL_HM_HM_ES_PMSw1_Pl_24A7D7 logtype text
    attr FileLog_CUL_HM_HM_ES_PMSw1_Pl_24A7D7 room CUL_HM
    define Waschmaschine CUL_HM 24A7D701
    attr Waschmaschine expert 1
    attr Waschmaschine model HM-ES-PMSw1-Pl
    attr Waschmaschine peerIDs 00000000,
    attr Waschmaschine room Waschküche
    define Waschmaschine_Power CUL_HM 24A7D702
    attr Waschmaschine_Power expert 1
    attr Waschmaschine_Power model HM-ES-PMSw1-Pl
    attr Waschmaschine_Power peerIDs
    attr Waschmaschine_Power room Waschküche
    define CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenPwr CUL_HM 24A7D703
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenPwr expert 1
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenPwr model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenPwr peerIDs 00000000,
    define CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenI CUL_HM 24A7D704
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenI expert 1
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenI model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenI peerIDs 00000000,
    define CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenU CUL_HM 24A7D705
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenU expert 1
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenU model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenU peerIDs 00000000,
    define CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenF CUL_HM 24A7D706
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenF expert 1
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenF model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_24A7D7_SenF peerIDs 00000000,
    define ActionDetector CUL_HM 000000
    attr ActionDetector actCycle 600
    attr ActionDetector event-on-change-reading .*

    #Dummy WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
    define WaschmaschineWatt dummy
    attr WaschmaschineWatt room Waschküche

    #Dummy WaschmaschineWatt mit Werten versorgen
    define WaschmaschineWattSet notify Waschmaschine_Power {my $power =ReadingsVal(“Waschmaschine_Power”,”power”,””);; fhem (“set WaschmaschineWatt $power”)}

    #Dummy WaschmaschineBetrieb definieren
    define WaschmaschineBetrieb dummy
    attr WaschmaschineBetrieb event-on-change-reading state
    attr WaschmaschineBetrieb room Waschküche

    #Dummy WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
    define WaschmaschineBetriebAn notify WaschmaschineWatt {fhem (“set WaschmaschineBetrieb on”) if (ReadingsVal(“WaschmaschineWatt”,”state”,””) >= 30 && Value(“WaschmaschineBetrieb”) ne “on”)}

    #Dummy WaschmaschineBetrieb ausschalten bei Verbrauch kleiner gleich 4 Watt
    define WaschmaschineBetriebAus notify WaschmaschineWatt {fhem (“set WaschmaschineBetrieb standby”) if (ReadingsVal(“WaschmaschineWatt”,”state”,””) <= 4 && Value("WaschmaschineBetrieb") eq "on")}

    #Sprachausgabe bei abgeschlossenem Waschvorgang wiedergeben
    define WaschmaschineWaschvorgangAbgeschlossenMP3 notify WaschmaschineBetrieb:standby set GongMP3 playTone 012

    #Waschmaschine 6 Minuten nach dem letzten Waschgang vom Strom trennen
    define WaschmaschineAutoOff watchdog WaschmaschineBetrieb:standby 00:06 WaschmaschineBetrieb:on set Waschmaschine off;; set WaschmaschineBetrieb off
    attr WaschmaschineAutoOff room Waschküche

    #Sprachausgabe wiedergeben sobald die Waschmaschine ausgeschaltet wird
    define WaschmaschineWirdAusgeschaltetMP3 notify WaschmaschineBetrieb:off set GongMP3 playTone 013

    Hast du eine Idee was ich da machen kann?

    Gruß
    Dominik

    1. Hi Dominik,
      ch habe den Code im Howto angepasst, jetzt sollte es auch bei dir funktionieren… Bitte mal testen und Bescheid geben, ob es nun klappt.

      Grüße
      Jörg

    2. Hi Jörg,
      vielen Dank für die schnelle Anpassung des Codes hab jetzt mehrmals die Maschine am laufen gahabt und seit der Anpassung funktioniert alles Top.

  5. Hi Jörg, wirklich gute Anwendung zum Stromsparen!
    Ich habe noch den “alten” AVM DECT 200 und habe versucht die Anwendung anzupassen. Ich vermute mit der Befüllung der WaschmaschineWATT mache ich einen Fehler da die Readings der HM etwas anders sind als bei der DECT200. Bei mir kommen keine Readings an. Wenn ich es richtig verstanden habe hast du mit der DECT begonnen. Hast du dazu noch die “alten” Beispiele?
    Gruß Karl

    1. Hi Karl,
      beim AVM DECT 200 hatte ich es so gelöst:
      define HRWaschmaschineWattSet notify HR.Waschmaschine {my $power_w=ReadingsVal(“HR.Waschmaschine”,”power”,””);; my $power=substr($power_w, 0,length($power_w)-2);; fhem (“set HR.WaschmaschineWatt $power”)}
      Hier hab ich das ausgelesene Reading, z.B. 30 W, hinten um zwei Stellen gekürzt durch den “substr … -2”-Befehl, damit ein numerischer Wert rauskommt (in diesem Fall dann 30), der genutzt werden kann. Hoffe das hilft dir weiter!
      Grüße
      Jörg

  6. Hallo Jörg, weitere Verständnisfrage. Kann man nicht mit dem Watchdog die zwei Stati 30Watt mit 15 min Zeitinntervall abfragen und dann bei < 5 Watt abschalten ohne die anderen Dummies zu nutzen? Gruß Karl

    1. Hi Karl,
      glaube man kommt nicht umher die Dummies zu nutzen. Der Watchdog wird getriggert durch sich verändernde Status (values) und so müssen die Readings (in diesem Fall die Watt-Angaben) erstmal genutzt werden, um einer Instanz (dem Dummy) einen entsprechenden Wert (eben die derzeitige Watt-Zahl) zu verpassen und damit dann den Watchdog anzusprechen. Wer es besser weiß, kann gerne widersprechen, ich bin hier auch kein Profi… 🙂
      Grüße
      Jörg

  7. Hallo,

    wirklich sehr gut geschrieben. Werde das Suchmaschine versuchen.

    Was mich interessieren würde ist die Leistungsaufnahme der Homematic Funk-Steckdose selbst. Hast du das evtl. mal gemessen?

    Gruß
    Deinjo

  8. Hallo, super Anleitung. Ich bin zwar noch totaler Anfänger aber das mit der Waschmaschine läuft super und ist auch gut erklärt. Wie hast du das einschalten mit dem Bewegungsmelder realisiert?

    1. Hi Frank,
      das mit dem Bewegungsmelder habe ich zwar noch nicht umgesetzt, das funktioniert aber mit einem HomeMatic Bewegungsmelder (Affiliate-Link) grundsätzlich folgendermaßen:

      #Waschmaschine für 15 Minuten einschalten bei erkannter Bewegung
      define HRWaschmaschinePerBewegungEin notify HR.Bewegungsmelder:motion {fhem(“set HR.Waschmaschine on-for-timer 15) if (ReadingsVal(“HR.WaschmaschineBetrieb”,”state”,””) ne “on”)}

      Dabei schaltet der Bewegungsmelder bei jeder erkannten Bewegung die Waschmaschine für weitere 15 Minuten ein, wenn gerade noch kein Waschvorgang ausgeführt wird. Damit sich die Waschmaschine nach 15 Minuten nicht wieder ausschaltet, obwohl in der Zwischenzeit ein Waschvorgang gestartet wird, muss weiterhin einer der oben in der Anleitung aufgeführten Befehle folgendermaßen ergänzt werden:
      #Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
      define HRWaschmaschineBetriebAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.Waschmaschine on set HR.WaschmaschineBetrieb on setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}

      Damit wird dann beim Beginn des Waschvorgangs HR.Waschmaschine dauerhaft auf on gesetzt.

      Grüße
      Jörg

  9. Hallo,
    spitzen Anleitung ich bin Begeistert. Dein ganzer Blog gefällt mir. Eine Frage habe ich zu dieser Anleitung mit der Waschmachine. Ich habe das soweit nachstellen können und zum Testen einfach eine Schreibtischlampe genutzt. Dabei ist mir aufgefallen, dass die Nachrichten nicht in nahezu Echtzeit erfolgen wie Du schreibst (“Verbräuche fast in Echtzeit”). Bei mir ist eine Verzögerung von 3-4 Mintuten vorhanden bei der Darstellung im Web-Interface. Ist das Deine “Echtzeit” von der Du spricht oder wo kann ich das einstellen. Ich vermute die Steckdose überträgt die Verbrauchsänderungen verzögert. In Hoffnung auf eine Antwort Danke ich Dir schon mal im Voraus1

    1. Hi Mibuc,
      welchen Leistungsmesser hast du im Einsatz? Der HomeMatic Leistungsmesser (Affiliate-Link), der hier genutzt wird, überträgt immer 1-2 Sekunden nach einer erkannten Leistungsänderung den entpsrechenden neuen Wert an die FHEM-Zentrale, wodurch auch eine “sofortige” Benachrichtigung möglich ist. Ich hatte daneben auch den DECT 200 von AVM (Affiliate-Link) im Einsatz, welcher nur alle paar Minuten einen Wert übermittelt hatte, was einen entsprechenden Zeitverzug bei der Benachrichtigung mit sich zog. Es kann aber auch sein, dass in FHEM eine Art zeitbezogene Benachrichtigungssperre für deinen Leistungsmesser eingestellt ist, so dass nur alle paar Minunten ein neuer Messwert von der FHEM-Zentrale angenommen wird. Das hatte ich glaub ich auch mal, hier war das entsprechende Attribut auf 10 Minuten gesetzt. Müsstest also mal in deiner fhem.cfg beim entsprechenden Device nach diesem Attribut “event-min-interval” suchen und es entfernen bzw. einen geringeren Wert (in Sekunden) einstellen, sofern es existiert. Hoffe das hilft erstmal weiter…
      Grüße
      Jörg

    2. Hallo Jörg,
      danke für die Antwort. Ich nutzte den Homematic Leistungsmesser. event-min-interval ist bei mir überhaupt nicht gesetzt. Vielleicht liegt es daran. Ich werde es testen und Rückmeldung geben…

    3. Hallo Jörg,
      event-min-interval ist bei mir systemweit nicht definiert. Egal wo ich es auf 1 Sek. setzte ist das Verhalten wie oben beschrieben. Die Änderung wird erst nach etwa 3 Minuten registriert. Wo muss es denn Deiner Meinung nach gesetzt werden bzw. wie ist der Standardwert wenn es nicht gesetzt ist? Ich habe es beim Powermeter selbst, beim Messkanal bzw. bei dem Dummy Device für die Watt probiert. Alles ohne Erfolg.
      Grüße
      Michael

    4. Hallo,
      an alle die es Interessiert: Problem erkannt und behoben 🙂

      In den Einstellungen des Homematic Leistungsmessers kann man sehr detailliert definieren, wann ein neuer Messwert übermittelt werden soll. Hier war bei mir als default Wert bei Leistung 100Watt eingestellt. Das bedeutet dass nur bei einer Leistungsänderung > 100 Watt eine Übermittlung stattfindet.
      Da die zum Testen genutzte Schreibtischlampe nur 15Watt hat, wurde natürlich keine Änderung an FHEM übermittelt. Nach Änderung der Schwelle auf 5 Watt funktioniert es perfekt.

      @Jörg: Was für einen Wert hast Du dort eingestellt für die Waschmaschine / den Trockner? Vielleicht solltest Du das oben in Deiner Anleitung noch mit aufnehmen.

      Grüße
      Michael

    5. Hi Mibuc,
      danke für den Tipp! War mir nicht bekannt, dass man hier den Wert anpassen kann. Ich hab jedenfalls nichts angepasst und meine Adapter übertragen auch geringe Leistungsänderungen (wenige Watt) an den FHEM-Server.
      Wie hast du den Wert angepasst? Über die Konfigurationssoftware von Homematic oder über FHEM und einem entsprechenden Befehl?
      Grüße
      Jörg

    6. Ich habe das über die Konfigurationssoftware von Homematic angepasst. Ist sicherlich aber auch über FHEM selbst möglich – als “Noch-Laie” im Bereich FHEM weiß ich allerdings nicht wie.

      Für die Waschmaschine bzw. den Trockner macht es aber Sinn den Wert wieder höher zu setzen, da ansonsten das Logfile unnötig groß wird.

  10. Hallo Jörg,
    ich bin gerade dabei, die Waschmaschinen-Lösung nachzubauen. Vielen Dank erstmal für die super Anleitung!
    Bisher habe ich das Device umbenannt, dem richtigen Raum zugeordnet, und den Channel umbenannt und dem richtigen Raum zugeordnet.
    Jetzt sehe ich im Raum Keller das Device mit on/off und den Channel mit XXX_Power.

    Das Problem ist nur, dass mir der Channel nicht die aktuelle Leistung sondern scheinbar die integrierte (kumulierte) Leistung darstellt. Zumindest steht da jetzt folgendes im Channel:

    boot
    off
    2014-02-27 21:34:04
    current
    0
    2014-02-27 21:34:04
    energy
    2055
    2014-02-27 21:34:04
    frequency
    53.4
    2014-02-27 21:34:04
    power
    0
    2014-02-27 21:34:04
    state
    2055
    2014-02-27 21:31:15
    voltage
    224.5

    und in der Raumübersicht steht dann
    KEL_Waschmaschine_Power 2055

    Das kann doch nicht richtig sein, oder?

    Danke Dir und schönen Abend!

    1. Hi Jager,
      verstehe leider nicht, was du mit “integrierte (kumulierte) Leistung” meinst. Wenn “state” den Wert 2055 aufweist, dann werden gerade 2055 Watt verbraucht und entsprechend bei “KEL_Waschmaschine_Power” angezeigt. Oder denkst du, dass der Wert einfach nicht stimmen kann?
      Grüße
      Jörg

    2. Hallo Jörg,
      ich habe den Kanal angeschaut, die Leistung wird immer größer, je öfter die Maschine läuft. Ich denke, dass es die addierte Leistung (aller Waschvorgänge ist) und nicht die aktuelle. Kann es sein, dass in meinem Code oben der Punkt “Energy” die bisherige Gesamtleistung und der Punkt “Power” (oben mit “0”) die aktuelle Leistung anzeigt.
      Den Kanal bräuchte ich doch dann. Habe ich da was falsch gemacht??

      Gruß!

    3. Hi Jager,
      du liegst richtig. Der “Power”-Channel beinhaltet u.A. die Readings “energy”, was der kummulierten Leistung in Wh enspricht sowie “power”, was die aktuelle Leistungsaufnahme in Watt ausgibt. Hoffe das hilft dir weiter!
      Grüße
      Jörg

  11. Hi!
    Ich habe das Problem, dass meine Waschmaschine auch während des Betriebs auf die niedrigste Stromaufnahme geht. Wie verhindere ich, dass der Status auf standby springt?

    Gruss Heiner

    1. Hi Heiner,
      konzenptionell kann ich mir vorstellen, dass man dein Problem “relativ einfach” durch einen zusätzlichen Watchdog lösen kann, der bei einem sehr niedrigen Verbrauch den Status erst nach einigen Minuten auf standby setzt und damit verhindert, dass ein einziger niedriger Verbrauchswert die Statusänderung sofort auslöst. Hoffe das hilft dir weiter! Falls nicht, melde dich nochmal…
      Grüße
      Jörg

    2. Hi!

      Habe es anders gelöst. (Hoffentlich!)

      Ich speichere den vorangegangenen Wert zwischen und lasse ihn als Bedingung, dass er auch unter 3 Watt gewesen sein muss, mitlaufen. Bis jetzt scheint es zu funktionieren. Triggere darüber dann auch gleich den Verbrauch Anfang und Ende des Waschgangs sowie am Ende die Differenz zur Kostenerrechnung.

      Trotzdem Danke. Hab hier viel gelernt. Etwas funktionierendes nachzumachen ist besser als nur die Anleitung zu lesen. 😉

    3. Hi Heiner,
      ich habe das Problem jetzt auch über einen Watchdog gelöst, der den Verbrauchswert überwacht und erst nach einer vordefinierten Zeit auslöst, sofern der Verbrauchswert die ganze Zeit unter einem angegebenen Schwellwert bleibt. Das Ganze ist im Blogartikel grün hinterlegt.
      Grüße
      Jörg

  12. Hallo Jörg,
    Danke für die ganzen sehr verständlichen Anleitungen. Damit habe ich es auf Anhieb geschafft Fhem auf einen Raspberry pi zu installieren. Deine Anleitung zur Funksteckdose mit Leistungsmessung gefällt mir ebenso. Ich möchte bei mir eine Emailbenachrichtigung absetzen, sobald die Waschmaschine fertig ist.
    Haste Du ne Idee wie man das hinbekommt?

    Viele Grüße
    Frank

    1. Hi Frank,
      freut mich, dass dir die Anleitungen weiterhelfen! Eine Email-Benachrichtigung ist “relativ” einfach zu bewerkstelligen. Dazu habe ich aber noch nichts geschrieben, kann aber auf den Artikel im fhemwiki verweisen -> http://www.fhemwiki.de/wiki/E-Mail_senden.
      Hoffe die Info dort hilft dir weiter!

      Grüße
      Jörg

    2. Hallo Jörg,

      ja die Wiki hatte ich mir schon mal angesehen. Probleme habe ich noch mit der TTL Einstellung. Ich werde wohl doch den Pushoverservice nutzen!

  13. Sehr gute Anleitung und auch als
    Laie gut verständlich und umsetzbar.
    Ein kleines Problem habe und zwar kommt
    in Fhem wenn ich über Pushover deine Waschmaschine ist fertig die Meldung
    “unknown command HR.WaschmaschineBetrieb:standby”
    Der andere notify waschmaschine ist fertig funktioniert
    dagegen

  14. Nachdem ich den Code anders eingerückt habe
    bekomme ich jetzt ein
    Usage: define notify -1 Usage: define notify -1
    beim abspeichern im Webfrontend

    1. Hi Inesa,
      prüfe deine Codezeilen in der FHEM-Config bitte nochmal nach Syntaxfehlern bzw. versuche es nochmal von vorne. Falls es dann nicht klappt, poste doch einfach mal die entsprechenden Zeilen. Dann schau ich mir das mal an…
      Grüße
      Jörg

  15. Habe den code nochmal neu eingerückt muß wohl alles in einer Zeile stehen damit es ohne Fehler abgespeichert werden kann.
    define HRWaschmaschineWaschvorgangAbgeschlossenPushover notify HR.WaschmaschineBetrieb:standby {system(“curl -s -F ‘token=atxxxxxxxxxxxxxxxxx’ -F ‘user=uixxxxxxxxxxxxxxxxxxxxxx’ -F ‘message=Badehaus\nWaschen beeendet’ https://api.pushover.net/1/messages.json”)}
    Der code in klammern ist wohl Perlcode oder warum wird das in klammern gefaßt?

  16. Ahoi,

    danke für die super Anleitung.
    Gestern eingerichtet und die Sache läuft soweit (mit dem HM-ES-PMSw1-PI).

    Allerdings fällt der Verbrauch während des Waschprogramms ebenfalls unter die 5 Watt. Also die Maschine macht mal ne kurze Pause beim Waschen 😉
    Und dummerweise bekomme ich dann ja schon ne Notifcation das der Waschvorgang beendet sei…
    Nach meinem laienhaften Verständnis würde ich irgendwie ne Wartezeit einbauen. Also erst wenn die Maschine mehr als 5 Minuten im Standby ist, ist der Waschvorgang beendet.
    Hättest du da ne Idee, ich stell mich da gerade zu dumm an 😛

    Vielen Dank und mfg
    Manuel

    1. Hi Manuel,
      da dein Problem mit den kurzen Waschpausen anscheinend öfter auftritt, habe ich mir eine Lösung überlegt. Diese ist im Artikel grün hervorgehoben. Wäre nett, wenn du mir Feedback geben könntest, ob das so funktioniert, da ich es selbst noch nicht testen konnte. Viel Erfolg!
      Grüße
      Jörg

    2. Hi Jörg,

      wow das ging ja schnell, vielen Dank.
      Hab die Sache bei mir eingebunden, allerdings wird der finale Test evtl noch was dauern (spätestens Montag).
      Single Haushalt produziert nicht so viel Wäsche 😉

      Mfg
      Manuel

    3. Hi nochmal,

      so nach außerplanmäßiger Wäsche sieht die Sache so aus als würde es funktionieren.
      Ich bastele derzeit noch an der Benachrichtung über gcmsend, aber das ist ja ein anderes Kapitel und nicht so spannend für iPhone User 😉
      Nochmals vielen Dank
      Manuel

  17. Hallo Jörg

    Mit dem neuen grünen Code scheint der Aktor sich bei mir nicht mehr auszuschalten.
    Der letzte watchdog 15 min greift nicht mehr, der Watchdog Autostandby steht auf triggered (müßte doch nach 5min zustand ändern?) vorher hatte alles funktioniert.

    1. Hi Inesa,
      ich glaube ich hab das Problem gefunden und berichtigt. Es hiess bisher fälschlicherweise “setstate HRWaschmaschineHoherVerbrauchAutoOff defined” und muss “setstate HRWaschmaschineAutoStandby defined” lauten. Bitte mal testen und Bescheid geben, ob es klappt. Viel Erfolg!
      Grüße
      Jörg

  18. Hi Jörg

    Bekomme jetzt diese Meldung im Log
    set HR.WaschmaschineHoherVerbrauch on; setstate HRWaschmaschineHoherVerbrauchAutoStandby defined : Please define HRWaschmaschineHoherVerbrauchAutoStandby first

  19. Hallo!
    Super beschrieben das ganze!
    Für meine Frau die haupsächlich wäscht eine tolle Sache , um zu sehen wann die Wäsche fertig ist!
    Kann man die ausschalte Funktion auch ausschalten ,so das der adapter immer die Waschmaschine an lässt?
    Da der HM-ES-PMSw1-PI wohl im abgeschlossenen Schrank wäre und nicht das abschalten wichtig wäre sondern nur die fertig Meldung….
    ?
    Gruß
    Jonny

    1. Hi Jonny,
      danke!
      Das sollte relativ einfach möglich sein.
      Einfach die Codepassage:

      #HR.Waschmaschine 15 Minuten nach dem letzten Waschgang vom Strom trennen
      define HRWaschmaschineAutoOff watchdog HR.WaschmaschineBetrieb:standby 00:15 HR.WaschmaschineBetrieb:on set HR.Waschmaschine off;; set HR.WaschmaschineBetrieb off
      attr HRWaschmaschineAutoOff regexp1WontReactivate 1
      attr HRWaschmaschineAutoOff room Hauswirtschaftsraum

      ändern in:

      #HR.WaschmaschineBetrieb 15 Minuten nach dem letzten Waschgang auf off setzen
      define HRWaschmaschineAutoOff watchdog HR.WaschmaschineBetrieb:standby 00:15 HR.WaschmaschineBetrieb:on set HR.WaschmaschineBetrieb off
      attr HRWaschmaschineAutoOff regexp1WontReactivate 1
      attr HRWaschmaschineAutoOff room Hauswirtschaftsraum

      Dann wird der Zwischenstecker nicht mehr ausgeschaltet.

      Grüße und viel Erfolg!
      Jörg

  20. Hallo,
    vielen Dank für den tollen Blog hier mit den guten Erklärungen. Ich bin ein Newbie und es gibt schon Probleme beim Start. FHEM auf Fritzbox eingerichtet. HMLAN-Adapter wird im FHEM als open gekennzeichnet.
    Ich kann aber eine Funksteckdose (HM-LC-Sw-PI)nicht anlernen:

    set HMLAN1 hmPairForSec 60 und drücken den Pairung Knopf an der Steckdose drücken bis s er blinkt: aber es passiert nichts.

    Mit dem MHLAN und de rHersteller-Software lässt sich die Steckdose problemlos anlernen und ablernen und konfigurien.

    (Die Software ist beim Betrieb des FHEM abgeschaltet und der PC neu gestartet.
    Meine Software-Version hat kein BOX um AES Ein-und Auszuschalten ich habe daher bei FEH-Bertieb vorher in der Softeware des AES-Schlüssel entfernt.)
    Was mache ich falsch ? Kann ich auch einfach die Steckedose per Hand in der Config eintragen und wie?

    1. Hi,
      schau mal, ob in deiner fhem.cfg die Zeile
      define autocreate autocreate
      vorhanden ist. Erst dann werden beim Anlernvorgang die notwendigen Codezeilen automatisch deiner Config hinzugefügt.
      Außerdem kann es nicht schaden, FHEM zu updaten, gerade wenn neue Komponenten nicht erkannt werden. Dazu im FHEM-Webinterface in die FHEM-Kommandozeile “update” ohne Anführungszeichen eingeben und mit der Enter-Taste bestätigen. Wenn man das erste Mal ein Update ausführt, bekommt man die Info angezeigt, dass man eine noch nicht bestätigte Nachricht bestätigen muss. Dazu muss dann in die FHEM-Kommandozeile z.B. “notice view update-20130127-001” ohne Anführungszeichen eingegeben und mit der Enter-Taste bestätigt werden. Evtl. wird eine andere ID beim erstmaligen Update-Vorgang angezeigt, dann muss der Befehl entsprechend der eingeblendeten ID angepasst werden. Nach der Bestätigung dann nochmal “update” ohne Anführungszeichen eingeben und mit Enter bestätigen. Dann wird ein Backup erstellt und das Update angestoßen, was etwas dauern kann.
      Hoffe so kommst du zum Ziel!
      Grüße
      Jörg

    2. Hallo,

      Ich habe die Zeile
      define autocreate autocreate
      in die fhem.cfg eingefügt. Allerdings ohne Erfolg. Auf den Befehl
      set HMLAN1 hmPairForSec 60 und Drücken auf den Pairing-Knopf bis es blinkt passiert gar nichts.
      Nach dem Befehl update kommt der Info-Text. Nach Eingabe von:
      notice view update-20130127-001
      geht es mit dem Update aber nicht weiter, der Text erscheint wieder. Wie komme ich weiter?

    3. Hallo,
      ich habe es jetzt geschafft. Vor dem Update fehlte das backup. “notice view update” war auch nicht richt. aber ich habe die Nachricht schließlich quitiert. Beim Backup kam die Meldung: controls_fhem.txt defekt. Ich habe sie gelöscht und danach mit update force ein Update hingekommen.
      Aber mein Problem bleibt bestehen:
      Nach Einagbe von: “set HMLAN1 hmPairForSec 60” und drücken des pairing Knopfes wird die Steckdose trotzdem nicht erkannt. Auch “set HMLAN1 hmPairSerial JEQ00xxxxx” hilft nicht weiter. Wiekann ich die Steckdose in Fhem einbinden ? Wo ist der Fehler?

    4. Hallo Thomas,
      ich würde dir empfehlen die beschriebenen Schritte nochmal ausführlich durchzugehen, da ich davon ausgehe, dass irgendein Syntaxfehler bei der Umsetzung vorliegt. Hoffe du kommst ans Ziel!

  21. Hallo, Deine Tipps und Erklärungen sind ja wirklich super. Dennoch habe ich eine Frage:
    Ich versuche die Steckdose einfach bei eine Stromverbrauch von unter 50 Watt nach 1 Minute auszuschalten.
    Ich bekomme es einfach nicht hin und verzweifel langsam. Kannst du helfen?
    Beste Grüße

    # Dummy für Stromverbrauch und spätere automatische deaktivieren wenn Stromverbrauch wenige 50W über 15 min ist
    # Diagramm
    define StromverbrauchFernseher dummy

    # StromverbrauchFernseher mit WErten versorgen
    define FernseherWattSet notify StromverbrauchFernseher {my $power =ReadingsVal(“wz_fernsehen_1_Pwr”,”power”,””);; fhem (“set StromverbrauchFernseher $power”)}
    define FernseherWattUsageAnDummy at +*00:00:05 { my $d= ReadingsVal(“wz_fernsehen_1_Pwr”,”power”,0);; fhem(“set StromverbrauchFernseher $d”);;}
    define FernseherWattUsageAnDummyLog FileLog ./log/FernsherWattLog-%Y-%m-%d.log FernseherWattUsageAnDummy|StromverbrauchFernseher:.*
    attr FernseherWattUsageAnDummyLog logtype text
    define SVG_FernseherWattUsageAnDummyLog_1 SVG FernseherWattUsageAnDummyLog:SVG_FernseherWattUsageAnDummyLog_1:CURRENT

    # dummy StromverbrauchFernseherBetrieb ob on oder off
    define StromverbrauchFernseherBetrieb dummy
    attr StromverbrauchFernseherBetrieb event-on-change-reading state

    # Dummy StromverbracuhFernseherBetrieb ein wenn >50 Watt
    define StromverbrauchFernseherBetriebAn notify StromverbrauchFernseher_Power:power.* {fhem (“set StromverbrauchFernseherBetrieb on;; setstate StromverbrauchFernseherAutoOff defined”) if (ReadingsVal(“StromverbrauchFernseher_Power”,”power”,””) >= 50 && Value(“StromverbrauchFernseherBetrieb”) ne “on”)}

    # Hoher Verbrauch definieren
    define StromverbrauchFernseherHoch dummy
    attr StromverbrauchFernseherHoch event-on-change-reading state

    # Hoher Verbrauch einschalten bei >50Watt
    define StromverbrauchFernseherHoch An notify StromverbrauchFernseher_Power:power.* {fhem (“set StromverbrauchFernseherHoch on;; setstate StromverbrauchFernseherAutoStandby defined”) if (ReadingsVal(“StromverbrauchFernseher_Power”,”power”,””) > 50 && Value(“StromverbrauchFernseherBetrieb”) ne “on”)}

    # Hoher Verbrauch ausschalten bei <50Watt
    define StromverbrauchFernseherHoch Aus notify StromverbrauchFernseher_Power:power.* {fhem ("set StromverbrauchFernseherHoch off") if (ReadingsVal("StromverbrauchFernseher_Power","power","") 1min unter 50W bleibt aus
    define StromverbrauchFernseherAutoStandby watchdog StromverbrauchFernseherHoch:off 00:01 StromverbrauchFernseherHoch:on set StromverbrauchFernseherBetrieb standby
    attr StromverbrauchFernseherAutoStandby regexp1WontReactivate 1

    1. Hallo Markus,

      warum setzt du Werte in den Dummy “StromverbrauchFernseher” mit einem NOTIFY, welches auf den selben dummy “StromverbrauchFernseher” anspringt.
      Hier beisst sich mMn bereits die Katze in den Schwanz.

      Kleine Bitte: 3 Minuten Zeit für folgende Vorab-Umfrage nehmen: http://ww2.unipark.de/uc/BWL12/b65c/
      VG
      Christoph

    2. Hallo und besten Dank nochmal für Deine Antwort und Hilfe hier im Protal.
      Wenn ich ehrlich bin, stehe ich hier vor einer Herausforderung. ich habe mir das ganze Equipment gekauft und bin Dank Deines Portals soweit gekommen, dass ich per Handy die Steckdose bedienen kann. Aber jetzt bei der Programmierung habe ich Schweirigkeiten. Gibt es einen Beitrag indem ich die “Basics” erst mal nachlesen kann? Was z.B. notify bewirkt weiß ich nicht einmal.
      Vielen, vielen Dank für Deine Hilfe
      GRüße
      MArkus

    3. Hi Markus,
      schau dir doch einfach mal die verschiedenen Anwendungsfälle an, die hier im Blog beschrieben sind und hangle dich am Programmcode entlang. So solltest du recht schnell die Basics kennnelernen. Alternativ gibt es natürlich auch die FHEM Referenz, die gut dokumentiert die entsprechend Syntax und Semantik inkl. möglichen Befehlen in FHEM aufbereitet. Das kann aber gerade zu Beginn mehr verwirren ale es einem hilft…
      Um noch kurz auf deine notify-Frage einzugehen: Notify bedeutet, dass ein Element bei einem definierten Ereignis eine Aktion auslöst. In nachfolgendem Beispiel wird die frei gewählte Instanz “MeinBefehl” definiert (“define”), bei der das auslösende Element “FL.Tuerkontakt” bei einer sich öffnenden Tür (“open”) die “FL.Deckenlampe” auf ein (“on”) schaltet (“set”).
      define MeinBefehl notify FL.Tuerkontakt:open set FL.Deckenlampe on
      Hoffe das hilft dir etwas weiter.
      Grüße
      Jörg

    4. Hi Markus,
      puh, schwierig zu sagen, wenn man deinen Code nicht Zeichen für Zeichen durchgeht…
      Der im Artikel beschriebene Code funktioniert auf jeden Fall, habe ihn mehrfach im Einsatz. Deshalb würde ich dir empfehlen diesen nochmal 1:1 zu kopieren und an deine Anforderungen hin anzupassen. Am besten einen Texteditor verwenden, der unformatierten Text erlaubt und dann mit Finden und Ersetzen die jeweiligen Dummies etc. entsprechend umbenennen.
      Grüße
      Jörg

  22. Hallo nochmal,
    kannst du mir sagen, warum der einfache Befehl nicht funktioniert:
    Ich möchte – wie du beschrieben hast – einfach einen dummy anlegen StromverbrauchFernseher, der dann den aktuellen Stromverbrauch anzeigt.
    Dummy anlegen funktioniert, aber es wird nicht der Stromverbrauch angezeigt. Vorher habe ich wz_fernsehen_1_SenPwr renamed, der zeigt auch den richtigen Wert an.

    # Dummy für Stromverbrauch
    define StromverbrauchFernseher dummy

    # StromverbrauchFernseher mit Werten versorgen
    define StromverbrauchFernseherSet notify wz_fernsehen_1_SenPwr {my $power =ReadingsVal(“wz_fernsehen_1_SenPwr”,”power”,””);; fhem (“set StromverbrauchFernseher $power”)}

    Grüße
    Markus

    1. Hi Markus,
      sieht eigentlich spontan richtig aus. Am besten alle Bezeichnungen nochmal genau prüfen und nach der Änderung FHEM am besten komplett neustarten.
      Hoffe das hilft!
      Grüße
      Jörg

  23. habe jetzt den code nach und nach eingegeben ,

    wenn ich mit meiner iphone app Fhem Remote jetzt auf mein Fhem wie Immer zugreifen will kommt:

    FHEM SERVER
    Fehler beim Versuch die Antwort des FHEM Servers auszuwerten!DieAntwort ist kein gültiger JsonString.
    Bitte kontrollieren sie Servereinstellungen (und stellen sie sicher das auf dem FHEM server das JsonList Plugin Funktioniert)

    Need help

    ps. in meinen log steht:
    2014.04.17 19:49:35 3: JsonList: device (CUL_HM_HM_ES_PMSw1_Pl_24A17B) without TYPE
    2014.04.17 19:49:36 3: JsonList: device (CUL_HM_HM_ES_PMSw1_Pl_24A17B) without TYPE
    2014.04.17 19:49:44 3: JsonList: device (CUL_HM_HM_ES_PMSw1_Pl_24A17B) without TYPE
    2014.04.17 19:50:07 3: JsonList: device (CUL_HM_HM_ES_PMSw1_Pl_24A17B) without TYPE

    Hilft euch das ?

  24. Hallo,

    wenn ich den Aktor mit meiner Zentrale paire finde ich die Channel nicht?
    Also ich kann den Aktor schalten, habe habe keinerlei Channel…Was kann das sein?

    1. Hallo Christian,
      am besten die entsprechenden Codezeilen des Device in der fhem.cfg löschen, ein Update machen, neinen Neustart machen und dann einen erneuten Anlernvorgang starten. Manchmal zwickt das leider etwas…

  25. Guten Morgen !
    Vieeelen dank für diese tolle Anleitung!

    Habe die app pushover gekauft und den user und token eingetragen jedoch bekomme ich keine fertigmeldung
    wie kann mann testen wo es hakt ?
    kann ich dir hier eine Ausgabe posten ?

    gruß

    1. Hallo Jonny,
      schau doch mal im FHEM-Logfile nach, evtl. findest du dann den Fehler. Deine Ausgabe kannst du natürlich auch posten, wenn du nicht weiterkommst.
      Grüße
      Jörg

  26. Hallo Jörg
    das ist das Logfile aus der Zeit:
    Mir sagt es nix:
    014.04.21 17:16:27 3: Watchdog HRWaschmaschineAutoStandby triggered
    2014.04.21 17:31:27 3: Watchdog HRWaschmaschineAutoOff triggered
    2014.04.21 19:42:47 3: Watchdog HRWaschmaschineAutoStandby triggered
    2014.04.21 19:42:47 3: HRWaschmaschineWaschvorgangAbgeschlossenPushover return value: -1
    2014.04.21 19:57:47 3: Watchdog HRWaschmaschineAutoOff triggered

  27. Guten Morgen,
    Ohne dich bin ich aufgeschmissen, wüsste nicht wo ich anfangen soll den Fehler zu finden…
    Sagt dir das Log oben nichts ?

    Ich weiss ja nicht einmal wo und wie ich in fhem die Zeile finde wo von pushover benutzername & Kennwort sind, um das zu kontrollieren .

    Wäre Toll wenn du helfen könntest
    Jonny

  28. Ich habe in fhem diese Zeile gefunden, ist die korrekt ?
    User und token sehen richtig aus

    HR.WaschmaschineBetrieb:standby {system (“curl -s -F ‘token= xxxxxxxxNn5EhYJxxxxxKF’ -F ‘user=xxxxxxxxxxxkxa7sG8Yxxx24vkN’ -F ‘message=Waschküche\nWaschvorgang abgeschlossen’ https://api.pushover.net/1/messages.json”)}

    1. Das sieht richtig aus. Wechselt denn der Dummy HR.WaschmaschineBetrieb auch in den Status standby? Du kannst den Status z.B. mal über die FHEM-Kommandozeile erzwingen durch “set HR.WaschmaschineBetrieb standby” (ohne Anführungszeichen)

  29. Guten morgen !
    Muss nochmal nerven ,

    Ich bekomme es nicht hin!

    Vom PC bei pushover auch eingeloggt und test push Meldungen versendet, das klappt!

    Wie kannst du sehen wo ich evtl einen Fehler gemacht habe ?
    Wie kann man das nachvollziehen ?

    Gruß

    Jonny

    1. Puh, gute Frage.
      Generell würde ich empfehlen bei Fehlern logisch der Reihe nach die einzelnen Befehle durchzugehen und einzeln zu testen. So kommt man eigentlich immer zum Ziel, auch wenn es manchmal länger dauert.

  30. Guten Morgen !

    Tja

    wen ich
    set HR.WaschmaschineBetrieb standby
    mache passiert auch nichts! Es kommt keine pushover Notifikation

    Ich hatte dich ja gefragt wie man das einstellt das sich der stromstecker nicht ausschaltet da hast du mir diese Zeile gegeben, kann das damit zusammenhängen ?:

    Das sollte relativ einfach möglich sein.
    Einfach die Codepassage:
    #HR.Waschmaschine 15 Minuten nach dem letzten Waschgang vom Strom trennen
    define HRWaschmaschineAutoOff watchdog HR.WaschmaschineBetrieb:standby 00:15 HR.WaschmaschineBetrieb:on set HR.Waschmaschine off;; set HR.WaschmaschineBetrieb off
    attr HRWaschmaschineAutoOff regexp1WontReactivate 1
    attr HRWaschmaschineAutoOff room Hauswirtschaftsraum
    ändern in:
    #HR.WaschmaschineBetrieb 15 Minuten nach dem letzten Waschgang auf off setzen
    define HRWaschmaschineAutoOff watchdog HR.WaschmaschineBetrieb:standby 00:15 HR.WaschmaschineBetrieb:on set HR.WaschmaschineBetrieb off
    attr HRWaschmaschineAutoOff regexp1WontReactivate 1
    attr HRWaschmaschineAutoOff room Hauswirtschaftsraum
    Dann wird der Zwischenstecker nicht mehr ausgeschaltet.

    Gibt es nicht eine Zeile wo du siehst ob ich alles richtig eingegeben habe ?
    Wenn ich diese ganzen befehle noch mal eingebe sagt er das sie schon da sind!

    Gruß

    Jonny

  31. Ausersehen eben ein doppelpost…. sorry!

    Aber ich habe was gefunden:
    2014.05.01 08:13:40 3: Watchdog HRWaschmaschineAutoStandby triggered
    sh: curl: not found
    2014.05.01 08:13:40 3: HRWaschmaschineWaschvorgangAbgeschlossenPushover return value: -1
    2014.05.01 08:28:40 3: Watchdog HRWaschmaschineAutoOff triggered
    2014.05.01 10:26:01 3: Watchdog HRWaschmaschineAutoStandby triggered
    sh: curl: not found
    2014.05.01 10:26:01 3: HRWaschmaschineWaschvorgangAbgeschlossenPushover return value: -1
    2014.05.01 11:33:41 3: Watchdog HRWaschmaschineAutoStandby triggered
    sh: curl: not found
    2014.05.01 11:33:41 3: HRWaschmaschineWaschvorgangAbgeschlossenPushover return value: -1
    sh: curl: not found
    2014.05.01 11:41:57 3: HRWaschmaschineWaschvorgangAbgeschlossenPushover return value: -1

    heisst das url not found….. falsche webadresse pushover ?

    1. Ganz einfach, curl ist nicht installiert (sh: curl: not found), was für das Absetzen der Pushover-Benachrichtigungen benötigt wird.
      Wenn du dein FHEM auf dem RPI hast, kannst du dich per Terminal einloggen und folgenden Befehl ausführen, um curl zu installieren:
      sudo apt-get update && sudo apt-get install curl
      Dann klappts auch mit den Pushover-Notifications 🙂

  32. Hallo Jörg!

    Ahhhh das wusste ich nicht , wäre in deiner Anleitung interessant für die copy&paste Leute wie mich :-))

    Ich habe fhem auf einer fritzbox was muss ich da machen ?Gruß&dank
    Jonny

    1. Achso, auf dem RPI wäre curl auch schon standardmäßig vorinstalliert gewesen. Auf der Fritzbox ist das schwieriger. Da lassen sich nachträglich keine Pakete installieren. Hier muss man ein selbst kompilierten Freetz-Image installieren, bei dem curl als Paket bereits implementiert ist (echt stressig, wenn man sich nicht damit auskennt). In deinem Fall würde ich die mittlerweile verfügbare Pushover-Erweiterung für FHEM nutzen, die gar kein curl benötigt und damit ohne jede Anpassung auch auf der Fritzbox in Kombination mit FHEM funktioniert.
      So wird Pushover einmal definiert:
      define Pushover_Jay Pushover am4uA61Gx2Jw9GA24rePRyMJw8B3hz u4zDygNRGFbQUSmcxXj6fGsWJl9d93
      Dabei ganz wichtig: Erst Token (am4…) und danach User (u4zD…) schreiben.
      Und dann sieht der oben im Blogartikel beschriebene Befehl für das Versenden bspw. so aus:
      #Pushover-Notification bei abgeschlossenem Waschvorgang verschicken
      define HRWaschmaschineWaschvorgangAbgeschlossenPushover notify HR.WaschmaschineBetrieb:standby {fhem (“set Pushover_Jay msg ‘Wuerzburgbude’ ‘Hauswirtschaftsraum\nWaschvorgang abgeschlossen’ ” 0 ””)}

  33. aha, ist es mit einen RPI denn potenter oder besser als auf einer fb7390 ?

    Habe nun deine Zeilen eingegeben, bei der 2ten kommt:

    HRWaschmaschineWaschvorgangAbgeschlossenPushover already defined, delete it first

    Wie mache ich das ?

    sry

    jonny

    1. Ein RPI hat insgesamt schon etwas mehr Power als die Fritzbox, ja. Werde die kommenden Tage aber mal einen Intel NUC mit FHEM testen. Die Celeron NUCs sind auch recht günstig, haben einen ähnlich geringen Stromverbrauch wie ein RPI und haben nochmal wesentlich mehr Power. Das macht gerade dann Sinn, wenn man bereits Unmengen an Geräten mit FHEM verwaltet. Bei mir ist das System nämlich mittlerweile auch mit einem RPI recht träge geworden.
      HRWaschmaschineWaschvorgangAbgeschlossenPushover hast du eben schon einmal definiert. Einfach in der fhem.cfg nach dem alten Eintrag suchen und die betreffende Zeile rauslöschen. 🙂

  34. So .cfg editiert hier die nächste Meldung!:
    wenn ich
    set HR.WaschmaschineBetrieb standby
    mache passiert auch nichts! Es kommt keine pushover Notifikation
    in den logs:

    2014.05.01 18:47:56 3: Device HR.Waschmaschine added to ActionDetector with 000:10 time
    2014.05.01 18:50:03 3: HRWaschmaschineWaschvorgangAbgeschlossenPushover return value: Unrecognized character \xE2; marked by <– HERE after {fhem (<– HERE near column 8 at (eval 31) line 1.

  35. So habe im Fhem forum gefragt und die Lösung bekommen

    da waren falsche Anführungszeichen am ende, wenn ich das hier copy&Paste wird’s wieder falsch, komisch

    da musste hochkommas hin.

    Jetzt läuft es!

    gruss

    JOnny

  36. Hallo,

    erstmal muß ich Sagen das eure Artikel der Hammer sind, es Funktioniert alles sehr gut. Habe noch ein Problem wegen der Abschaltung nach den 15 min. am Ende. Die Pushmitteilung mit Waschmaschine wird ausgeschaltet kommt noch aber dann wird sie aber nicht ausgeschaltet. Es kommt immer im Logfile:

    “Unknown argument off, choose one of clear:readings,register,rssi,msgEvents getConfig getRegRaw pair raw regBulk regSet reset unpair”

    Meine fhem.cfg von dem Stecker:

    #Dummy WK.WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
    define WK.WaschmaschineWatt dummy
    attr WK.WaschmaschineWatt room Waschkeller

    #Dummy WK.WaschmaschineWatt mit Werten versorgen
    define WKWaschmaschineWattSet notify WK.Waschmaschine_Power {my $power =ReadingsVal(“WK.Waschmaschine_Power”,”power”,””);; fhem (“set WK.WaschmaschineWatt $power”)}

    #Dummy WK.WaschmaschineBetrieb definieren
    define WK.WaschmaschineBetrieb dummy
    attr WK.WaschmaschineBetrieb event-on-change-reading state
    attr WK.WaschmaschineBetrieb room Waschkeller

    #Dummy WK.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
    define WKWaschmaschineBetriebAn notify WK.Waschmaschine_Power:power.* {fhem (“set WK.WaschmaschineBetrieb on;; setstate WKWaschmaschineAutoOff defined”) if (ReadingsVal(“WK.Waschmaschine_Power”,”power”,””) >= 30 && Value(“WK.WaschmaschineBetrieb”) ne “on”)}

    #Dummy WK.WaschmaschineHoherVerbrauch definieren
    define WK.WaschmaschineHoherVerbrauch dummy
    attr WK.WaschmaschineHoherVerbrauch event-on-change-reading state
    attr WK.WaschmaschineHoherVerbrauch room Waschkeller

    #Dummy WK.WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 5 Watt bei laufendem Betrieb
    define WKWaschmaschineHoherVerbrauchAn notify WK.Waschmaschine_Power:power.* {fhem (“set WK.WaschmaschineHoherVerbrauch on;; setstate WKWaschmaschineAutoStandby defined”) if (ReadingsVal(“WK.Waschmaschine_Power”,”power”,””) > 5 && Value(“WK.WaschmaschineBetrieb”) eq “on”)}

    #Dummy WK.WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 5 Watt bei laufendem Betrieb
    define WKWaschmaschineHoherVerbrauchAus notify WK.Waschmaschine_Power:power.* {fhem (“set WK.WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“WK.Waschmaschine_Power”,”power”,””) <= 5 && Value("WK.WaschmaschineBetrieb") eq "on")}

    #Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter obigem Schwellwert (5 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
    define WKWaschmaschineAutoStandby watchdog WK.WaschmaschineHoherVerbrauch:off 00:05 WK.WaschmaschineHoherVerbrauch:on set WK.WaschmaschineBetrieb standby
    attr WKWaschmaschineAutoStandby regexp1WontReactivate 1
    attr WKWaschmaschineAutoStandby room Waschkeller

    #Pushover-Notification bei abgeschlossenem Waschvorgang verschicken
    define WKWaschmaschineWaschvorgangAbgeschlossenPushover notify WK.WaschmaschineBetrieb:standby {system ("curl -s -F 'token=aHkVK3pXDebZBX9BVKPtzcRhpsWfc7' -F 'user=uVDNEX3kqH3PFoaNe7wsVMeJUy3zfT' -F 'message=Waschkeller\nWaschvorgang abgeschlossen' https://api.pushover.net/1/messages.json")}

    #HR.Waschmaschine 15 Minuten nach dem letzten Waschgang vom Strom trennen
    define WKWaschmaschineAutoOff watchdog WK.WaschmaschineBetrieb:standby 00:15 WK.WaschmaschineBetrieb:on set WK.Waschmaschine off;; set WK.WaschmaschineBetrieb off
    attr WKWaschmaschineAutoOff regexp1WontReactivate 1
    attr WKWaschmaschineAutoOff room Waschkeller

    #Pushover-Notification sobald die Waschmaschine ausgeschaltet wird
    define WKWaschmaschineWirdAusgeschaltetPushover notify WK.WaschmaschineBetrieb:off {system("curl -s -F 'token=aHkVK3pXDebZBX9BVKPtzcRhpsWfc7' -F 'user=uVDNEX3kqH3PFoaNe7wsVMeJUy3zfT' -F 'message=Waschkeller\nWaschmaschine wird ausgeschaltet' https://api.pushover.net/1/messages.json")}

    Könnt ihr mir da bitte Helfen.

    Danke

    1. Hi Michael,
      sieht erstmal nicht falsch aus…
      Was passiert denn bspw., wenn du in die FHEM-Konsolenzeile “set WK.Waschmaschine off” ohne Anführungszeichen eingibst und dann Enter drückst?
      Grüße
      Jörg

    2. Hallo Jörg,
      da kommt wie oben beschrieben im Logfile das “Unknown argument off, choose one of clear:readings,register,rssi,msgEvents getConfig getRegRaw pair raw regBulk regSet reset unpair”.

    3. Hmmm, schon mal mit einem FHEM-Update versucht? Evtl. ist die eingesetzte Version bzw. die darin enthaltenen Pakete noch nicht aktuell genug…

    4. Doch alles Aktuell. Kann es daran liegen das es set WK.Waschmaschine_Betrieb off heißen muß und nicht set WK.WaschmaschineBetrieb off?

  37. Hi,

    super Blog hast du da. Deine Anleitungen sind echt spitze.

    Ich habe eben probiert die “HM-ES-PMSw1-Pl” in Fhem anzulernen leider scheint sie nicht richtig zu erkannt zu werden. (im HM Konfi ist sie normal drin)
    fhem.cfg schaut dann so aus:

    define CUL_HM_ID_00AC_2B2BB4 CUL_HM 2B2BB4
    attr CUL_HM_ID_00AC_2B2BB4 .devInfo 3F0100
    attr CUL_HM_ID_00AC_2B2BB4 .stc 51
    attr CUL_HM_ID_00AC_2B2BB4 firmware 1.6
    attr CUL_HM_ID_00AC_2B2BB4 model unknown
    attr CUL_HM_ID_00AC_2B2BB4 room CUL_HM
    attr CUL_HM_ID_00AC_2B2BB4 serialNr LEQ0472587
    attr CUL_HM_ID_00AC_2B2BB4 subType
    define FileLog_CUL_HM_ID_00AC_2B2BB4 FileLog ./log/CUL_HM_ID_00AC_2B2BB4-%Y.log CUL_HM_ID_00AC_2B2BB4
    attr FileLog_CUL_HM_ID_00AC_2B2BB4 logtype text
    attr FileLog_CUL_HM_ID_00AC_2B2BB4 room CUL_HM

    ich habe sie schon mehrfach einem Werksreset unterzogen leider bleibt das Resultat immer das Selbe.. Evtl hast du einen Rat was ich falsch mache ..

    Grüße

  38. Hallo,

    ich habe erst kürzlich fhem installiert.
    Ich versuche die Anleitung mit einer DECT 200 zu realisieren. Leider scheitere ich gerade noch an den Basics. Die DECT 200 wird ja nicht per CUL eingebunden, daher kennt ich gerade den Channel “Power” nicht:

    #Hier wird der Channel umbenannt, welcher die Leistung in Watt verwaltet.
    rename CUL_HM_HM_ES_PMSw1_Pl_24A726_Pwr HR.Waschmaschine_Power
    attr HR.Waschmaschine_Power room Hauswirtschaftsraum

    Wie muss dieser Schritt bei einer DECT 200 realisiert werden?
    Das Skript greift ja im weiteren Verlauf immer wieder auf HR.Waschmaschine_Power zu.

    MfG und Danke
    Daniel

  39. Hallo,
    ich habe mich gestern noch einmal an die Umsetzung mit der AVM DECT 200 gemacht. Mit dem nachfolgenden Code, habe ich es zum Laufen gebracht.
    Vielleicht kann ihn jemand ja gebrauchen:

    copy FBDECT_16 HR.Waschmaschine
    attr HR.Waschmaschine room Hauswirtschaftsraum

    #Dummy HR.WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
    define HR.WaschmaschineWatt dummy
    attr HR.WaschmaschineWatt room Hauswirtschaftsraum

    define HRWaschmaschineWattSet notify HR.Waschmaschine {my $power_w=ReadingsVal(“HR.Waschmaschine”,”power”,””);; my $power=substr($power_w, 0,length($power_w)-2);; fhem (“set HR.WaschmaschineWatt $power”)}

    #Dummy HR.WaschmaschineBetrieb definieren
    define HR.WaschmaschineBetrieb dummy
    attr HR.WaschmaschineBetrieb event-on-change-reading state
    attr HR.WaschmaschineBetrieb room Hauswirtschaftsraum

    #Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
    define HRWaschmaschineBetriebAn notify HR.Waschmaschine:power.* {fhem (“set HR.WaschmaschineBetrieb on;; setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}

    #Dummy HR.WaschmaschineHoherVerbrauch definieren
    define HR.WaschmaschineHoherVerbrauch dummy
    attr HR.WaschmaschineHoherVerbrauch event-on-change-reading state
    attr HR.WaschmaschineHoherVerbrauch room Hauswirtschaftsraum

    #Dummy HR.WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 5 Watt bei laufendem Betrieb
    define HRWaschmaschineHoherVerbrauchAn notify HR.Waschmaschine:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch on;; setstate HRWaschmaschineAutoStandby defined”) if (ReadingsVal(“HR.Waschmaschine”,”power”,””) > 5 && Value(“HR.WaschmaschineBetrieb”) eq “on”)}

    #Dummy HR.WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 5 Watt bei laufendem Betrieb
    define HRWaschmaschineHoherVerbrauchAus notify HR.Waschmaschine:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“HR.Waschmaschine”,”power”,””) <= 5 && Value("HR.WaschmaschineBetrieb") eq "on")}

    #Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter obigem Schwellwert (5 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
    define HRWaschmaschineAutoStandby watchdog HR.WaschmaschineHoherVerbrauch:off 00:05:00 HR.WaschmaschineHoherVerbrauch:on set HR.WaschmaschineBetrieb standby
    attr HRWaschmaschineAutoStandby regexp1WontReactivate 1
    attr HRWaschmaschineAutoStandby room Hauswirtschaftsraum

    define Pushover1 Pushover Token User
    # Pushover-Notification bei abgeschlossenem Waschvorgang verschicken
    define TrocknerWaschvorgangAbgeschlossenPushover notify HR.WaschmaschineBetrieb:standby {fhem ("set Pushover1 msg 'Waschmachine fertig!' 'Bitte leeren.'")}

    1. Super, dass es mittlerweile geklappt hat! Viel Spaß mit der Lösung, ich möchte sie jedenfalls nicht mehr missen… 🙂

  40. Guten Morgen!
    Da Fhem auf der fritzbox nicht mehr unterstützt wird, habe ich mir einen cubietruck geholt,
    Kann mir jemand ein Image dafür empfehlen wo ich dann fhem installiere?

    Sollte doch alles mit dem cubietruck laufen oder ?
    Kann ich mein fhem auf der fritzbox auf dem cubietruck irgendwie übernehmen?

    Gruß.
    Jonny

    1. Ich selbst hab mit dem Cubietruck noch keine Erfahrungen machen können. Unter http://docs.cubieboard.org/tutorials/a10-cubieboard_lubuntu_server_releases findest du aber schon mal Ubuntu-Images. Damit sollte schon mal alles funktionieren, was du machen willst. Die Portierung von FHEM sollte auch funktionieren. Du musst über den FHEM-Konsolenbefehl “backup” deine bisherigen Einstellungen sichern, die Backupdatei dann auf den Cubietruck schieben und ins das passende Verzeichnis entpacken. Bzw. Backup von FHEM gibt es unter http://www.fhemwiki.de/wiki/Backup noch weitere Infos. Hoffe damit kommst du weiter!
      Grüße
      Jörg

    2. Ah ich seh gerade, dass Christoph auch bereits etwas genauer beschrieben hat, wie es mit dem Backup klappt -> https://meintechblog.de/2012/10/fhem-mit-fritzbox-7390-und-cul-stick-professionelle-hausautomation/#comment-3554

  41. Mittlerweile gibt es das Hilfsmodul DOIF was eine menge an Code erspart.
    Hier mein Zweizeiler:
    define DI_washer DOIF ([Steckdose_Pwr:power]>5) (set SteckdoseBetrieb on) DOELSEIF ([Steckdose_Pwr:power]<2) (set SteckdoseBetrieb standby)
    attr DI_washer wait 60:300

    Hier muss mindestens 1 Minute lang mehr als 5 Watt anliegen damit SteckdoseBetrieb angeht und mindestend 5 Minuten weniger als 2 Watt anliegen damit er wieder ausgeht.

    1. Könntest Du mal den ganzen Code posten und sagen welche Notifier und Watchdogs dadurch gelöscht werden? Das wäre sehr nett. Danke.

    2. das müsste alles sein, zumindest funktioniert es bei mir 😉

      ****
      #Pushover per DOIF – Waschen

      define WaMaBetrieb dummy
      attr WaMaBetrieb room Keller

      define WaMa_di DOIF ([HM_MessFunk_Pwr:power]>5) (set WaMaBetrieb on) DOELSEIF ([HM_MessFunk_Pwr:power]<4) (set WaMaBetrieb standby, {fhem ("set Pushover_name msg 'zu Hause' 'Keller\nWaschmaschine ist fertig' '' 0 ''")})

      attr WaMa_di room Keller
      attr WaMa_di wait 60:900

      ****

    3. PS:

      ja, das ist im Grunde der gesamte Code, die HM-Steckdose muss natürlich noch eingerichtet werden und FHEM läuft bei mir auf einer Fritzbox, deswegen ist die Pushover-Anweisung etwas kürzer als oben gezeigt …

  42. Hallo,
    auch ich habe nach dieser Anleitung und etwas basteln, das gehört natürlich dazu,
    den WAF bei mir zuhause drastisch erhöht.
    Da meine Frau nun mal nicht immer in einem Raum ist, um die Sprachausgabe eines Funkgongs zu höhren, der ja auch ein paar Euronen kostet, lasse ich mir auf meinem Android mit der zusätzlichen Applikation “Tasker” bei eintreffen der entsprechenden Pushover-Nachricht den Text der Meldung laut vorlesen. Sogar im gesperrten Zustand des Handys, also wenn es gerade nicht benutzt wird.

    Sehr praktisch!

  43. Hallo, erst einmal HUT AB.
    Super bis ins Detail erklärte Anleitungen. Vielen DANK dafür….
    Ich habe oben gennantes Script in FHEM programmiert.
    Allerdings ändert sich der State nicht von on auf standby, oder anders herum…
    Momentan stehe ich total auf dem Schlauch…
    Hoffe mir kann einer helfen…

    #############WASCHMASCHINE##########################
    define Steckdose CUL_HM 251D17
    attr Steckdose IODev HMLAN1
    attr Steckdose actCycle 000:10
    attr Steckdose actStatus alive
    attr Steckdose autoReadReg 4_reqStatus
    attr Steckdose expert 2_full
    attr Steckdose firmware 1.4
    attr Steckdose model HM-ES-PMSw1-Pl
    attr Steckdose room CUL_HM
    attr Steckdose serialNr KEQ0971903
    attr Steckdose subType powerMeter
    attr Steckdose webCmd getConfig:clear msgEvents
    define FileLog_Steckdose FileLog ./log/Steckdose-%Y.log Steckdose
    attr FileLog_Steckdose logtype text
    attr FileLog_Steckdose room CUL_HM
    define HR.Waschmaschine CUL_HM 251D1701
    attr HR.Waschmaschine fm_type offbutton,onbutton,socket
    attr HR.Waschmaschine model HM-ES-PMSw1-Pl
    attr HR.Waschmaschine peerIDs 00000000,
    attr HR.Waschmaschine room Erdgeschoss
    define CUL_HM_HM_ES_PMSw1_Pl_251D17_Power CUL_HM 251D1702
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_Power model HM-ES-PMSw1-Pl
    define CUL_HM_HM_ES_PMSw1_Pl_251D17_SenPwr CUL_HM 251D1703
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_SenPwr model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_SenPwr peerIDs 00000000,
    define CUL_HM_HM_ES_PMSw1_Pl_251D17_SenI CUL_HM 251D1704
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_SenI model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_SenI peerIDs 00000000,
    define CUL_HM_HM_ES_PMSw1_Pl_251D17_SenU CUL_HM 251D1705
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_SenU model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_SenU peerIDs 00000000,
    define CUL_HM_HM_ES_PMSw1_Pl_251D17_SenF CUL_HM 251D1706
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_SenF model HM-ES-PMSw1-Pl
    attr CUL_HM_HM_ES_PMSw1_Pl_251D17_SenF peerIDs 00000000,

    #Dummy HR.WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren#

    define HR.WaschmaschineWatt dummy
    attr HR.WaschmaschineWatt room Erdgeschoss

    #Dummy HR.WaschmaschineWatt mit Werten versorgen#

    define HRWaschmaschineWattSet notify HR.Waschmaschine_Power {my $power =ReadingsVal(“HR.Waschmaschine_Power”,”power”,””);; fhem (“set HR.WaschmaschineWatt $power”)}

    #Dummy HR.WaschmaschineBetrieb definieren#

    define HR.WaschmaschineBetrieb dummy
    attr HR.WaschmaschineBetrieb event-on-change-reading state
    attr HR.WaschmaschineBetrieb room Erdgeschoss

    #Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 15 Watt#

    define HRWaschmaschineBetriebAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb on;; setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) >= 15 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}

    #Dummy HR.WaschmaschineBetrieb ausschalten bei Verbrauch kleiner gleich 5 Watt#

    define HRWaschmaschineBetriebAus notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb standby”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) <= 5 && Value("HR.WaschmaschineBetrieb") eq "on")}

    Gruß Thomas

    1. Hi Thomas,
      ganz einfach, du hast deinen HM-Aktor “CUL_HM_HM_ES_PMSw1_Pl_251D17” einfach noch nicht umbenannt…
      Gib mal in die FHEM-Konsole Folgendes ein, um die Umbenennung durchzuführen:
      rename CUL_HM_HM_ES_PMSw1_Pl_251D17_Power HR.Waschmaschine_Power
      Dann sollte es eigentlich funktionieren. Zum Schluss das Anklicken von “Save config” nicht vergessen!

    2. PERFEKT.
      Da ist wieder das Beispiel mit dem Wald und den vielen Bäumen 🙂

      Vielen lieben Dank…
      Nochmals: HUT AB für die ganzen Beispiele hier… TOP

  44. Hallo zusammen,

    ich habe das Script mit dem AVM DECT 200 eingebunden. Es funktioniert, jedoch erhalte ich im Log immer :

    2014.10.31 12:46:25 1: PERL WARNING: Argument “726.34 W” isn’t numeric in numeric le (<=) at (eval 937) line 1.
    2014.10.31 12:46:25 3: eval: {fhem ("set HR.WaschmaschineHoherVerbrauch off") if (ReadingsVal("HR.Waschmaschine","power","") <= 50 && Value("HR.WaschmaschineBetrieb") eq "on")}

    Bin leider totaler Anfänger in FHEM, sehe zwar das er wohl ein nummerischen Wert erwartet, aber ein String kommt.

    Kann mir jemand helfen?

    Vielen Dank!

    Gruß Sebastian

  45. Hi
    ich wollte mich für diesen Beitrag recht herzlich bedanken. Habe es vorgestern in FHEM eingefügt und es funktioniert perfekt.

    Vielen Dank
    Stefan

  46. Hi,
    vielen Dank für diese “Anleitung”.
    Ich würde die Funktion noch weiter ausbauen – bzw. ich würde gern die Werte loggen, die berechnet wurden. Schön wären auch monatliche Werte über den Gesamtverbrauch. Aber leider ist mir das noch nicht gelungen.

    Meine Angaben unter DEF des Logs sehen so aus:
    ./log/WaschmaschineBetrieb-%Y.log WaschmaschineBetrieb:.*|WaschmaschineBetrieb:EUR_letzte_Waschung:.*|WaschmaschineBetrieb:kWh_letzte_Waschung:.*|WaschmaschineBetrieb:standby.*|WaschmaschineBetrieb:state:.*

    Im Log stehen nur die ON-OFF-Static Angaben.

    1. Puh, dazu bräuchte man zumindest Teile des restlichen Codes, um hier weiterzuhelfen. Aggregierte Werte, um bspw. monatliche Kosten zu ermitteln, habe ich bereits erfolgreich getestet. Hier muss ich aber noch etwas am Code feilen, ein entsprechender Post folgt in absehbarer Zeit.

  47. Hallo Zusammen,

    ich brauche mal bitte eure Hilfe. Bin gerade dabei den beschrieben Ablauf nach zu stellen. Aber der Dummy „HR.WaschmaschineHoherVerbrauch“ liefet nur “???“ zurück.
    der Watchdog „HRWaschmaschineAutoStandby“ hat den Status „defined“.
    Das FHEM-Log meldet :
    2014.11.25 22:36:31 3: HRWaschmaschineHoherVerbrauchAn return value: Can’t find string terminator ‘”‘ anywhere before EOF at (eval 339) line 1.

    2014.11.25 22:36:31 3: HRWaschmaschineHoherVerbrauchAus return value: Can’t find string terminator ‘”‘ anywhere before EOF at (eval 340) line 1.

    der Code ist:
    #Dummy HR.WaschmaschineHoherVerbrauch definieren
    define HR.WaschmaschineHoherVerbrauch dummy
    attr HR.WaschmaschineHoherVerbrauch event-on-change-reading state
    attr HR.WaschmaschineHoherVerbrauch room Waschkeller

    define HRWaschmaschineHoherVerbrauchAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch on;; setstate HRWaschmaschineAutoStandby defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) > 5 && Value(“HR.WaschmaschineBetrieb”) eq “on“)}

    define HRWaschmaschineHoherVerbrauchAus notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) <= 5 && Value("HR.WaschmaschineBetrieb") eq "on“)}

    define HRWaschmaschineAutoStandby watchdog HR.WaschmaschineHoherVerbrauch:off 00:05 HR.WaschmaschineHoherVerbrauch:on set HR.WaschmaschineBetrieb standby
    attr HRWaschmaschineAutoStandby regexp1WontReactivate 1
    attr HRWaschmaschineAutoStandby room Waschkeller

    Was übersehe ich hier?

    Danke

    1. Altbekanntes Problem… Schau dir mal die Anführungszeichen bei “on“ an. Jeweils das letzte Anführungszeichen ist falsch formatiert, so dass es FHEM nicht korrekt interpretieren kann. Einfach ändern in “on” und schon sollte es klappen.
      Grüße und viel Erfolg
      Jörg

  48. Hi Jörg,

    netter blog (-;

    bräuchte mal hilfe

    meine fhem.cfg
    -code-
    define TrocknerWatt dummy
    attr TrocknerWatt room Waschkeller

    #Dummy TrocknerWatt mit Werten versorgen
    define TrocknerWattSet notify Trockner_Pwr {my $power =ReadingsVal(“Trockner_Pwr”,”power”,””);; fhem (“set TrocknerWatt $power”)}

    #Dummy TrocknerBetrieb definieren
    define TrocknerBetrieb dummy
    attr TrocknerBetrieb event-on-change-reading state
    attr TrocknerBetrieb room Waschkeller

    #Dummy TrocknerBetrieb einschalten bei Verbrauch größer 30 Watt
    define TrocknerBetriebAn notify Trockner_Pwr:power.* {fhem (“set TrocknerBetrieb on;; setstate TrocknerAutoOff defined”) if (ReadingsVal(“Trockner_Pwr”,”power”,””) >= 30 && Value(“TrocknerBetrieb”) ne “on”)}

    #Dummy TrocknerBetrieb ausschalten bei Verbrauch kleiner gleich 5 Watt
    define TrocknerBetriebAus notify Trockner_Pwr:power.* {fhem (“set TrocknerBetrieb standby”) if (ReadingsVal(“Trockner_Pwr”,”power”,””) <= 5 && Value("TrocknerBetrieb") eq "on")}

    -code-

    bekomme im log folgenden Fehler:
    2014.12.09 15:57:11 3: set TrocknerBetrieb on; setstate TrocknerAutoOff defined : Please define TrocknerAutoOff first
    2014.12.09 15:57:11 3: TrocknerBetriebAn return value: Please define TrocknerAutoOff first
    2014.12.09 15:57:20 3: Trockner_Pushover return value: -1
    2014.12.09 15:57:55 3: set TrocknerBetrieb on; setstate TrocknerAutoOff defined : Please define TrocknerAutoOff first
    2014.12.09 15:57:55 3: TrocknerBetriebAn return value: Please define TrocknerAutoOff first
    2014.12.09 16:06:42 3: Trockner_Pushover return value: -1
    2014.12.09 16:07:16 3: set TrocknerBetrieb on; setstate TrocknerAutoOff defined : Please define TrocknerAutoOff first
    2014.12.09 16:07:16 3: TrocknerBetriebAn return value: Please define TrocknerAutoOff first
    2014.12.09 16:08:01 3: Trockner_Pushover return value: -1
    2014.12.09 16:09:33 3: set TrocknerBetrieb on; setstate TrocknerAutoOff defined : Please define TrocknerAutoOff first
    2014.12.09 16:09:33 3: TrocknerBetriebAn return value: Please define TrocknerAutoOff first
    2014.12.09 16:10:00 3: Trockner_Pushover return value: -1

    gruß m

    1. Hi,
      zu deiner Fehlermeldung:
      “Please define TrocknerAutoOff first” -> In deinem Code kann ich nicht erkennen, dass ein “define TrocknerAutoOff …” vorhanden ist. Deshalb auch die Fehlermeldung.

  49. bin etwas weiter
    hab aber noch einen Fehler

    -Log-
    2014.12.10 08:15:25 3: Trockner_Pushover return value: -1
    2014.12.10 08:30:24 3: Watchdog TrocknerAutoOff triggered
    2014.12.10 08:30:24 3: Unknown argument off, choose one of clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw raw regBulk regSet reset unpair

    -Log-

    gruß m

    1. Hi,
      worauf sich “2014.12.10 08:30:24 3: Unknown argument off, choose one of clear:readings,trigger,register,rssi,msgEvents,all fwUpdate getConfig getRegRaw raw regBulk regSet reset unpair” bezieht, kann ich leider nicht nachvollziehen… Der Rest ist ja normal.

  50. Hallo Jörg!

    Nachdem lange lange mein fhem über die FB7390 lief, und ich dank eurer anleitung auch noch die waschmaschine dazu gebracht habe sich zu melden wenn sie fertig ist,
    habe ich dann den umstieg von der seitens fritzbox avm nicht mehr unterstützten fhem installation, zu der 7490 getan und für fhem einen cubietruck gekauft.

    Ab da passiert leider nicht mehr viel,
    ein netter user hat mir mein image für den cubietruck fertig gemacht, incl. meines backup!

    Das lief dann auch wie vorher auf der Fritzbox.

    Auch Waschmaschine fertig ging.

    Nun geht ohne das ich was gemacht habe kein fhem gerät mehr
    im webinterface kam IO error bzw missing ack

    über meine app fhem remote kam
    Fehler beim auswerten angeblich kein gültiger Json String,bitte kontr.sie die server einstellungen und stellen sie sicher das das JsonList Plugin funktioniert.

    Die Frage habe ich auch schon im Fhem board gestellt, aber das ist ein sehr unfreundliches Forum, die akzeptieren nur Profis…..

    Gibt es noch ein nette fhem forum ?

    Gruß

    Und schöne Feiertage

    Jonny

  51. Hallo Jörg!
    das ist genau mein Anwendungsfall. Auf das Abschalten nach Fertigmeldung könnte ich auch verzichten, es geht mir primär um die Info, die ich einerseits per Mail andererseits per Gong absetzen möchte.
    Wenn ich mir die IFTT-Möglichkeiten anschaue, stelle ich fest, dass der o.g. Mechanismus auch darüber realisierbar sein müsste. Gibt es einen Grund, warum Du Dich für die – wie Du selbst sagst – “etwas aufwändigere” Variante entschieden hast? Übersehe ich etwas?

    Viele Grüße!

    1. Hi Tom,
      wahrscheinlich, weil ich gerne bastle. *g*
      Außerdem stehe ich nicht so auf externe Cloud-Lösungen wie IFTTT.

      Grüße
      Jörg

  52. Ganz toll! Vielen Dank für das super Blog und die genialen Tutorials 😉
    macht immer wieder Freude beim Nachbasteln und dem obligatorischen Einkaufen diverser Gimmicks …

    Eine Anmerkung noch zur Abschaltung der Steckdose/Waschmaschine: Bei modernen Geräten mit Aqua-Stop sollte auf die Abschaltung besser verzichtet werden … der braucht Strom zum funktionieren (hier ca. 0,4W im Tiefschlaf).

    Evtl. kann man das auch über einen direkten “Aus/An-Schaltvrorgang” realisieren, wenn einem der normale Standby zuviel zieht.

    1. Aqua Stop ist ein Magnetventil am Eingang/Anfang des Wasserschlauch. Dieser wird auf Durchlass gesetzt bzw Strom und Spannung angelegt wenn die Maschine eingeschaltet wird. Wenn also OFF von FHEM gesetzt wird ist das kein Problem da das Magnetventil dann schliest wie bei Auslösen des Aqua Stop oder ein normales auschalten. Problematisch wird es bei Systemen mit Mororbetrieben Kugelhahn den gibt es aber nur bei Großanlagen mit Zentraller absperrung https://de.wikipedia.org/wiki/Aquastop

  53. Hallo ich versuche jetzt schon länger den Trockner / Waschmaschinen Script zum laufen zu bringen, leider erhalte ich aber immerwieder Fehler im Log File und auch die Notyfier für HoherVerbrauch wollen nicht funktionieren.

    Im Logfile steht jetzt immer:
    2015.01.20 21:26:09 1: PERL WARNING: Argument “0.78 W” isn’t numeric in numeric ge (>=) at (eval 109375) line 2.
    2015.01.20 21:26:09 3: eval: {
    if (ReadingsVal(“HR.Waschmaschine”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”) {
    fhem (“set HR.WaschmaschineBetrieb on”);
    fhem (“setstate UGWaschmaschineAutoOff defined”);

    Ich habe folgendes im Config File:

    #—————————————————————————————————–
    #Dummy HR.WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren

    define HR.WaschmaschineWatt dummy
    attr HR.WaschmaschineWatt room Keller

    define NTFY_UGWaschmaschineWattSet notify HR.Waschmaschine {\
    my $power_w=ReadingsVal(“HR.Waschmaschine”,”power”,””);;\
    my $power=substr($power_w, 0,length($power_w)-2);;\
    fhem (“set HR.WaschmaschineWatt $power”);;\
    }

    #Dummy HR.WaschmaschineBetrieb definieren
    define HR.WaschmaschineBetrieb dummy
    attr HR.WaschmaschineBetrieb event-on-change-reading state
    attr HR.WaschmaschineBetrieb room Keller

    #Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
    define NTFY_UGWaschmaschineBetriebAn notify HR.Waschmaschine:power.* {\
    if (ReadingsVal(“HR.Waschmaschine”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”) {\
    fhem (“set HR.WaschmaschineBetrieb on”);;\
    fhem (“setstate UGWaschmaschineAutoOff defined”);;\
    }\
    }

    #Dummy HR.WaschmaschineHoherVerbrauch definieren
    define HR.WaschmaschineHoherVerbrauch dummy
    attr HR.WaschmaschineHoherVerbrauch event-on-change-reading state
    attr HR.WaschmaschineHoherVerbrauch room Keller

    #Dummy HR.WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 2 Watt bei laufendem Betrieb
    define NTFY_UGWaschmaschineHoherVerbrauchAn notify HR.Waschmaschine:power.* {\
    if (ReadingsVal(“HR.Waschmaschine”,”power”,””) > 2 && Value(“HR.WaschmaschineBetrieb”) eq “on”) {\
    fhem (“set HR.WaschmaschineHoherVerbrauch on”);;\
    fhem (“setstate UGWaschmaschineAutoStandby defined”);;\
    }\
    }

    #Dummy HR.WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 2 Watt bei laufendem Betrieb
    define NTFY_UGWaschmaschineHoherVerbrauchAus notify HR.Waschmaschine:power.* {\
    if (ReadingsVal(“HR.Waschmaschine”,”power”,””) <= 2 && Value("HR.WaschmaschineBetrieb") eq "on") {\
    fhem ("set HR.WaschmaschineHoherVerbrauch off");;\
    }\
    }

    #Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter obigem Schwellwert (5 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
    define UGWaschmaschineAutoStandby watchdog HR.WaschmaschineHoherVerbrauch:off 00:00:05 HR.WaschmaschineHoherVerbrauch:on set HR.WaschmaschineBetrieb standby
    attr UGWaschmaschineAutoStandby regexp1WontReactivate 1
    attr UGWaschmaschineAutoStandby room Keller

    # Pushover-Notification bei abgeschlossenem Waschvorgang verschicken
    define WaschmaschineWaschvorgangAbgeschlossenPushover notify HR.WaschmaschineBetrieb:standby {\
    {DebianMail('mail1@@gmx.de','Waschmaschine','Die Waschmaschine ist fertig!')};; {DebianMail('mail2@@gmx.de','Waschmaschine','Die Waschmaschine ist fertig!')};;\
    }

    1. Hi Christian,
      ich denke ich habe deinen Fehler gefunden.
      Dein Watt-Wert “power” von deiner “HR.Waschmaschine” wird mit ” W” am Ende ausgegeben. Die Zeile mit dem Befehl

      define NTFY_UGWaschmaschineWattSet notify HR.Waschmaschine {\
      my $power_w=ReadingsVal(“HR.Waschmaschine”,”power”,””);;\
      my $power=substr($power_w, 0,length($power_w)-2);;\
      fhem (“set HR.WaschmaschineWatt $power”);;\
      }

      bewirkt dabei, dass die letzten beiden Stellen, also ” W” des Readings abgeschnitten werden und in einem neuen Dummy namens “HR.WaschmaschineWatt” gespeichert werden, so dass der Watt-Wert nun ausschließlich eine Zahl ist und nachfolgend in if-Abfragen genutzt werden kann. Diesen Wert bzw. diesen Dummy musst du dann natürlich auch im weiteren Verlauf verwenden, damit es klappt.

      Also anstatt:

      #Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
      define NTFY_UGWaschmaschineBetriebAn notify HR.Waschmaschine:power.* {\
      if (ReadingsVal(“HR.Waschmaschine”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”) {\
      fhem (“set HR.WaschmaschineBetrieb on”);;\
      fhem (“setstate UGWaschmaschineAutoOff defined”);;\
      }\
      }

      muss es dann lauten:

      #Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
      define NTFY_UGWaschmaschineBetriebAn notify HR.WaschmaschineWatt {\
      if (ReadingsVal(“HR.WaschmaschineWatt”,”state”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”) {\
      fhem (“set HR.WaschmaschineBetrieb on”);;\
      fhem (“setstate UGWaschmaschineAutoOff defined”);;\
      }\
      }

      Die beiden nachfolgenden notify-Befehle müssen dann analog angepasst werden. Dann sollte es funktionieren.

      Also insgesamt alle Einträge mit
      HR.Waschmaschine:power.*
      durch
      HR.WaschmaschineWatt
      tauschen und dann noch
      (ReadingsVal(“HR.Waschmaschine”,”power”,””)
      durch
      (ReadingsVal(“HR.WaschmaschineWatt”,”state”,””)

      Grüße und viel Erfolg
      Jörg

  54. Nochmal zum Hinweis Aquastop und Maschine nicht vom Netz nehmen. Dazu ist grundsätzlich erst zu Prüfen ob der Wasserstopp nicht auch gleich das Einlassventil ist, was bei den Anschlüssen mit dem dicken Kasten am Wasseranschluss eigentlich der Fall ist. Bei diesen Geräten scheint es so zu sein, dass sie nur Wasser in die Maschine lassen, wenn eine Spannung angelegt wird und zudem die Elektronik keine Undichtigkeit im Doppelschlauch messen kann. Ich denke ein einfaches messen einer ausgeschalteten Maschine klärt über die verwendete Technik auf, wenn eine Ausgeschaltete Maschine 0W verbraucht, dann kann auch keine elektrische Kraft aufgewendet werden um das Ventil geschlossen zu halten. Ich bin kein Haushaltsgerätetechniker, aber die Maschinen die ich habe verhalten sich so.

    1. gibt es zu diesem Kommentar weitere Meinungen oder sogar Fakten?
      Ich würde das gerne hier umsetzen, habe aber im Waschraum tatsächlich keinen Ablauf und muss daher sicher gehen, dass der Wasserstop auch bei ausgeschaltetem Strom noch seinen Dienst tut.

    2. Hi,
      da bin ich der gleichen Meinung. Mit Fakten kann ich es nicht belegen, weil ich mich nicht so tief mit Waschmaschinen auskenne. Ich weiß, wie ich sie anbekomme, habe aber manchmal Probleme, die richtige Wäsche dem richtigen Programm zuzuordnen.
      Wenn ich meine Waschmaschine vom Strom nehme, wenn Wasser zuläuft, stoppt die Wasserzufuhr sofort.
      Viele Grüße

  55. Moin Jörg,

    erst einmal danke für den und einige andere Artikel zum Thema FHEM. Du hast mir das Thema näher gebracht mich auch die dunkle Seite der Heimautomatiserung gezogen 🙂

    Nun zu meiner Frage….
    Ich möchte für Aufzeichnungszwecke nur die Leistungsaufnahme der Steckdose aufzeichen und verzweifle langsam daran

    Der Code

    define TV_Leistung_Watt dummy
    define SetTVLeistung notify SD_WOHN_TV_Wnow {my $power =ReadingsVal(“SD_WOHN_TV_Wnow”,”power”,””);; fhem (“set TV_Leistung_Watt $power”)}

    LOG-File

    2015.02.05 21:01:29 3: set TV_Leistung_Watt : no set value specified
    2015.02.05 21:01:29 3: SetTVLeistung return value: no set value specified

    Ich habe es auch schon mit einer 1:1 Kopie von deinem Code versucht, Name der Steckdose natürlich angepasst….selbes Ergebnis
    Ich könnte etwas Hilfe gebrauchen…

    Danke

    Flo

    1. Hi Florian,
      anscheinend hat dein Device “SD_WOHN_TV_Wnow” kein Reading mit der Bezeichnung “power”, oder das Reading hat keinen Wert (“no set value specified”). Schau dir doch einfach dessen Readings mal in den Details näher an. Vielleicht heißt das zu nutzende Reading bei dir einfach anders. Welches Gerät nutzt du denn genau?

      Grüße und viel Erfolg bei der Fehlersuche!
      Jörg

    2. Moin Jörg,

      erstmal danke für die Antwort.
      Ich nutze die selbe Steckdose wie du. Daher war ich davon ausgegangen das ich dadurch nichts anpassen muss.
      Nach den Readings muss ich mal gucken sobald ich wieder daheim bin.
      Aber wenn ich in FHEM die Steckdose anwähle kann ich die ganzen Messwerte sehen aber wo sollte ich die Bezeichnung “power” finden?

      Flo

    3. Moin,

      so das Problem lag wie erwartet zwischen den Ohren.
      Es muss bei mir so aussehen:
      define SetTVLeistung notify SD_WOHN_TV_Wnow {my $power =ReadingsVal(“SD_WOHN_TV_Wnow”,”state”,””);; fhem (“set TV_Leistung_Watt $power”)}
      Die Bezeichung “power” gibt es bei mir nicht.
      Ist natürlich interessant dass die Bezeichnung bei der selben Steckdose unterschiedlich ist (oder wurde da noch was umbenannt?!).

      Danke nochmal für die Hilfe.

      Flo

    1. Ah, gerade gesehen, gibt es ja bereits hier in den Kommentaren 😀

      Danke dafür, hab das mal übernommen und ein wenig angepasst, scheint auch zu funktionieren.

  56. Sehr Coole Sache. Habe bisher nur bis zum WattDummy eingerichtet um ein paar mal zu beobachten wie viel die Maschine in div Programmen braucht und vor allem wenn sie in den Standby geht.
    Was mich nun etwas stört ist das das LOG File des Dummys voll geschrieben wird.
    Da kommen zur selben Zeit 5-7 Werte.

    define PM_WaschmaschineWatt dummy
    attr PM_WaschmaschineWatt event-on-change-reading state
    attr PM_WaschmaschineWatt room Waschmaschine

    event-on-chance-reading ist gesetzt.

    Eine idee?

    1. Ok hat sich erledigt, warum auch immer ist das log nun leer.
      Mal schaun wie es wieder ist wenn gewaschen wird.

  57. Eine sehr schöne Umsetzung. Läuft in meinem Haushalt nun schon seit ein paar Monaten zuverlässig. In Ergänzung zur Lösung mit Pushover habe ich eine Benachrichtigung mit Anzeige und blinkender Taste auf meinem Snom 370 IP-Telefon realisiert.

  58. Hallo zusammen
    so langsam verzweifel ich an meinem Versand. Ich habe jetzt bereits mehrfach alles penibel aus deinem Blog eingefügt aber irgendwie klappt es nur teilweise.

    HR.Waschmaschine_Power liefert einen immer größer werdenden Wert zurück. Das habe ich zwar weiter oben beits gefunden weiß aber nicht wie ich das lösen kann.

    bei den beiden anderen Dummys kommt
    HR.WaschmaschineHoherVerbrauch ???
    HR.WaschmaschineWatt ???

    zur Anzeige.

    in der Logdatei kommt im Sekundentakt:

    2015.06.19 13:56:32 1: PERL WARNING: Bareword found where operator expected at (eval 10944) line 1, near “) fhem”
    2015.06.19 13:56:32 3: eval: {my $power =ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) fhem (“set HR.WaschmaschineWatt $power”)}
    2015.06.19 13:56:32 3: HRWaschmaschineWattSet return value: syntax error at (eval 10944) line 1, near “) fhem ”

    2015.06.19 13:56:32 1: PERL WARNING: Bareword found where operator expected at (eval 10945) line 1, near “) fhem”
    2015.06.19 13:56:32 3: eval: {my $power =ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) fhem (“set HR.WaschmaschineWatt $power”)}
    2015.06.19 13:56:32 3: HRWaschmaschineWattSet return value: syntax error at (eval 10945) line 1, near “) fhem ”

    komischerweise habe ich die Syntax exakt aus dem Blog genommen.

    Ich hoffe ihr könnt mir helfen.

    Gruß Sebastian

    1. Hi Sebastian,
      keine Sorge, das bekommst du sicherlich hin!

      Das hört sich schwer nach einem Syntaxproblem an. Hast du einen Editor genutzt oder den Code 1:1 in die fhem.cfg übernommen? Gerade bei den Anführungszeichen kann es zu Formatierungsproblemen kommen. Hier am besten noch einmal alles genau prüfen. Es kann auch Sinn machen alle potenziell betroffnen Codezeilen kurzerhand mit einer führenden Raute am Anfang der Codezeile auszukommentieren und dann Schritt für Schritt wieder zu aktivieren und parallel das Log anzusehen, um den Fehler besser eingrenzen zu können.

      Insgesamt kann ich natürlich nicht garantieren, dass die im Blogpost angegebene Inhalte 100%ig fehlerfrei sind, da ich und Leser den Code aber auch selbst nutzen, sollte es schon funktionieren. Sofern du dennoch einen Fehler finden solltest, würde ich mich freuen, wenn du dich nochmal meldest.

      Hoffe das hilft dir erstmal weiter.

      Grüße und viel Erfolg
      Jörg

    2. Du kannst mir deinen Code gerne auch mal per Email schicken oder als Kommentar posten, wenn du nicht weiterkommst, dann schau ich mal drüber.

  59. Schon mal Danke für die schnelle Antwort.

    Ich poste den Code mal hier da ich ja auch gerne von den Fehlern und Lösungen der anderen profitiere.

    define HM_38B7A1 CUL_HM 38B7A1
    attr HM_38B7A1 IODev HMLAN1
    attr HM_38B7A1 actCycle 000:10
    attr HM_38B7A1 actStatus alive
    attr HM_38B7A1 autoReadReg 4_reqStatus
    attr HM_38B7A1 expert 2_full
    attr HM_38B7A1 firmware 1.6
    attr HM_38B7A1 model HM-ES-PMSw1-Pl
    attr HM_38B7A1 room CUL_HM
    attr HM_38B7A1 serialNr MEQ0170451
    attr HM_38B7A1 subType powerMeter
    attr HM_38B7A1 webCmd getConfig:clear msgEvents
    define FileLog_HM_38B7A1 FileLog ./log/HM_38B7A1-%Y.log HM_38B7A1
    attr FileLog_HM_38B7A1 logtype text
    attr FileLog_HM_38B7A1 room CUL_HM
    define HR.Waschmaschine CUL_HM 38B7A101
    attr HR.Waschmaschine model HM-ES-PMSw1-Pl
    attr HR.Waschmaschine peerIDs 00000000,
    attr HR.Waschmaschine room Hauswirtschaftsraum
    define HR.Waschmaschine_Power CUL_HM 38B7A102
    attr HR.Waschmaschine_Power model HM-ES-PMSw1-Pl
    attr HR.Waschmaschine_Power room Hauswirtschaftsraum
    define HM_38B7A1_SenPwr CUL_HM 38B7A103
    attr HM_38B7A1_SenPwr model HM-ES-PMSw1-Pl
    attr HM_38B7A1_SenPwr peerIDs 00000000,
    define HM_38B7A1_SenI CUL_HM 38B7A104
    attr HM_38B7A1_SenI model HM-ES-PMSw1-Pl
    attr HM_38B7A1_SenI peerIDs 00000000,
    define HM_38B7A1_SenU CUL_HM 38B7A105
    attr HM_38B7A1_SenU model HM-ES-PMSw1-Pl
    attr HM_38B7A1_SenU peerIDs 00000000,
    define HM_38B7A1_SenF CUL_HM 38B7A106
    attr HM_38B7A1_SenF model HM-ES-PMSw1-Pl
    attr HM_38B7A1_SenF peerIDs 00000000,
    define HR.WaschmaschineWatt dummy
    attr HR.WaschmaschineWatt room Hauswirtschaftsraum
    define HR.WaschmaschineBetrieb dummy
    attr HR.WaschmaschineBetrieb event-on-change-reading state
    attr HR.WaschmaschineBetrieb room Hauswirtschaftsraum
    define HRWaschmaschineBetriebAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb on setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}
    define HR.WaschmaschineHoherVerbrauch dummy
    attr HR.WaschmaschineHoherVerbrauch event-on-change-reading state
    attr HR.WaschmaschineHoherVerbrauch room Hauswirtschaftsraum
    define HRWaschmaschineHoherVerbrauchAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch on setstate HRWaschmaschineAutoStandby defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) > 5 && Value(“HR.WaschmaschineBetrieb”) eq “on”)}
    define HRWaschmaschineHoherVerbrauchAus notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) <= 5 && Value("HR.WaschmaschineBetrieb") eq "on")}
    define HRWaschmaschineAutoStandby watchdog HR.WaschmaschineHoherVerbrauch:off 00:05 HR.WaschmaschineHoherVerbrauch:on set HR.WaschmaschineBetrieb standby
    attr HRWaschmaschineAutoStandby regexp1WontReactivate 1
    attr HRWaschmaschineAutoStandby room Hauswirtschaftsraum
    define HRWaschmaschineWattSet notify HR.Waschmaschine_Power {my $power =ReadingsVal("HR.Waschmaschine_Power","power","") fhem ("set HR.WaschmaschineWatt $power")}

    Vielleicht mache ich auch einfach einen grundsätzlichen Fehler da es mein erster Versuch ist mit Fhem um meiner Frau das waschen der ganzen Babykleidung zu erleichtern.

    Beim ersten mal habe ich alles von Hand aus deinem Blog abgeschrieben und ganz oben Zeile für Zeile in das Eingabefenster bei Fhem eingegeben. Jeweils mit Enter bestätigt und gespeichert. In den letzteren Versuchen habe ich nachdem ich alles gelöscht habe per Copy&Paste mit dem gleichen Fenster gearbeitet.

    Gruß Sebastian

  60. Hallo Sebastian, auf den ersten Blick sieht es so aus, als ob die Semikolons vor “fhem” fehlen würden. Also zwischen ReadingsVal(…,…,…) und fhem(…

    Ich habe es jetzt nur auf dem Handy, da ist die Schrift ziemlich klein 🙂

    Möchtest du eine Benachrichtigung, wenn die Waschmaschine fertig ist? Das habe ich mittlerweile mit einem DOIF gemacht. Beispiele wurden glaube ich schon in den Kommentaren gezeigt.

    Wegen dem “der Wert wird immer größer” habe ich die Vermutung, dass du den falschen Channel abfragst. Der Sensor liefert mehrere Werte. Einer davon wird immer größer, das ist glaube ich die Summe. Ein anderes Reading gibt den momentanen Stromverbrauch an.

    Aus dem Kopf heraus würde ich sagen, ich habe die ganze Benachrichtigung mit nur einer DOIF-Anweisung gemacht – ohne Dummy-Definitionen.

    Hilft dir das weiter?

    Viele Grüße
    Bernd

  61. ich habe nochmal in den Code geschaut. Da ist kein Semikolon vorhanden auch im Blog steht keiner. Leider bekomme ich es auch nicht eingefügt. Sobald ich den define HRWaschmaschineWattSet notify HR.Waschmaschine_Power {my $power =ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) fhem (“set HR.WaschmaschineWatt $power”)} mit Semikolon versuche einzufügen ist es nicht möglich den Befehl überhaupt zu speichern.

    1. So Code habe ich geändert
      define HRWaschmaschineWattSet notify HR.Waschmaschine_Power {my $power =ReadingsVal(“HR.Waschmaschine_Power”,”power”,””);; fhem (“set HR.WaschmaschineWatt $power”)}

      die Semikolons sind drin

      jetzt kommt folgender Fehler
      2015.06.19 21:28:18 3: set HR.WaschmaschineWatt : no set value specified
      2015.06.19 21:28:18 3: HRWaschmaschineWattSet return value: no set value specified
      2015.06.19 21:30:52 3: set HR.WaschmaschineWatt : no set value specified
      2015.06.19 21:30:52 3: HRWaschmaschineWattSet return value: no set value specified

      Den Fehler mit den steigenden Werten habe ich behoben in dem ich _Pwr gegen _SenPwr getauscht habe. Ich hoffe das war richtig

    2. Sieht so aus, als wäre $power leer. Das würde die Fehlermeldungen mit “no set value specified” erklären.

      Was kommt, wenn du auf deiner Fhem-Weboberfläche in die Eingabezeile ganz oben
      { ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) }
      einträgst und Enter drückst? Bei mir wird z. B. folgendes angezeigt:
      156.95

    3. Morgen
      habe den Befehl nochmal gelöscht und neu angelegt. Jetzt wird ein wert zurückgegeben der auch plausibel ist. Das einzige wo noch ??? angezeigt wird ist HR.WaschmaschineHoherVerbrauch.

    4. Vielleicht könnt ihr mir nochmal helfen.

      Der Dummy HR.WaschmaschineBetrieb reagiert auf das Einschalten und geht auf Betrieb. Leider erkennt er das Ende des Waschvorganges nicht, hängt das mit dem Dummy WaschmaschineHoherVerbrauch zusammen dieser liefert nur ??? zurück.

      Anbei der Code
      define HR.WaschmaschineWatt dummy
      attr HR.WaschmaschineWatt room Hauswirtschaftsraum
      define HRWaschmaschineWattSet notify HR.Waschmaschine_Power {my $power =ReadingsVal(“HR.Waschmaschine_Power”,”power”,””);; fhem (“set HR.WaschmaschineWatt $power”)}
      define HRWaschmaschineBetriebAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb on setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) >= 10 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}
      attr HRWaschmaschineBetriebAn room Hauswirtschaftsraum
      define HRWaschmaschineWaschvorgangAbgeschlossenPushover notify HR.WaschmaschineBetrieb:standby {system (“curl -s -F ‘token=a3JwMmuVpnzSijiYHRNLMSGsrwCSRy’ -F ‘user=ucC74GBhzHYvkx3SszufmWiYWNAZbt’ -F ‘message=HauswirtschaftsraumnWaschvorgang abgeschlossen’ https://api.pushover.net/1/messages.json”)}
      define HR.WaschmaschineHoherVerbrauch dummy
      attr HR.WaschmaschineHoherVerbrauch event-on-change-reading state
      attr HR.WaschmaschineHoherVerbrauch room Hauswirtschaftsraum
      define HRWaschmaschineHoherVerbrauchAus notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) 5 && Value(“HR.WaschmaschineBetrieb”) eq “on”)}

  62. In der letzten Zeile sehe ich nur “…) 5 && Value(…”.

    Da fehlt der Vergleichsoperator: ein Kleiner-Zeichen (<) oder ein Kleiner-Gleich-Zeichen (<=).

  63. Ok, dann fehlt es nur hier im Kommentar.

    In der Definition von HRWaschmaschineBetriebAn müssten auch Semikolons drin sein.

    Hier:
    fhem (“set HR.WaschmaschineHoherVerbrauch on ; setstate HRWaschmaschineAutoStandby defined”) if …

    Ich bin mir nicht sicher, ob eines reicht oder das auch mit einem zweiten maskiert werden muss.

    1. Danke für den super Tip.
      Die Lösung brachte das setzen von einigen Semikolons. Auch in einigen anderen Befehlen habe ich welche eingefügt und es läuft. Ich denke das ist gerade für den Rest der Copy&Paste Fraktion interessant.

  64. Hallo,

    vielen Dank für die tolle Anleitung, eine Frage habe ich aber noch.
    Im Block
    #HR.Waschmaschine 15 Minuten nach dem letzten Waschgang vom Strom trennen
    define HRWaschmaschineAutoOff watchdog HR.WaschmaschineBetrieb:standby 00:15 HR.WaschmaschineBetrieb:on set HR.Waschmaschine off set HR.WaschmaschineBetrieb off
    attr HRWaschmaschineAutoOff regexp1WontReactivate 1
    attr HRWaschmaschineAutoOff room Hauswirtschaftsraum

    klappt bei mir nur der erste Befehl “set HR.Waschmaschine off”.
    “set HR.WaschmaschineBetrieb off” hingegen wird nicht durchgeführt.
    Je nachdem welchen Befehl ich an erster Stelle schreibe, wird immer nur dieser ausgeführt. Wurde da ein Zeichen vergessen, so daß der zweite Befehl nicht ignoriert wird?
    Ich hoffe es kann mir jemand helfen.

    Gruß
    Stephan

  65. Hallo Stefan bei mir sieht der Block so aus mit jeder Menge Semiklons drin

    define HRWaschmaschineAutoOff watchdog HR.WaschmaschineBetrieb:standby 00:15 HR.WaschmaschineBetrieb:on;; set HR.Waschmaschine off;; set HR.WaschmaschineBetrieb off

    Falls es immer noch nicht klappt gucke ich zuhause nach der Arbeit nochmal genau drauf. Gruß Sebastian

  66. Hallo Sebastian,

    Vielen Dank, das hat geklappt.
    Ich habe in der Zwischenzeit auch noch eine andere Lösung durch mehrmaliges Probieren herausgefunden:

    “set HR.Waschmaschine,HR.WaschmaschineBetrieb off” funktioniert ebenfalls.

    Gruß

    Stephan

  67. Hallo Jörg,

    danke für diese gut strukturierte Anleitung. Auch ich habe diese vor einem knappen Jahr umgesetzt was auch bis zu meinem Umzug einwandfrei funktioniert hat. Nun bin ich vor einiger Zeit umgezogen und habe nun das Problem das die Funk-Steckdose im Keller kein Signal mehr bis zu meinem HMLAN Adapter bekommt der 3 Stockwerke (Mehrfamilienhaus) höher steht. Leider hängt die Steckdose im Keller auch nicht an der gleichen Fase wie mein Sicherungskasten. Kennst du evtl eine Möglichkeit wie ich trotzdem zukünftig wieder eine Benachrichtigung von meiner Waschmaschine erhalten kann?

  68. Hallo Jörg,

    ich habe lange an einem ähnlichen Fall gebastelt und es nicht hinbekommen. Es geht um einen Rasenroboter, der mit einer Ladestation an einer HM-ES-PMSW1 angeschlossen ist. Ich bekomme brav über Pushover eine Benachrichtigung wenn der Roboter lädt.

    Beispiel: Robi_Verbrauchsmessung:power:.* {fhem(“set RobiAktivBetriebRobi_laedt”) if (ReadingsVal(“Robi_Verbrauchsmessung”,”power”,””)>20.0)}

    Funktioniert wunderbar, Pushover habe ich mir hier gespart.
    Jetzt aber meine Frage: Wie bekomme ich es hin einen Wertebereich zwischen 6.0 und 6.5 auszuwerten.
    Der Verbrauch schwankt leider in diesem Bereich wenn der Rasenroboter unterwegs
    ist. Hast Du eine Idee? Ich habe schon das fhem Forum durchforstet, leider ohne Erfolg

    Gruß

    Christian

    1. Hi Christian,
      ich weiss nicht genau, ob ich deine Frage korrekt verstanden habe, aber falls doch könnte dir das hier weiterhelfen:

      define RobiUnterwegs notify Robi_Verbrauchsmessung:power:.* {fhem(“set RobiAktivBetriebRobi_unterwegs”) if (ReadingsVal(“Robi_Verbrauchsmessung”,”power”,””)>6 && ReadingsVal(“Robi_Verbrauchsmessung”,”power”,””)<6.5)}

      Grüße
      Jörg

  69. Hallo Jörg,

    vielen Dank für Deine Hilfe. Der Knackpunkt war die Klammersetzung. Ich
    hatte schon nicht mehr geglaubt das && hier funktioniert. Ich werde noch versuchen einen watchdog mit pushover einzubauen wenn Robi länger
    als 90 Minuten unterwegs ist, denn dann hat er sich irgendwo festgefahren und braucht Hilfe.

    Viele Grüße

    Christian

  70. Hallo Jörg,

    ich habe meine alte Bosch Waschmaschine (ohne Uhr, ohne programmierbaren Timer, etc) nun auch mit dem Zwischenstecker versorgt und FHEM mit deinen Code-Zeilen gefüttert – funktioniert soweit alles prima, vielen Dank!

    Was bei mir auch funktioniert, ist die Unterbrechung des aktuellen Waschprogramms bei Stromausfall und sofortige Wiederaufnahme des Programms, sobald der Strom wieder anliegt. Ich nutze dies, um morgens die Trommel zu füllen, ein Programm zu starten und dann den Strom am Zwischenstecker auszuschalten. Dann gehe ich in´s Büro und lasse per ‘at’-Job oder manuellem Klick in der Weboberfläche das Waschprogramm wieder laufen, sobald ich weiß, wann ich zu Hause sein werde. Dann ist die Waschmaschine kurz vorher fertig und die Wäsche liegt nicht stundenlang nass in der Trommel.

    Leider fängt die Maschine sowohl sofort mit dem Heizen an, wenn ein Programm startet – es wird also sofort ein Betrieb mit hohem Verbruach erkannt. Wenn ich dann die Stromversorgung unterbreche, signalisiert mir FHEM 2 Minuten später, dass die Wäsche fertig ist.

    Kann man hier noch irgendwie eine Verzögerung einbauen, so dass der Betrieb bzw. der hohe Verbrauch erst nach einer Minute erkannt wird, so dass man genügend Zeit hat, die Maschine vom Strom zu trennen und die Fertig-Meldung erst bekommt, wenn die Wäsche wirklich (nachmittags) fertig ist?

    1. Hi Tino,
      guter Punkt! Ich hab mir den gesamten Programmcode nochmal angesehen und denke deinen Vorschlag mittlerweile mit einem Bruchteil des ursprünglichen Codes mithilfe des DOIF-Befehls umsetzen zu können.

      Im Grunde ist insgesamt nur folgender Code notwendig:

      define HR.WaschmaschineBetrieb dummy
      attr HR.WaschmaschineBetrieb event-on-change-reading state
      attr HR.WaschmaschineBetrieb room Hauswirtschaftsraum

      define HRWaschmaschineBetriebSet DOIF ([HR.Waschmaschine_Power:power]>30) (set HR.WaschmaschineBetrieb on) DOELSEIF ([HR.Waschmaschine_Power:power]<5) (set HR.WaschmaschineBetrieb off)
      attr HRWaschmaschineBetriebSet wait 60:300
      attr HRWaschmaschineBetriebSet room Hauswirtschaftsraum

      Der Dummy "HR.WaschmaschineBetrieb" wird dabei nach einem Verbrauch von durchgehend mehr als 30 Watt nach 60 Sekunden auf "on" gesetzt und umgekehrt bei einem geringeren Verbrauch von durchgehend weniger als 5 Watt nach 300 Sekunden wieder zurück auf "off". Eine Pushover-Mitteilung lässt sich dann auch recht einfach umsetzen durch:

      define PushoverJay Pushover au5SMKWXRJey7ApemEaLSg21Xxxxxx u4zDygNRGFbQUSmcxXj6fGsWJxxxxx

      define PushoverJayHRWaschmaschineBetriebOff notify HR.WaschmaschineBetrieb:off {fhem ("set PushoverJay msg 'Hauswirtschaftsraum' 'Waschvorgang beendet' '' 0 ''")}

      Hoffe das hilft dir weiter!

      Grüße
      Jörg

    2. Es geht sogar noch geschickter ganz ohne Dummy 🙂

      define HR.WaschmaschineBetrieb DOIF ([HR.Waschmaschine_Power:power]>30) DOELSEIF ([HR.Waschmaschine_Power:power]<5)
      attr HR.WaschmaschineBetrieb wait 60:300
      attr HR.WaschmaschineBetrieb cmdState on|off
      attr HR.WaschmaschineBetrieb room Hauswirtschaftsraum

      define PushoverJay Pushover au5SMKWXRJey7ApemEaLSg21Xxxxxx u4zDygNRGFbQUSmcxXj6fGsWJxxxxx

      define PushoverJayHRWaschmaschineBetriebOff notify HR.WaschmaschineBetrieb:off {fhem ("set PushoverJay msg 'Hauswirtschaftsraum' 'Waschvorgang beendet' '' 0 ''")}

  71. Nachfrage bzgl. Codeoptimierung:

    Das ‘notify’ kann man sich doch eigentlich sparen, wenn man die ‘set PushoverJay’ Anweisung oben mit in die Klammer setzt, in der ‘HR.WaschmaschineBetrieb’ auf off gesetzt wird, oder? Nichts anderes überwacht das ‘notify’ ja.

  72. Funktioniert perfekt 🙂 Hier mal meine komplette Keller-Konfiguration:

    define Keller_Waschmaschine CUL_HM xxxxxx
    attr Keller_Waschmaschine IOgrp vCCU:HMLAN
    attr Keller_Waschmaschine model HM-ES-PMSw1-Pl
    attr Keller_Waschmaschine subType powerMeter
    attr Keller_Waschmaschine room Keller

    define Keller_Waschmaschine_Sw CUL_HM xxxxxx01
    attr Keller_Waschmaschine_Sw model HM-ES-PMSw1-Pl
    attr Keller_Waschmaschine_Sw room Keller

    define Keller_Waschmaschine_Pwr CUL_HM xxxxxx02
    attr Keller_Waschmaschine_Pwr model HM-ES-PMSw1-Pl
    attr keller_Waschmaschine_Pwr stateformat power
    attr Keller_Waschmaschine_Pwr room Keller

    define Keller_Waschmaschine_FileLog FileLog ./log/Keller_Waschmaschine.log Keller_Waschmaschine.*
    attr Keller_Waschmaschine_FileLog logtype text
    attr Keller_Waschmaschine_FileLog room Logfiles

    define Keller_Waschmaschine_Plot SVG Keller_Waschmaschine_FileLog:Keller_Waschmaschine:CURRENT
    attr Keller_Waschmaschine_Plot label “Stromverbrauch Waschmaschine”
    attr Keller_Waschmaschine_Plot room Keller

    define Keller_Waschmaschine_Betrieb DOIF \
    ( [Keller_Waschmaschine_Pwr:power]>30 ) \
    DOELSEIF \
    ( [Keller_Waschmaschine_Pwr:power]<2 )
    attr Keller_Waschmaschine_Betrieb wait 60:300
    attr Keller_Waschmaschine_Betrieb cmdState on|off
    attr Keller_Waschmaschine_Betrieb room Keller

    define Alarm_Waschmaschine notify Keller_Waschmaschine_Betrieb:off { \
    GoogleTalk("Waschmaschine ist fertig");; \
    }
    attr Alarm_Waschmaschine room Keller

    1. Hallo Tino,
      du hast bei dir einen Plot per SVG definiert; das fände ich interessant, dazu müsste es dann noch eine .gplot-Datei geben, richtig? Würdest du die auch zur Verfügung stellen?

    2. Hier die GPLOT-Datei, nichts besonderes, funktioniert aber 😉

      set terminal png transparent size crop
      set output ‘.png’
      set xdata time
      set timefmt “%Y-%m-%d_%H:%M:%S”
      set xlabel ” ”
      set title ‘Waschmaschine – Stromverbrauch’
      set ytics
      set y2tics
      set grid
      set ylabel “Watt”
      set yrange [0:2500]

      #FileLog 4:Keller_Waschmaschine_Pwr.power:0:

      plot “” using 1:2 axes x1y1 title ‘Watt’ ls l1 lw 1 with lines

  73. Hallo Jörg

    wie von Dir angeregt möchte ich hier mal mein Problem schildern.

    Trotz copy and paste läuft beir mir die Leistungsmessung und Steuerung nicht korrekt.

    Hier ein Auzug meiner fhem.cfg.

    define HR.Waschmaschine CUL_HM 2B3467
    attr HR.Waschmaschine IODev HMLAN1
    attr HR.Waschmaschine actCycle 000:10
    attr HR.Waschmaschine actStatus alive
    attr HR.Waschmaschine autoReadReg 4_reqStatus
    attr HR.Waschmaschine expert 2_full
    attr HR.Waschmaschine firmware 1.6
    attr HR.Waschmaschine model HM-ES-PMSw1-Pl
    attr HR.Waschmaschine room Hauswirtschaftsraum
    attr HR.Waschmaschine serialNr LEQ0274312
    attr HR.Waschmaschine subType powerMeter
    attr HR.Waschmaschine webCmd getConfig:clear msgEvents
    define FileLog_HR.Waschmaschine FileLog ./log/HR.Waschmaschine-%Y.log HR.Waschmaschine
    attr FileLog_HR.Waschmaschine logtype text
    attr FileLog_HR.Waschmaschine room CUL_HM
    define HM_2B3467_Sw CUL_HM 2B346701
    attr HM_2B3467_Sw model HM-ES-PMSw1-Pl
    attr HM_2B3467_Sw peerIDs 00000000,
    define HR.Waschmaschine_Power CUL_HM 2B346702
    attr HR.Waschmaschine_Power model HM-ES-PMSw1-Pl
    define HM_2B3467_SenPwr CUL_HM 2B346703
    attr HM_2B3467_SenPwr model HM-ES-PMSw1-Pl
    attr HM_2B3467_SenPwr peerIDs 00000000,
    define HM_2B3467_SenI CUL_HM 2B346704
    attr HM_2B3467_SenI model HM-ES-PMSw1-Pl
    attr HM_2B3467_SenI peerIDs 00000000,
    define HM_2B3467_SenU CUL_HM 2B346705
    attr HM_2B3467_SenU model HM-ES-PMSw1-Pl
    attr HM_2B3467_SenU peerIDs 00000000,
    define HM_2B3467_SenF CUL_HM 2B346706
    attr HM_2B3467_SenF model HM-ES-PMSw1-Pl
    attr HM_2B3467_SenF peerIDs 00000000,
    define ActionDetector CUL_HM 000000
    attr ActionDetector event-on-change-reading .*
    attr ActionDetector model ActionDetector
    define HR.WaschmaschineWatt dummy
    attr HR.WaschmaschineWatt room Hauswirtschaftsraum
    define HRWaschmaschineWattSet notify HR.Waschmaschine_Power {my $power =ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) fhem (“set HR.WaschmaschineWatt $power”)}
    define HR.WaschmaschineBetrieb dummy
    attr HR.WaschmaschineBetrieb event-on-change-reading state
    attr HR.WaschmaschineBetrieb room Hauswirtschaftsraum
    define HRWaschmaschineBetriebAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb on setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}
    define HR.WaschmaschineHoherVerbrauch dummy
    attr HR.WaschmaschineHoherVerbrauch event-on-change-reading state
    attr HR.WaschmaschineHoherVerbrauch room Hauswirtschaftsraum
    define HRWaschmaschineHoherVerbrauchAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch on setstate HRWaschmaschineAutoStandby defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) > 5 && Value(“HR.WaschmaschineBetrieb”) eq “on”)}
    define HRWaschmaschineHoherVerbrauchAus notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) <= 5 && Value("HR.WaschmaschineBetrieb") eq "on")}
    define HRWaschmaschineAutoStandby watchdog HR.WaschmaschineHoherVerbrauch:off 00:05 HR.WaschmaschineHoherVerbrauch:on set HR.WaschmaschineBetrieb standby
    attr HRWaschmaschineAutoStandby regexp1WontReactivate 1
    attr HRWaschmaschineAutoStandby room Hauswirtschaftsraum

  74. Und noch ein fehler wieso es bei mir nicht ging:
    #Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
    define HRWaschmaschineBetriebAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb on setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}

    da fehlt das ;; nach on. So muss es sein :
    #Dummy HR.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
    define HRWaschmaschineBetriebAn notify HR.Waschmaschine_Power:power.* {fhem (“set HR.WaschmaschineBetrieb on;; setstate HRWaschmaschineAutoOff defined”) if (ReadingsVal(“HR.Waschmaschine_Power”,”power”,””) >= 30 && Value(“HR.WaschmaschineBetrieb”) ne “on”)}

  75. Hallo Chris

    vielen,vielen herzlichen Dank für Deinen Tip.

    Hat mir schon mal einen Teilerfolg gebracht.

    Habe leider bei dummy

    HR.WaschmaschineHoherVerbrauch
    immer noch ???

    Hast noch nen Tip ?

    Vielen schon mal im voraus

    Gruß Ole

  76. Hallo Zusammen, ich bin erst seit Kurzem mit Pi und FHEM am Probieren und “Herumspielen”. Dank dieser genialen Seiten hier hab ich doch schon das ein oder andere realisieren können.

    Natürlich soll auch unsere Waschmaschine “Meldung machen”, wenn sie fertig ist. Das klappt auch, aber ich möchte einfach nur den Zeitraum festlegen, in dem sie melden darf (09:00 bis 24:00 Uhr)… Ich lese mir nun seit zwei Tagen die Augen wund und bekomme es einfach nicht hin…

    Mein Ansatz:

    define HRWaschmaschineWaschvorgangAbgeschlossenMP3 notify HR.WaschmaschineBetrieb:standby { fhem (“set Sonos_Wohnzimmer PlayURITemp \\192.168.xxx.xxx\SonosSpeak\012_Waschmaschine_ist_fertig.mp3 15“) if ( $hour >= 9 && $hour < 24 ) }

    …ich vermute, dass einige laut lachen werden, wenn sie das lesen, aber ich komme einfach nicht weiter. Vermutlich ist es nur eine Kleinigkeit…

    Bitte helft mir…

    Danke u. Gruß BOGI

  77. Hallo
    Habe ein Problem mit dem Ende der Waschmaschine.
    Wir haben eine Miele Waschmaschine die am Ende in Knitterschutz übergeht.
    Dann ist der Verbrauch wechselnd wie im Log zu sehen.

    2016-01-19_19:44:31 PM_WaschmaschineWatt 491.45
    2016-01-19_19:44:38 PM_WaschmaschineWatt 475.76
    2016-01-19_19:44:39 PM_WaschmaschineWatt 484.96
    2016-01-19_19:44:47 PM_WaschmaschineWatt 504.8
    2016-01-19_19:44:55 PM_WaschmaschineWatt 349.21
    2016-01-19_19:45:14 PM_WaschmaschineWatt 333.49
    2016-01-19_19:47:34 PM_WaschmaschineWatt 318.62
    2016-01-19_19:47:59 PM_WaschmaschineWatt 316.53
    2016-01-19_19:48:09 PM_WaschmaschineWatt 152.99
    2016-01-19_19:48:17 PM_WaschmaschineWatt 16.56
    2016-01-19_19:48:43 PM_WaschmaschineWatt 63
    2016-01-19_19:48:51 PM_WaschmaschineWatt 6.17
    2016-01-19_19:48:59 PM_WaschmaschineWatt 22.4
    2016-01-19_19:49:07 PM_WaschmaschineWatt 67.35
    2016-01-19_19:49:16 PM_WaschmaschineWatt 17.1
    2016-01-19_19:49:23 PM_WaschmaschineWatt 65.31
    2016-01-19_19:49:31 PM_WaschmaschineWatt 6.06
    2016-01-19_19:49:39 PM_WaschmaschineWatt 6.2
    2016-01-19_19:49:47 PM_WaschmaschineWatt 22.33
    2016-01-19_19:49:56 PM_WaschmaschineWatt 67.59
    2016-01-19_19:50:04 PM_WaschmaschineWatt 6.13
    2016-01-19_19:50:12 PM_WaschmaschineWatt 22.11
    2016-01-19_19:50:15 PM_WaschmaschineWatt 6.21
    2016-01-19_19:50:20 PM_WaschmaschineWatt 63.65
    2016-01-19_19:50:28 PM_WaschmaschineWatt 6.12
    2016-01-19_19:50:36 PM_WaschmaschineWatt 10.48
    2016-01-19_19:50:44 PM_WaschmaschineWatt 22.55
    2016-01-19_19:50:54 PM_WaschmaschineWatt 63.81
    2016-01-19_19:51:02 PM_WaschmaschineWatt 6.17
    2016-01-19_19:51:10 PM_WaschmaschineWatt 16.99
    2016-01-19_19:51:18 PM_WaschmaschineWatt 60.38
    2016-01-19_19:51:27 PM_WaschmaschineWatt 6.21
    2016-01-19_19:51:34 PM_WaschmaschineWatt 6.22
    2016-01-19_19:51:42 PM_WaschmaschineWatt 21.84
    2016-01-19_19:51:51 PM_WaschmaschineWatt 67.58
    2016-01-19_19:51:59 PM_WaschmaschineWatt 6.15
    2016-01-19_19:52:07 PM_WaschmaschineWatt 21.86
    2016-01-19_19:52:15 PM_WaschmaschineWatt 72.44
    2016-01-19_19:52:23 PM_WaschmaschineWatt 6.21
    2016-01-19_19:52:31 PM_WaschmaschineWatt 6.15
    2016-01-19_19:52:39 PM_WaschmaschineWatt 23.86
    2016-01-19_19:52:42 PM_WaschmaschineWatt 6.18
    2016-01-19_19:52:47 PM_WaschmaschineWatt 6.11
    2016-01-19_19:52:55 PM_WaschmaschineWatt 6.15
    2016-01-19_19:53:03 PM_WaschmaschineWatt 21.12
    2016-01-19_19:53:11 PM_WaschmaschineWatt 58.13
    2016-01-19_19:53:19 PM_WaschmaschineWatt 6.12
    2016-01-19_19:53:27 PM_WaschmaschineWatt 21.18
    2016-01-19_19:53:35 PM_WaschmaschineWatt 65.18
    2016-01-19_19:53:43 PM_WaschmaschineWatt 6.13
    2016-01-19_19:53:51 PM_WaschmaschineWatt 10.28
    2016-01-19_19:53:59 PM_WaschmaschineWatt 22.62
    2016-01-19_19:54:08 PM_WaschmaschineWatt 30.63
    2016-01-19_19:54:16 PM_WaschmaschineWatt 6.1
    2016-01-19_19:54:43 PM_WaschmaschineWatt 32.82
    2016-01-19_19:54:51 PM_WaschmaschineWatt 6.16
    2016-01-19_19:54:55 PM_WaschmaschineWatt 6.08
    2016-01-19_19:55:17 PM_WaschmaschineWatt 69.11
    2016-01-19_19:55:25 PM_WaschmaschineWatt 6.26
    2016-01-19_19:55:50 PM_WaschmaschineWatt 54.8
    2016-01-19_19:55:58 PM_WaschmaschineWatt 6.25
    2016-01-19_19:56:24 PM_WaschmaschineWatt 68.49
    2016-01-19_19:56:32 PM_WaschmaschineWatt 6.15
    2016-01-19_19:56:57 PM_WaschmaschineWatt 60.4
    2016-01-19_19:57:05 PM_WaschmaschineWatt 6.09
    2016-01-19_19:57:30 PM_WaschmaschineWatt 19.25
    2016-01-19_19:57:38 PM_WaschmaschineWatt 6.14
    2016-01-19_19:57:57 PM_WaschmaschineWatt 6.11
    2016-01-19_19:58:04 PM_WaschmaschineWatt 62.64
    2016-01-19_19:58:12 PM_WaschmaschineWatt 6.13
    2016-01-19_19:58:37 PM_WaschmaschineWatt 32.08
    2016-01-19_19:58:45 PM_WaschmaschineWatt 6.12
    2016-01-19_19:59:11 PM_WaschmaschineWatt 66.07
    2016-01-19_19:59:19 PM_WaschmaschineWatt 5.82
    2016-01-19_19:59:44 PM_WaschmaschineWatt 55.37
    2016-01-19_19:59:52 PM_WaschmaschineWatt 5.78
    2016-01-19_20:00:18 PM_WaschmaschineWatt 64.21
    2016-01-19_20:00:26 PM_WaschmaschineWatt 5.83
    2016-01-19_20:00:45 PM_WaschmaschineWatt 5.92
    2016-01-19_20:00:51 PM_WaschmaschineWatt 62.55
    2016-01-19_20:00:59 PM_WaschmaschineWatt 5.77
    2016-01-19_20:01:24 PM_WaschmaschineWatt 19.06
    2016-01-19_20:01:32 PM_WaschmaschineWatt 5.78
    2016-01-19_20:01:58 PM_WaschmaschineWatt 66.77
    2016-01-19_20:02:06 PM_WaschmaschineWatt 5.96
    2016-01-19_20:02:31 PM_WaschmaschineWatt 33.52
    2016-01-19_20:02:39 PM_WaschmaschineWatt 5.76
    2016-01-19_20:03:05 PM_WaschmaschineWatt 65.41
    2016-01-19_20:03:13 PM_WaschmaschineWatt 5.58
    2016-01-19_20:03:19 PM_WaschmaschineWatt 5.78
    2016-01-19_20:03:38 PM_WaschmaschineWatt 52.82
    2016-01-19_20:03:46 PM_WaschmaschineWatt 5.81
    2016-01-19_20:04:12 PM_WaschmaschineWatt 66.31
    2016-01-19_20:04:20 PM_WaschmaschineWatt 5.75
    2016-01-19_20:04:45 PM_WaschmaschineWatt 54.75
    2016-01-19_20:04:53 PM_WaschmaschineWatt 5.85
    2016-01-19_20:05:19 PM_WaschmaschineWatt 66.04
    2016-01-19_20:05:27 PM_WaschmaschineWatt 5.79
    2016-01-19_20:05:38 PM_WaschmaschineWatt 5.93
    2016-01-19_20:05:52 PM_WaschmaschineWatt 63.63
    2016-01-19_20:06:00 PM_WaschmaschineWatt 5.82
    2016-01-19_20:06:26 PM_WaschmaschineWatt 67.72
    2016-01-19_20:06:34 PM_WaschmaschineWatt 5.78
    2016-01-19_20:06:59 PM_WaschmaschineWatt 62.55
    2016-01-19_20:07:07 PM_WaschmaschineWatt 5.79
    2016-01-19_20:07:24 PM_WaschmaschineWatt 17.07

    Eine Idee wie man das lösen könnte?

    1. Hatte mich nicht getraut, dies vorzuschlagen 😉

      Wenn man darauf wartet, dass die Maschine fertig ist, benötigt man den Knitterschutz nicht (man holt die Wäsche ja direkt raus). Wenn man die Maschine morgens einschaltet und sowieso erst mehrere Stunden später wieder nach Hause kommt, ist eigentlich klar, dass die Wäsche fertig ist (und man benötigt die Benachrichtigung nicht).

    2. Ich habe nun auch direkt nach dem Einbinden der Waschmaschine dieses Problem bei unserer Miele beobachtet. Dadurch kommt die PushNachricht 35 Minuten verzögert.

      Ich wäre dennoch daran Interessiert das Problem zu lösen ohne den Knitterschutz auszuschalten. Habe aber so gar keine Idee. Ich habe schon mit dem average Modul die Durchschnittswerte dem Device hinzugefügt aber ich glaube das bringt mich nicht wirklich weiter.

      Irgendeine Idee wie der Knitterschutz zuverlässig erfasst werden kann?

  78. Hallo, bin in Sachen Fhem Anfänger. Bis jetzt Rolladensteuerung hinbekommen.
    Möchte gerne jetzt auch die Waschmschine mit integrieren, habe auch soweit per markieren und einfügen alles übernommen. HomeMatic 130248 Zwischenstecker-Schaltaktor mit Leistungsmessung lässt sich schalten und bei laufender Waschmschine sehe ich auch alle Werte und der Watchdog versetzt auch die Waschmaschine in Standby leider bekomme ich keine Pushnachricht von Pushover.
    Auf der Seite von Pushover angemeldet und getestet, an was kann es liegen.
    Bitte um Hilfe.
    Danke

  79. Hallo Jörg,

    vielen Dank für diese Anleitung. Allerdings finde ich meinen Fehler nicht. Mein Dummy WaschmachineHoherVerbrauch ändert seinen Status nicht. Daher funktionieren natürlich dann auch die nach gelagerten Funktionen nicht. Anbei mal der Auszug aus der Konfig.
    Über einen Tip würde ich mich freuen.

    Vielen Dank und weiter so

    define Leistungsmesser_02_WattSet notify Leistungsmesser_02_Pwr {my $power =ReadingsVal(“Leistungsmesser_02_Pwr”,”power”,””);; fhem (“set Leistungsmesser_02_Watt $power”)}
    attr Leistungsmesser_02_WattSet room Bad

    #Dummy WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
    define WaschmaschineBetriebAn notify Waschmaschine_Pwr:power.* {fhem (“set WaschmaschineBetrieb on;; setstate WaschmaschineAutoOff defined”) if (ReadingsVal(“Waschmaschine_Pwr”,”power”,””) >= 30 && Value(“WaschmaschineBetrieb”) ne “on”)}
    attr WaschmaschineBetriebAn room Bad
    #Dummy WaschmaschineHoherVerbrauch definieren
    define WaschmaschineHoherVerbrauch dummy
    attr WaschmaschineHoherVerbrauch event-on-change-reading state
    attr WaschmaschineHoherVerbrauch room Bad

    #Dummy WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 5 Watt bei laufendem Betrieb
    define WaschmaschineHoherVerbrauchAn notify Waschmaschine_Pwr:power.* {fhem (“set WaschmaschineHoherVerbrauch on;; setstate WaschmaschineAutoStandby defined”) if (ReadingsVal(“Waschmaschine_Pwr”,”power”,””) > 5 && Value(“WaschmaschineBetrieb”) eq “on”)}
    attr WaschmaschineHoherVerbrauchAn room Bad
    #Dummy WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 5 Watt bei laufendem Betrieb
    define WaschmaschineHoherVerbrauchAus notify Waschmaschine_Pwr:power.* {fhem (“set WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“Waschmaschine_Pwr”,”power”,””) <= 5 && Value("WaschmaschineBetrieb") eq "on")}
    attr WaschmaschineHoherVerbrauchAus room Bad

    #Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter obigem Schwellwert (5 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
    define WaschmaschineAutoStandby watchdog WaschmaschineHoherVerbrauch:off 00:05 WaschmaschineHoherVerbrauch:on set WaschmaschineBetrieb standby
    attr WaschmaschineAutoStandby regexp1WontReactivate 1
    attr WaschmaschineAutoStandby room Bad

  80. Toller Beitrag!
    Ich stehe gerade vor einem kleinem Problem. HR.Waschmaschine nimmt nur den Status ON & OFF an. Für mein TabletUI würde ich aber auch den Status “standby” benötigen. Auch wenn ich mit HR.Waschmaschine nur das ein und ausschalten durchführen kann,gibt es eine Möglichkeit sich den standby Status dort anzeigen zu lassen. Somit könnte ich im TabletUI über ein Symbol alle 3 Status ablesen und für diese drei unterschiedliche Farben definieren. Dank

  81. Hallo Jörg,

    ich wollte ebenfalls den oben genannten Beitrag umsetzen – bekomme aber nicht den gewünschten Effekt.

    Ich habe alles gemäß der Anleitung durchgeführt (Umbenennungen/Räume usw.)

    Allerding wird folgendes ausgegeben:

    HR.Waschmaschine on on off
    HR.Waschmaschine_Power 0.18

    dummy
    HR.WaschmaschineBetrieb ???
    HR.WaschmaschineWatt ???

    Die ??? werden nicht mit leben gefüllt, wenn die Powerwerte sich ändern.

    Kannst du mir eine Hilfestellung geben?

    Gruß
    Frank

  82. Hallo Jörg ,
    erst einmal Danke für deinen Super Blog . Hat mir bei der Einrichtung von Fhem sehr geholfen. Nun möchte ich auch meine Waschmaschine überwachen. Den Code hast Du ja mit DOIF schon ordendlich verkürzt. Nun habe ich ein Verständnisproblem : Wird die Pushmeldung ” Fertig ” nicht laufend abgesetzt solange die Leistungsaufnahme <3 Watt ist ? D.h. auch bei ausgeschalteter Maschine ? Würde mich über eine Info freuen , bevor ich das Projekt starte .

    1. Hi Dieter,
      gerade nochmal getestet. Funktioniert 1a. Die Pushmitteilung kommt nur einmal, sobald der Schwellwert von 5 Watt für den angegebenen Zeitraum von 300 Sekunden unterschritten wird. Bleibt der Wert dann unter dem Schwellwert, werden keine weiteren Push-Mitteilungen verschickt.

      Du kannst das auch einfach mit einem Dummy vorab testen.

      Trag in die fhem.cfg ein:

      define HR.Waschmaschine_Power dummy
      attr HR.Waschmaschine_Power room Test

      define HR.WaschmaschineBetrieb DOIF ([HR.Waschmaschine_Power:power]>30) DOELSEIF ([HR.Waschmaschine_Power:power]<5)
      attr HR.WaschmaschineBetrieb wait 3:6
      attr HR.WaschmaschineBetrieb cmdState on|off
      attr HR.WaschmaschineBetrieb room Test

      Dann machst du in einem zweiten Tab den "Event monitor" (im FHEM Webinterface links unten) auf, um dort die Nachrichten gleich kontrollieren zu können. Im ersten Tab setzt du dann in der FHEM-Kommandozeile den Befehl ab:

      setreading HR.Waschmaschine_Power power 100

      Nach 3 Sekunden sollte dann im Event-Monitor (zweiter Tab) der Eintrag "DOIF HR.WaschmaschineBetrieb on" erscheinen.
      Setzt du daraufhin den FHEM-Konsolenbefehl (Tab 1)

      setreading HR.Waschmaschine_Power power 1

      ab, sollte sechs Sekunden später im Event-Monitor (Tab 2) der Eintrag "DOIF HR.WaschmaschineBetrieb off" auftauchen. Dann kannst du natürlich versuchen weitere Befehle abzusetzen mit Werten, die den Schwellwert unterschreiten. Es sollten aber keine weiteren DOIF-Einträge mehr im Event-Monitor auftauchen. Entsprechend werden dann auch keine doppelten Pushover-Benachrichtigungen abgesetzt.

      Hoffe das hilft dir weiter.

      Grüße und viel Erfolg bei der Umsetzung
      Jörg

  83. Guten Abend,
    vielen Dank für die super Anleitung.
    Ich habe das soweit für mein Gerät (Fibaro WallPlug) angepasst. Es wird alles so gemacht, wie es beschrieben ist, bis auf den letzten Watchdog, der das Gerät ausschalten soll. Es geht das Gerät nicht aus und der Dummy Betrieb springt nicht von standby auf off.
    Mein Code dazu sieht wie folgt aus:

    #WallPlug.right 15 Minuten nach dem letzten Waschgang vom Strom trennen
    define WallPlug.rightAutoOff watchdog WallPlug.rightBetrieb:standby 00:03 WallPlug.rightBetrieb:on set WallPlug.right off set WallPlug.rightBetrieb off
    attr WallPlug.rightAutoOff regexp1WontReactivate 1
    attr WallPlug.rightAutoOff room test

    Ich habe spaßeshalber mal den Teil “set WallPlug.right off” aus der DEF des watchdogs herausgenommen und dann sprang zumindest der Status des Betriebs von standby auf off. Demnach dachte ich, dass es an dem Teil in den Anführungszeichen liegt, wenn ich den aber in der Kommandozeile eingebe, geht das Gerät aus. Das ergibt für mich keinen Sinn, hat vielleicht jemand das selbe Gerät und eine Lösung?

    1. Hallo Jörg,
      vielen Dank für den Tipp.

      Müsste das dann so aussehen?

      define WallPlug.rightBetrieb DOIF ([WallPlug.right:power]>30) DOELSEIF ([WallPlug.right:power]<5) (set WallPlug.right off)
      attr WallPlug.rightBetrieb wait 60:120
      attr WallPlug.rightBetrieb cmdState on|off
      attr WallPlug.rightBetrieb room test

      Wie würde ich es dann machen, dass auch die Steckdose aus geht, da momentan ja nur der Status des WallPlug.rightBetrieb gesetzt werden würde.
      Müsste ich dann noch zu der Funktion die letzte Klammer, (set WallPlug.right off), hinzufügen, damit auch die Steckdose ausgeht?

      Heißt das dann auch, dass die beiden watchdogs AutoOff und AutoStandby, sowie die dummys hoherverbrauchan/aus wegfallen würden?

    2. Hi Marius,
      ich überblicke jetzt ehrlich gesagt nicht so ganz, was du eigentlich genau machen willst.
      Du brauchst jedenfalls nach dem DOIF und vor dem DOELSEIF noch eine Anweisung, richtig. So kann es aussehen:

      define WallPlug.rightBetrieb DOIF ([WallPlug.right:power]>30) (set WallPlug.right on) DOELSEIF ([WallPlug.right:power]<5) (set WallPlug.right off)
      attr WallPlug.rightBetrieb wait 60:120
      attr WallPlug.rightBetrieb cmdState on|off
      attr WallPlug.rightBetrieb room test

      Das macht aktuell aber nur bedingt Sinn, da der WallPlug.right ja bereits eingeschaltet ist, wenn der Verbrauch größer als 30 Watt ist. Aber egal, das sollte dennoch funktionieren.

      Die DOIF-Funktion löst die Watchdogs und alles weitere ab, richtig.

      Grüße
      Jörg

      PS: Die DOIF-Funktion ist übrigens in der FHEM-Commandref sehr ausführlich erklärt. Vielleicht kannst du dich hier auch noch mehr einlesen, um das Konstrukt besser zu verstehen (müssste ich auch mal machen :-). Insgesamt kommt man wohl nie umhin selbst damit zu experimentieren…

    3. Sehr gut, das nimmt aus der ganzen Sache ein wenig Komplexität raus. Ich probiere das die Tage mal aus und berichte dann über das Ergebnis.

  84. Hallo Jörg,

    ich hatte dich schon mal am 21.02.16 mit der Bitte um Hilfestellung angeschrieben.

    Ich wollte ebenfalls den oben genannten Beitrag umsetzen – bekomme aber nicht den gewünschten Effekt.

    Ich habe alles gemäß der Anleitung durchgeführt (Umbenennungen/Räume usw.)

    Allerding wird folgendes ausgegeben:

    HR.Waschmaschine on on off (Ein/Aus i.O)
    HR.Waschmaschine_Power 0.18 (Richtiger Wert wird angezeigt)

    dummy
    HR.WaschmaschineBetrieb ???
    HR.WaschmaschineWatt ???

    Die ??? werden nicht mit Leben gefüllt, wenn die Powerwerte sich ändern.

    Kannst du mir eine Hilfestellung geben?

    Gruß
    Frank

    1. Welche Komponenten setzt du genau ein? Auch wäre ein Auszug der Log-Datei nicht schlecht, da man hier oftmals recht gut erkennen kann, was schief läuft.

  85. Hallo Jörg,

    danke für die Rückmeldung.

    Ich verwende die Homematic Funksteckdose in Verbindung mit einem CUL. Die Logdatei kann ich gerne heute Abend zusenden.

    Frank

  86. Hallo Jörg,

    nach dem ich meine Grippe überstanden habe nun die Auffälligkeiten im Log.

    2016.03.01 16:31:08 3: set HR.WaschmaschineWatt : no set value specified
    2016.03.01 16:31:08 3: HRWaschmaschineWattSet return value: no set value specified
    2016.03.01 16:31:28 3: set HR.WaschmaschineWatt : no set value specified
    2016.03.01 16:31:28 3: HRWaschmaschineWattSet return value: no set value specified
    2016.03.01 16:31:36 3: set HR.WaschmaschineWatt : no set value specified
    2016.03.01 16:31:36 3: HRWaschmaschineWattSet return value: no set value specified

    Gruß
    Frank

  87. Hi Jörg,

    super Anleitung :). ich habe allerdings das Problem das der Dummy Waschmaschine Betrieb nicht in standby/off geht obwohl der Watt Verbrauch dauerhaft unten ist:

    define HM_331D1B CUL_HM 331D1B
    attr HM_331D1B IODev HMLANHOME1
    attr HM_331D1B actCycle 000:10
    attr HM_331D1B actStatus alive
    attr HM_331D1B autoReadReg 4_reqStatus
    attr HM_331D1B expert 2_full
    attr HM_331D1B firmware 1.6
    attr HM_331D1B model HM-ES-PMSw1-Pl
    attr HM_331D1B room CUL_HM
    attr HM_331D1B serialNr LEQ0928871
    attr HM_331D1B subType powerMeter
    attr HM_331D1B webCmd getConfig:clear msgEvents
    define FileLog_HM_331D1B FileLog ./log/HM_331D1B-%Y.log HM_331D1B
    attr FileLog_HM_331D1B logtype text
    attr FileLog_HM_331D1B room CUL_HM
    define Waschmaschine CUL_HM 331D1B01
    attr Waschmaschine model HM-ES-PMSw1-Pl
    attr Waschmaschine peerIDs 00000000,
    define Waschmaschine_Power CUL_HM 331D1B02
    attr Waschmaschine_Power model HM-ES-PMSw1-Pl
    define HM_331D1B_SenPwr CUL_HM 331D1B03
    attr HM_331D1B_SenPwr model HM-ES-PMSw1-Pl
    attr HM_331D1B_SenPwr peerIDs 00000000,
    define HM_331D1B_SenI CUL_HM 331D1B04
    attr HM_331D1B_SenI model HM-ES-PMSw1-Pl
    attr HM_331D1B_SenI peerIDs 00000000,
    define HM_331D1B_SenU CUL_HM 331D1B05
    attr HM_331D1B_SenU model HM-ES-PMSw1-Pl
    attr HM_331D1B_SenU peerIDs 00000000,
    define HM_331D1B_SenF CUL_HM 331D1B06
    attr HM_331D1B_SenF model HM-ES-PMSw1-Pl
    attr HM_331D1B_SenF peerIDs 00000000,
    define ActionDetector CUL_HM 000000
    attr ActionDetector event-on-change-reading .*
    attr ActionDetector model ActionDetector
    define WaschmaschineWatt dummy
    attr WaschmaschineWatt room Keller
    define WaschmaschineWattSet notify Waschmaschine_Power {my $power =ReadingsVal(“Waschmaschine_Power”,”power”,””);; fhem (“set WaschmaschineWatt $power”)}
    define WaschmaschineBetrieb dummy
    attr WaschmaschineBetrieb event-on-change-reading state
    attr WaschmaschineBetrieb room Keller
    define WaschmaschineHoherVerbrauch dummy
    attr WaschmaschineHoherVerbrauch event-on-change-reading stat
    attr WaschmaschineHoherVerbrauch room Keller
    define WaschmaschineHoherVerbrauchAn notify Waschmaschine_Power:power.* {fhem (“set WaschmaschineHoherVerbrauch on;; setstate WaschmaschineAutoStandby defined”) if (ReadingsVal(“Waschmaschine_Power”,”power”,””) > 25 && Value(“WaschmaschineBetrieb”) eq “on”)}
    define WaschmaschineHoherVerbrauchAus notify Waschmaschine_Power:power.* {fhem (“set WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“Waschmaschine_Power”,”power”,””) <= 25 && Value("WaschmaschineBetrieb") eq "on")}
    define WaschmaschineAutoStandby watchdog WaschmaschineHoherVerbrauch:off 00:05 WaschmaschineHoherVerbrauch:on set WaschmaschineBetrieb standby
    attr WaschmaschineAutoStandby regexp1WontReactivate 1
    attr WaschmaschineAutoStandby room Keller

    Hoffe du kannst mir ein paar Tipps geben.

    Gruß
    Steffen

  88. Mich hat für den Waschmaschinen-Switch noch gestört, dass hier die Glühbirne angezeigt wird. Ein

    attr devStateIcon on:scene_washing_machine@green off:scene_washing_machine@red

    schafft Abhilfe

  89. Hallo Jörg,

    erstmal vielen Dank für deine tollen Anleitungen. Das Thema mit der Waschmaschine hat bei mir genau einen wunden Punkt getroffen.

    Ich habe alles umgesetzt, funktioniert (theoretisch) auch super.

    Allerdings habe ich das Problem dass es weder mit einer Fritz!Powerline Dose (Leistung der Waschmaschine zu hoch) noch mit der Homematic Steckdose (Reichweiter zu gering in Verbindung mit einem CUL) funktioniert. Hat noch jemand eine Idee für ein anderes Device?
    Wie sind denn die Erfahrungen mit dem HMLAN Adapter, ist hier die Reichweiter höher als mit nem CUL?

    Gruß
    Markus

  90. Ich stehe gerade irgenwie auf dem Schlauch 😀 Kann es sein das sich die Bezeichnungen geändert haben? Hier ein Auszug aus meiner FHEM.cfg:

    define HM_338F90 CUL_HM 338F90
    attr HM_338F90 IODev HMLAN
    attr HM_338F90 actCycle 000:10
    attr HM_338F90 actStatus alive
    attr HM_338F90 autoReadReg 4_reqStatus
    attr HM_338F90 expert 2_raw
    attr HM_338F90 firmware 1.6
    attr HM_338F90 model HM-ES-PMSw1-Pl
    attr HM_338F90 room CUL_HM
    attr HM_338F90 serialNr LEQ1344810
    attr HM_338F90 subType powerMeter
    attr HM_338F90 webCmd getConfig:clear msgEvents
    define FileLog_HM_338F90 FileLog ./log/HM_338F90-%Y.log HM_338F90
    attr FileLog_HM_338F90 logtype text
    attr FileLog_HM_338F90 room CUL_HM
    define CUL_HM CUL_HM 338F9001
    attr CUL_HM model HM-ES-PMSw1-Pl
    attr CUL_HM peerIDs 00000000,
    define HM_338F90_Pwr CUL_HM 338F9002
    attr HM_338F90_Pwr model HM-ES-PMSw1-Pl
    define model CUL_HM 338F9003
    attr model model HM-ES-PMSw1-Pl
    attr model peerIDs 00000000,
    define HM_338F90_SenI CUL_HM 338F9004
    attr HM_338F90_SenI model HM-ES-PMSw1-Pl
    attr HM_338F90_SenI peerIDs 00000000,
    define HM_338F90_SenU CUL_HM 338F9005
    attr HM_338F90_SenU model HM-ES-PMSw1-Pl
    attr HM_338F90_SenU peerIDs 00000000,
    define HM_338F90_SenF CUL_HM 338F9006
    attr HM_338F90_SenF model HM-ES-PMSw1-Pl
    attr HM_338F90_SenF peerIDs 00000000,
    define ActionDetector CUL_HM 000000
    attr ActionDetector event-on-change-reading .*
    attr ActionDetector model ActionDetector

  91. Noch als Anregung: ich hatte bei verwendung des skripts mit ReadingsVal einen ziemlich vollen Log mit Meldungen wie: PERL WARNING: Argument “0.18 W” isn’t numeric in numeric gt (>) at (eval 2653328) line 1.

    Die Lösung des Problems findet man hier:
    https://forum.fhem.de/index.php?topic=56872.0

    ReadingsNum statt ReadingsVal verwenden, dann klappts auch mit dem numeric.

  92. Hallo Zusammen,

    ich verwende PCA301 Adapter um den Verbrauch zu messen. Den Verbrauch bekomme ich in der Oberfläche auch angezeigt.

    Ich möchte das Beispiel mit der Waschmaschine umsetzen bin aber bisher gescheitert. Die Variablen:
    WaschmaschineBetrieb
    WaschmaschineHoherVerbrauch
    WaschmaschineWatt
    werden leider nie gefüllt.

    Untenstehenden Code habe ich in der Config.

    Bin für jeden Tipp dankbar 🙂

    Viele Grüße
    Michael

    attr Waschmaschine_Power room Hauswirtschaftsraum
    #Dummy WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
    define WaschmaschineWatt dummy
    attr WaschmaschineWatt room Hauswirtschaftsraum

    #Dummy WaschmaschineWatt mit Werten versorgen
    define WaschmaschineWattSet notify Waschmaschine_Power {my $power =ReadingsVal(“Waschmaschine_Power”,”power”,””);; fhem (“set WaschmaschineWatt $power”)}

    #Dummy WaschmaschineBetrieb definieren
    define WaschmaschineBetrieb dummy
    attr WaschmaschineBetrieb event-on-change-reading state
    attr WaschmaschineBetrieb room Hauswirtschaftsraum

    #Dummy WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
    define WaschmaschineBetriebAn notify Waschmaschine_Power:power.* {fhem (“set WaschmaschineBetrieb on;; setstate WaschmaschineAutoOff defined”) if (ReadingsVal(“Waschmaschine_Power”,”power”,””) >= 5 && Value(“WaschmaschineBetrieb”) ne “on”)}

    #Dummy WaschmaschineHoherVerbrauch definieren
    define WaschmaschineHoherVerbrauch dummy
    attr WaschmaschineHoherVerbrauch event-on-change-reading state
    attr WaschmaschineHoherVerbrauch room Hauswirtschaftsraum

    #Dummy WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 5 Watt bei laufendem Betrieb
    define WaschmaschineHoherVerbrauchAn notify Waschmaschine_Power:power.* {fhem (“set WaschmaschineHoherVerbrauch on;; setstate WaschmaschineAutoStandby defined”) if (ReadingsVal(“Waschmaschine_Power”,”power”,””) > 5 && Value(“WaschmaschineBetrieb”) eq “on”)}

    #Dummy WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 5 Watt bei laufendem Betrieb
    define WaschmaschineHoherVerbrauchAus notify Waschmaschine_Power:power.* {fhem (“set WaschmaschineHoherVerbrauch off”) if (ReadingsVal(“Waschmaschine_Power”,”power”,””) <= 5 && Value("WaschmaschineBetrieb") eq "on")}

    #Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter obigem Schwellwert (5 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
    define WaschmaschineAutoStandby watchdog WaschmaschineHoherVerbrauch:off 00:05 WaschmaschineHoherVerbrauch:on set WaschmaschineBetrieb standby
    attr WaschmaschineAutoStandby regexp1WontReactivate 1
    attr WaschmaschineAutoStandby room Hauswirtschaftsraum

Schreibe einen Kommentar zu Jonny Antworten abbrechen

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

Das könnte dir auch gefallen