Shelly Plug S in FHEM einbinden mit Leistungsmessung und Darstellung Verbrauch

06.01.2024
Dieser Inhalt ist bereits etwas älter.
This content is already a bit old.
Bild

Nach einigen Versuchen und die Shelly Plug S in meine FHEM-Installation zu integrieren habe ich mit etwas Try-and-Error eine ganz gut funktionieren Konfiguration gefunden. Hierbei wird natürlich das Shelly-FHEM-Modul verwendet, aber es werden zusätzlich 5 Dinge sichergestellt:

1. Wenn das Gerät nicht mehr im Netzwerk erreichbar ist, wird der Verbrauchwert auf 0 W zurückgesetzt

2. Es wird zusätzlich zum Verbrauch in Watt auch der Verbrauch in Kilowatt berechnet (UserReading)

3. Es wird ein SVG-Plot erstellt, welcher den Verbrauch in einem Diagramm darstellt

4. Das Icon sowie das StateIconwird festgelegt (Siehe unten das Icon zum Download)

5. Die Formatierung wird festgelegt, damit direkt der Verbrauch in der Syntax "<Verbrauch in Watt> W" angezeigt wird.

 

Hier die Vorlage für die Definition eines Shelly Plug S:

define <Gerätename> Shelly <IP-Adresse des Shellys>
attr <Gerätename> alias <Beliebiger Name>
attr <Gerätename> devStateIcon on*:black_Steckdose.on off*:black_Steckdose.off
attr <Gerätename> icon Shelly_Plug_S
attr <Gerätename> interval 1
attr <Gerätename> model shellyplug
attr <Gerätename> room <Raumname>
attr <Gerätename> snipsMapping SetOnOff:cmdOn=on,cmdOff=off
attr <Gerätename> stateFormat relay\
<br>\
power W
attr <Gerätename> userReadings KW {sprintf("%.3f",ReadingsVal($name,"power",0)/1000) }
define <Gerätename des Watchdogs> PRESENCE lan-ping <IP-Adresse des Shellys>
attr <Gerätename des Watchdogs> room <Raumname>
define <Gerätename des Watchdogs-Notify> notify <Gerätename des Watchdogs>:absent { fhem "setreading <Gerätename> power 0;;setreading <Gerätename> relay off" }
define <SVG-Plotname des Gerätes> SVG logdb:power_shelly_plug:CURRENT
attr <SVG-Plotname des Gerätes> endPlotNow 1
attr <SVG-Plotname des Gerätes> plotfunction <Gerätename>
attr <SVG-Plotname des Gerätes> room <Raumname>
attr <SVG-Plotname des Gerätes> title "<Beliebiger Titel>"

Anmerkung: Für die Erstellung des SVG-Plots wird in diesem Beispiel das DBLog-Modul verwendet, da in meinem Fall die Verbrauchsdaten in eine SQL-Datenbank geschrieben werden. Natürlich kann dies auch auf Textdatei-Ebene laufen. Die Konfiguration des DBLog-Moduls ist unter DbLog – FHEMWiki einsehbar und wird in der Regel global in FHEM definiert. Bei sehr kurzen Intervallen der Messwerte macht es Sinn, nicht in eine Logdatei zu schreiben, um die I/O-Last des Systems gering zu halten. Falls es nicht gewünscht ist, den Wert in relativ kurzen Intervallen auszulesen, kann auch auf ein Durchschnittswert des Shelly-Moduls zurückgegriffen werden, allerdings kommen dann Schwankungen nicht mehr zum Vorschein.

Für das Icon "Shelly_Plug_S" verwende ich die selbst erstelle Datei "Shelly_Plug_S.png", welche ich im FHEM-Installationsverzeichnis unter "www/images/default" abgelegt habe:

Bild
Shelly Plug S Icon

So sieht es dann in in FHEM "life" aus:

Bild
Bild

 

Feedback, suggestions for improvement, further ideas?

Simply use the contact form or send an email directly to info@kirgus.net.