PowerMeterDisplay für Fronius Symo Wechselrichter

Begonnen von Bieberburg, 19 Februar 2021, 22:44:13

Vorheriges Thema - Nächstes Thema

Bieberburg

Nachdem ich meinen Fronius Symo mit SmartMeter nun schon einige Jahre am Netz habe, wollte ich mir die aktuelle Leistung von der PV und den Verbrauch auf einer LED-Anzeige darstellen lassen.

# Fronius Wechselrichter per HTTPMOD
# http://forum.fhem.de/index.php?topic=24614.0
# MeterPower enthält die aktuellen Messwerte
define MeterPower HTTPMOD http://192.168.1.xxx/solar_api/v1/GetPowerFlowRealtimeData.fcgi 60
attr MeterPower userattr getURL
attr MeterPower event-on-update-reading Power_P_.*
attr MeterPower extractAllJSON 1
attr MeterPower getHeader1 Content-Type: application/json
attr MeterPower getHeader2 Accept: */*
attr MeterPower icon measure_photovoltaic_inst
attr MeterPower room Strom
attr MeterPower stateFormat Prod Power_P_Generate W, Use Power_P_Load W, Grid Power_P_Grid W
attr MeterPower userReadings Power_P_Grid { int(ReadingsVal ("MeterPower","Body_Data_Site_P_Grid",0))}, Power_P_Load { -int(ReadingsVal ("MeterPower","Body_Data_Site_P_Load",0))}, Power_P_Generate { -int(ReadingsVal ("MeterPower","Body_Data_Site_P_Grid",0)) - int(ReadingsVal ("MeterPower","Body_Data_Site_P_Load",0))}, Relative_Current_Autonomy { int(ReadingsVal ("MeterPower","Body_Data_Site_rel_Autonomy",0)*10)/10}, Relative_Current_SelfConsumption { int(ReadingsVal ("MeterPower","Body_Data_Site_rel_SelfConsumption",0)*10)/10}, Energy_Day { int(ReadingsVal ("MeterPower","Body_Data_Site_E_Day",0)/100)/10}, Energy_Total { int(ReadingsVal ("MeterPower","Body_Data_Site_E_Total",0)/100)/10}
define FileLog_MeterPower FileLog ./log/MeterPower-%Y-%m.log MeterPower:Power_P_Grid:.*|MeterPower:Power_P_Load:.*|MeterPower:Power_P_Generate:.*
attr FileLog_MeterPower logtype text


Um die Daten für den WebServer aufzubereiten habe ich readingsProxy verwendet:

define PowerLoad readingsProxy MeterPower:Power_P_Load
attr PowerLoad room Power
attr PowerLoad stateFormat state W
define PowerPV readingsProxy MeterPower:Power_P_Generate
attr PowerPV room Power
attr PowerPV stateFormat state W


Der WebServer wird über ein notify angesprochen, nur wenn sich Daten geändert haben.
Um den PV-Ertrag und den derzeitigen Verbrauch getrennt aktualisieren zu können, habe ich die beiden Werte in der "payload" unterschieden:

  • /mqtt?payload=PwrLd=
  • /mqtt?payload=PwrPV=

define PowerDisplay HTTPMOD http://192.168.1.yyy:80/mqtt?payload=
attr PowerDisplay room Power
attr PowerDisplay set01Hint slider,0,100,6000
attr PowerDisplay set01Name PwrLd
attr PowerDisplay set01URL http://192.168.1.yyy:80/mqtt?payload=PwrLd=$val W
attr PowerDisplay set02Hint slider,0,100,6000
attr PowerDisplay set02Name PwrPV
attr PowerDisplay set02URL http://192.168.1.yyy:80/mqtt?payload=PwrPV=$val W
attr PowerDisplay stateFormat none

define n.DisplayPowerPV notify PowerPV:.* set PowerDisplay PwrPV $EVENT
attr n.DisplayPowerPV room Power
define n.DisplayPowerLd notify PowerLoad:.* set PowerDisplay PwrLd $EVENT
attr n.DisplayPowerLd room Power


Als Display verwende ich zwei Reihen von "MAX7219 4 in 1 Dot Matrix MCU LED Display Module" die von einer "D1 Mini NodeMcu mit ESP8266-12F WLAN Module CH340G Lua kompatibel mit Arduino" angesteuert werden. Die beiden Module können direkt über den 5V pin der NodeMcu versorgt werden, wenn das Netzteil starkt genug ist.
Damit das auch gut aussieht, habe ich es in einen "IKEA RIBBA 13x18cm2" Bilderrahmen eingebaut, der die nötige Tiefe aufweist.

Fotos und Arduino-Listing sind nun angehängt.
Viel Spaß beim nachbauen!  :D
FHEM on Raspberry Pi 4 with IOT WLAN

steffenp

Hallo,

sehr schöne Idee, gleich mal nachgebaut und auf 3 Zeilen erweitert.

Ich würde in die Initialisierung noch ein "WiFi.mode(WIFI_STA);" einbauen. Dann wird der Accesspoint abgeschaltet.

Mich stört ein wenig die Helligkeit. Muss mal suchen ob man die LED's dimmen kann?

Gruß

Bieberburg

Vielen Dank, das freut mich sehr!

Bei mir steht das Display seit einigen Wochen am Kaminsims, tut störungsfrei seinen Dienst und sagt nicht nur mir, wenn es günstig ist mein Auto zu laden, sondern ist auch für unsere Familie eine Aufforderung den Geschirrspüler oder die Waschmaschine einzuschalten. :)
FHEM on Raspberry Pi 4 with IOT WLAN