ZitatWie kann ich die Konfiguration so anpassen, dass ich zu dem bisherigen Wechselrichter nur einen neuen bekomme?Wir hatten Zendure SolarHub 2000 schon als Thema und konnten die Anlage in SF einfügen. Wahrscheinlich ist es der beste Weg wenn du dich mal mit denis.robel in Verbindung setzt.
Sollte ich auch die Batterie als setpBatteryDev02 in SF bekannt machen? Und wenn ja, wie verknüpfe ich diese mit dem entsprechenden Wechselrichter?
Internals:
CFGFN
CID ha_tjsLMch1
DEF ha_tjsLMch1
FUUID 69f1fb6f-f33f-326e-b60c-e9c98fd67ef500de
IODev mqttServer
LASTInputDev mqttServer
MSGCNT 684766
NAME ha_tjsLMch1
NR 1082
STATE PV-Eingang: 0 W<br>
Modus: Input mode<br>
vom Haus: 587 W, zum Haus 0 W<br>
Batteriestand: 98 %<br>
Restzeit: 15210 Min
TYPE MQTT2_DEVICE
eventCount 19349
mqttServer_CONN mqttServer_192.168.178.73_54174
mqttServer_MSGCNT 684766
mqttServer_TIME 2026-04-30 13:49:28
Helper:
DBLOG:
JO2AEP1P0501114_power:
logdb:
TIME 1777549767.88998
VALUE 537
JO2AEP1P0501114_socLevel:
logdb:
TIME 1777549480.21361
VALUE 98
solarEnergy_kWh:
logdb:
TIME 1777546788.83749
VALUE 0
READINGS:
2026-04-29 14:37:03 IODev mqttServer
2026-04-30 13:49:27 JO2AEP1P0501114_batcur 10.3
2026-04-30 13:49:27 JO2AEP1P0501114_maxTemp 28.0
2026-04-30 13:49:27 JO2AEP1P0501114_maxVol 3.50
2026-04-30 13:49:27 JO2AEP1P0501114_minVol 3.46
2026-04-30 13:49:27 JO2AEP1P0501114_power 537
2026-04-30 13:49:27 JO2AEP1P0501114_socLevel 98
2026-04-30 13:49:27 JO2AEP1P0501114_softVersion 1.1.0
2026-04-30 13:49:27 JO2AEP1P0501114_state charging
2026-04-30 13:49:27 JO2AEP1P0501114_totalVol 52.20
2026-04-30 13:49:28 acMode Input mode
2026-04-30 02:58:55 availability online
2026-04-30 02:58:55 avty_t Zendure/number/EEB4AEP1P050905/minSoc/availability
2026-04-30 02:58:55 cmd_t Zendure/number/EEB4AEP1P050905/minSoc/set
2026-04-29 19:50:52 config {"dev":{"ids":"EEB4AEP1P050905","name":"EEB4AEP1P050905","mf":"Zendure","mdl":"solarFlow2400Pro","sw_version":"1.0.23"},"min":0,"max":2400,"step":1,"dev_cla":"power","pl_avail":"online","pl_not_avail":"offline","name":"inputLimit","uniq_id":"EEB4AEP1P050905_inputLimit","stat_t":"Zendure/number/EEB4AEP1P050905/inputLimit","avty_t":"Zendure/number/EEB4AEP1P050905/inputLimit/availability","cmd_t":"Zendure/number/EEB4AEP1P050905/inputLimit/set"}
2026-04-30 02:58:55 dev_cla battery
2026-04-30 02:58:55 dev_ids EEB4AEP1P050905
2026-04-30 02:58:55 dev_mdl solarFlow2400Pro
2026-04-30 02:58:55 dev_mf Zendure
2026-04-30 02:58:55 dev_name EEB4AEP1P050905
2026-04-30 02:58:55 dev_sw_version 1.0.23
2026-04-30 13:49:28 electricLevel 98
2026-04-30 13:49:28 gridInputPower 587
2026-04-30 13:49:27 gridOffMode OFF
2026-04-30 13:49:28 gridOffPower 0
2026-04-30 13:49:24 gridReverse Allow backflow
2026-04-30 12:59:27 ha_tjsLMch1 0
2026-04-30 13:49:27 heatState not_heating
2026-04-30 13:49:28 hyperTmp 30.0
2026-04-30 02:58:49 icon mdi:flash
2026-04-30 13:49:27 inputLimit 2400
2026-04-30 13:49:27 inverseMaxPower 800
2026-04-30 13:49:28 lampSwitch ON
2026-04-30 02:58:55 max 50
2026-04-30 02:58:55 min 5
2026-04-30 13:49:27 minSoc 10
2026-04-30 02:58:55 name minSoc
2026-04-30 02:58:55 options_1 Normal mode
2026-04-30 02:58:55 options_2 Economic mode
2026-04-30 02:58:55 options_3 OFF
2026-04-30 13:49:28 outputHomePower 0
2026-04-30 13:49:27 outputLimit 800
2026-04-30 13:49:27 outputPackPower 588
2026-04-30 13:49:27 packInputPower 0
2026-04-30 13:49:28 packNum 1
2026-04-30 13:49:28 packState charging
2026-04-30 13:49:28 pass no
2026-04-30 02:58:55 pl_avail online
2026-04-30 02:58:55 pl_not_avail offline
2026-04-30 02:58:51 pl_off OFF
2026-04-30 02:58:51 pl_on ON
2026-04-30 13:49:28 remainOutTime 15210
2026-04-30 13:49:28 reverseState no
2026-04-30 13:49:28 smartMode OFF
2026-04-30 13:49:27 socSet 100
2026-04-30 13:49:28 socStatus idle
2026-04-30 12:59:48 solarEnergy_kWh 0
2026-04-30 13:49:28 solarInputPower 0
2026-04-30 13:49:28 solarPower1 0
2026-04-30 13:49:28 solarPower2 0
2026-04-30 13:49:28 solarPower3 0
2026-04-30 13:49:28 solarPower4 0
2026-04-30 02:58:49 stat_cla measurement
2026-04-30 02:58:55 stat_t Zendure/number/EEB4AEP1P050905/minSoc
2026-04-30 09:39:05 state inputLimit
2026-04-30 02:58:55 step 1
2026-04-30 02:58:55 uniq_id EEB4AEP1P050905_minSoc
2026-04-30 02:58:49 unit_of_meas W
hmccu:
Attributes:
DbLogExclude .*
DbLogInclude .*power, .*kWh,JO2AEP1P0501114_socLevel
alias Zendure
event-on-change-reading .*
group Zendure
readingList ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_socLevel/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_state/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_power/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/socLevel/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/state/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/power/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_socLevel:.* JO2AEP1P0501114_socLevel
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_state:.* JO2AEP1P0501114_state
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_power:.* JO2AEP1P0501114_power
ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_maxTemp/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_totalVol/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_batcur/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/maxTemp/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/totalVol/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/batcur/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_maxTemp:.* JO2AEP1P0501114_maxTemp
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_totalVol:.* JO2AEP1P0501114_totalVol
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_batcur:.* JO2AEP1P0501114_batcur
ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_maxVol/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_minVol/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/JO2AEP1P0501114_JO2AEP1P0501114_softVersion/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/maxVol/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/minVol/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/softVersion/availability:.* availability
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_maxVol:.* JO2AEP1P0501114_maxVol
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_minVol:.* JO2AEP1P0501114_minVol
ha_tjsLMch1:Zendure/sensor/JO2AEP1P0501114/JO2AEP1P0501114_softVersion:.* JO2AEP1P0501114_softVersion
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_heatState/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_packInputPower/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_outputPackPower/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/heatState/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/packInputPower/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/outputPackPower/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/heatState:.* heatState
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/packInputPower:.* packInputPower
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/outputPackPower:.* outputPackPower
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_outputHomePower/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_remainOutTime/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_packState/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/outputHomePower/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/remainOutTime/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/packState/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/outputHomePower:.* outputHomePower
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/remainOutTime:.* remainOutTime
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/packState:.* packState
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_packNum/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/packNum:.* packNum
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/electricLevel:.* electricLevel
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/gridInputPower:.* gridInputPower
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_solarInputPower/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_solarPower1/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_solarPower2/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarInputPower/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarPower1/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarPower2/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarInputPower:.* solarInputPower
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarPower1:.* solarPower1
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarPower2:.* solarPower2
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_solarPower3/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_solarPower4/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_pass/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarPower3/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarPower4/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/pass/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarPower3:.* solarPower3
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/solarPower4:.* solarPower4
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/pass:.* pass
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_reverseState/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_socStatus/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_hyperTmp/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/reverseState/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/socStatus/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/hyperTmp/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/reverseState:.* reverseState
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/socStatus:.* socStatus
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/hyperTmp:.* hyperTmp
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_gridOffPower/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/switch/EEB4AEP1P050905_lampSwitch/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/switch/EEB4AEP1P050905_smartMode/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/gridOffPower/availability:.* availability
ha_tjsLMch1:Zendure/switch/EEB4AEP1P050905/lampSwitch/availability:.* availability
ha_tjsLMch1:Zendure/switch/EEB4AEP1P050905/smartMode/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/gridOffPower:.* gridOffPower
ha_tjsLMch1:Zendure/switch/EEB4AEP1P050905/lampSwitch:.* lampSwitch
ha_tjsLMch1:Zendure/switch/EEB4AEP1P050905/smartMode:.* smartMode
ha_tjsLMch1:homeassistant/select/EEB4AEP1P050905_acMode/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/select/EEB4AEP1P050905_gridReverse/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/select/EEB4AEP1P050905_gridOffMode/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/select/EEB4AEP1P050905/acMode/availability:.* availability
ha_tjsLMch1:Zendure/select/EEB4AEP1P050905/gridReverse/availability:.* availability
ha_tjsLMch1:Zendure/select/EEB4AEP1P050905/gridOffMode/availability:.* availability
ha_tjsLMch1:Zendure/select/EEB4AEP1P050905/acMode:.* acMode
ha_tjsLMch1:Zendure/select/EEB4AEP1P050905/gridReverse:.* gridReverse
ha_tjsLMch1:Zendure/select/EEB4AEP1P050905/gridOffMode:.* gridOffMode
ha_tjsLMch1:homeassistant/number/EEB4AEP1P050905_socSet/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/number/EEB4AEP1P050905_minSoc/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/number/EEB4AEP1P050905_inverseMaxPower/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/socSet/availability:.* availability
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/minSoc/availability:.* availability
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/inverseMaxPower/availability:.* availability
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/socSet:.* socSet
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/minSoc:.* minSoc
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/inverseMaxPower:.* inverseMaxPower
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/outputLimit/availability:.* availability
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/inputLimit/availability:.* availability
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/outputLimit:.* outputLimit
ha_tjsLMch1:Zendure/number/EEB4AEP1P050905/inputLimit:.* inputLimit
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_electricLevel/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:homeassistant/sensor/EEB4AEP1P050905_gridInputPower/config:.* { json2nameValue($EVENT) }
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/packNum/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/electricLevel/availability:.* availability
ha_tjsLMch1:Zendure/sensor/EEB4AEP1P050905/gridInputPower/availability:.* availability
ha_tjsLMch1:homeassistant/number/EEB4AEP1P050905_outputLimit/config:.* config
ha_tjsLMch1:homeassistant/number/EEB4AEP1P050905_inputLimit/config:.* config
room Garten->PV-Anlage,System->MQTT
setList outputLimit:slider,0,1,2400 Zendure/number/EEB4AEP1P050905/outputLimit/set $EVTPART1
inputLimit:slider,0,1,2400 Zendure/number/EEB4AEP1P050905/inputLimit/set $EVTPART1
acMode:Input,Output { my $v = $EVTPART1 eq "Input" ? "Input mode" : "Output mode";; return "Zendure/select/EEB4AEP1P050905/acMode/set $v";; }
stateFormat PV-Eingang: solarInputPower W<br>
Modus: acMode<br>
vom Haus: gridInputPower W, zum Haus packInputPower W<br>
Batteriestand: JO2AEP1P0501114_socLevel %<br>
Restzeit: remainOutTime Min
userReadings solarEnergy_kWh:solarInputPower.* integral { sprintf("%.3f", ReadingsVal($name,"solarInputPower",0) / 3600000) }
webCmd inputLimit:outputLimit
webCmdLabel Eingangslimit:Ausgangslimitattr SolarForecast setupInverterDev02 ha_tjsLMch1 \
ac2dc=gridInputPower:W \
dc2ac=packInputPower:W \
capacity=2400\
strings=none
attr SolarForecast setupInverterDev03 ha_tjsLMch1 \
strings=Carport1,Carport2,Carport3,Carport4\
pvOut=solarInputPower:W\
etotal=solarEnergy_kWh:kWh\
capacity=2400\
icon=inverter
attr SolarForecast setupInverterStrings Osten,Westen,Carport1,Carport2,Carport3,Carport4
attr SolarForecast setupStringAzimuth Osten=-127 Westen=53 Carport1=-31 Carport2=-31 Carport3=-31 Carport4=-31
attr SolarForecast setupStringDeclination Osten=38 Westen=38 Carport1=30 Carport2=30 Carport3=30 Carport4=30
attr SolarForecast setupStringPeak Osten=4 Westen=6.4 Carport1=0.515 Carport2=0.515 Carport3=0.515 Carport4=0.515
) noch auf einem Raspberry Pi3, aber mein Ziel für die FHEM Landschaft ist, nach Möglichkeit fertige Dinge verwenden und Dienste separieren:Zitat von: PNinBB am 28 April 2026, 20:34:23Vor 2...3 Wochen hatte ich Probleme ... Als Folge dessen steigt das Programm aus
Falls jemand ähnliche Probleme hat; meine sind damit gelöst.
Auf jeden Fall ein sehr schöner Modul; besten Dank.
ZitatWarum? FHEM läuft virtualisiert in LXC stabiler als vieles, was da draußen als "Bare Metal Plattform" rumschwirrt. Und da spreche ich auch aus eigener Erfahrung.Ok ja, ich meinte LXC. Vielleicht ist der Begriff "Virtualisierung" doppeldeutig: für mich ist Docker/LXC keine Virtualisierung, sondern Containerisierung, da hier kein Kernel virtualisiert wird, sondern der oder die Prozesse laufen nativ auf dem Host-Kernel laufen. Auch werden keine Geräte virtualisiert mit Treibern und so. Aber über den Begriff kann man sicherlich diskutieren.

Zitat von: bertl am 28 April 2026, 08:56:37Möglicher Lösungsvorschlag (2x - # EINGEFÜGT):Danke für's Auffinden! Dachte mir irgendwie schon, dass das mit der Abfrage an der anderen Stelle "eigentlich sinnvoll" wäre...
Zitat von: bertl am 28 April 2026, 09:22:25Noch eine Bitte:Wird etwas dauern, bis ich Zeit finde, mir das insgesamt nochmal in Ruhe anzusehen, eventuell könnte man auch einen logaritmisches widget nehmen?
.ZitatTODO: Unterabschnitte für die anderen Systeme schreiben, da nicht bekannt ist, wie lange BOSE die Informationen noch zur Verfügung stellt.
https://downloads.bose.com/ced/soundtouch/soundtouch_usb/index.html?l=de