HomeMatic Funk-Steckdose mit Leistungsmessung: Deine Waschmaschine ist fertig
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 (16808 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
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.
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… 🙂
Hey Jörg,
super artikel… kurze frage woher beziehst du den den HM-ES-PMSw1-PI ? ich find den nirgends wo zu kaufen..
grüße
Dom
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…
Jetzt ist der Schaltaktor mit Leistungsmessung (Affiliate-Link) wieder verfügbar.
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
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
Super,
freut mich, dass es jetzt klappt!
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
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
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.
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
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
Hi Jörg, danke für die fixe Reaktion. Werde testen und rückmelden! Gruß
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
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
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
Hi Deinjo,
die Leistungsaufnahme der HomeMatic Funk-Steckdose (gemessen mit dem Technoline Cost Control?tag=meintechblog-140117-21″ target=”_blank” rel=”nofollow”>Technoline Cost Control (Affiliate-Link)) liegt bei unter einem Watt.
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?
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
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
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
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…
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
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
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
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.
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!
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
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ß!
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
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
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
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. 😉
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
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
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
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!
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
Nachdem ich den Code anders eingerückt habe
bekomme ich jetzt ein
Usage: define notify -1 Usage: define notify -1
beim abspeichern im Webfrontend
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
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?
Jep!
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
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
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
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
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.
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
Beim nächsten waschen gebe ich dir Bescheid
danke
Hi Jörg
Bekomme jetzt diese Meldung im Log
set HR.WaschmaschineHoherVerbrauch on; setstate HRWaschmaschineHoherVerbrauchAutoStandby defined : Please define HRWaschmaschineHoherVerbrauchAutoStandby first
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
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
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?
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
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?
Was bekommst du genau angezeigt (Copy&Paste), wenn du “update” ENTER eingibst?
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?
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!
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
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
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
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
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
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
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
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 ?
Hab mal einen Neustart der 7390 gemacht nun gehts soweit …
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?
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…
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ß
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
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
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
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”)}
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)
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
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.
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
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 ?
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 🙂
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
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 ””)}
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
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. 🙂
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.
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
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
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
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”.
Hmmm, schon mal mit einem FHEM-Update versucht? Evtl. ist die eingesetzte Version bzw. die darin enthaltenen Pakete noch nicht aktuell genug…
Doch alles Aktuell. Kann es daran liegen das es set WK.Waschmaschine_Betrieb off heißen muß und nicht set WK.WaschmaschineBetrieb off?
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
Hab es gefunden, das Update von FHEM hat gefehlt… 😉
Vielen Dank für diese Anleitung, nach genau diesem Fall habe ich gesucht! 🙂
Viele Grüße
Bernd
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
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.'")}
Super, dass es mittlerweile geklappt hat! Viel Spaß mit der Lösung, ich möchte sie jedenfalls nicht mehr missen… 🙂
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
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
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
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.
Krass, welche Funktionen nach und nach in FHEM verfügbar sind… Danke für den Hinweis!
Könntest Du mal den ganzen Code posten und sagen welche Notifier und Watchdogs dadurch gelöscht werden? Das wäre sehr nett. Danke.
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
****
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 …
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!
Klingt echt praktisch, danke für den Hinweis!
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
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!
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
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
Das ist lediglich ein Hinweis, der durch die Angabe der Einheit (Watt/W) erzeugt wird.
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
Hi Stefan,
super, das freut mich zu hören!
Grüße
Jörg
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.
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.
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
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
Sorry noch was vergessen zu schreiben.
Der Dummy „HR.WaschmaschineBetrieb“ bleibt ständig auf „ON“.
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
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.
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
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.
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
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!
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
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.
Danke für den Hinweis! Habe die Info im Blogpost vermerkt.
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
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!')};;\
}
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
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.
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.
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
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
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
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
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
Hiho,
sollte es mittlerweile durch die DOIF Funktion nicht noch einfacher gehen diese Geschichte darzustellen?
Gruß
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.
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?
Ok hat sich erledigt, warum auch immer ist das log nun leer.
Mal schaun wie es wieder ist wenn gewaschen wird.
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.
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
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
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.
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
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
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.
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
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
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.
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”)}
In der letzten Zeile sehe ich nur “…) 5 && Value(…”.
Da fehlt der Vergleichsoperator: ein Kleiner-Zeichen (<) oder ein Kleiner-Gleich-Zeichen (<=).
Komisch bei mir steht dort in der Fhem.cfg <= mit drin.
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.
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.
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
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
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
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?
Hi Dani,
vielleicht hilft dir ja der HomeMatic Repeater (Affiliate-Link) weiter.
Grüße
Jörg
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
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
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
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?
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
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 ''")}
Ich werde es mal ausprobieren – Danke!
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.
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
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?
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
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
Hatte auch keine Werte, die ausgegeben werden .. habe gesehen, dass oben im Code ein ;; fehlt .. quasi ;; fhem dann funktioniert es
Danke für die Info! Habe es im Blogpost berichtigt.
Grüße
Jörg
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”)}
Danke!
Ebenfalls korrigiert.
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
Hallo Chris
Kommando zurück jetzt funzt es.
Danke nochmal
Gruß Ole
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
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?
Problem gelöst. Habe den Knitterschutz deaktiviert.
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).
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?
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
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
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
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
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 .
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
Hallo Jörg ,
das ging ja super schnell . Danke werde es mal gleich mal testen !
Hallo Jörg , funktioniert !! Super Danke nochmal .
Gruß Dieter
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?
Hi Marius,
versuche mal die neue Variante per DOIF. Denke hier solltest du schnell zum Ziel gelangen.
Viele Grüße
Jörg
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?
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…
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.
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
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.
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
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
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
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
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
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
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.
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