Gelöst! Siehe nächsten Post.
Hallo,
ich würde gerne das Skript aus diesem Blogeintrag umsetzen:
http://www.meintechblog.de/2014/01/homematic-funk-steckdose-mit-leistungsmessung-deine-waschmaschine-ist-fertig/ (http://www.meintechblog.de/2014/01/homematic-funk-steckdose-mit-leistungsmessung-deine-waschmaschine-ist-fertig/)
Ich habe mich jedoch für die DECT 200 Steckdose von AVM entschieden, da ich so vorerst keinen CUL benötige.
In der Anleitung wurde es mit CUL und einer HM-ES-PMSw1-PI umgesetzt.
Leider ist es mir bisher nicht gelungen das Skript auf meine Konfig anzupassen.
Probleme bereitet mir vorallem das autocreate der DECT 200 und Unklarheiten an einigen Stellen des Skriptes (was ich wie für mich anpassen muss).
Mein Background ist zwar elektrotechnischer Natur, jedoch besitze ich keine tiefen Linux/Perl Kentnisse.
Über die fhem-reference bin ich auch schon gefolgen, jedoch ist Sie für mich als Einsteiger leider etwas zu "hoch".
So nun zu meinen konkreten Fragen zum Skript.
Dort heißt es:
#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
Bei mir wid die DECT 200 immer per autocreate als FBDECT_16 erstellt.
Ein rename hatte zur Folge, dass die ganzen per autocreate erstellten Einträge (wie Plots) nicht mehr funktionierten.
Ich bin über die copy Funktion in der Doku gestoßen.
Liege ich richtig, dass ich meinen code so anpassen müsste?
copy FBDECT_16 HR.Waschmaschine
attr HR.Waschmaschine room Hauswirtschaftsraum
Ist eine Kopie des Gerätes ein legitimer Weg oder kann es Probleme geben?
Bzw. gibt es andere Möglichkeiten das Problem mit der "Kollision" von autocreate und dem rename-Befehl zu umgehen?
Als nächstes wird in der Anleitung der Channel Power umbenannt.
Da ich ja keinen CUL einsetze ist mir hier nicht klar, wie ich mit dem "Channel" umgehen soll.
#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
Gibt es diesen "Channel" bei der DECT 200 auch und wenn ja wie müsste dann die entsprechende Codezeile aussehen?
Wird dieser Channel evtl. schon per autocreate erzeugt oder muss man diesen "Channel" selbst erstellen/zuweisen?
Im weiteren Verlauf des Skriptes wird ja immer wieder auf diesen "Channel" zugegriffen.
Im einem Kommentar unterhalb des Blogeintrages steht für die DECT 200 weiter, um den Leistungswert abzufragen:
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")}
Im Vergleich zum HM-ES-PMSw1-PI:
#Dummy HR.WaschmaschineWatt mit Werten versorgen
define HRWaschmaschineWattSet notify HR.Waschmaschine_Power {my $power =ReadingsVal("HR.Waschmaschine_Power","power","");; fhem ("set HR.WaschmaschineWatt $power")}
Wieso steht bei der DECT 200 hinter notify HR.Waschmaschine und nicht HR.Waschmaschine_Power wie bei der HomeMatic? Ist das ein evtl. ein Fehler?
Dann noch eine "allgemeine" Frage zum Aufbau folgenden Befehls:
define HRWaschmaschineBetriebAus notify HR.Waschmaschine_Power:power.* {fhem ("set HR.WaschmaschineBetrieb standby") if (ReadingsVal("HR.Waschmaschine_Power","power","") <= 5 && Value("HR.WaschmaschineBetrieb") eq "on")}
HRWaschmaschineBetriebAn ist ein willkürlicher name der irrelevant ist?! (Wird später sonst nie verwendet)
Gehe davon aus weil ja alles in den geschweiften Klammern passiert, also HR.WaschmaschineBetrieb wird gesetzt if...
Was bedeutet denn aufgeschlüsselt dieser Teil?:
HR.Waschmaschine_Power:power.*
HR.Waschmaschine_Power ist ja unser umbenannter Channel, zumindest beim CUL. ;-)
ist power dann das Reading? Und wieso die Verknüpfung mit : und dann nach power das ".*"?
Das sind bisher die Punkte, welche mir Kopfzerbrechen bereiten.
Ich wäre sehr dankbar, wenn mir jemand die Fragen beantworten könnte bzw. bei der Abänderung des Skriptes für die DECT 200 helfen könnte.
Ganz logisch erschließen sich die ganze Befehle für mich nämlich leider noch nicht. Also ich verstehe zu 90 % die Funktionen, die realisiert werden, aber den Transfer bekomme ich ehrlich zugegeben nicht hin.
Ist ein wirklich sehr langer Eintrag geworden, aber ich hoffe so sind die Fragen verständlich und ihr seht, dass ich mir wenigstens schon Gedanken über den Code gemacht habe und nicht einfach nach der Lösung frage.
MfG
Daniel
Habe mich noch einmal hingesetzt und mit diesem Code funktioniert es.
Wobei meine Waschmachine ein Trockner ist, daher die Pushover Nachricht ;D
Werde es später noch ändern.
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:00:05 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 'Trockner fertig!' 'Bitte leeren.'")}
Hallo Daniel,
habe das überarbeitete Script gerade gefunden und eingebaut.
Hat bei mir auch super funktioniert mit meiner Fritz Steckdoese.
Musste den Schwellwert des Verbrauchs auf 2 Watt anpassen. Unsere Waschmaschine geht immer wieder auf 3 Watt oder darunter während des Waschvorgangs (siehe Screenshot).
Habe das Script auch noch ein wenig leserlicher gestaltet. Hier geht es aber nur um das Aussehen/Lesbarkeit und wollte euch das nicht vorenthalten ;-)
(//)
#########################################################################
## Waschmaschine
#########################################################################
#Dummy UG.WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
define UG.WaschmaschineWatt dummy
attr UG.WaschmaschineWatt room Keller
define NTFY_UGWaschmaschineWattSet notify UG.Waschmaschine {\
my $power_w=ReadingsVal("UG.Waschmaschine","power","");;\
my $power=substr($power_w, 0,length($power_w)-2);;\
fhem ("set UG.WaschmaschineWatt $power");;\
}
#Dummy UG.WaschmaschineBetrieb definieren
define UG.WaschmaschineBetrieb dummy
attr UG.WaschmaschineBetrieb event-on-change-reading state
attr UG.WaschmaschineBetrieb room Keller
#Dummy UG.WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
define NTFY_UGWaschmaschineBetriebAn notify UG.Waschmaschine:power.* {\
if (ReadingsVal("UG.Waschmaschine","power","") >= 30 && Value("UG.WaschmaschineBetrieb") ne "on") {\
fhem ("set UG.WaschmaschineBetrieb on");;\
fhem ("setstate UGWaschmaschineAutoOff defined");;\
}\
}
#Dummy UG.WaschmaschineHoherVerbrauch definieren
define UG.WaschmaschineHoherVerbrauch dummy
attr UG.WaschmaschineHoherVerbrauch event-on-change-reading state
attr UG.WaschmaschineHoherVerbrauch room Keller
#Dummy UG.WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 2 Watt bei laufendem Betrieb
define NTFY_UGWaschmaschineHoherVerbrauchAn notify UG.Waschmaschine:power.* {\
if (ReadingsVal("UG.Waschmaschine","power","") > 2 && Value("UG.WaschmaschineBetrieb") eq "on") {\
fhem ("set UG.WaschmaschineHoherVerbrauch on");;\
fhem ("setstate UGWaschmaschineAutoStandby defined");;\
}\
}
#Dummy UG.WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 2 Watt bei laufendem Betrieb
define NTFY_UGWaschmaschineHoherVerbrauchAus notify UG.Waschmaschine:power.* {\
if (ReadingsVal("UG.Waschmaschine","power","") <= 2 && Value("UG.WaschmaschineBetrieb") eq "on") {\
fhem ("set UG.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 UG.WaschmaschineHoherVerbrauch:off 00:00:05 UG.WaschmaschineHoherVerbrauch:on set UG.WaschmaschineBetrieb standby
attr UGWaschmaschineAutoStandby regexp1WontReactivate 1
attr UGWaschmaschineAutoStandby room Keller
# Pushover-Notification bei abgeschlossenem Waschvorgang verschicken
define TrocknerWaschvorgangAbgeschlossenPushover notify UG.WaschmaschineBetrieb:standby {\
fhem ("set pushmsgIngo msg 'Waschmaschine' 'Ich bin fertig'");;\
}
#########################################################################
Viele Grüsse
Ingo
Hallo,
ich habe es nach deinem Beispiel versucht, leider funktioniert es bei mir nicht.
Kann es sein, das dieses Reading auch falsch funktioniert?
if (ReadingsVal("UG.Waschmaschine","power","") >= 30 && Value("UG.WaschmaschineBetrieb") ne "on")
Müstest du hier nicht auch den gekürzten Wert UG.WaschmaschineWatt verwenden?
Würde mich freuen, wenn du kurz sagen könntest wie es bei dir funktioniert.
Danke Gruß
Christian
Bekomme immer diese Meldung
}
2015.01.20 21:48:18 1: PERL WARNING: Argument "293.97 W" isn't numeric in numeric le (<=) at (eval 110448) line 2.
2015.01.20 21:48:18 3: eval: {
if (ReadingsVal("HR.Trockner","power","") <= 2 && Value("HR.TrocknerBetrieb") eq "on") {
fhem ("set HR.TrocknerHoherVerbrauch off");
}
}
Hallo,
gerade erst gelesen :-(
Schick doch mal deinen Code den du benutzt, falls du das Problem noch hast.
Ingo
Ich habe leider auch das Problem mit dem zugemüllten Log. Diese Fehlermeldungen erhalte ich für jede Funktion in dem Waschmaschienenscript.
Ein weiterer Effekt ist, dass das Log für die Steckdose FBDECT_22 nicht mehr fortgeschrieben wird. Die anderen Steckdosen aber schon.
2015.02.22 13:08:09 1: PERL WARNING: Argument "2096.55 W" isn't numeric in numeric ge (>=) at (eval 245) line 1.
2015.02.22 13:08:09 3: eval: {fhem ("set HR.WaschmaschineBetrieb on; setstate HRWaschmaschineAutoOff defined") if (ReadingsVal("HR.Waschmaschine","power","") >= 30 && Value("HR.WaschmaschineBetrieb") ne "on")}
Den Code für die Conf habe ich von oben übernommen, an meine DECT200 angepasst (22 statt 16) und die Benachrichtigung auf Pushbullet umgestellt.
#########################################################################
## Waschmaschine
#########################################################################
copy FBDECT_22 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:00:05 HR.WaschmaschineHoherVerbrauch:on set HR.WaschmaschineBetrieb standby
attr HRWaschmaschineAutoStandby regexp1WontReactivate 1
attr HRWaschmaschineAutoStandby room Hauswirtschaftsraum
define Pushover1 Pushbullet <TOKEN>
# Pushover-Notification bei abgeschlossenem Waschvorgang verschicken
define TrocknerWaschvorgangAbgeschlossenPushover notify HR.WaschmaschineBetrieb:standby {fhem ("set Pushover1 message 'Waschmaschiene / Trockner fertig!' 'Bitte leeren.'")}
#########################################################################
## Waschmaschine Ende
#########################################################################
Was ich nicht verstehe ist, dass eigentlich die Einheit Watt durch < $power=substr($power_w, 0,length($power_w)-2) > abgeschnitten wird aber anscheinend immer noch vorliegt.
Ich habe gestern bereits ein wenig mit der SPLIT Funktion
http://forum.fhem.de/index.php?topic=20876.0
herum experimentiert - leider ohne Erfolg.
Hast jemand einen Tipp wie ich es ohne Fehlermeldungen zu laufen bekomme?
Viele Grüße
@Shafhem und @yetiman, danke für die Beiträge und den Code. Hätte es als Neuling wahrscheinlich nicht alleine hinbekommen, aber dank Eurer Vorarbeit funzt es jetzt bei mir. Die Angabe 00:00:05 im Watchdog steht aber eigentlich für 5 Sekunden und nicht für 5 Minuten, oder?! Wie auch immer, es klappt.
@vw2audi und @Quincy: habt Ihr das Problem noch? Hab im Moment grade keine Zeit Euren Code anzusehen, aber vielleicht hilft es wenn Ihr mit meinem vergleicht, der wie gesagt fast komplett von Shafhem/yetiman stammt, ich habe nur in den notifys noch das Abschneiden der Watt-Einheit eingebaut und es funktioniert:
############################################################################
# Leistungsüberwachung Waschmaschine
# und Fertig-Pushmeldung START
#
# Dummy BA_Waschmaschine.Watt für die Anzeige des aktuellen Watt-Verbrauchs definieren
define BA_Waschmaschine.Watt dummy
attr BA_Waschmaschine.Watt icon scene_washing_machine
attr BA_Waschmaschine.Watt room Bad
define BA_Waschmaschine.Watt.Set.notify notify BA_Waschmaschine {\
my $power_w=ReadingsVal("BA_Waschmaschine","power","");;\
my $power=substr($power_w, 0,length($power_w)-2);;\
fhem ("set BA_Waschmaschine.Watt $power");;\
}
attr BA_Waschmaschine.Watt.Set.notify icon scene_washing_machine
# Dummy BA_Waschmaschine.Betrieb definieren
define BA_Waschmaschine.Betrieb dummy
attr BA_Waschmaschine.Betrieb event-on-change-reading state
attr BA_Waschmaschine.Betrieb icon scene_washing_machine
attr BA_Waschmaschine.Betrieb room Bad
# Dummy BA_Waschmaschine.Betrieb einschalten bei Verbrauch größer 30 Watt
define BA_Waschmaschine.Betrieb.An.notify notify BA_Waschmaschine:power.* {\
if (substr(ReadingsVal("BA_Waschmaschine","power",""), 0,length(ReadingsVal("BA_Waschmaschine","power",""))-2) >= 30 && Value("BA_Waschmaschine.Betrieb") ne "on") {\
fhem ("set BA_Waschmaschine.Betrieb on");;\
fhem ("setstate BA_Waschmaschine.AutoOff defined");;\
}\
}
attr BA_Waschmaschine.Betrieb.An.notify icon scene_washing_machine
# Dummy BA_Waschmaschine.HoherVerbrauch definieren
define BA_Waschmaschine.HoherVerbrauch dummy
attr BA_Waschmaschine.HoherVerbrauch event-on-change-reading state
attr BA_Waschmaschine.HoherVerbrauch icon scene_washing_machine
attr BA_Waschmaschine.HoherVerbrauch room Bad
# Dummy BA_Waschmaschine.HoherVerbrauch einschalten bei Verbrauch größer 2 Watt bei laufendem Betrieb
define BA_Waschmaschine.HoherVerbrauch.An.notify notify BA_Waschmaschine:power.* {\
if (substr(ReadingsVal("BA_Waschmaschine","power",""), 0,length(ReadingsVal("BA_Waschmaschine","power",""))-2) > 2 && Value("BA_Waschmaschine.Betrieb") eq "on") {\
fhem ("set BA_Waschmaschine.HoherVerbrauch on");;\
fhem ("setstate BA_Waschmaschine.AutoStandby defined");;\
}\
}
attr BA_Waschmaschine.HoherVerbrauch.An.notify icon scene_washing_machine
# Dummy BA_Waschmaschine.HoherVerbrauch ausschalten bei Verbrauch kleiner gleich 2 Watt bei laufendem Betrieb
define BA_Waschmaschine.HoherVerbrauch.Aus.notify notify BA_Waschmaschine:power.* {\
if (substr(ReadingsVal("BA_Waschmaschine","power",""), 0,length(ReadingsVal("BA_Waschmaschine","power",""))-2) <= 2 && Value("BA_Waschmaschine.Betrieb") eq "on") {\
fhem ("set BA_Waschmaschine.HoherVerbrauch off");;\
}\
}
attr BA_Waschmaschine.HoherVerbrauch.Aus.notify icon scene_washing_machine
# Wenn der Verbrauchswert für mindestens 5 Minuten bei laufendem Betrieb unter
# obigem Schwellwert (2 Watt) verbleibt, wird angenommen, dass der Waschvorgang
# tatsächlich abgeschlossen ist
define BA_Waschmaschine.AutoStandby watchdog BA_Waschmaschine.HoherVerbrauch:off 00:00:05 BA_Waschmaschine.HoherVerbrauch:on set BA_Waschmaschine.Betrieb standby
attr BA_Waschmaschine.AutoStandby icon scene_washing_machine
# Push-Notification bei abgeschlossenem Waschvorgang "Waschmaschine ist fertig"
define Waschmaschine.WaschvorgangAbgeschlossen.Pushalot.notify notify BA_Waschmaschine.Betrieb:standby { system "curl -F \"AuthorizationToken=********************************\" -F \"Body=Waschmaschine ist fertig\" https://pushalot.com/api/sendmessage"}
attr Waschmaschine.WaschvorgangAbgeschlossen.Pushalot.notify icon scene_washing_machine
#
# Leistungsüberwachung Waschmaschine
# und Fertig-Pushmeldung ENDE
############################################################################
Der Schwellwert für die Inaktivität ist bei meiner Maschine 2 Watt, die Push-Meldung geht über Pushalot (weil ich ein Windows Phone habe).
@carzl: Vielen Dank. Ich glaub jetzt läuft es.
Hi,
wäre einer so nett und könnte hier helfen:
http://forum.fhem.de/index.php/topic,44991.0.html
Danke
Hi,
möchte das Thema nochmal hoch holen, ich habe aus dem Schnipsel versucht das bei meiner DECT 200 einzubinden und bekomme es nicht ans laufen.
Kann mal jemand drüber schauen ob ich irgendwo einen Fehler drin habe, ich habe es schon mehrmals geprüft und finde nichts.
Danke
#########################################################################
## Waschmaschine
#########################################################################
copy FBDECT_Fritzbox_18 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")}
attr HRWaschmaschineWattSet room Hauswirtschaftsraum
#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 3 Watt
define HRWaschmaschineBetriebAn notify HR.Waschmaschine:power.* {fhem ("set HR.WaschmaschineBetrieb on;; setstate HRWaschmaschineAutoOff defined") if (ReadingsVal("HR.Waschmaschine","power","") >= 5 && Value("HR.WaschmaschineBetrieb") ne "on")}
attr HRWaschmaschineBetriebAn room Hauswirtschaftsraum
#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")}
attr HRWaschmaschineHoherVerbrauchAn room Hauswirtschaftsraum
#Dummy HR.WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 2 Watt bei laufendem Betrieb
define HRWaschmaschineHoherVerbrauchAus notify HR.Waschmaschine:power.* {fhem ("set HR.WaschmaschineHoherVerbrauch off") if (ReadingsVal("HR.Waschmaschine","power","") <= 2 && Value("HR.WaschmaschineBetrieb") eq "on")}
attr HRWaschmaschineHoherVerbrauchAus room Hauswirtschaftsraum
#Wenn der Verbrauchswert für mindestens 1 Minuten bei laufendem Betrieb unter obigem Schwellwert (2 Watt) verbleibt, wird angenommen, dass der Waschvorgang tatsächlich abgeschlossen ist
define HRWaschmaschineAutoStandby watchdog HR.WaschmaschineHoherVerbrauch:off 00:00:01 HR.WaschmaschineHoherVerbrauch:on set HR.WaschmaschineBetrieb standby
attr HRWaschmaschineAutoStandby regexp1WontReactivate 1
attr HRWaschmaschineAutoStandby room Hauswirtschaftsraum
# Telegram-Notification bei abgeschlossenem Waschvorgang verschicken
define WaschmaschineWaschvorgangAbgeschlossenPushover notify HR.WaschmaschineBetrieb:off {\
fhem ("set Telegram msg 'Waschmaschine' 'Ich bin fertig'");;\
}
attr WaschmaschineWaschvorgangAbgeschlossenPushover room Hauswirtschaftsraum
Falls deine Waschmaschine während des Waschvorgangs nicht auf 0,00 Watt geht, kannst du das Modul Threshold nutzen.
Bei Bedarf für den Code bitte nochmal nachfragen.
Stefan
Hi,
das schaue ich mir auch gerne an, danke.
Meine Maschine hat immer min. 2-3 Watt während dem Waschen.
Unsere Waschmaschine verbraucht im Standby 1,35 Watt. Daher habe ich den Schwellwert auf 1,5 definiert:
define th_Waschmaschine THRESHOLD <DectDevice>:power:0:1.5||||on:off|_sc
Dann das Notify für die Nachricht:
define Notify_Push_Waschmaschine notify th_Waschmaschine:off <deine PushNachricht>
Hübsch machen musst du das selber :-)
Danke, das scheint zu funktionieren.
Gerade getestet mit einer Lampe, die sogar 0 Watt im Standby hat und funktioniert trotzdem.
Muss ich dann vor dem nächsten Wasch/Schaltvorgang etwas reseten oder geht das ohne zu tun?
reset: nein, ist ja kein watchdog, sondern ein notify.
ok, ja stimmt.
Wie könnte ich denn jetzt noch sagen das die Steckdose aus gehen soll wenn sie x Minuten nach der Benachrichtigung nicht wieder genutzt wird.
Ist das auch möglich?
Dafür eignet sich ein watchdog. Macht Sinn, wenn die Waschmaschine im ausgeschalteten Zustand einen höheren Verbrauch hat. Bedeutet aber auch, dass die DECT vor einem Waschvorgang wieder eingeschaltet werden muss.
ok, das einschalten wäre ja kein Problem.
Also immer bei der nächsten Woche dann auf den Knopf an der DECT drücken und gut ist.
Hallo miteinander,
ich habe mit oben stehenden Codes meinen Code (s.u.) zur Überwachung verschiedener Geräte "gebastelt". Grundsätzlich funktioniert das auch alles, bspw. bei Waschmaschine und Spülmaschine. Leider hat aber der Trockner eine sogenannte Knitterschutzfunktion. Eientlich ist der Trocknungsvorgang fertig, er lässt aber über gefühlte Ewigkeiten immer mal wieder dir Trommel rotieren. Ein Auszug aus dem AVM-200-Log für die Leistung folgt auch noch.
1. Code
################################
## Trockner 2018-09-20
#########################################################################
## Quelle: https://forum.fhem.de/index.php/topic,26339.msg265149.html#msg265149
#########################################################################
# 9100_dev_FritzBox:11657_0094482
define 0991_dev_Trockner FBDECT 9100_dev_FritzBox:11657_0094482 powerMeter,tempSensor,switch
attr 0991_dev_Trockner IODev FritzBox_DHCP
attr 0991_dev_Trockner event-min-interval power:120
attr 0991_dev_Trockner icon scene_clothes_dryer
attr 0991_dev_Trockner room 0050 AVM DECT 200 / 210,2900 Keller
# attr 0991_dev_Trockner DbLogExclude .*
#Dummy 9970_0991_dum_Trockner_Show_Power für die Anzeige des aktuellen Watt-Verbrauchs definieren
define 9970_0991_dum_Trockner_Show_Power dummy
attr 9970_0991_dum_Trockner_Show_Power icon scene_clothes_dryer
attr 9970_0991_dum_Trockner_Show_Power room 2900 Keller,9970 Dummy
#Notify 9950_0991_not_Trockner_Watt_Set
define 9950_0991_not_Trockner_Watt_Set notify 0991_dev_Trockner {\
my $power_w=ReadingsNum("0991_dev_Trockner","power","");;\
my $power=substr($power_w, 0,length($power_w)-2);;\
fhem ("set 9970_0991_dum_Trockner_Show_Power $power")\
}
attr 9950_0991_not_Trockner_Watt_Set icon scene_clothes_dryer
attr 9950_0991_not_Trockner_Watt_Set room 2900 Keller,9950 notify
#Dummy 9970_0991_dum_Trockner_Betrieb definieren
define 9970_0991_dum_Trockner_Betrieb dummy
attr 9970_0991_dum_Trockner_Betrieb event-on-change-reading state
attr 9970_0991_dum_Trockner_Betrieb icon scene_clothes_dryer
attr 9970_0991_dum_Trockner_Betrieb room 2900 Keller,9970 Dummy
#Notify 9950_0991_not_Trockner_Betrieb
#Dummy 9970_0991_dum_Trockner_Betrieb einschalten bei Verbrauch größer 5 Watt
#Trockner ist eingeschaltet
define 9950_0991_not_Trockner_Betrieb notify 0991_dev_Trockner:power.* {\
fhem ("set 9970_0991_dum_Trockner_Betrieb on;; setstate 9970_0991_dum_Trockner_Auto_Off defined")\
if (ReadingsNum("0991_dev_Trockner","power","") >= 5 && Value("9970_0991_dum_Trockner_Betrieb") ne "on")\
}
attr 9950_0991_not_Trockner_Betrieb icon scene_clothes_dryer
attr 9950_0991_not_Trockner_Betrieb room 2900 Keller,9950 notify
#Dummy 9970_0991_dum_Trockner_Betrieb_Verbrauch definieren
define 9970_0991_dum_Trockner_Betrieb_Verbrauch dummy
attr 9970_0991_dum_Trockner_Betrieb_Verbrauch event-on-change-reading state
attr 9970_0991_dum_Trockner_Betrieb_Verbrauch icon scene_clothes_dryer
attr 9970_0991_dum_Trockner_Betrieb_Verbrauch room 2900 Keller,9970 Dummy
#Notify 9950_0991_not_Trockner_Betrieb_HoherVerbrauch_ein
#Dummy 9970_0991_dum_Trockner_Betrieb_Verbrauch einschalten bei Verbrauch größer 20 Watt bei laufendem Betrieb
#Trocknerprogramm gestartet
define 9950_0991_not_Trockner_Betrieb_HoherVerbrauch_ein notify 0991_dev_Trockner:power.* {\
fhem ("set 9970_0991_dum_Trockner_Betrieb_Verbrauch on;; setstate 0993_0991_wdg_Trockner_Standby defined")\
if (ReadingsNum("0991_dev_Trockner","power","") > 20 && Value("9970_0991_dum_Trockner_Betrieb") eq "on")\
}
attr 9950_0991_not_Trockner_Betrieb_HoherVerbrauch_ein icon scene_clothes_dryer
attr 9950_0991_not_Trockner_Betrieb_HoherVerbrauch_ein room 2900 Keller,9950 notify
#Notify 9950_0991_not_Trockner_Betrieb_HoherVerbrauch_aus
#Dummy 9970_0991_dum_Trockner_Betrieb_Verbrauch ausschalten bei Verbrauch kleiner gleich 20 Watt bei laufendem Betrieb
define 9950_0991_not_Trockner_Betrieb_HoherVerbrauch_aus notify 0991_dev_Trockner:power.* {\
fhem ("set 9970_0991_dum_Trockner_Betrieb_Verbrauch off")\
if (ReadingsNum("0991_dev_Trockner","power","") <= 10 && Value("9970_0991_dum_Trockner_Betrieb") eq "on")\
}
attr 9950_0991_not_Trockner_Betrieb_HoherVerbrauch_aus icon scene_clothes_dryer
attr 9950_0991_not_Trockner_Betrieb_HoherVerbrauch_aus room 2900 Keller,9950 notify
#Wenn der Verbrauchswert für mindestens 10 Minuten bei laufendem Betrieb unter obigem Schwellwert (20 Watt) verbleibt, wird angenommen, dass der Trocknungsvorgang tatsächlich abgeschlossen ist
#watchdog 0993_0991_wdg_Trockner_Standby
define 0993_0991_wdg_Trockner_Standby watchdog 9970_0991_dum_Trockner_Betrieb_Verbrauch:off 00:00:10 9970_0991_dum_Trockner_Betrieb_Verbrauch:on set 9970_0991_dum_Trockner_Betrieb standby
attr 0993_0991_wdg_Trockner_Standby icon scene_clothes_dryer
attr 0993_0991_wdg_Trockner_Standby regexp1WontReactivate 1
attr 0993_0991_wdg_Trockner_Standby room 0993 Watchdog,2900 Keller
# Pushover-Notification bei abgeschlossenem Waschvorgang verschicken
# notify 0995_0991_not_Trockner_Telegram_Fertig
define 0995_0991_not_Trockner_Telegram_Fertig notify 9970_0991_dum_Trockner_Betrieb:standby {\
fhem ("set 9200_tebo_TelegramBot message \@Andreas_Hess 'Trockner fertig! Bitte leeren.'")}
attr 0995_0991_not_Trockner_Telegram_Fertig icon scene_clothes_dryer
attr 0995_0991_not_Trockner_Telegram_Fertig room 2900 Keller,9200 Telegram,9950 notify
# dummy 9970_0991_dum_Trockner_Auto_Off
define 9970_0991_dum_Trockner_Auto_Off dummy
attr 9970_0991_dum_Trockner_Auto_Off icon scene_clothes_dryer
attr 9970_0991_dum_Trockner_Auto_Off room 9970 Dummy,2900 Keller
#########################################################################
## Trockner Ende 2018-09-20
#########################################################################
2. Leistungsdaten
08:45 0 Wh
09:00 0 Wh
09:15 63 Wh
09:30 153 Wh
09:45 152 Wh
10:00 187 Wh
10:15 188 Wh
10:30 87 Wh
10:45 6 Wh
11:00 3 Wh
11:15 3 Wh
11:30 3 Wh
11:45 3 Wh
12:00 3 Wh
12:15 4 Wh
12:30 0 Wh
12:45 0 Wh
13:00 0 Wh
Wie kann ich meinen Code anpassen, damit ich nicht dauernd "Trockner fertig"-Meldungen erhalte?
Neugierige Grüße,
Andreas