Einbindung eines Sungrow SH10RT: SH05,SH06,SH08,SH10

Begonnen von 3gmann, 05 November 2020, 11:22:14

Vorheriges Thema - Nächstes Thema

3gmann

Leider sind immer doch nicht alle Modbusregister der WR SHxxRT über WLAN abrufbar.

Zitat Sungrow PM Team: siehe link: https://www.photovoltaikforum.com/thread/166134-daten-lesen-vom-sungrow-wechselrichtern-modbus/?postID=2914589#post2914589

Es ist gerade die Firmwareversion ..15 für den WiNet-S erschienen. (zuvor ..12)
Modbus-TCP Register sollen vollständiger sein.
Anzeigedarstellungen sollen korrigiert sein, z.B. die Darstellung der Batteriekapazität.


Ich persönlich rufe die Daten über die LAN Schnittstelle ab hier habe ich keine gravierenden Probleme. Vereinzelt treten folgende Fehlermeldungen auf:
z.b. 2022.12.19 08:09:44 3: SH10rt_Fast: QueueRequest queue too long (101), dropping new request
Dies führt jedoch zu keinem disconnect.

Falls möglich bitte die Modbusregister über LAN ModbusTCP abrufen.

Mir ist aufgefallen, dass die WR es gar nicht mögen wenn verschiedene Geräte über Modbus Daten vom WR anfordern, das hat - zumindest bei mir - zu disconnects geführt dauert dann ziemlich lange bis wieder ein Connect erfolgt. Aus diesem Grunde holt sich FHEM alle Daten die es braucht über ein Device vom WR ab. Die Register werden dann - um den WR zu entlasten - in verschiedenen Zeitabständen ausgelesen.
"Kommunikation ist der Motor aller Entwicklungen!"
Eigenbau FHEM-Server, IPCAM; Plenticore Plus 10; SH10RT; Mitsubishi ECODAN PUD-SHWM120YAA + EHSD-YM9D; eigene Hardware Arduino; MQTT; Modbus...

roadghost

#61
Naabend.

Es sind 2 DOIF und ein HTTPMOD.

max SOC DOIF
defmod di_PV_Akku_Ladesteuerung_Max_SOC DOIF (([PV_forecast_heute] > 50) and ([05:00-11:29]) and (($month >= 3) and ($month <= 10))) (set SH10rt_1 Max_Charging_Power 300,{fhem("set SH10rt_1 Max_SOC ".(ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "50") > 50 ? (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "50")*10) : 500))}) DOELSEIF (([PV_forecast_heute] > 50) and (($month >= 3) and ($month <= 10)) and ([11:30-{sunset("REAL",-12600,"13:00","20:00")}])) (set SH10rt_1 Max_Charging_Power 200,{fhem("set SH10rt_1 Max_SOC ".(ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "80") > 80 ? (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "80")*10) : 800))}) DOELSE ({fhem("set SH10rt_1 Max_SOC ".(($wday == 0) ? 1000 : (([PV_forecast_morgen] < 25) ? 990 : (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90") > 90 ? (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90")*10) : 900))))},set SH10rt_1 Max_Charging_Power 500)



Das max SOC DOIF gibt als Fehler aus:

{fhem("set SH10rt_1 Max_SOC ".(($wday == 0) ? 1000 : (( < 25) ? 990 : (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90") > 90 ? (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90")*10) : 900))))}: syntax error at (eval 258020) line 1, near "< 25) ? 990 : (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90") > 90"

Dann gibt es noch das PV Prognose DOIF

defmod di_PV_forecast DOIF ([+01:00]) ({fhem("set PV_forecast_heute ".sprintf("%.2f",((ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watt_hours_day-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT2","watt_hours_day-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT1","watt_hours_day-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT2","watt_hours_day-1","0"))/1000)))}) ({fhem("set PV_forecast_morgen ".sprintf("%.2f",((ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT2","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT1","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT2","watt_hours_day-2","0"))/1000)))})
attr di_PV_forecast do always


Dieses meldet:


{fhem("set PV_forecast_morgen ".sprintf("%.2f",((ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT2","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT1","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT2","watt_hours_day-2","0"))/1000)))}: Please define PV_forecast_morgen first


httpmod für Datenabruf Prognose


defmod httpmod_forecast_solar_SH10RT_1_MPPT1 HTTPMOD https://api.forecast.solar/estimate/<lat>/<long>/45/-90/4 3600
attr httpmod_forecast_solar_SH10RT_1_MPPT1 bodyDecode auto
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading01JSON result_watts_.*10\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading01Name watts_10
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading02JSON result_watts_.*11\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading02Name watts_11
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading03JSON result_watts_.*12\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading03Name watts_12
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading04JSON result_watts_.*13\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading04Name watts_13
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading05JSON result_watts_.*14\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading05Name watts_14
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading06JSON result_watts_.*15\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading06Name watts_15
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading07JSON message_ratelimit_period
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading07Name message_ratelimit_period
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading08JSON message_ratelimit_limit
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading08Name message_ratelimit_limit
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading09JSON message_ratelimit_remaining
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading09Name message_ratelimit_remaining
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading10JSON message_type
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading10Name message_type
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading11JSON result_watt_hours_day.*
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading11Name watt_hours_day
attr httpmod_forecast_solar_SH10RT_1_MPPT1 room HTTPMOD,PV-Anlage,Wettervorhersage
attr httpmod_forecast_solar_SH10RT_1_MPPT1 stateFormat watt_hours_day-1
attr httpmod_forecast_solar_SH10RT_1_MPPT1 userReadings watts-mittags-heute {(ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_10-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_11-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_12-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_13-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_14-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_15-1","0"))/6}, watts-mittags-morgen {(ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_10-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_11-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_12-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_13-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_14-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_15-2","0"))/6}
den httpmod musst du dir je nach deiner anlage selbst zusammenbauen, siehe anleitung unter api solarforecast:[

code]

defmod httpmod_forecast_solar_SH10RT_1_MPPT1 HTTPMOD https://api.forecast.solar/estimate/<lat>/<long>/45/-90/4 3600
attr httpmod_forecast_solar_SH10RT_1_MPPT1 bodyDecode auto
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading01JSON result_watts_.*10\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading01Name watts_10
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading02JSON result_watts_.*11\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading02Name watts_11
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading03JSON result_watts_.*12\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading03Name watts_12
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading04JSON result_watts_.*13\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading04Name watts_13
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading05JSON result_watts_.*14\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading05Name watts_14
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading06JSON result_watts_.*15\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading06Name watts_15
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading07JSON message_ratelimit_period
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading07Name message_ratelimit_period
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading08JSON message_ratelimit_limit
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading08Name message_ratelimit_limit
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading09JSON message_ratelimit_remaining
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading09Name message_ratelimit_remaining
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading10JSON message_type
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading10Name message_type
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading11JSON result_watt_hours_day.*
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading11Name watt_hours_day
attr httpmod_forecast_solar_SH10RT_1_MPPT1 room HTTPMOD,PV-Anlage,Wettervorhersage
attr httpmod_forecast_solar_SH10RT_1_MPPT1 stateFormat watt_hours_day-1
attr httpmod_forecast_solar_SH10RT_1_MPPT1 userReadings watts-mittags-heute {(ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_10-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_11-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_12-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_13-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_14-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_15-1","0"))/6}, watts-mittags-morgen {(ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_10-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_11-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_12-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_13-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_14-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_15-2","0"))/6}


Der http mod funktioniert.
NUC/Ubuntu 22.04 m. FHEM, div. Tasmota-Steckdosen, HMCFGUSB-2 für 12x HM-CC-RT-DN + 8x HM-TC-IT-WW
Rademacher DuoFern für 12 Jalousien, JeeLink für LaCrosse Temp.Sensor, WLAN-smart-Plugs, 
NUKI smartlock, 2xIP-CAM, Pylontech Speicher + Sungrow WR, Unifi-AP´s + Controller auf weiterem NUC

3gmann

Hallo Zusammen,

viele fragen nach der aktuelle Modbus-Registerliste. Ihr findet sie im Anhang.

Frohe Festtage und einen Guten Rutsch ins neue Jahr 2023.
"Kommunikation ist der Motor aller Entwicklungen!"
Eigenbau FHEM-Server, IPCAM; Plenticore Plus 10; SH10RT; Mitsubishi ECODAN PUD-SHWM120YAA + EHSD-YM9D; eigene Hardware Arduino; MQTT; Modbus...

SouzA

#63
Zitat von: roadghost am 23 Dezember 2022, 20:56:12
Naabend.

Es sind 2 DOIF und ein HTTPMOD.

max SOC DOIF
defmod di_PV_Akku_Ladesteuerung_Max_SOC DOIF (([PV_forecast_heute] > 50) and ([05:00-11:29]) and (($month >= 3) and ($month <= 10))) (set SH10rt_1 Max_Charging_Power 300,{fhem("set SH10rt_1 Max_SOC ".(ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "50") > 50 ? (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "50")*10) : 500))}) DOELSEIF (([PV_forecast_heute] > 50) and (($month >= 3) and ($month <= 10)) and ([11:30-{sunset("REAL",-12600,"13:00","20:00")}])) (set SH10rt_1 Max_Charging_Power 200,{fhem("set SH10rt_1 Max_SOC ".(ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "80") > 80 ? (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "80")*10) : 800))}) DOELSE ({fhem("set SH10rt_1 Max_SOC ".(($wday == 0) ? 1000 : (([PV_forecast_morgen] < 25) ? 990 : (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90") > 90 ? (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90")*10) : 900))))},set SH10rt_1 Max_Charging_Power 500)



Das max SOC DOIF gibt als Fehler aus:

{fhem("set SH10rt_1 Max_SOC ".(($wday == 0) ? 1000 : (( < 25) ? 990 : (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90") > 90 ? (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90")*10) : 900))))}: syntax error at (eval 258020) line 1, near "< 25) ? 990 : (ReadingsVal("SH10rt_1","Battery_Level_korrigiert", "90") > 90"

Dann gibt es noch das PV Prognose DOIF

defmod di_PV_forecast DOIF ([+01:00]) ({fhem("set PV_forecast_heute ".sprintf("%.2f",((ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watt_hours_day-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT2","watt_hours_day-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT1","watt_hours_day-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT2","watt_hours_day-1","0"))/1000)))}) ({fhem("set PV_forecast_morgen ".sprintf("%.2f",((ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT2","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT1","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT2","watt_hours_day-2","0"))/1000)))})
attr di_PV_forecast do always


Dieses meldet:


{fhem("set PV_forecast_morgen ".sprintf("%.2f",((ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT2","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT1","watt_hours_day-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_2_MPPT2","watt_hours_day-2","0"))/1000)))}: Please define PV_forecast_morgen first


httpmod für Datenabruf Prognose


defmod httpmod_forecast_solar_SH10RT_1_MPPT1 HTTPMOD https://api.forecast.solar/estimate/<lat>/<long>/45/-90/4 3600
attr httpmod_forecast_solar_SH10RT_1_MPPT1 bodyDecode auto
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading01JSON result_watts_.*10\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading01Name watts_10
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading02JSON result_watts_.*11\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading02Name watts_11
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading03JSON result_watts_.*12\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading03Name watts_12
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading04JSON result_watts_.*13\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading04Name watts_13
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading05JSON result_watts_.*14\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading05Name watts_14
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading06JSON result_watts_.*15\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading06Name watts_15
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading07JSON message_ratelimit_period
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading07Name message_ratelimit_period
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading08JSON message_ratelimit_limit
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading08Name message_ratelimit_limit
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading09JSON message_ratelimit_remaining
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading09Name message_ratelimit_remaining
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading10JSON message_type
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading10Name message_type
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading11JSON result_watt_hours_day.*
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading11Name watt_hours_day
attr httpmod_forecast_solar_SH10RT_1_MPPT1 room HTTPMOD,PV-Anlage,Wettervorhersage
attr httpmod_forecast_solar_SH10RT_1_MPPT1 stateFormat watt_hours_day-1
attr httpmod_forecast_solar_SH10RT_1_MPPT1 userReadings watts-mittags-heute {(ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_10-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_11-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_12-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_13-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_14-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_15-1","0"))/6}, watts-mittags-morgen {(ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_10-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_11-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_12-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_13-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_14-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_15-2","0"))/6}
den httpmod musst du dir je nach deiner anlage selbst zusammenbauen, siehe anleitung unter api solarforecast:[

code]

defmod httpmod_forecast_solar_SH10RT_1_MPPT1 HTTPMOD https://api.forecast.solar/estimate/<lat>/<long>/45/-90/4 3600
attr httpmod_forecast_solar_SH10RT_1_MPPT1 bodyDecode auto
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading01JSON result_watts_.*10\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading01Name watts_10
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading02JSON result_watts_.*11\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading02Name watts_11
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading03JSON result_watts_.*12\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading03Name watts_12
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading04JSON result_watts_.*13\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading04Name watts_13
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading05JSON result_watts_.*14\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading05Name watts_14
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading06JSON result_watts_.*15\:00\:00
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading06Name watts_15
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading07JSON message_ratelimit_period
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading07Name message_ratelimit_period
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading08JSON message_ratelimit_limit
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading08Name message_ratelimit_limit
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading09JSON message_ratelimit_remaining
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading09Name message_ratelimit_remaining
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading10JSON message_type
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading10Name message_type
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading11JSON result_watt_hours_day.*
attr httpmod_forecast_solar_SH10RT_1_MPPT1 reading11Name watt_hours_day
attr httpmod_forecast_solar_SH10RT_1_MPPT1 room HTTPMOD,PV-Anlage,Wettervorhersage
attr httpmod_forecast_solar_SH10RT_1_MPPT1 stateFormat watt_hours_day-1
attr httpmod_forecast_solar_SH10RT_1_MPPT1 userReadings watts-mittags-heute {(ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_10-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_11-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_12-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_13-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_14-1","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_15-1","0"))/6}, watts-mittags-morgen {(ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_10-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_11-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_12-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_13-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_14-2","0")+ReadingsVal("httpmod_forecast_solar_SH10RT_1_MPPT1","watts_15-2","0"))/6}


Der http mod funktioniert.

Moin,
was du da im set hast, erschließt sich mir nicht ganz.

Gibt es bei dir den ([PV_forecast_morgen]) überhaupt?
Und dann wäre da wahrscheinlich die Klammersetzung anders zu setzen:
Alt: ? 1000 : (([PV_forecast_morgen] < 25) ?
Neu: ? (1000 : [PV_forecast_morgen]) < 25 ?

Das ist aber nur so eine Vermutung. Ich kann das hier nicht testen...


Zitat von: 3gmann am 26 Dezember 2022, 09:32:43
Hallo Zusammen,

viele fragen nach der aktuelle Modbus-Registerliste. Ihr findet sie im Anhang.

Frohe Festtage und einen Guten Rutsch ins neue Jahr 2023.


Vielen Dank für das Teilen der Infos.

Von mir auch einen guten Rutsch ins neue Jahr!
Viel Gesundheit und Erfolg...

Bis denn
SouzA


Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

roadghost

Zitat
Moin,
was du da im set hast, erschließt sich mir nicht ganz.

Gibt es bei dir den ([PV_forecast_morgen]) überhaupt?


Nein, das PV_forecast_morgen gibt es nicht, ich habe ja "nur" das definiert, was FhemPiUser mir per PN mitgeteilt hat. Da scheint etwas zu fehlen......
NUC/Ubuntu 22.04 m. FHEM, div. Tasmota-Steckdosen, HMCFGUSB-2 für 12x HM-CC-RT-DN + 8x HM-TC-IT-WW
Rademacher DuoFern für 12 Jalousien, JeeLink für LaCrosse Temp.Sensor, WLAN-smart-Plugs, 
NUKI smartlock, 2xIP-CAM, Pylontech Speicher + Sungrow WR, Unifi-AP´s + Controller auf weiterem NUC

SouzA

#65
Zitat von: 3gmann am 26 Dezember 2022, 09:32:43
Hallo Zusammen,

viele fragen nach der aktuelle Modbus-Registerliste. Ihr findet sie im Anhang.

Frohe Festtage und einen Guten Rutsch ins neue Jahr 2023.
Hallo 3gmann,

könntest du noch mal bitte deine aktuelle Device-Konfig inkl. den ganzen Registern (attributen) bereit stellen?

Das wäre nett.

Thx und bis denn
SouzA

Edit:
Ich frage nochmal nach, weil laut Registerliste die Werte, welche du in den Userreadings errechnest, eigentlich vorhanden sind?! Oder habe ich da was nicht verstanden?
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

SouzA

#66
Hallo Leute,

habt ihr plausible Werte bei den folgenden Registern?:
Daily PV energy yields 6196 - 6226 U16
Monthly PV energy yields 6227 - 6238 U16
Yearly PV energy yields 6250 - 6289 U32*20

Wobei ich bei letzterem, ehrlich gesagt, keine Ahnung habe, wie man das in ModbusAttr darstellen soll (U32*20)?!

Bitte um Rückmeldung ;)

Thx und bis denn
SouzA

Edit:
kleine Fortschritte:

obj-i6195-reading Daily_PV_energy_yields
obj-i6195-expr $val/10
obj-i6195-len 20
obj-i6195-poll 1
obj-i6195-polldelay x199
obj-i6195-revRegs 1
obj-i6195-type U16

obj-i6226-reading Monthly_PV_energy_yields
obj-i6226-expr $val/10
obj-i6226-len 12
obj-i6226-poll 1
obj-i6226-polldelay x199
obj-i6226-type U16


Damit kommen plausible Werte für die beiden genannten Readings.
Jetzt zumindest...^^

Mit Yearly PV energy yields 6250 - 6289 U32*20 bin ich noch nicht weiter. Ich habe keine Ahnung, wie ich die U32*20 eintragen soll.

Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

SouzA

Moin,

mal ne Frage zu dem ModbusAttr-Modul. Vielleicht hat hier jemand eine Ahnung, wie das geht...
Es sind jetzt folgende Attribute für Daily_PV_energy_yields angelegt:
obj-i6195-reading Daily_PV_energy_yields
obj-i6195-expr $val/10
obj-i6195-len 20
obj-i6195-poll 1
obj-i6195-polldelay x199
obj-i6195-revRegs 1
obj-i6195-type U16

Mit dem Ergebnis, dass der Wert für die täglichen PV-Energieerträge für den Tag 20 (Also aktuell den 20.01.2023) im aktuellen Monat angezeigt wird.
Ändert man das attr obj-i6195-len 20 auf 21, wird der Wert für den 21.ten Tag im Monat angezeigt usw...
Wie legt man dies nun am besten im Device an?

Ähnliche Überlegung auch bei Monthly_PV_energy_yields.
Hier ist es allerdings egal, ob len 1, 2, 3 oder .. 12 eingegeben wird. Es kommt immer das selbe raus.
Kann aber daran liegen, dass mein WR erst diesen Monat in Betrieb ging. Die anderen zugehörigen Register werden wahrscheinlich (!!) noch 0 tragen...

Das Problem bei  Yearly PV energy yields besteht weiterhin...

Kann da jemand helfen?

Thx und bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

xerion

Hallo zusammen, ich habe heute meinen SH10RT mit SBR128 erfolgreich in Betrieb genommen. Läuft bis jetzt alles gut und versuche mich gerade in Modbus einzuarbeiten.

Was mir aber noch nicht ganz klar ist wie ich eine Ladung starten bzw. stoppen kann. Gibt es dafür ein Register oder andere Möglichkeiten?

Ich nutze Tibber und möchte nachts bei günstigen Strom den Speicher laden und das natürlich gerne automatisiert.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

SouzA

Hi, es gibt ein Register.
Charge/di
scharge
command
13051 U16
0xAA: Charge;
0xBB: Discharge;
0xCC: Stop (Default );

Wie man das setzt, darüber habe ich mir noch keine Gedanken gemacht und weiß es schlicht nicht.

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

xerion

Zitat von: SouzA am 05 Februar 2023, 06:28:16
Hi, es gibt ein Register.
Charge/di
scharge
command
13051 U16
0xAA: Charge;
0xBB: Discharge;
0xCC: Stop (Default );

Wie man das setzt, darüber habe ich mir noch keine Gedanken gemacht und weiß es schlicht nicht.

Bis denn
SouzA

Danke dir. Das schaue ich mir Mal an.
Ich würde mich  freuen, wenn du meinen Einladungscode für Tibber, der Stromanbieter, der dir hilft, deinen Stromverbrauch zu verstehen und zu reduzieren, nutzt: https://invite.tibber.com/5fc08jbs. So bekommen wir beide 50 Euro und 100 % Ökostrom / https://geld-fuer-eauto.de/ref/334561880

pula

Hallo,

mal eine völlig andere Frage zu dem WR und fhem.
Bin grade dabei, mir meine erste PV anzuschaffen und schwanke zwischen dem Fronius und dem sungrow.
Scheinen ja beide halbwegs fein mit fhem zu gehen.
Aber ich plane mittelfristig, in den Heizungspuffer (derzeit pellets und thermische solar) noch einen heizstab einzubauen, der dann bei überschuss heizen soll.
Reicht hier die Auflösung von 3s aus oder braucht es andere Basteleien?
Cheers,

Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

SouzA

Zitat von: pula am 08 Februar 2023, 18:08:43
Hallo,

mal eine völlig andere Frage zu dem WR und fhem.
Bin grade dabei, mir meine erste PV anzuschaffen und schwanke zwischen dem Fronius und dem sungrow.
Scheinen ja beide halbwegs fein mit fhem zu gehen.
Aber ich plane mittelfristig, in den Heizungspuffer (derzeit pellets und thermische solar) noch einen heizstab einzubauen, der dann bei überschuss heizen soll.
Reicht hier die Auflösung von 3s aus oder braucht es andere Basteleien?
Cheers,

Pula
Moin,
ich weiß ja nicht, wie schnell dein Heizstab so heizt, aber wenn andere mit den 3 Sekunden ihr Auto im Überschuss laden, sollte man damit auch den Heizstab betreiben können.

Meines Erachtens reicht die Zeit völlig aus, um alle möglichen Schweinereien umzusetzen. Hysterese mit rein und los geht's...

Bis denn
SouzA
Raspi 4, EnOcean TCM310 USB, HM-MOD-UART-USB, Jeelink, hue, AMAD, fully, FRITZBOX, Signalbot, VIERA, Presence BT/Mac, TPLink, Gassistant, Shelly, fhempy, ZigBee

pula

danke für die rasche antwort!
Hm. wie gesagt, ist eine völlig neue materie für mich.
eilig hab ichs ja nicht mit dem heizstab. schaumamoi, was so is wenn ich die pv kriege und in fhem einbinde....
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

FhemPiUser

#74
Zitat von: xerion am 04 Februar 2023, 22:02:31
Hallo zusammen, ich habe heute meinen SH10RT mit SBR128 erfolgreich in Betrieb genommen. Läuft bis jetzt alles gut und versuche mich gerade in Modbus einzuarbeiten.

Was mir aber noch nicht ganz klar ist wie ich eine Ladung starten bzw. stoppen kann. Gibt es dafür ein Register oder andere Möglichkeiten?

Ich nutze Tibber und möchte nachts bei günstigen Strom den Speicher laden und das natürlich gerne automatisiert.

Hi,
man muss 3 Register setzen für das manuelle Laden der Batterie. Ich habe das bei mit einem DOIF umd dummy-Schalter umgesetzt. Wenn man den Schalter betätigt, lädt er den Akku manuell bis man den Schalter wieder aus schaltet.


defmod SH10rt_1_Akku_aus_Netz_laden dummy
attr SH10rt_1_Akku_aus_Netz_laden webCmd on:off



defmod di_SH10rt_1_Akku_aus_Netz_laden DOIF ([SH10rt_1_Akku_aus_Netz_laden] eq "on") (set SH10rt_1 EMS_mode_selection 2, set SH10rt_1 Charge_Discharge_command 170, set SH10rt_1 Charge_Discharge_power 5000) DOELSE (set SH10rt_1 EMS_mode_selection 0, set SH10rt_1 Charge_Discharge_command 204, set SH10rt_1 Charge_Discharge_power 0)


Die entsprechenden modbusattr Konfiguration ist bei mir wie folgt:


attr SH10rt_1 obj-h13049-hint 0,2,3
attr SH10rt_1 obj-h13049-poll 1
attr SH10rt_1 obj-h13049-polldelay x10
attr SH10rt_1 obj-h13049-reading EMS_mode_selection
attr SH10rt_1 obj-h13049-set 1

attr SH10rt_1 obj-h13050-hint 170,187,204
attr SH10rt_1 obj-h13050-poll 1
attr SH10rt_1 obj-h13050-polldelay x10
attr SH10rt_1 obj-h13050-reading Charge_Discharge_command
attr SH10rt_1 obj-h13050-set 1

attr SH10rt_1 obj-h13051-poll 1
attr SH10rt_1 obj-h13051-polldelay x10
attr SH10rt_1 obj-h13051-reading Charge_Discharge_power
attr SH10rt_1 obj-h13051-set 1