FHEM Forum

FHEM => Automatisierung => Thema gestartet von: LastActionHero am 11 Mai 2014, 19:44:03

Titel: "Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: LastActionHero am 11 Mai 2014, 19:44:03
Hallo!

ich bin nach dem Tutorial verfahren um den Homematic Leistungsmesser mit meiner Waschmaschine zu betreiben.
http://www.meintechblog.de/2014/02/homematic-funk-steckdose-mit-leistungsmessung-dein-trockner-ist-fertig-0-31-eur/

Hier wird der Trockner (bei mir halt die Waschmaschine) über diverse Zwischenschritte auf Betrieb überprüft, ab erreichen einer gewissen Leistungsaufnahme (hier < 5W) wird nach 5 Minuten der dummy Betrieb aus gestellt, es folgt eine E-Mail, dass die Wäsche fertig ist und ein Timer von 15 Minuten beginnt, der dann den Schaltaktor off schaltet. Als Schmankerl ist hier noch über das Reading Energy eine Rechnung mit drin, wieviel Geld der Trochen- / Waschvorgang nun gekostet hat.

Bis auf die Kosten klappt das auch alles super, aber da liegt nun auch mein Problem: Wie bekomme ich das Reading von HR_WaschmaschieneBetrieb in die E-Mail?? Mit der config unten wird einfach nur der Text gesendet. Was ist da falsch bzw. wie müsste man es umschreiben?


#Dummy HR_WaschmaschineWatt für die Anzeige des aktuellen Watt-Verbrauchs definieren
define HR_WaschmaschineWatt dummy
attr HR_WaschmaschineWatt room Keller

#Dummy HR_WaschmaschineWatt mit Werten versorgen
define HRWaschmaschineWattSet notify HR_Waschmaschine_Pwr {my $power =ReadingsVal("HR_Waschmaschine_Pwr","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 devStateIcon on:general_an off:general_aus
attr HR_WaschmaschineBetrieb room Keller

#Dummy HR_WaschmaschineBetrieb einschalten bei Verbrauch größer 30 Watt
define HRWaschmaschineBetriebAn notify HR_Waschmaschine_Pwr:power.* {fhem ("set HR_WaschmaschineBetrieb on;; setstate HRWaschmaschineAutoOff defined") if (ReadingsVal("HR_Waschmaschine_Pwr","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 devStateIcon on:general_an off:general_aus
attr HR_WaschmaschineHoherVerbrauch room Keller

#Dummy HR_WaschmaschineHoherVerbrauch einschalten bei Verbrauch größer 5 Watt bei laufendem Betrieb
define HRWaschmaschineHoherVerbrauchAn notify HR_Waschmaschine_Pwr:power.* {fhem ("set HR_WaschmaschineHoherVerbrauch on;; setstate HRWaschmaschineAutoStandby defined") if (ReadingsVal("HR_Waschmaschine_Pwr","power","") > 5 && Value("HR_WaschmaschineBetrieb") eq "on")}

#Wert aus dem Reading "energy" von HR_Waschmaschine_Pwr in das Reading "energy" von HR_WaschmaschineBetrieb schreiben sobald der Betrieb startet
define HRWaschmaschineBetriebEnergyAktualisieren notify HR_WaschmaschineBetrieb:on {my $power=ReadingsVal("HR_Waschmaschine_Pwr","energy","0");; fhem ("setreading HR_WaschmaschineBetrieb energy $power")}

#Dummy HR_WaschmaschineHoherVerbrauch ausschalten bei Verbrauch kleiner gleich 5 Watt bei laufendem Betrieb
define HRWaschmaschineHoherVerbrauchAus notify HR_Waschmaschine_Pwr:power.* {fhem ("set HR_WaschmaschineHoherVerbrauch off") if (ReadingsVal("HR_Waschmaschine_Pwr","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 Keller

#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 {my $aktuellerbetriebeur=(ReadingsVal("HR_Waschmaschine_Pwr","energy","0")-ReadingsVal("HR_WaschmaschineBetrieb","energy","0"))/1000*ReadingsVal("HA.EuroProKWH","state","");; my $aktuellerbetriebeur=int(100*$aktuellerbetriebeur+0.5)/100 ;; fhem("setreading HR_WaschmaschineBetrieb AktuellerBetriebEur $aktuellerbetriebeur");; DebianMail('XXXXX1@@gmx.de','FHEM Status-Meldung','Waschmaschine ist fertig - Abschaltung in 15 Minuten! Betriebskosten: $aktuellerbetriebeur€');; DebianMail('XXXXXXX2@@gmx.de','FHEM Status-Meldung','Waschmaschine ist fertig - Los! Aufhängen!! Betriebskosten: $aktuellerbetriebeur€');; }

#HR.Waschmaschine 5 (15) Minuten nach dem letzten Waschgang vom Strom trennen
define HRWaschmaschineAutoOff watchdog HR_WaschmaschineBetrieb:standby 00:05 HR_WaschmaschineBetrieb:on set HR_Waschmaschine_Sw off;; set HR_WaschmaschineBetrieb off
attr HRWaschmaschineAutoOff regexp1WontReactivate 1
attr HRWaschmaschineAutoOff room Keller

#Dummy für Euro pro KWH definieren
define HA.EuroProKWH dummy
attr HA.EuroProKWH room Keller
set HA.EuroProKWH 0.25
Titel: Antw:"Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: gandy am 18 Mai 2014, 23:27:06
hi,

ich arbeite gerade an einem Modul, das sowas wie eine State Machine implementiert, die auf beliebige device readings, also z.B die gemessene Leistung reagiert. Damit lassen sich die verschiedenen Betriebszustände der Waschmaschine mit Namen versehen. Zudem kann man readings aus beliebigen anderen device readings erzeugen, zum Beispiel der Energieverbrauch für den letzen Waschgang. Das wiederum läßt sich schön in einer Email verwenden ;-)
Noch gibt es ein paar Kleinigkeiten zu gebuggen, aber wenn Interesse besteht, kann ich die aktuelle Version und eine Beispielkonfiguration bereitstellen.

Grüße,
Andy.
Titel: Antw:&quot;Wäsche ist fertig&quot; als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: AHA1805 am 19 Mai 2014, 07:39:05
Hallo Andy
hört sich interessant an.

Gruß Hannes

Gesendet von Unterwegs mit Tapatalk 4

Titel: Antw:"Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: Markus Bloch am 19 Mai 2014, 20:14:56
Hallo zusammen,

ich habe es ganz einfach gelöst.

Einfach den Sensor-Kanal von dem HM_ES_PMSw1_Pl mit dem Schalt-Kanal verknüpfen und den Schwellwert mittels Register entsprechend einstellen. Schon schaltet der Aktor selbständig ab, sobald der Schwellwert unterschritten wird. FHEM brauch dazu nicht tätig zu werden.

Sobald ein off-Event generiert wird, werde ich via prowl informiert.

Viele Grüße

Markus
Titel: Antw:"Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: LastActionHero am 21 Mai 2014, 16:11:57
Mmh, das versteh ich grade nicht.

Ums Abschalten gehts garnicht, das funktioniert blendend, es geht um die Übergabe des Readings in die E-Mail. Das wird nicht in die Email übernommen, obgleich es mit Prowl oder sonstigem Push Dienst wohl funktioniert. Prowl etc. möchte ich nicht, ich möchte unabhängig von anderen Systemen sein. E-Mails kann jedes Linux versenden.

Das Ausschalten funktioniert einwandfrei. Dein Ansatz erscheint mir eher unpraktikabel, denn die Waschmaschine hat gegen Ende Phasen wo über 10-20 sekunden 0 Watt verbraucht werden, weil die Trommel im Ausschleudervorgang einfach steht, kurz wartet und dann wieder zum Schleudern ansetzt. Erreicht der Sensorkanal bei dir dann die 0, würde die Maschine ausschalten obwohl sie noch garnicht fertig ist. Oder verstehe ichs falsch?
Titel: Antw:"Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: marvin78 am 21 Mai 2014, 16:27:34
Du verwendest zur Ausgabe eine Variable

$aktuellerbetriebeur€

Diese gibt es so nicht. Sie heißt $aktuellerbetriebeur. Diese ewig lange Zeile müsste vermutlich so aussehen:

define HRWaschmaschineWaschvorgangAbgeschlossenPushover notify HR_WaschmaschineBetrieb:standby {my $aktuellerbetriebeur=(ReadingsVal("HR_Waschmaschine_Pwr","energy","0")-ReadingsVal("HR_WaschmaschineBetrieb","energy","0"))/1000*ReadingsVal("HA.EuroProKWH","state","");; my $aktuellerbetriebeur=int(100*$aktuellerbetriebeur+0.5)/100 ;; fhem("setreading HR_WaschmaschineBetrieb AktuellerBetriebEur $aktuellerbetriebeur");; DebianMail('XXXXX1@@gmx.de','FHEM Status-Meldung','Waschmaschine ist fertig - Abschaltung in 15 Minuten! Betriebskosten: '.$aktuellerbetriebeur.'€');; DebianMail('XXXXXXX2@@gmx.de','FHEM Status-Meldung','Waschmaschine ist fertig - Los! Aufhängen!! Betriebskosten: '.$aktuellerbetriebeur.'€');; }


Ich persönlich würde diese Funktionen alle in eine myUtils Datei auslagern. Damit gewinnt man deutlich an Übersicht.
Titel: Antw:"Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: LastActionHero am 22 Mai 2014, 11:54:35
das funktioniert, vielen lieben Dank!
Titel: Antw:"Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: inesa394 am 25 Mai 2014, 12:43:11
danke hatte das Problem auch mir fehlten 2 Punke damit es funktioniert
Titel: Antw:"Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl
Beitrag von: LastActionHero am 25 Mai 2014, 15:05:52
Funktioniert damit dein webcam push?