HomeMatic Funk-Steckdose mit Leistungsmessung: Erweiterte Szenarien mit FHEM erstellen

IM EINSATZ?

Dann schau dir UNSEREN LOXKURS an und profitiere von unserem Wissen!

Funk-Schaltaktoren für Steckdosen gibt es wie Sand am Meer. Von äußerst billig und technologisch einfach (Intertechno IT-1500 (Affiliate-Link)) über preiswert und gut (FS20-ST (Affiliate-Link)) bis hin zu den kürzlich (Stand Januar 2014) erschienenen HomeMatic HM-ES-PMSw1-Pl (Affiliate-Link), welche zwar im oberen Preissegment liegen, allerdings mehr bieten als andere Funk-Zwischenstecker. Die neueste Version dieser Funk-Schaltaktoren kommt jetzt mit einem Zusatz-Feature: Live-Stromverbrauchsmessung.

Dies ermöglicht ganz neue Abläufe für das SmartHome. Weil die Steckdose sowohl schaltet als auch misst, sind jetzt Szenarien möglich, bei denen der neue Funk-Schaltaktor (Affiliate-Link) verbrauchsabhängig Schaltvorgänge durchführen kann. Ist die Waschmaschine fertig mit dem Waschvorgang, kann der HomeMatic HM-ES-PMSw1-Pl (Affiliate-Link) sie direkt abschalten, was gerade bei Haushaltsgroßgeräten dabei hilft, die Stromrechnung zu senken und daher eine echte Empfehlung für alle Energiesparer ist. Wie das funktioniert, wird im Howto-Artikel HomeMatic Funk-Steckdose mit Leistungsmessung: Deine Waschmaschine ist fertig ausführlich beschrieben.

Wer seinen Komfort steigern möchte, kann den neuen Schaltaktor HomeMatic HM-ES-PMSw1-Pl (Affiliate-Link) beispielsweise auch dazu verwenden, sich schlicht benachrichtigen zu lassen, wenn die Waschmaschine fertig ist, was anhand des abfallenden Stromverbrauchs erkannt werden kann.

Einbinden in FHEM: Neues Zusatz-Feature nutzen und in eigene Abläufe integrieren

Der Hausautomation-Server FHEM wurde bereits softwareseitig für den neuen Schaltaktor HomeMatic HM-ES-PMSw1-Pl (Affiliate-Link) vorbereitet. Vor dem Verbinden („Pairen“) sollte jedoch zunächst ein Update ausgeführt werden, damit die neuesten Daten installiert werden:

update check
update
shutdown restart

Nun sollte das jeweilige Kommunikationsgerät (z.B. der HomeMatic HMLAN-Adapter (Affiliate-Link) oder der CUL von busware.de) in den Pairing-Modus gebracht werden (hier am Bsp. des HMLAN-Adapters):

set HMLAN1 PairForSec 60

Anschließend den neuen Funk-Schaltaktor (Affiliate-Link) einfach in eine Steckdose packen und den Taster an der Vorderseite 4 Sekunden gedrückt halten. Daraufhin sollte die LED orange blinken und der erfolgreiche Pairing-Vorgang mit dem Aufleuchten eines grünen LED-Signals quittiert werden. Der neue Funk-Schaltaktor (Affiliate-Link) ist jetzt im Raum CUL_HM zu finden. Theoretisch könnte man das Pairen auch über die Seriennummer der Komponente vornehmen, was bei mir allerdings für den HomeMatic HM-ES-PMSw1-Pl (Affiliate-Link) nicht funktioniert hat.

Die Besonderheit dieses neuen Aktors ist, dass er über mehrere Kanäle verfügt. Diese sind sichtbar, wenn man das neu in FHEM erschienene Device anklickt (siehe Screenshot links). Dabei sind allerdings lediglich Kanal 1 zum Schalten und Kanel 2 zum Messen von Relevanz (Kanal 1 habe ich im Screenshot aus Komfort-Gründen bereits umbenannt).

Das Steuern des an den HomeMatic HM-ES-PMSw1-Pl (Affiliate-Link) angeschlossenen Verbrauchers sollte nun bereits reibungsfrei funktionieren. Bei Auswahl von Kanal 2 mit der Endung „_Pwr“ wird der Stromverbrauch in Watt allerdings nicht direkt im Statusfeld „STATE“ angezeigt, sondern ist vielmehr Bestandteil der Readings (siehe Screenshot rechts) und ist im Feld „Power“ zu finden. Wer diesen Wert jetzt nutzen möchte, um weitere Aktionen zu starten oder ihn einfach nur zur Überwachung braucht, muss zunächst einen Dummy erstellen, der über ein Notify jeweils den aktuellen Verbrauchswert vom HomeMatic Funk-Schaltaktor (Affiliate-Link) erhält. Zunächst wird der Mess-Kanal (2) noch umbenannt:

rename CUL_HM_HM_ES_PMSw1_Pl_24A88C_Pwr Verbrauchsmessung
define Verbraucher1 dummy
define Verbraucher1Setzen notify Verbrauchsmessung {my $var= ReadingsVal("Verbrauchsmessung","power",0);; fhem("set Verbraucher1 $var")}

Der Dummy Verbraucher1 liefert uns jetzt immer die aktuellen Energieverbrauchswerte des angeschlossenen Verbrauchers in Watt. Wie man die Werte nun beispielsweise in einem Graphen visualisieren kann, wird hier beschrieben.

Aus meinem täglichen Leben

Der neue HomeMatic Funk-Schaltaktor (Affiliate-Link) wird bei mir allmählich die alten FS20-ST (Affiliate-Link) ersetzen. Schritt für Schritt werde ich die Leistungsmessung dazu nutzen, gezielt Energieverbraucher zu identifizieren und bei Bedarf abzuschalten. Im Gegensatz zu meiner aktuellen Methode, den Stromverbrauch mit dem OWL +USB Smart Meter (Affiliate-Link) für das gesamte Heim zu erfassen, kann mit dem neuen HomeMatic Funk-Schaltaktor (Affiliate-Link) HM-ES-PMSw1-Pl (Affiliate-Link) ganz spezifisch der Energiebedarf einzelner Verbraucher erfasst und verfolgt werden. Die einfache Anbindung in FHEM und die schöne Optik im Vergleich zu den alten Modellen machen den Aktor für mich zu einem der besten Hardware-Updates von HomeMatic seit längerer Zeit. Der etwas höhere Preis wird durch die Produktfeatures absolut gerechtfertigt. Uneingeschränkte Kaufempfehlung!

19 Kommentare
  1. Hallo Christoph,

    vielen Dank für den Beitrag und die gute Idee. Eine Frage stellt sich mir jedoch, wenn du das ganze per Notify realisiert:

    Das Notify schlägt doch bei jeder Statusänderung (hier: Watt-Änderung) an, oder? Da eine Waschmaschine ja bei jeder Änderung der Drehzahl/Drehrichtung/Heizstärke/… einen anderen Strombedarf hat, schlägt das Notify wahrscheinlich mehrmals pro Sekunde an, oder? … oder in welchem Intervall liefert der Zwischenstecker seine Werte?

    1. Richtig, genau zu diesem Anwendungsfall werde ich in einigen Tagen einen extra Artikel (da etwas aufwändiger) posten. Also bitte noch etwas Geduld… 🙂

    2. Hier das versprochene Howto: https://meintechblog.de/2014/01/homematic-funk-steckdose-mit-leistungsmessung-deine-waschmaschine-ist-fertig/

  2. Alles klar, Danke. Ich habe aber auch schon gesehen, dass man da mit den Registern arbeiten kann (Schwellwerte, feste Intervalle, etc.) – zumindest sollte die Flut von Signalen damit eingedämmt werden können.

    1. Hallo Tino. Exakt: Register, Schwellwerte etc. Hier wollten wir zunächst einmal den neuen Aktor vorstellen. Jörg wird ein Real-Life-Szenario nachliefern.

  3. Guten Abend und frohe Ostern,
    ich hoffe es ist nicht unverschämt wenn ich Sie mit einer Frage zum Thema FHEM und Homematic bombardiere, evtl. können Sie mir ja weiterhelfen.
    Ich habe seit mehreren Wochen einen Raspi als FHEM Server in Betrieb, eingestiegen bin ich mit Temperaturmessung über 1-Wire – funktioniert einwandfrei und läuft seither ohne Absturz und Neustart sauber durch.
    Nun bin ich so zu sagen in Phase zwei eingestiegen, Homematic mit HMLAN Adapter einem Schalter und der Steckdose mit Leistungsmessung.
    Ich bin dabei nach Ihrer Anleitung vorgegangen und bis zum pairen hat alles funktioniert, d.h. die Steckdose ist erkannt. Leider werden bei mir keine verschiedenen Kanäle angezeigt und ich kann die Steckdose per FHEM nicht steuern.

    So sieht die Übersicht aus:

    CFGFN
    DEF
    24ADFB
    EVENTS
    590
    HMLAN1_MSGCNT
    589
    HMLAN1_RAWMSG
    E24ADFB,0000,065785C7,FF,FFE4,55845E24ADFB0000008000620000000000091B01
    HMLAN1_RSSI
    -28
    HMLAN1_TIME
    2014-04-20 21:49:41
    IODev
    HMLAN1
    LASTInputDev
    HMLAN1
    MSGCNT
    589
    NAME
    CUL_HM_ID_00AC_24ADFB
    NR
    102
    STATE
    ???
    TYPE
    CUL_HM
    lastMsg
    No:55 – t:5E s:24ADFB d:000000 8000620000000000091B01
    protLastRcv
    2014-04-20 21:49:41
    protSnd
    3 last_at:2014-04-19 21:08:34
    protState
    CMDs_done
    rssi_at_HMLAN1
    avg:-27.47 min:-32 max:-27 lst:-28 cnt:589
    Readings
    CommandAccepted
    yes
    2014-04-19 21:08:34
    R-intKeyVisib
    set_invisib
    2014-04-19 21:08:33
    R-pairCentral
    set_0x26EEDE
    2014-04-19 21:08:33
    noReceiver
    src:24ADFB 845E 8000620000000000091B02
    2014-04-20 21:57:18

    und so die Attribute:

    expert
    2_full
    deleteattr
    firmware
    1.5
    deleteattr
    model
    unknown
    deleteattr
    peerIDs
    deleteattr
    room
    CUL_HM
    deleteattr
    serialNr
    KEQ0966268
    deleteattr
    subType

    Ganz oben in der Übersicht bei „Set“ und dem Namen des Devices gibt es einen Art Schieberegler der sich von 1 bis 40 bewegen lässt.

    Vielleicht haben Sie Zeit und Lust mir mit meinem Problem weiter zu helfen. Würde mich freuen.

    Vielen Dank und einen schönen Abend

    Andreas Burst

    1. Hallo Andreas,

      das klingt danach, als hättest Du FHEM nicht auf die neueste Version upgedated.
      Hast du den Update-Befehl durchgeführt?

      Du kannst prüfen, ob du die aktuellste Version der 10_CUL_HM.pm hast, wenn du per SFTP in den Ordner /opt/fhem/FHEM gehst, und dir dort einmal die auf deinem Raspi vorhandene 10_CUL_HM.pm auf den lokalen PC/Mac lädst.

      Im Trunk (https://github.com/mhop/fhem-mirror/tree/master/fhem/FHEM) selbige Datei herunterladen und die Verisonsnummer (oben) vergleichen.

      Viele Grüße
      Christoph

    2. Hallo Christoph, danke für den Tip! Hatte ich tatsächlich vergessen….allerdings tut sich nicht sehr viel wenn ich den Befehl update eingebe es erscheint nur ein Hinweis in dem mich FHEM um meine Unterstützung bittet. Bei update force geschieht das gleiche??
      Bei update check wird u.a. die von dir erwähnte Datei aufgeführt.
      Viele Grüße
      Andreas

    3. Hallo!
      Unbedingt auch noch ein „shutdown restart“ nach dem Update durchführen. Vielleicht liegt es ja daran.

    4. … oder setze mal „attr global sendStatistics onUpdate“ in der fhem.cfg – dies könnte die verlange „Unterstützung“ sein, von der du redest.

  4. Ich will ja nicht klugschei*en … aber fehlen in der Definition des Verbraucher1Setzen nicht zwei „;“?

    define Verbraucher1Setzen notify Verbrauchsmessung {my $var= ReadingsVal(„Verbrauchsmessung“,“power“,0); fhem(„set Verbraucher1 $var“);}

  5. Hallo Christoph,

    ich habe mir auch gleich mal 2 Zwischenstecker mit Leistungsmessung besorgt, doch leider bekomme ich immer eine Fehlermeldung wenn ich den Code aus Deiner Anleitung (define Verbraucher1Setzen notify Verbrauchsmessung {my $var= ReadingsVal(„Verbrauchsmessung“,“power“,0) fhem(„set Verbraucher1 $var“)}) eingebe. Woran kann es denn liegen?

    Fehlermeldung im Logfile:
    2015.09.05 13:06:36 1: PERL WARNING: Bareword found where operator expected at (eval 124) line 1, near „) fhem“
    2015.09.05 13:06:36 3: eval: {my $var= ReadingsVal(„Kueche_Kuehlschrank“,“power“,0) fhem(„set Verbraucher_Kuehlschrank $var“)}
    2015.09.05 13:06:36 3: VerbraucherKuehlschrankSetzen return value: syntax error at (eval 124) line 1, near „) fhem“

    Vielen Dank für Eure tollen Artikel

    Gruß Ralph

    1. Hallo Ralph,

      bei mir hat es anfangs auch nicht gleich geklappt. Ich hatte auch die Perl Warnung „Bareword found“ im Log stehen.

      Wie ich bereits oben geschrieben habe, hängt es mit fehlenden „;“ zusammen.

      Nach etwas rumexperimentieren und -googlen habe ich dann in meiner fhem.cfg folgende Einträge gemacht, die zum gewünschten Ergebnis führten:

      define VAR.Steckdose.01 CUL_HM 2DBD70
      attr VAR.Steckdose.01 model HM-ES-PMSw1-Pl

      define VAR.Steckdose.01_Pwr CUL_HM 2DBD7002
      attr VAR.Steckdose.01_Pwr model HM-ES-PMSw1-Pl

      define VAR.Steckdose.01.Verbrauch dummy
      attr VAR.Steckdose.01.Verbrauch event-on-change-reading state

      define VAR.Steckdose.01.Verbrauch_setzen notify VAR.Steckdose.01_Pwr {my $var= ReadingsVal(„VAR.Steckdose.01_Pwr“,“power“,0);; fhem(„set VAR.Steckdose.01.Verbrauch $var“);;}

      define FileLog_VAR.Steckdose.01.Verbrauch FileLog ./log/VAR.Steckdose.01.Verbrauch-%Y.log VAR.Steckdose.01.Verbrauch
      attr FileLog_VAR.Steckdose.01.Verbrauch logtype text

      Aus dem FileLog kann man dann noch eine hübsche Grafik plotten lassen …

    2. Hallo Ralph,
      hallo Jens,

      ja, klar, es liegt an den fehlenden „;“. Wir haben für die Darstellung von Code hier auf dem Blog ein neues Plugin installiert, welches uns scheinbar alle „;“ entfernt hat 🙁

      Gut, dass ihr euch gemeldet habt! Danke! Werde es gleich ausbessern…

      Viele Grüße
      Christoph

  6. Hallo Chistoph und MeinTechBlog,

    Vielen Dank fuer das Tutorial. Begonnen habe ich genau wie Du es hier beschreiebst, dann habe ich es etwas abgewandelt (es kann sein, dass ich die Idee dafuer vor einiger Zeit irgendwo auf Euren Seiten gefunden habe).

    Ich nutze das ‚event-on-change-reading‘-Attribute auf den Wert ‚energy‘ beim ‚Pwr‘-Element und ’state‘ beim ‚SenPwr‘-Element. Dieses Event loest aus, sobald sich der Wert aendert.

    Dieses Event habe ich u.a. mit einem FileLog verbunden, um so fuer jeden Wert und jedes Geraet ein eigenes Logfile zu erstellen. Und zwar so (Prise_1_ConsoTotal ist das Geraet was normalerweise …Pwr heisst):

    # Aktivation des event-on-change-reading event auf den Wert ‚energy‘
    attr Prise_1_ConsoTotal event-on-change-reading energy

    # Verbinden des Filelogs mit dem Wert ‚energy‘ aus ‚Prise_1_ConsoTotal‘
    define Prise_1_ConsoTotal_FileLog FileLog ./log/Prise_1_ConsoTotal-%Y-%m.log \
    Prise_1_ConsoTotal:energy.*

    Mir scheint diese Methode simpler als die oben gezeigte Notify-Methode. Aber ist sie identisch? Ich bin kein FHEM-Experte, meine Frage daher, worin liegen die Unterschiede zwischen on-change und notify?

    Viele Gruesse,
    Patrick.

  7. Hallo Leute
    wieder mal eine frage?
    weiß jemand wie ich meine Homematic Komponenten direct mit Loxone verknüpfe
    ohne Umwege über fhem.
    Mein plan ist meine Zisternen Überwachung inclusive Betriebsüberwachung und Status des letzen Signals

Schreibe einen Kommentar

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

Das könnte dir auch gefallen