GELÖST: Anpassung eines vorhandenen Skriptes - Funksteckdose DECT200

Begonnen von Shafhem, 20 August 2014, 16:37:37

Vorheriges Thema - Nächstes Thema

Shafhem

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/
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

Shafhem

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.'")}

yetiman

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

vw2audi

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
Fhem auf Raspberry PI3, sonoff: RFBridge, PIR, Basic, POW, Dual.... , FS20: FHT 80TF-2 (3x); FS20-Piri2 (1x)
S300TH (1x); FS20-ST (6x); FS20-SU (3x); FS20 WS1 (2x); Fritz: DECT200 (3x), Z-Wave: diverse Schalter.... , HomeMatic: Heizungsregler

vw2audi

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");
   }
}
Fhem auf Raspberry PI3, sonoff: RFBridge, PIR, Basic, POW, Dual.... , FS20: FHT 80TF-2 (3x); FS20-Piri2 (1x)
S300TH (1x); FS20-ST (6x); FS20-SU (3x); FS20 WS1 (2x); Fritz: DECT200 (3x), Z-Wave: diverse Schalter.... , HomeMatic: Heizungsregler

yetiman

Hallo,

gerade erst gelesen :-(
Schick doch mal deinen Code den du benutzt, falls du das Problem noch hast.

Ingo

Quincy

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


carzl

@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).
Fhem 6.0 auf RPi3: CUL, JeeLink, Hue Bridge v2, HarmonyHub, Fritzbox7590+7412, 6x FHT80b, 2x FS20S6A, FS20S4A, S300TH, 4x FritzDECT200/210, 4x TX29DTH, 4x Hue LightStripe, 5x Hue Smart Plug, Sonos mit 5x Play:1, Beam und Sub; 3x Lenovo Tab M10 mit FTUI

Quincy



magix99

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

Brice

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
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

magix99

Hi,

das schaue ich mir auch gerne an, danke.
Meine Maschine hat immer min. 2-3 Watt während dem Waschen.

Brice

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 :-)
FHEM auf RPi 4 4GB (Buster) | produktiv) CUL 868 für FS20 | S300TH | KS300 | Max!Cube als CUN 868 für TechemWZ | HM-MOD-RPI-PCB für HM | Z-Wave ZME_UZB1 | FRITZ!DECT 200 | HUE | Lightify | Echo Dot | WS3080

magix99

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?