HomeMatic Funk-Steckdose mit Leistungsmessung: Dein Trockner ist fertig – 0.31 EUR

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Im Artikel HomeMatic Funk-Steckdose mit Leistungsmessung: Deine Waschmaschine ist fertig wurde erl√§utert, wie man den Homematic Funk-Schaltaktor HM-ES-PMSw1-PI (Affiliate-Link) in Kombination mit einem FHEM-Server einsetzen kann, um eine Waschmaschine bei einem fertigen Waschgang automatisch vom Strom zu trennen und eine Mitteilung zu verschicken, welche √ľber den abgeschlossenen Waschgang informiert. Die gemessenen Verbrauchswerte k√∂nnen aber noch f√ľr viele weitere sinnvolle Anwendungszwecke genutzt werden. Aufbauend auf dem bereits beschriebenen Szenario soll daher am Beispiel eines W√§schetrockners erkl√§rt werden, wie die angesprochene Push-Benachrichtigung um die entstandenen Kosten f√ľr den gerade abgeschlossenen Trocknungsvorgang erweitert werden kann.

Energiebewusstsein schaffen

Steigende Energiekosten f√ľhren langfristig dazu, dass Verbraucher immer mehr auf den Energieverbrauch von Elektroger√§ten achten, um nicht unn√∂tig Geld aus dem Fenster zu werfen. Was kosten bspw. Haushaltsger√§te, wie Waschmaschine oder W√§schetrockner, die, wie in meinem Fall, alleine im Standby bis zu 5 Watt verbrauchen? Wann lohnt sich da beispielsweise die Neuanschaffung eines energieeffizienteren Ger√§ts? L√§sst sich mit relativ einfachen Mitteln ein Bewusstsein daf√ľr schaffen, wieviel Energie welche Haushaltsger√§te konsumieren und damit an Kosten verursachen? Um diesen Fragen auf den Grund zu gehen, m√∂chte ich in diesem und weiteren Artikeln versuchen die im FHEM-Server brachliegenden Informationen zu nutzen, um Aufschluss √ľber die tats√§chlichen Kosten einzelner Ger√§te zu erhalten und damit ein besseres Energiebewusstsein schaffen.

Anlernen des Funk-Aktors in FHEM

Genau wie im Artikel¬†HomeMatic Funk-Steckdose mit Leistungsmessung: Deine Waschmaschine ist fertig im Punkt „Anlernen des Funk-Aktors in FHEM“ beschrieben, wird auch hier der Homematic Funk-Schaltaktor HM-ES-PMSw1-PI (Affiliate-Link) als erstes an den FHEM-Server angelernt. Einziger Unterschied ist in diesem Beispiel, dass der Aktor nicht HR.Waschmaschine, sondern HR.Trockner genannt wird. Analog hei√üt der zus√§tzlich ben√∂tigte Channel nicht HR.Waschmaschine_Power, sondern HR.Trockner_Power.

fhem.cfg erweitern

Ist der Homematic Funk-Schaltaktor HM-ES-PMSw1-PI (Affiliate-Link) angelernt, wird f√ľr das weitere Vorgehen erstmal eine Instanz ben√∂tigt, welcher den Strompreis in Euro pro kWh beinhaltet. Dieser Wert kann recht einfach aus der Stromrechnung abgelesen werden und wird nachfolgend mit 0.3 festgelegt (also 30 Cent/kWh) und in den Dummy HA.EuroProKWH geschrieben:

#Dummy f√ľr Euro pro KWH definieren
define HA.EuroProKWH dummy
attr HA.EuroProKWH room Haus
set HA.EuroProKWH 0.3

Update vom 12.03.2014: Bis jetzt habe ich die Ermittlung des Verbrauchs manuell berechnet (rot markierter Text), was den Raspberry teilweise etwas tr√§ge gemacht hat, da er den Verbrauch errechnen musste. Das ist aber gar nicht notwendig, da der Verbrauch des HM-ES-PMSw1-PI (Affiliate-Link) direkt aus dem „Power“-Channel und dem dortigen Reading „energy“ (Einheit Wh) ausgelesen werden kann. Danke an CarlMcCoy f√ľr den Tipp! Entsprechend habe ich den Blogpost angepasst und die urspr√ľnglichen, nicht mehr notwendigen Inhalte rot markiert und durch die neuen, gr√ľn markierten Inhalte erg√§nzt. Dadurch hat man keinerlei Performanceeinbusen und erh√§lt trotzdem zuverl√§ssig den korrekten Verbrauchswert. Insgesamt k√∂nnte man das nachfolgende Beispiel jetzt noch weiter k√ľrzen, indem man bspw. nur noch einen Dummy nutzt. Aus Gr√ľnden der √úbersichtlichkeit und Nachvollziehbarkeit habe ich mich jedoch entschlossen, alle vorher genutzten Dummies auch weiter zu nutzen.

Der vom Aktor ausgelesene Verbrauchswert soll als n√§chstes in den Dummy HR.TrocknerWatt geschrieben werden, welche f√ľr eine sp√§tere Auswertung im Logfile Filelog_HR.TrocknerWatt gespeichert werden:

#Dummy HR.TrocknerWatt f√ľr die Anzeige des aktuellen Watt-Verbrauchs definieren
define HR.TrocknerWatt dummy
attr HR.TrocknerWatt event-on-change-reading state
attr HR.TrocknerWatt room Hauswirtschaftsraum
define Filelog_HR.TrocknerWatt FileLog ./log/HRTrocknerWatt-%Y-%m.log HR.TrocknerWatt
attr Filelog_HR.TrocknerWatt logtype text
attr Filelog_HR.TrocknerWatt room Hauswirtschaftsraum

Jetzt der Dummy HR.TrocknerBetrieb, welcher den Arbeitszustand anzeigt und das Reading AktuellerBetriebEur verpasst bekommt, um die beim Betrieb entstehenden Kosten zu speichern bzw. anzuzeigen. Die Logik ist dabei, dass die ausgewiesenen Kosten auf 0 zur√ľckgesetzt werden, sobald der Betrieb aufgenommen wird und ab diesem Zeitpunkt alle anfallenden Kosten aggregiert werden. Dabei wird immer beim Eintreffen eines neuen (aktuellen) Verbrauchswertes ein notify ausgel√∂st, welches den vorangegangenen Verbrauchswert mit der Zeitdifferenz (in Sekunden) zwischen neuem und altem Verbrauchswert (bzw. deren Timestamps) multipliziert, danach durch 3.600.000 teilt und schlie√ülich mit dem im Dummy HA.EuroProKWH gespeicherten Wert (hier 0,3) multipliziert. Dadurch erh√∂ht sich der Wert des Readings AktuellerBetriebEur kontinuierlich mit den exakten Kosten in Euro.

Beispiel zur Veranschaulichung:

Startwert des Dummies (in Euro): 0
ReadingsVal(„HR.TrocknerBetrieb“,“AktuellerBetriebEur“,“0″)

Zeitstempel des neuen Wertes: 2014-01-01 12:01:00
time_str2num(ReadingsTimestamp(„HR.Trockner_Power“,“state“,““))

Zeitstempel des alten Wertes: 2014-01-01 12:00:00
time_str2num(ReadingsTimestamp(„HR.TrocknerWatt“,“state“,““))

Neuer Verbrauchswert (in Watt): 1000
ReadingsVal(„HR.TrocknerWatt“,“state“,““)

Stromkosten pro kWh (in Euro): 0,3
ReadingsVal(„HA.EuroProKWH“,“state“,““)

Faktor, durch den geteilt werden muss: 3.600.000 (1000 * 3600)
1000, um von W auf kW und 3600, um von Sekunden auf Stunden zu kommen

Damit ergibt sich $eur = 0 + (60 * 1000 * 0,3 / 3.600.000) = 0,005 und folglich belaufen sich die Kosten f√ľr einen Verbraucher auf 0,5 Cent, welcher f√ľr 60 Sekunden 1000 Watt ben√∂tigt. Multipliziert man das Ergebnis mit 60, um die Kosten f√ľr eine Stunde zu erhalten, kommt man wieder auf 30 Cent, genau der hinterlegte Wert f√ľr 1 KWh (bzw. 1000 Wh) im Dummy HA.EuroProKWH.

#Dummy HR.TrocknerBetrieb definieren
define HR.TrocknerBetrieb dummy
attr HR.TrocknerBetrieb event-on-change-reading state
attr HR.TrocknerBetrieb room Hauswirtschaftsraum

#Dummy TrocknerAktuellerBetriebEur updaten und Dummy HR.TrocknerWatt mit Werten versorgen
define TrocknerAktuellerBetriebEurSet notify HR.Trockner_Power {my $eur=ReadingsVal(„HR.TrocknerBetrieb“,“AktuellerBetriebEur“,“0″) + (time_str2num(ReadingsTimestamp(„HR.Trockner_Power“,“state“,““)) – time_str2num(ReadingsTimestamp(„HR.TrocknerWatt“,“state“,““))) * ReadingsVal(„HR.TrocknerWatt“,“state“,““) * ReadingsVal(„HA.EuroProKWH“,“state“,““) / 3600000;; fhem („setreading HR.TrocknerBetrieb AktuellerBetriebEur $eur“) sleep 1 my $power=ReadingsVal(„HR.Trockner_Power“,“power“,““);; fhem („set HR.TrocknerWatt $power“)}

Bei meinem Trockner hat sich herausgestellt, dass 150 Watt ein guter Wert ist, von dem angenommen werden kann, dass ein Programmstart erfolgt ist. Wer sich nicht ganz sicher ist, kann diesen Wert erstmal nutzen und in oben angesprochenen Logfile nachsehen, welche Verbrauchswerte direkt nach einem Programmstart angezeigt werden und entsprechend den Schwellwert anpassen. Ebenso verh√§lt es sich mit dem Schwellwert f√ľr das Programmende (hier 5 Watt). Wer weitere Informationen zu den nachfolgenden Befehlen ben√∂tigt, kann im Artikel HomeMatic Funk-Steckdose mit Leistungsmessung: Deine Waschmaschine ist fertig nachsehen. Die hier verwendeten Befehle sind lediglich erg√§nzt, um die entstandenen Kosten zu ber√ľcksichtigen. Die verwendeten MP3-Sprachdateien sind im zip-File geupdatet: Funkgong-Beispiel-mp3s.zip (5553 Downloads)

#Dummy HR.TrocknerBetrieb einschalten und AktuellerBetriebEur resetten bei Verbrauch größer 150 Watt
define HRTrocknerBetriebAn notify HR.Trockner_Power:power.* {fhem („set HR.TrocknerBetrieb on setstate HRTrocknerAutoOff defined setreading HR.TrocknerBetrieb AktuellerBetriebEur 0“) if (ReadingsVal(„HR.Trockner_Power“,“power“,““) >= 150 && Value(„HR.TrocknerBetrieb“) ne „on“)}

#Dummy HR.TrocknerBetrieb einschalten bei Verbrauch größer 150 Watt
define HRTrocknerBetriebAn notify HR.Trockner_Power:power.* {fhem („set HR.TrocknerBetrieb on setstate HRTrocknerAutoOff defined“) if (ReadingsVal(„HR.Trockner_Power“,“power“,““) >= 150 && Value(„HR.TrocknerBetrieb“) ne „on“)}

#Wert aus dem Reading „energy“ von HR.Trockner_Power in das Reading „energy“ von HR.TrocknerBetrieb schreiben sobald der Betrieb startet
define HRTrocknerBetriebEnergyAktualisieren notify HR.TrocknerBetrieb:on {my $power=ReadingsVal(„HR.Trockner_Power“,“energy“,“0″);; fhem („setreading HR.TrocknerBetrieb energy $power“)}

#Dummy HR.TrocknerBetrieb ausschalten bei Verbrauch kleiner gleich 5 Watt
define HRTrocknerBetriebAus notify¬†HR.Trockner_Power:power.* {fhem („set HR.TrocknerBetrieb standby“) if (ReadingsVal(„HR.Trockner_Power“,“power“,““) <= 5 && Value(„HR.TrocknerBetrieb“) eq „on“)}

#HR.Trockner 15 Minuten nach dem letzten Trocknungsvorgang vom Strom trennen
define HRTrocknerAutoOff watchdog HR.TrocknerBetrieb:standby 00:15 HR.TrocknerBetrieb:on set HR.Trockner off set HR.TrocknerBetrieb off
attr HRTrocknerAutoOff regexp1WontReactivate 1
attr HRTrocknerAutoOff room Hauswirtschaftsraum

#Pushover-Notification bei abgeschlossenem Trocknungsvorgang verschicken inkl. auf maximal zwei Nachkommastellen gerundeten Kosten in Euro
define HRTrocknerTrocknungsvorgangAbgeschlossenPushoverJay notify HR.TrocknerBetrieb:standby {my $eur=ReadingsVal(„HR.TrocknerBetrieb“,“AktuellerBetriebEur“,““) my $eur_gerundet=int(100*$eur+0.5)/100;; system („curl -s -F ‚token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‚ -F ‚user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‚ -F ‚device=Jays_iPhone‘ -F ‚message=HauswirtschaftsraumnTrockner ist fertig – $eur_gerundet‚ā¨‘ https://api.pushover.net/1/messages.json“) if (Value(„HA.Anwesenheit_Jay“) eq „on“)}

#Verbrauchswerte aktualisieren und Pushover-Notification bei abgeschlossenem Trocknungsvorgang verschicken inkl. auf maximal zwei Nachkommastellen gerundete Kosten in Euro
define HRTrocknerTrocknungsvorgangAbgeschlossenPushoverJay notify HR.TrocknerBetrieb:standby {my $aktuellerbetriebeur=(ReadingsVal(„HR.Trockner_Power“,“energy“,“0″)-ReadingsVal(„HR.TrocknerBetrieb“,“energy“,“0″))/1000*ReadingsVal(„HA.EuroProKWH“,“state“,““) my $aktuellerbetriebeur=int(100*$aktuellerbetriebeur+0.5)/100;; fhem(„setreading HR.TrocknerBetrieb AktuellerBetriebEur $aktuellerbetriebeur“);; system („curl -s -F ‚token=am4uA61Gx2Jw9GA24rePRyMJw8B3hz‚ -F ‚user=u4zDygNRGFbQUSmcxXj6fGsWJl9d93‚ -F ‚device=Jays_iPhone‘ -F ‚message=HauswirtschaftsraumnTrockner ist fertig – $aktuellerbetriebeur‚ā¨‘ https://api.pushover.net/1/messages.json“) if (Value(„HA.Anwesenheit_Jay“) eq „on“)}

#Sprachausgabe bei abgeschlossenem Trocknungsvorgang wiedergeben – „Trockner ist fertig“
define HRTrocknerTrocknungsvorgangAbgeschlossenMP3 notify HR.TrocknerBetrieb:standby set FL.GongMP3 playTone 017

#Sprachausgabe wiedergeben sobald der Trockner ausgeschaltet wird – „Trockner wird ausgeschaltet“
define WRTrocknerWirdAusgeschaltetMP3 notify HR.TrocknerBetrieb:off set FL.GongMP3 playTone 018

Aus meinem täglichen Leben

Der Homematic Funk-Schaltaktor HM-ES-PMSw1-PI (Affiliate-Link) bietet durch seine Leistungsmessung und die Erweiterbarkeit des FHEM-Servers die perfekte Möglichkeit, entstandene Kosten zu ermitteln und ein Verständnis davon zu entwickeln, welche Kosten durch welche Elektrogeräte bzw. Vorgänge entstehen.
Dieses Beispiel wird mein Wasch- bzw. Trockenverhalten zwar nicht kurzfristig √§ndern, kann aber sicher bei der Frage helfen, ob eingesetzte Ger√§te zu viel Strom verbrauchen oder nicht. In meinem Fall ben√∂tigt ein Waschvorgang mit einer relativ alten Waschmaschine LG intellowasher WD-1271FB (7 kg) bei 40 Grad ca. 20 Cent, bei 60 Grad ca. 30 Cent. Ein Trocknungsvorgang mit einem moderneren W√§schetrockner AEG √Ėko-Lavatherm 59880 ben√∂tigt ca. 20-30 Cent (Schranktrocken).
Wer seine Werte beisteuern möchte, kann dies gerne per Kommentarfunktion tun.

Affiliate-Links

[easyazon_image align=“none“ height=“102″ identifier=“B00GHDNWF4″ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/2015/06/21cuU8XAQsL.SL1105.jpg“ tag=“meintechblog-140203-21″ width=“110″][easyazon_image align=“none“ height=“82″ identifier=“B00315QNQQ“ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/2015/06/419LXMBaugL.SL1105.jpg“ tag=“meintechblog-140203-21″ width=“110″][easyazon_image align=“none“ height=“110″ identifier=“B008LUMEKK“ locale=“DE“ src=“https://www.meintechblog.de/wordpress/wp-content/uploads/2015/06/519UFknCqeL.SL110.jpg“ tag=“meintechblog-140203-21″ width=“110″]

 

Loxone im Einsatz? Dann schau dir unseren LoxKurs an und profitiere von unserem Wissen!

Verpasse keine Inhalte mehr! Trage dich in den Newsletter ein und folge uns auf Facebook.

Was ist ein Affiliate-Link? Wenn du auf einen Affiliate-Link klickst und √ľber diesen Link einkaufst, bekomme ich vom betreffenden Online-Shop oder Anbieter eine Provision, was mich u.A. bei den laufenden Kosten den Blogs unterst√ľtzt. F√ľr dich ver√§ndert sich der Preis nicht.

Jörg

hat meintechblog.de ins Leben gerufen, um seine Technikbegeisterung und Erkenntnisse zu teilen. Er veröffentlicht regelmäßig Howtos in den Bereichen Smart Home und Home Entertainment. Mehr Infos

38 Gedanken zu „HomeMatic Funk-Steckdose mit Leistungsmessung: Dein Trockner ist fertig – 0.31 EUR“

  1. Hallo Jörg

    Habe Problem mit dem Versand der Push Nachrichten √ľber pushover
    mal wird eine Nachricht verschickt mal wieder nicht.
    Eine manuelles versenden f√ľnktioniert dagegen
    wie „set HR.TrocknerBetrieb on“ dort bekomme ich dann die Kosten zugeschickt
    nur sind es dann die gesamtkosten die vom der aktuellen Trocknung allerdings
    nicht…..Vieleicht hast du ja ein tip f√ľr mich.

    1. Hi Inesa,
      puh, vermutlich hat sich bei deinem Code irgendwo ein Syntaxfehler eingeschlichen. Ohne die entsprechenden Programmzeilen kann ich leider nur mutma√üen. Kontrollier die entsprechenden Zeilen doch mal (gerade die, die √ľber ein notify die Push-Mitteilungen absetzen sollen) und poste deine Codezeilen, sofern es nicht klappt.
      Gr√ľ√üe
      Jörg

  2. Hallo Jörg,
    Variante 2 (GR√úN) funktioniert bei mir auch nicht. Die Funksteckdose schaltet sich nicht automatisch aus. Die Wattwerte werden nicht resettet, sondern zu den vorherigen Werten addiert.Eine Pushoverbenachrichtigung erfolgt auch nicht…..

    Ich versuche jetzt mal Variante (Rot) Was mir dabei auf Anhieb besser gefällt ist, dass der aktuelle Verbrauch sofort angezeigt wird.

    VG Frank

    1. Hallo Jörg,
      Variante Rot schaltet zumindest den Schalter off. Pushoverbenachrichtigung funktioniert hierbei leider auch nicht. Ich habe bei zwei anderen Ger√§ten die Pushoverbenachrichtigung ohne Curl eingerichtet, das ganze funktioniert…

      Danke f√ľrs Testen ;-)

  3. Hallo Jörg
    Mit dem Pushnachrichten funktioniert es jetzt warum auch immer. Habe eigentlich nur √ľber das Webfrontend die DEV’s neu
    eingetragen.Kann es sein das eine halbe
    Stunde kurzwaschgang nur Kosten von 4cent
    verursacht.Wäre es möglich noch irgendwas
    einzubauen was die Gesamtkosten speichert?

    1. Hi Inesa,
      die entstehenden Kosten bei einem Waschgang k√∂nnen aufgrund verschiedener Waschtemperaturen stark variieren. 4 Cent f√ľr eine halbe Stunde ist da schon drin, sofern die Temperatur gering ist.
      Die Gesamtkosten sollten relativ einfach aggregiert werden k√∂nnen durch ein zus√§tzliches Reading, welches beim Ende des Waschgangs zu den bestehenden Kosten (am Anfang nat√ľrlich noch 0) die aktuellen Kosten addiert.

  4. Hallo Jörg
    Im Webfrontend wird mir ein Wert bei HR.Waschmachine_Power angezeigt
    10300 was ist das f√ľr ein Wert kann mit
    diesen nicht einfach die Kosten errechnen

    1. Wenn du vom Reading „energy“ sprichst, ist das die von der Funksteckdose √ľbermittelte, aggregierte Stromverbrauch in Wh. Dieser Wert kann durch 1000 geteilt und mit dem Preis pro Kilowattstunde (z.B. 0,30 Euro) multipliziert werden. Dadurch werden die Kosten berechnet, seitdem du die Funksteckdose in Betrieb genommen hast.
      Gr√ľ√üe
      Jörg

  5. Hallo Jörg,
    habe es jetzt mit Hilfe Deiner Anleitung (rot) hinbekommen, eine Benachrichtigung zu erhalten, wenn der Trockenvorgang abgeschlossen ist. Allerdings erfolgt die Meldung 11 Mal hintereinander. Der entsprechende Dummy Trocknerbetrieb hat aber „event-on-change-reading state“.
    Hast vielleicht noch eine Idee?

    1. Und der Dummy HR.TrocknerBetrieb wechselt sicher auch nur ein Mal auf standby und nicht zwischenzeitlich wieder auf einen anderen Wert? Mach dir doch mal nen Filelog und kontrolliere das bitte:

      define Filelog_HR.TrocknerBetrieb FileLog ./log/HRTrocknerBetrieb-%Y-%m.log HR.TrocknerBetrieb
      attr Filelog_HR.TrocknerBetrieb logtype text
      attr Filelog_HR.TrocknerBetrieb room Hauswirtschaftsraum

      Gr√ľ√üe
      Jörg

  6. Hallo Jörg
    Bekomme es einfach nicht hin mir die Geamtkosten anzeigen zu lassen oder per Pushover zu verschicken
    Hier mein code was kann da falsch sein:

    define HR.WaschmaschineGesamtkosten notify HR.WaschmaschineBetrieb:on {my $euro=ReadingsVal(„HR.WaschmaschineBetrieb“,“energy“,“0″) /1000 * ReadingsVal(HA.EuroProKWH „,“ state“,“);;fhem („setreading HR.WaschmaschineBetrieb Gesamteuro $euro“)}

    attr HR.WaschmaschineGesamtkosten room Badezimmer

    und mit Pushover
    define HR.WaschmaschineGesamtkostenPushover notify HR.WaschmaschineBetrieb:standby {my $gesamtbetriebeur=ReadingsVal(„HR.WaschmaschineBetrieb“,“energy“,“0″) /1000 * ReadingsVal(HA.EuroProKWH“,“state“,“);; fhem(„setreading HR.WaschmaschineBetrieb GesamtBetriebEur $gesamtbetriebeur“);; system(„curl -s -F ‚token=atVUuCHNqVpceGE3Q9o36xxxxkbZQh‘ -F ‚user=uiG9jabCJSGRZErTueHBnM8wNxxxxi‘ -F ‚message=Badezimmer\nBetriebskosten betragen -$gesamtbetriebeur ‚https://api.pushover.net/1/messages.json“)}

    attr HR.WaschmaschineGesamtkostenPushover room Badezimmer

    1. Hi Inesa,
      bei der Email-Benachrichtigung habe ich es leider auch nicht geschafft Variablen korrekt zu √ľbermitteln und bin deshalb auch gleich zum Pushover-Dienst gewechselt.
      Gr√ľ√üe
      Jörg

  7. Habs jetzt so hinbekommen Pushnachrichten werden verschickt mit den Gesamtkosten.
    Nur beim email Versand happert es noch es werden mir keine Kosten mit √ľbermittelt

    define HR.WaschmaschineGesamtkosten notify HR.WaschmaschineBetrieb:on {my $euro=ReadingsVal(„HR.Waschmaschine_Power“,“energy“,“0″) /1000 * 0.28 ;;fhem („setreading HR.WaschmaschineBetrieb Gesamteuro $euro“);; system („curl -s -F ‚token=atVUuCHNqVpceGE3Q9o36Erexxxxxh‘ -F ‚user=uiG9jabCJSGRxxxxxxxM8wNTJ85i‘ -F ‚message=Badezimmer\nBisherige Gesamtkosten in Euro – $euro‚ā¨‘ https://api.pushover.net/1/messages.json„);;DebianMail(‚adolfocurade@@gmail.com‘,’Waschmaschine‘,’Euro Gesamt:‘, ‚$euro‘)}

  8. Toller Blog, ich verfolge ihn schon seit mehreren Wochen zur Umsetzung meiner Hausautomation!

    Auch dieses Szenario habe ich umgesetzt – f√ľr die Waschmaschine funktioniert das ganz gut, f√ľr den Trockner leider nicht – dieser hat einen Knitterschutz und dreht nach Ende des Programms alle 30 Sekunden nochmal 2-3 Runden.
    Hast du ne Idee wie man das l√∂sen k√∂nnte, dass zumindest die Meldung „Trockner fertig“ bei Programmende gesendet wird?
    Wenn man die Wäsche dann abholt und den Trockner händisch ausstellt, sollte ja trotzdem nach 5 Minuten der Schaltaktor ausgehen, da die 5W Schwelle unterschritten ist Рrichtig?

    1. Hi Sepp,
      das Problem l√§sst sich mit einem zus√§tzlichen Watchdog relativ einfach l√∂sen. Erkl√§rt ist das im Blogpost https://www.meintechblog.de/2014/01/homematic-funk-steckdose-mit-leistungsmessung-deine-waschmaschine-ist-fertig/ unter „#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“. Dabei musst du den Schwellwert wahrscheinlich hochsetzen von 5 auf 50 Watt. So l√§uft das auch bei meinem Trockner sehr gut. Hoffe das hilft dir weiter!
      Gr√ľ√üe
      Jörg

    2. Hi!

      Leider ist es so einfach nicht, beim 2-3 drehen habe ich wattwerte z.T. √úber 180W. Es handelt sich um einen sehr neuen effizienten Trockner, aber das finde ich etwas unn√∂tig. Dieser Knitterschutz deaktiviert sich nach 60min. von selbst, dann meldet FHEM auch korrekt, aber das finde ich, ist pure Energieverschwendung, wenn man eh zuhause ist und den Trockner leer r√§umen k√∂nnte… W√§re es eine M√∂glichkeit √ľber einen Mittelwert bspw. der letzten 10 Minuten zu arbeiten?

    3. Das l√§sst sich mit FHEM sicherlich realisieren. Ich werde mal versuchen meine Ans√§tze zu verbessern, dass diese f√ľr Ger√§te, deren Verbrauchswerte st√§rker schwanken, genutzt werden k√∂nnen. Am besten regelm√§√üig mal hier vorbeischauen… :)

  9. Somit werden auch die Kosten per email √ľbermittelt
    HR.WaschmaschineBetrieb:standby {my $aktuellerbetriebeur=(ReadingsVal(„HR.Waschmaschine_Power“,“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“); system („curl -s -F ‚token=axxxxxxxxxxxxxxxx‘ -F ‚user=xxxxxxxxxxxxxxx‘ -F ‚message=Badezimmer\nEinmal Waschen Trocknen kostet – $aktuellerbetriebeur‚ā¨‘ https://api.pushover.net/1/messages.json„);DebianMail(‚axxxxxx@@gmail.com‘,’Trockner‘,’Trockner ist fertig -Los zum Trocknen aufhaengen: ‚.$aktuellerbetriebeur.’‚ā¨‘)}

  10. Vielen Dank f√ľr diesen tollen Blog!
    Prima Inspiration und Lösungsvorschläge.
    Das meiste hier habe ich auch 1:1 so umgesetzt.
    Das mit den Push-Benachrichtigungen habe ich allerdings mit einer kostenlosen Alternative zu Pushover gelöst und zwar der App Pushbullet und folgendem Aufruf in fhem:

    system („curl -u : -X POST https://api.pushbullet.com/v2/pushes –header ‚Content-Type: application/json‘ –data-binary ‚{\“type\“: \“note\“, \“title\“: \“HWR\“, \“body\“: \“Trockner ist fertig – $aktuellerbetriebeur ‚ā¨\“}'“)

    = findet man, wenn man sich unter Pushbullet.com anmeldet und dann unter Account Settings

    Gruß
    René

  11. Leider wurden die größer/kleiner-Zeichen nicht angezeigt, deshalb noch mal:

    system („curl -u TOKEN: -X POST https://api.pushbullet.com/v2/pushes –header ‚Content-Type: application/json‘ –data-binary ‚{\“type\“: \“note\“, \“title\“: \“HWR\“, \“body\“: \“Trockner ist fertig – $aktuellerbetriebeur ‚ā¨\“}'“)

    TOKEN = findet man, wenn man sich unter Pushbullet.com anmeldet und dann unter Account Settings

    Gruß
    René

  12. Hi Jörg,

    ich verfolge seit „Jahren“ deinen Blog voller Begeisterung… hab auch schon viel von dir gelernt ;) ich hab ein Problem bzw ich bekomms nicht ganz im Kopf zusammen, wie ich das am einfachsten l√∂sen kann, da ich mit den watchdogs und notifies noch nicht so ganz klar komme…

    Mein gew√ľnschtes Szenario:
    Ich hab die von dir benutzte Steckdose in meinem Wohnzimmer verbaut, dort hängt mein Mediacenter/TV dran..
    Gesetztenfalls die Steckdose ist an -> dann wollte ich gern einrichten, dass sobald ein gewisser Strom anliegt (alles wurde ausgeschaltet und somit im Standby-Modus..) die Steckdose einen Timer (Watchdog) beginnt von 5 min, nach dem sie (es sei denn jemand schaltet zwischenzeitlich wieder eine der Komponenten ein, was ja durch den erh√∂hten Strom erkennbar sein sollte) aus gehen soll… das sollte doch einfach machbar sein oder?

    kannst du mir da vielleicht helfen?
    Dank dir und Gr√ľ√üe
    Dom

    1. Hi Dom,
      das freut mich sehr! :)
      Dein Vorhaben sollte funktionieren, klar. Ist ja im Prinzip nichts anders als das hier beschriebene Szenario mit dem Trockner bzw. mit der Waschmaschine. Nimm dir einfach das Beispiel 1:1 und benenne der Reihe nach die Komponenten so um, wie du es brauchst. Auch die Verbrauchswerte und Zeiten des Watchdogs kann du dann so einstellen, wie du es brauchst. Hoffe das hilft dir weiter.
      Gr√ľ√üe und viel Erfolg dabei
      Jörg

  13. Hallo zusammen und frohes neues Ihr 2015 noch.

    Ich habe Probleme und komme leider nicht weiter.
    Es soll eine Auflistung der Wasch- /Trockengänge pro Jahr geben.
    Dies habe ich mit dem wie folgt gelöst:

    define Anzahl_Waeschen HourCounter HR.WaschmaschineBetrieb:on HR.WaschmaschineBetrieb:off
    attr Anzahl_Waeschen room Info¬īs,Waschkeller

    define Anzahl_Trocknerdurchgaenge HourCounter HR.TrocknerBetrieb:on HR.TrocknerBetrieb:off
    attr Anzahl_Trocknerdurchgaenge room Info¬īs,Waschkeller

    Scheint auch im Trockentest per set zu funktionieren. Ist diese ‚ÄěAbfrage‚Äú so sinnvoll oder m√ľsste ich diese anders l√∂sen?

    Zudem komme ich mit den Kosten pro Waschgang, Trocknung und der jeweiligen Gesamtkosten nicht weiter. Was genau bedeuten die folgenden Ausdr√ľcke in Euren Codezeilen : „setreading HR.TrocknerBetrieb AktuellerBetriebEur $aktuellerbetriebeur‚Äú
    und „setreading HR.WaschmaschineBetrieb Gesamteuro $euro‚Äú?
    Kann ich die Kostenanzeige manuell auslösen oder direkt im FHEM anzeigen lassen?

    define HRTrocknerTrocknungsvorgangAbgeschlossenPushover notify HR.TrocknerBetrieb:standby {my $aktuellerbetriebeur=(ReadingsVal(„KG_TrocknerSensor“,‚Äúenergy“,“0‚Äú)-ReadingsVal(„HR.TrocknerBetrieb“,“energy“,“0″))/1000*ReadingsVal(„HA.EuroProKWH“,“state“,““);; my $aktuellerbetriebeur=int(100*$aktuellerbetriebeur+0.5)/100 ;; fhem(„setreading HR.TrocknerBetrieb AktuellerBetriebEur $aktuellerbetriebeur“);; system („curl -s -F ‚Äötoken=xxx‘ -F ‚Äöuser=xxx‘ -F ‚message=Waschkeller\nTrockner ist fertig – $aktuellerbetriebeur‚ā¨‘ https://api.pushover.net/1/messages.json‚Äú)}

    Danke und Entschuldigung dass ich mit so scheinbar einfachen Sachen nicht weiter komme.

    Alex

  14. Hi!

    Danke f√ľr den tollen Beitrag. Habe das ganze schon seit nem halben Jahr am Laufen. Hat bisher immer sehr gut funktioniert. Jetzt musste ich ein Update von FHEM machen und seitdem funktioniert das Notify nicht mehr. Ich bekomme im Log folgenden Fehler:
    PERL WARNING: „my“ variable $aktuellertrockenbetriebeur masks earlier declaration in same scope at (eval 96511) line 1.
    2015.05.01 11:54:56 3: eval: {my $aktuellertrockenbetriebeur=(ReadingsVal(„Trockner_Power“,“energy“,“0″)-ReadingsVal(„TrocknerBetrieb“,“energy“,“0″))/1000*ReadingsVal(„EuroProKWH“,“state“,““); my $aktuellertrockenbetriebeur=int(100*$aktuellertrockenbetriebeur+0.5)/100 ; fhem(„setreading TrocknerBetrieb AktuellerBetriebEur $aktuellertrockenbetriebeur“); system („curl -s -F ‚token=XXX‘ -F ‚user=XXX‘ -F ‚message=Kueche\nTrockner ist fertig – $aktuellertrockenbetriebeur EUR‘ https://api.pushover.net/1/messages.json„)}

    Kann das jemand nochvollziehen?

    1. Hi Philipp,
      ich bin leider kein Profi in Perl, aber versuche doch einfach mal in den verschiedenen notify-Befehlen die Variable „aktuellertrockenbetriebeur“ jeweils unterschiedlich zu benennen. Vielleicht ist das Perl-Warning dann weg und es funktioniert wieder. *daumendr√ľck*

      Gr√ľ√üe
      Jörg

  15. Super Beitrag und wurde sofort umgesetzt. Kann ich irgendwie einen Dummy erstellen, der mir die kosten addiert wie zb der

    HR.Waschmaschine_Power ? Der Zeigt mir ja an was die Wama bisher verbraucht hat.?

    Danke Liebe Gr√ľ√üe

    1. Hi,
      mein HomeMatic-Aktor liefert in FHEM mit HR.Trockner_Pwr direkt ein passendes Reading mit, welches (so glaube ich) den kumulierten Wh-Wert anzeigt. Dieser kann dann einfach zur Berechnung der Kosten herangezogen und in einen Dummy (oder ein weiteres Reading) geschrieben werden. Hoffe die Info hilft erstmal weiter.

      Gr√ľ√üe
      Jörg

    2. Ok- ja er rechnet es mir auch um und schickt mir den Preis/Kosten per Push- will aber ein Reading das mir die Summe immer f√ľr alle Wasch/Trocken G√§ngen aufsumiert. Damit ich am ende vom Jahr eine Gesamtsumme habe. Wie mach ich das ?

  16. Hat jemand eine Empfehlung f√ľr eine Alternative f√ľr die o.g. HomeMatic Funksteckdose als EnOcean, die ich f√ľr das gleiche Szenario gut nutzen kann? Wichtig ist Schaltung des hohen Stromes, gute Reichweite, zuverl√§ssige Wattangabe und nat√ľrlich problemloses Zusammenspiel mit FHEM. Herzlichen Dank schon jetzt f√ľr eine Empfehlung.

    1. Vielen Dank Jörg!
      Ich denke ich nutze dann lieber zus√§tzlich den HomeMatic usb-adapter und ebenfalls den HomeMatic Zwischenstecker. Sp√§testens ab 2 Steckdosen bin ich so g√ľnstiger. Ansonsten k√§me noch ein unterputz Ger√§t, welches die Zuleitung der Steckdose misst/schaltet in Frage – falls das kosteng√ľnstiger sein sollte.

  17. Hallo Jörg,

    vielen Dank f√ľr die super Anleitungen und tolle Begleitung in diesem Thema.

    Mit der Waschmaschine habe ich das Problem, dass Sie vom Status „standby“ nicht in „OFF“ geht und somit die Benachrichtigung nicht funktioniert. Wenn ich die befehle (set Waschmaschine off set WaschmaschineBetrieb off) einzeln absetze, funktioniert die Benachrichtigung.

    Beim Trockner habe ich das gleiche Spiel. Hier funktioniert aber die Benachrichtigung nicht und der LOG zum Dummy ist leer.

    Hättest Du vieleicht eine Idee dazu?

    #Dummy WaschmaschineWatt f√ľr die Anzeige des aktuellen Watt-Verbrauchs definieren
    define WaschmaschineWatt dummy
    attr WaschmaschineWatt group WaschenTrocknen
    attr WaschmaschineWatt room 3.7_Hauswirtschaftsraum

    #Dummy WaschmaschineWatt mit Werten versorgen
    define WaschmaschineWattSet notify Waschmaschine_Power {my $power =ReadingsVal(„Waschmaschine_Power“,“power“,““);; fhem („set WaschmaschineWatt $power“)}
    attr WaschmaschineWattSet room 3.7_Hauswirtschaftsraum

    #Dummy WaschmaschineBetrieb definieren
    define WaschmaschineBetrieb dummy
    attr WaschmaschineBetrieb event-on-change-reading state
    attr WaschmaschineBetrieb group WaschenTrocknen
    attr WaschmaschineBetrieb room 0.0_All,0.3_EG,3.7_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“,““) >= 30 && Value(„WaschmaschineBetrieb“) ne „on“)}
    attr WaschmaschineBetriebAn room 3.7_Hauswirtschaftsraum

    #Dummy WaschmaschineHoherVerbrauch definieren
    define WaschmaschineHoherVerbrauch dummy
    attr WaschmaschineHoherVerbrauch event-on-change-reading state
    attr WaschmaschineHoherVerbrauch group WaschenTrocknen
    attr WaschmaschineHoherVerbrauch room 3.7_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“)}
    attr WaschmaschineHoherVerbrauchAn room 3.7_Hauswirtschaftsraum

    #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“,““) = 150 && Value(„TrocknerBetrieb“) ne „on“)}
    attr TrocknerBetriebAn room 3.7_Hauswirtschaftsraum

    #Wert aus dem Reading „energy“ von Trockner_Power in das Reading „energy“ von TrocknerBetrieb schreiben sobald der Betrieb startet
    define TrocknerBetriebEnergyAktualisieren notify TrocknerBetrieb:on {my $power=ReadingsVal(„Trockner_Power“,“energy“,“0″) fhem („setreading TrocknerBetrieb energy $power“)}
    attr TrocknerBetriebEnergyAktualisieren room 3.7_Hauswirtschaftsraum

    #Dummy TrocknerBetrieb ausschalten bei Verbrauch kleiner gleich 5 Watt
    define TrocknerBetriebAus notify Trockner_Power:power.* {fhem („set TrocknerBetrieb standby“) if (ReadingsVal(„Trockner_Power“,“power“,““) <= 5 && Value("TrocknerBetrieb") eq "on")}
    attr TrocknerBetriebAus room 3.7_Hauswirtschaftsraum

    #Trockner 15 Minuten nach dem letzten Trocknungsvorgang vom Strom trennen
    define TrocknerAutoOff watchdog TrocknerBetrieb:standby 00:15 TrocknerBetrieb:on set Trockner off ;; set TrocknerBetrieb off
    attr TrocknerAutoOff group WaschenTrocknen
    attr TrocknerAutoOff regexp1WontReactivate 1
    attr TrocknerAutoOff room 3.7_Hauswirtschaftsraum

    #Verbrauchswerte aktualisieren und Pushover-Notification bei abgeschlossenem Trocknungsvorgang verschicken inkl. auf maximal zwei Nachkommastellen gerundete Kosten in Euro
    define TrocknerTrocknungsvorgangAbgeschlossenPushoverJay notify TrocknerBetrieb:standby {my $aktuellerbetriebeur=(ReadingsVal("Trockner_Power","energy","0")-ReadingsVal("TrocknerBetrieb","energy","0"))/1000*ReadingsVal("HA.EuroProKWH","state","") my $aktuellerbetriebeur=int(100*$aktuellerbetriebeur+0.5)/100 fhem("setreading TrocknerBetrieb AktuellerBetriebEur $aktuellerbetriebeur") system ("curl -s -F 'token=xxxxxxxxxxxxxxxxxxxxx' -F 'user=xxxxxxxxxxxxxxxxxxxx' -F 'device=Jays_iPhone' -F 'message=HauswirtschaftsraumnTrockner ist fertig – $aktuellerbetriebeur‚ā¨' https://api.pushover.net/1/messages.json&quot;) if (Value("HA.Anwesenheit_Jay") eq "on")}
    attr TrocknerTrocknungsvorgangAbgeschlossenPushoverJay room 3.7_Hauswirtschaftsraum

    #Trockner Zusatz TroknerWatt2

    #Dummy TrocknerWatt2 f√ľr die Anzeige des aktuellen Watt-Verbrauchs definieren
    define TrocknerWatt2 dummy
    attr TrocknerWatt2 event-on-change-reading state
    attr TrocknerWatt2 room 3.7_Hauswirtschaftsraum
    define Filelog_TrocknerWatt2 FileLog ./log/TrocknerWatt2-%Y-%m.log TrocknerWatt2
    attr Filelog_TrocknerWatt2 logtype text
    attr Filelog_TrocknerWatt2 room 3.7_Hauswirtschaftsraum

    #Dummy TrocknerAktuellerBetriebEur updaten und Dummy TrocknerWatt2 mit Werten versorgen
    define TrocknerAktuellerBetriebEurSet notify Trockner_Power {my $eur=ReadingsVal("TrocknerBetrieb","AktuellerBetriebEur","0") + (time_str2num(ReadingsTimestamp("Trockner_Power","state","")) – time_str2num(ReadingsTimestamp("TrocknerWatt2","state",""))) * ReadingsVal("TrocknerWatt2","state","") * ReadingsVal("HA.EuroProKWH","state","") / 3600000 fhem ("setreading TrocknerBetrieb AktuellerBetriebEur $eur") sleep 1 my $power=ReadingsVal("Trockner_Power","power","") fhem ("set TrocknerWatt2 $power")}
    attr TrocknerAktuellerBetriebEurSet room 3.7_Hauswirtschaftsraum

  18. Hallo Jörg,

    ergänzend noch der fehler im LOG.

    2015.11.15 21:43:13 1: PERL WARNING: Bareword found where operator expected at (eval 236) line 1, near „3600000 fhem“
    2015.11.15 21:43:13 3: eval: {my $eur=ReadingsVal(„TrocknerBetrieb“,“AktuellerBetriebEur“,“0″) + (time_str2num(ReadingsTimestamp(„Trockner_Power“,“state“,““)) – time_str2num(ReadingsTimestamp(„TrocknerWatt2″,“state“,““))) * ReadingsVal(„TrocknerWatt2″,“state“,““) * ReadingsVal(„HA.EuroProKWH“,“state“,““) / 3600000 fhem („setreading TrocknerBetrieb AktuellerBetriebEur $eur“) sleep 1 my $power=ReadingsVal(„Trockner_Power“,“power“,““) fhem („set TrocknerWatt2 $power“)}
    2015.11.15 21:43:13 1: PERL WARNING: Bareword found where operator expected at (eval 236) line 1, near „) fhem“
    2015.11.15 21:43:13 3: eval: {my $eur=ReadingsVal(„TrocknerBetrieb“,“AktuellerBetriebEur“,“0″) + (time_str2num(ReadingsTimestamp(„Trockner_Power“,“state“,““)) – time_str2num(ReadingsTimestamp(„TrocknerWatt2″,“state“,““))) * ReadingsVal(„TrocknerWatt2″,“state“,““) * ReadingsVal(„HA.EuroProKWH“,“state“,““) / 3600000 fhem („setreading TrocknerBetrieb AktuellerBetriebEur $eur“) sleep 1 my $power=ReadingsVal(„Trockner_Power“,“power“,““) fhem („set TrocknerWatt2 $power“)}
    2015.11.15 21:43:13 3: TrocknerAktuellerBetriebEurSet return value: syntax error at (eval 236) line 1, near „3600000 fhem „

    1. Versuch mal zwischen „600000 fhem“ zwei Kommata zu setzen -> „600000;; fhem“
      und noch zwischen „) fhem“ damit es so aussieht -> „);; fhem“
      und dann noch zwischen „3600000 fhem “ -> „3600000;; fhem“

      Gr√ľ√üe
      Jörg

    2. Ich habe den Blogpost jetzt auch entsprechend angepasst. Da war es Рaus welchem Grund auch immer Рebenfalls ohne Kommata…
      Sollte jetzt hoffentlich passen.

      Gr√ľ√üe
      Jörg

  19. Hallo Jörg,

    lese deinen Blog als Fhem Anf√§nger schon eine Weile mit Begeisterung mit. Durch deine Anleitungen habe ich mir die Temperatursensoren sowie die Waschmaschine eingerichtet. Diese Anleitung habe ich in die Waschmaschine integriert. Nach setzen von Status on/off habe ich auch die gew√ľnschte Pushmittelung erhalten. Wert nat√ľrlich 0,00‚ā¨. Werden die Gesamtverbrauchsdaten auch erfasst f√ľr Jahresverbrauchsdaten und wie bekomme ich es hin die Anzahl der Waschg√§nge zu z√§hlen?. Ich habe einen Dummy AnzahlWaschmaschinen mit einem Notify: {\my$wert=Value(„AnzahlWaschmaschinen“);my$neuerwert=$wert+1;\fhem(„set AnzahlWaschmaschinen $neuerwert“)\} per Pushover bekomme ich darauf hin ??? angezeigt. Die definition habe ich mit my $wert=Value(„AnzahlWaschmaschinen“) erweitert.

    Gr√ľ√üe
    Jörg

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert