"Wäsche ist fertig" als E-Mail über Leistungsmessung HM_ES_PMSw1_Pl

Begonnen von LastActionHero, 11 Mai 2014, 19:44:03

Vorheriges Thema - Nächstes Thema

LastActionHero

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

gandy

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.
fhem (svn) auf i5-4210U NUC
2x HMLAN, 19x HM-SEC-RHS, 15x HM-LC-Bl1PBU-FM, etc.
ODYS Neron Tablet / Android 4.2
Samsung Galaxy Tab 2 10.1N / Android 4.1.2
Samsung Galaxy Note / Android 6.0.1

AHA1805

Hallo Andy
hört sich interessant an.

Gruß Hannes

Gesendet von Unterwegs mit Tapatalk 4

AHA 1805 RIP 29.08.2016 --> RUHE IN FRIEDEN
In Gedanken Bei dir HANNES
Dein Bruder Gerd (Inputsammler) Vermisst dich Hannes (AHA1805)

Markus Bloch

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
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

LastActionHero

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?

marvin78

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.

LastActionHero


inesa394

danke hatte das Problem auch mir fehlten 2 Punke damit es funktioniert

LastActionHero