Skip to content
noone2k edited this page Feb 10, 2025 · 42 revisions

interne MQTT Schnitstelle

Ab der FW 138 (V1) bzw. FW 210 (V2) gibt es die Möglichkeit direkt die MQTT Aufrufe über euren eigenen MQTT-Server auszuführen.

Einrichtung

Zur Einrichtung des lokalen internen MQTT gibt es zwei Wege:

  1. Per App

Um die Einrichtung per App zu aktivieren:

  • gehe auf Energy Management System und logge dich mit deinen Daten deiner App ein.
  • Aktiviere dort MQTT.
  • Anschließend kannst du in deiner APP ( PowerZero / Marstek ) deinen MQTT Broker eingeben.
  • Zusätzlich wird dir die offizielle Dokumentation in der APP angeboten.
  1. per BLE

Bei Einrichtung per BLE ist KEINE Aktivierung notwendig. Die Optionen zur Einrichtung und Ansehen der Dokumentation in der APP werden dann jedoch nicht angezeigt.

= 0x20  set own MQTT
    0|1<.,.>HOST<.,.>PORT<.,.>USER<.,.>PASSWD<.,.>
    0   = no ssl
    1   = encryption
    note: leaving user/passwd empty works ...

Hinweis: Nach Aktivierung und Einrichtung deines lokalen MQTT hat der Support keine Möglichkeit mehr, dir Unterstützung anzubieten, da sie dann nicht mehr auf deine Speicher zugreifen können. Auch ist die Cloudsteuerung damit nicht mehr möglich.

Zurücksetzen

Du hast die Möglichkeit den Urspünglichen MQTT Server für die Cloudanbindung einzustellen. Dazu musst du in der APP auf MQTT RESET klicken ODER den BLE Befehl 0x21 senden ... Alternativ kannst du das Gerät auch komplett resetten ...

Nutzung

$DEV_TYPE entspricht deinem Geräte-Type, bspw. HMB-1 oder HMA-4

$DEV_MAC ist deine BLE-Macadresse (wie in der Powerzero- oder Marstek-App angezeigt (12stellig ohne Trennzeichen))

  • Topic für Befehle : hame_energy/$DEV_TYPE/App/$DEV_MAC/ctrl
  • Topic für Antworten hame_energy/$DEV_TYPE/device/$DEV_MAC/ctrl

Beispiel-Scripte für HA/OH/bash findest du im GIT: GIT - MQTT

Befehle

cmd parm diz notes HW/FW ¹
cd=01 Abfrage: Status
cd=03 Ladeeinstellungen
cd=04 Entladeeinstellungen
cd=05 DOD
cd=06 Discharge Threshold V1
cd=07 Timer/Adaptive Mode V2
cd=08 Zeit setzen
cd=09 Zeitzone setzen
cd=10 Neustart
cd=11 Werkseinstellungen
cd=12 Befehl: ??? ?
cd=13 Abfrage: Zellinfos 215.3² / 141.5
cd=14 Abfrage: ??? 215.3
cd=15 Abfrage: Status 1 split cmd=01 215.3 / 141.5
cd=16 Abfrage: Status 2 split cmd=01 215.3 / 141.5
cd=17 Ladeeinstellungen ~ 03 - no flash 214.13
cd=18 Entladeeinstellungen ~ 04 - no flash 214.13
cd=19 DOD ~ 05 - no flash 214.13
cd=20 Timer/Adaptive Mode ~ 07 - no flash 214.13
cd=21 Abfrage: Kalibrationsdaten 216.17 / 141.5
cd=22 Befehl: Set Adaptive Channel V2 ?
cd=23 Befehl: Setze Microinverter V2 ?
cd=24 Abfrage: "Fire"-Schnittstelle 216.17
cd=25 Unknown 218.5
cd=26 Abfrage: ??? 224.3
cd=27 Set Smartmeter 224.3
cd=28 Abfrage: Smartmeter 224.3
cd=30 Abfrage: Fehlercodes

notes: ¹ Wenn keine HW Version angegeben wird, betrifft es BEIDE. Bei Angabe einer FW Version, gilt die Funktion AB dieser Version. ² Ab 214.2 bereits implementiert, aber noch fehlerhaft ( auch 215.5 ), korrekt funktioniert sie nur ab 215.3

Antworten

Befehl cd=01 Status

p1=1,p2=0,w1=89,w2=0,pe=38,vv=224,sv=3,cs=1,cd=0,am=0,o1=0,o2=0,do=100,lv=0,cj=2,kn=851,g1=0,g2=0,b1=0,b2=0,md=0,d1=0,e1=5:50,f1=23:40,h1=100,d2=0,e2=0:0,f2=18:40,h2=600,d3=0,e3=0:0,f3=24:0,h3=110,sg=0,sp=80,st=0,tl=21,th=22,tc=0,tf=0,fc=202310231502,id=5,a0=38,a1=0,a2=0,l0=2,l1=0,c0=0,c1=4,bc=323,bs=55,pt=361,it=50,m0=0,m1=0,m2=0,m3=0,d4=0,e4=8:0,f4=15:40,h4=500,d5=0,e5=4:0,f5=15:40,h5=700,lmo=1863,lmi=1346,lmf=0,uv=107

Bodo: "Die Antworten kamen bei mir in FW 220.12 in dieser Reihenfolge an (index), falls jemand die Daten per Array auslesen möchte."

index cmd parm diz notes HW/FW ¹
[0] p1 Solar input status 1
[1] p2 Solar input status 2
[2] w1 Solar input power 1
[3] w2 Solar input power 2
[4] pe Battery percentage
[5] vv Device version number
[6] sv Device Subversion number 215.3
[7] cs Charging settings
[8] cd Discharge settings
[9] am AM
[10] o1 Output State 1
[11] o2 Output State 2
[12] do dod discharge depth
[13] lv Battery output threshold
[14] cj Scene früh/mittag/nacht , low/mid/high ... weiss gerade nicht mehr die reihenfolge ;)
[15] kn Battery capacity
[16] g1 Output power 1
[17] g2 Output power 2
[18] b1 power pack 1 connected
[19] b2 power pack 2 connected
[20] md Discharge setting mode
[21] d1 Time1 enable status
[22] e1 Time1 start time
[23] f1 Time1 end time
[24] h1 Time1 output value
[25] d2 Time2 enable status
[26] e2 Time2 start time
[27] f2 Time2 end time
[28] h2 Time2 output value
[29] d3 Time3 enable status
[30] e3 Time3 start time
[31] f3 Time3 end time
[32] h3 Time3 output value
[33] sg sensor connected
[34] sp Automatic power size of the monitor
[35] st The power transmitted by the monitor
[36] tl Minimum temperature of battery cells
[37] th Maximum temperature of battery cells
[38] tc Charging temperature alarm
[39] tf Discharge temperature alarm
[--] ts Signal WiFi signal detection im Antwort-String nicht enthalten 220.12
[40] fc Chip fc4 version number
[41] id Device ID 212.17
[42] a0 Host battery capacity 212.17
[43] a1 Extra 1 battery capacity 212.17
[44] a2 Extra 1 battery capacity 212.17
[45] l0 Host battery sign position 212.17
[46] l1 Extra 1 and extra 2 battery sign position 212.17
[47] c0 Current channel connected to CTCH 216.17
[48] c1 Current status of host CT 216.17
[49] bc Daily total battery charging power 218.5
[50] bs Daily total battery discharging power 218.5
[51] pt Daily total photovoltaic charging power 218.5
[52] it Daily micro reverse output total power 218.5
[53] m0 Power collected by the first acquisition clip of CT001 218.5
[54] m1 Power collected by the second acquisition clip of CT001 218.5
[55] m2 Power collected by the third acquisition clip of CT001 218.5
[56] m3 Micro Inverter current real-time power 218.5
[57] d4 Time4 enable status 218.5
[58] e4 Time4 start time 218.5
[59] f4 Time4 end time 218.5
[60] h4 Time4 output value 218.5
[61] d5 Time5 enable status 218.5
[62] e5 Time5 start time 218.5
[63] f5 Time5 end time 218.5
[64] h5 Time5 output value 218.5
[65] lmo Rated output power of device output z.B.: 1476 220.12?
[66] lmi Rated input power of device input z.B.: 666 220.12?
[67] lmf Limiting (including input and output restrictions) z.B.: 0 220.12?
[68] uv Bootloader Version 107 224.3

Befehl cd=13 Zellinfos

a0=3366,a1=3366,a2=3366,a3=3367,a4=3367,a5=3366,a6=3367,a7=3366,a8=3367,a9=3367,aa=3367,ab=3367,ac=3367,ad=3367,ae=0,af=0,b0=0,b1=0,b2=0,b3=0,b4=0,b5=0,b6=0,b7=0,b8=0,b9=0,ba=0,bb=0,bc=0,bd=0,be=0,bf=0,c0=0,c1=0,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0,c9=0,ca=0,cb=0,cc=0,cd=0,ce=0,cf=0

Befehl cd=14 ???

ds=0,ps=4,ch=255,as=0,e0=0,e1=0,op=80,cp=0,cr=0,c0=0,c1=0,c2=0,g1=0,g2=0

cmd parm diz notes HW/FW ¹
ds ???
ps ???
ch ???
as ???
e0 ???
e1 ???
op ???
cp ???
cr ???
c0 ???
c1 ???
c2 ???
g1 ??? 218.5
g2 ??? 218.5

Befehl cd=15 Status 1 ( similar cd=01 - split into 15/16 )

pe=67,vv=216,sv=17,cs=0,cd=0,am=0,do=100,lv=0,cj=2,kn=1500,b1=0,b2=0,d1=0,e1=0:30,f1=6:30,h1=260,d2=0,e2=12:30,f2=20:30,h2=123,d3=0,e3=0:0,f3=24:0,h3=80,tl=27,th=27,tc=0,tf=0,fc=202310231502,id=5,a0=67,a1=0,a2=0,l0=2,l1=0,ws=-71,r3=0,r4=0,r5=131,bc=985,bs=0,pt=1251,it=0,d4=0,e4=2:1,f4=15:12,h4=80,d5=0,e5=11:0,f5=11:28,h5=80

cmd parm diz notes HW/FW ¹
pe Battery percentage
vv Device version number
sv Device SUB version number new compared to cd=01
cs Charging settings
cd Discharge settings
am AM
do dod discharge depth
lv Battery output threshold
cj Scene
kn Battery capacity
b1 power pack 1 connected
b2 power pack 2 connected
d1 Time1 enable status
e1 Time1 start time
f1 Time1 end time
h1 Time1 output value
d2 Time2 enable status
e2 Time2 start time
f2 Time2 end time
h2 Time2 output value
d3 Time3 enable status
e3 Time3 start time
f3 Time3 end time
h3 Time3 output value
tl Minimum temperature of battery cells
th Maximum temperature of battery cells
tc Charging temperature alarm
tf Discharge temperature alarm
fc Chip fc4 version number
id Device ID 212.17
a0 Host battery capacity 212.17
a1 Extra 1 battery capacity 212.17
a2 Extra 1 battery capacity 212.17
l0 Host battery sign position 212.17
l1 Extra 1 and extra 2 battery sign position 212.17
ws unknown ( wifi signal ? ) new compared to cd=01 216.17
r3 SSR1 (43h) new compared to cd=01 216.17
r4 SSR2 (44h) new compared to cd=01 216.17
r5 SSR3 (45h) new compared to cd=01 216.17
bc unknown 218.5
bs unknown 218.5
bt unknown 218.5
it unknown 218.5
d4 Time4 enable status 218.5
e4 Time4 start time 218.5
f4 Time4 end time 218.5
h4 Time4 output value 218.5
d5 Time5 enable status 218.5
e5 Time5 start time 218.5
f5 Time5 end time 218.5
h5 Time5 output value 218.5

Befehl cd=16 Status 2 ( similar cd=01 - split into 15/16 )

p1=1,p2=1,m1=31257,m2=31257,w1=41,w2=43,e1=0,e2=0,o1=0,o2=0,i1=182,i2=182,g1=0,g2=0,sg=0,sp=80,st=0

cmd parm diz notes HW/FW ¹
p1 Solar input status 1 0 = off / 1 = on / 2 = transparent
p2 Solar input status 2 ^^
m1 Solar input Voltage 1 new compared to cd=01
m2 Solar input Voltage 2 new compared to cd=01
w1 Solar input power 1
w2 Solar input power 2
e1 unknown new compared to cd=01
e2 unknown new compared to cd=01
o1 Output State 1 0 = off / 1 = on
o2 Output State 2 ^^
i1 unknown new compared to cd=01
i2 unknown new compared to cd=01
g1 Output power 1
g2 Output power 2
sg sensor connected
sp Automatic power size of the monitor
st The power transmitted by the monitor
c1 unknown 218.5
c2 unknown 218.5
c3 unknown 218.5
c4 unknown 218.5
ps unknown 218.5
bb Batteriepack intern - Power 218.5
bv Batteriepack intern - Voltage 218.5
bc Batteriepack intern - Current 218.5
sb Batteriepack Extra1 - Power 218.5
sv Batteriepack Extra1 - Voltage 218.5
sc Batteriepack Extra1 - Current 218.5
lb Batteriepack Extra2 - Power 218.5
lv Batteriepack Extra2 - Voltage 218.5
lc Batteriepack Extra2 - Current 218.5

Befehl cd=21 Kalibrationsdaten

cf=158108208,df=156983043

cmd parm diz notes HW/FW ¹
cf Charge µAh
df Discharge µAh

Befehl cd=24 "Fire"-Schnittstelle

id=1003,s=360,c=30,i=0,p=600

cmd parm diz notes HW/FW ¹
id Microinverter Code
s Microinverter Start Zeit
c Microinverter capacitor discharge time
i Compatibiltäts Modus ?
p Microinverter rated power

Befehl cd=30 Fehlercodes

Hilfe bei der Interpretation der Daten findest du hier: https://github.com/noone2k/hm2500pub/wiki/ERROR-codes

Eine etwas aktuellere/komplettere Liste, getrennt nach V1/V2, findest du im git im Ordner "config".

Eine Beispielimplementierung ist u.a. in der Datei "b2500-ble-diag.yaml

Befehl cd=27 Setze Smart Meter Type

cd=27,meter=0,mac=000000000000

meter wie folgt:

  • meter=0: CT001
  • meter=1: Shelly Pro 3EM
  • meter=3: CT002
  • meter=4: CT003
  • meter=5: Shelly EM gen3
  • meter=6: Shelly Pro EM50

mac muss scheinbar immer 000000000000 sein.

Clone this wiki locally