-
Notifications
You must be signed in to change notification settings - Fork 5
MQTT
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.
Zur Einrichtung des lokalen internen MQTT gibt es zwei Wege:
- 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.
- 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.
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 ...
$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
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
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.