"STREAM MAX" => {
"Adjustments" => {},
"Gets" => {
"relay2Onoff" => "",
"backupReverseSoc" => "",
"energyStrategyOperateMode.operateSelfPoweredOpen" => "",
"energyStrategyOperateMode.operateIntelligentScheduleModeOpen" => "",
"feedGridMode" => "",
},
"Sets" => {
"cfgRelay2Onoff" => ":true,false",
"cfgBackupReverseSoc"=> ":slider,3,1,95",
"cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => ":true",
"cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => ":true",
"cfgFeedGridMode" => ":1,2",
},
"GetCmdCodes" => {
"relay2Onoff" => { "params.quotas" => {"relay2Onoff" => "",} },
"backupReverseSoc" => { "params.quotas" => {"backupReverseSoc" => ""}, },
"energyStrategyOperateMode.operateSelfPoweredOpen" => { "params.quotas" => {"energyStrategyOperateMode.operateSelfPoweredOpen" => ""} },
"energyStrategyOperateMode.operateIntelligentScheduleModeOpen" => { "params.quotas" => {"energyStrategyOperateMode.operateIntelligentScheduleModeOpen" => ""} },
"feedGridMode" => { "params.quotas" => {"feedGridMode" => ""} },
},
"SetCmdCodes" => {
"cfgRelay2Onoff" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "needAck" => "true", "dest" => 2, "params.cfgRelay2Onoff" => "a[2]"},
"cfgBackupReverseSoc" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgBackupReverseSoc" => "a[2]" },
"cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => "a[2]"},
"cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => "a[2]"},
"cfgFeedGridMode" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgFeedGridMode" => "a[2]"},
},
2026.01.12 07:07:31 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): EcoFlowMax: $model = STREAM MAX
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): EcoFlowMax: $model = STREAM MAX
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): cmd = relay2Onoff
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): EcoFlowMax has GetCmdCodes
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): $key = params.quotas
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): $str_value =
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): Method = POST
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $nonce=553634 $timestamp=1768198064501
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $json = {"sn": "BKXXXXXXXXXXXXX", "params": {"quotas":["relay2Onoff"]}}
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $url = /iot-open/sign/device/quota $query_str = params.quotas[0]=relay2Onoff&sn=BKXXXXXXXXXXXXX&accessKey=XXXXXXXXXXXXXXXXXXXXXXXXXX&nonce=553634×tamp=1768198064501
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $sign = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $json = {"sn": "BKXXXXXXXXXXXXX", "params": {"quotas":["relay2Onoff"]}}
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $url = https://api-e.ecoflow.com/iot-open/sign/device/quota
2026.01.12 07:07:44 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $data = {"code":"0","message":"Success","data":{"relay2Onoff":true},"eagleEyeTraceId":"","tid":""}
2026.01.12 07:07:44 4: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): Setting Reading Vars
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): Method = GET
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $nonce=376545 $timestamp=1768198072616
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $url = /iot-open/sign/device/list $query_str = accessKey=XXXXXXXXXXXXXXXXXXXXXXXXXX&nonce=376545×tamp=1768198072616
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $sign = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): Method = GET
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $nonce=754027 $timestamp=1768198072619
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $url = /iot-open/sign/device/quota/all?sn=BKXXXXXXXXXXXXX $query_str = accessKey=XXXXXXXXXXXXXXXXXXXXXXXXXX&nonce=754027×tamp=1768198072619
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $sign = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $url = https://api-e.ecoflow.com/iot-open/sign/device/list
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $data = {"code":"0","message":"Success","data":[{"sn":"BKXXXXXXXXXXXXX","deviceName":"STREAM Max-7155gol","online":1}],"eagleEyeTraceId":"","tid":""}
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): code = 0
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): data_1_deviceName = STREAM Max-7155gol
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): data_1_online = 1
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): data_1_sn = BKXXXXXXXXXXXXX
2026.01.12 07:07:52 4: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): data_1_sn : Comparing SerialNo BKXXXXXXXXXXXXX
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $base = data_1
2026.01.12 07:07:52 4: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): STREAM Max-7155gol
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): eagleEyeTraceId =
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): message = Success
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): tid =
2026.01.12 07:07:52 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $url = https://api-e.ecoflow.com/iot-open/sign/device/quota/all?sn=BKXXXXXXXXXXXXX
2026.01.12 07:07:52 4: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): Setting Reading Vars
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): EcoFlowMax: $model = STREAM MAX
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): cmd = feedGridMode
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): EcoFlowMax has GetCmdCodes
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): $key = params.quotas
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): $str_value =
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): Method = POST
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $nonce=981418 $timestamp=1768198080985
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $json = {"sn": "BKXXXXXXXXXXXXX", "params": {"quotas":["feedGridMode"]}}
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $url = /iot-open/sign/device/quota $query_str = params.quotas[0]=feedGridMode&sn=BKXXXXXXXXXXXXX&accessKey=XXXXXXXXXXXXXXXXXXXXXXXXXX&nonce=981418×tamp=1768198080985
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $sign = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2026.01.12 07:08:00 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $json = {"sn": "BKXXXXXXXXXXXXX", "params": {"quotas":["feedGridMode"]}}
2026.01.12 07:08:01 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $url = https://api-e.ecoflow.com/iot-open/sign/device/quota
2026.01.12 07:08:01 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $data = {"code":"0","message":"Success","data":{"feedGridMode":2},"eagleEyeTraceId":"","tid":""}
2026.01.12 07:08:01 4: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): Setting Reading Vars
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): EcoFlowMax: $model = STREAM MAX
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): cmd = energyStrategyOperateMode.operateSelfPoweredOpen
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): EcoFlowMax has GetCmdCodes
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): $key = params.quotas
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Get(): $str_value =
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): Method = POST
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $nonce=763286 $timestamp=1768198087133
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $json = {"sn": "BKXXXXXXXXXXXXX", "params": {"quotas":["energyStrategyOperateMode.operateSelfPoweredOpen"]}}
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $url = /iot-open/sign/device/quota $query_str = params.quotas[0]=energyStrategyOperateMode.operateSelfPoweredOpen&sn=BKXXXXXXXXXXXXX&accessKey=XXXXXXXXXXXXXXXXXXXXXXXXXX&nonce=763286×tamp=1768198087133
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $sign = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Request(): $json = {"sn": "BKXXXXXXXXXXXXX", "params": {"quotas":["energyStrategyOperateMode.operateSelfPoweredOpen"]}}
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $url = https://api-e.ecoflow.com/iot-open/sign/device/quota
2026.01.12 07:08:07 5: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): $data = {"code":"0","message":"Success","data":{"energyStrategyOperateMode.operateSelfPoweredOpen":true},"eagleEyeTraceId":"","tid":""}
2026.01.12 07:08:07 4: EcoFlowMax(Ecoflow 0.3.9.0): Ecoflow_Response(): Setting Reading VarsZitat von: betateilchen am 11 Januar 2026, 09:29:50https://forum.fhem.de/index.php?topic=143339.0
Hauptsache, der Mist funktioniert unter OpenWRT... 🤮
Zitat von: mcfly71 am 25 Dezember 2025, 07:39:24Bei meinem Shelly 1PM Mini Gen3 (und aber auch andere) habe ich ein AutoOFF als Timer drinstehen (zB AutoOff in 12 Stunden , also xxx Sek).Mit dem nächsten Update sollte das Problem behoben sein.
Das funktioniert auch soweit. Aber AutoOn hat nichts drinstehen.
Beim Befehl set SHELLY1 toggle geht aber in beiden!!!! Fällen der Timer los. Also Bei Toggle von AUS -> AN timer startet und das ist richtig, da eingetragen,
bei AN -> AUS startet aber ebenfalls ein timer, sodaß der Shelly in 12 Stunden wieder automatisch angeht.
Zitat von: ph1959de am 11 Januar 2026, 18:22:36Ich habe auch noch die Modulhilfe an einigen Stellen korrigiert und versucht aus allem ein diff (diff -u ...) zu erzeugen. Soll/darf ich Dir das zur Verfügung stellen?Ui ui ui, hier prescht einer vorneweg!!
Zitat von: ph1959de am 11 Januar 2026, 18:22:36Ich habe auch noch die Modulhilfe an einigen Stellen korrigiert und versucht aus allem ein diff (diff -u ...) zu erzeugen. Soll/darf ich Dir das zur Verfügung stellen?Kann man da NEIN sagen? - Natürlich nicht. Das schau ich mir gerne an.
Zitat von: ph1959de am 11 Januar 2026, 18:22:36Dabei ist mir außerdem aufgefallen, dass die deutsche Version der Hilfe - insbesondere bei "Dimmer Devices" deutlich ausführlicher ist als die englische.Das ist sicher auch noch an vielen anderes Stellen so, weil ich mich vorrangig um die deutsche Version gekümmert habe.
Zitat von: ph1959de am 11 Januar 2026, 18:22:36Ich biete an, die beiden Sprachversionen mal gleichzuziehen.Auch hier: Gerne. Ich schlage aber vor, zuerst die deutsche Version zu aktualisieren und erst dann die englische.
Zitat von: ph1959de am 11 Januar 2026, 18:22:36Bei Bedarf bitte einfach rückmelden, welches Format dafür gewünscht ist.Da ja die Modulhilfe ein Textblock in der .pm-Datei ist, ist es zunächst am einfachsten, die komplette Datei hier im Entwickler-Thread auszutauschen.
Zitat von: Jojo11 am 10 Januar 2026, 07:37:11Ich hab's gerade nochmal getestet aber das scheint noch nicht zu funktionierenDu hast recht, 's tut noch nicht.