NEWS
DMP8624 -> iobroker
-
habe ich so ähnlich, 2 Plyontech mit 2,4 KWh , abends per Nulleinspeisung raus.
Hatte das erst per Hoymiles 600 mit ESP DTU geregelt. Riesiger Aufwand halt.
Versicherungstechnisch auch fragwürdig. Hatte dann den DPM gekauft aber das
Projekt wieder verworfen.
Bin nun auf Lumentree WR umgestiegen. Die bieten per Wlan eine Nulleinspeisung an.
Mqtt für IO ist auch an Board. Die Zählerwerte können per Json vom Tasmota ESP
angefordert werden. Sehr cool geproggtes Projekt.
Versicherungstechnisch halt sauber.
Github Projekt
Video von Christian der Kanal -
Nur mal so als Idee.
Im DPM Script könnte man ja das Json des Zähler ESP abholen und den Bezugswert Watt rausfiltern. Drauf hin dann V und A des DPM steuern.
Möglichkeit 2 wäre eine Rule im Zähler ESP setzen die alle x sec einen http Wert zum DPM ESP sendet.Test Json im IO abholen
Json mit ESP Lumentree Software
-
@ralla66 ,
was ich schon in Thermostaten mache ist aus dem Sonoff-Adapter Objekte abonnieren und im Skript weiter verarbeiten.
Man legt ein Datenpunkt im Objektbaum vom DPM an und beschreibt ihn mit irgendetwas und hat den Wert dann im ESP. -
von Tasmota nach Tasmota cmd senden geht ja, wäre die Frage ob beim Scripting es möglich ist ein
Request zu senden und die Antwort ( Json ) darauf hin zu empfangen.
Das wäre für Hichi ESP Lesekopf Besitzer dann die Top Speicher Balkonkraftwerk Nulleinspeisung
mit dem DPM. -
@ralla66 ,
mit einem Mosquitto Server kein Problem, könnte auch mit dem MQTT-Adapter als Server gehen.
Es braucht da auch kein Json, man kann jeden Datenpunkt abonnieren den man möchte.>BS +>subscribe V, cmnd/%topic%/tvolt +>subscribe C, cmnd/%topic%/tampere +>subscribe SW, cmnd/%topic%/tpow +>subscribe L, stat/Haus.Stromzaehler/aktuelle_leistung +>subscribe G, stat/Haus.Wechselrichter/wasauchimmer
Http request gibt es auch im Skript
USE_WEBSEND_RESPONSE) http("url" "payload") = does a GET or POST request on a URL (http:// is internally added)
edit: einen hichi und solarregler habe ich ja, brauche nur eine Batterie zum spielen.
-
Pylontech
Alles was das Herz begehrt an Schnittstellen, auslesen per ESP Routine.
BMS mit an Board.Eher Autark, ESP DPM mit ESP Zähler, IO und Mqtt Broker kann ja dabei sein, aber eben kein muss.
Post klingt Interessant, damit kann ich den HM600 über NRF Antenne direkt steuern.
Nachtrag
http("url" "payload") = does a GET or POST request on a URL (http:// is internally added)
Antwort kann wie per print ausgegeben werden ? Teste dann heute Abend
-
@ralla66 sagte in DMP8624 -> iobroker:
Pylontech
Pylontech US5000 1.235,25 € evtl. mit dem Weihnachtsgeld.
-
-
Request Antwort Json print so ?
; Read the status JSON payload
U
gw=StatusNET#Gateway
print %gw% -
@ralla66 ,
da musst du dich mal durcharbeiten, habe damit noch nichts gemacht. -
ok, dann mal ran an Lehrbrief 1 -> Übung 1
Button Websend einfügen, Websend ausführen, Antwort Request in Var schreiben.
1 und 2 sollte gehen, bei 3 haperts noch
>D ; Ralla gw="" Vmax=60 Cmax=24 v=0 V=0 c=0 C=0 sw=0 SW=0 ; Ralla WS=0 rV="01060000" vV="" rC="01060001" vC="" rSW="01060002000" vSW="" >BS +>subscribe V, cmnd/%topic%/tvolt +>subscribe C, cmnd/%topic%/tampere +>subscribe SW, cmnd/%topic%/tpow >B smlj=0 ->sensor53 r ; Ralla ; Request Status information. The response will trigger the `U` section +>status 5 >R smlj=0 >S if upsecs>30 then smlj=1 endif >W bu(SW "DPM Ein" "DPM Aus") ; Ralla bu(WS "WebSend" "Websend") nm(0.0 60.0 0.01 V "DPM Ausgang (V)" 200 2) nm(0.0 24.0 0.01 C "DPM Ausgang (A)" 200 2) >T sw=DC#sSwitch v=DC#sVolt c=DC#sCur if ((chg[sw]>0) and (SW!=sw)) then SW=sw +>publish stat/%topic%/RESULT {"tpow":%0sw%} endif if ((chg[v]>0) and (V!=v)) then V=v +>publish stat/%topic%/RESULT {"tvolt":%2v%} endif if ((chg[c]>0) and (C!=c)) then C=c +>publish stat/%topic%/RESULT {"tampere":%2c%} endif if chg[V]>0 then if V>Vmax then V=Vmax endif if V<0 then V=0 endif vV=rV+sb(hx((V*100)) 4 4) +>publish stat/%topic%/RESULT {"tvolt":%2V%} sml(1 3 vV) endif if chg[C]>0 then if C>Cmax then C=Cmax endif if C<0 then C=0 endif vC=rC+sb(hx((C*1000)) 4 4) +>publish stat/%topic%/RESULT {"tampere":%2C%} sml(1 3 vC) endif if ((chg[SW]>0) then vSW=rSW+s(SW) +>publish stat/%topic%/RESULT {"tpow":%0SW%} sml(1 3 vSW) endif ; Ralla if ((chg[WS]>0) then =>WebSend [192.168.2.28] /cm?cmnd=status&2010 ;Org Ralla IO http://192.168.2.28/cm?cmnd=status%2010 print Ralla websend endif ; Ralla ; Read the status JSON payload >U gw=StatusNET#Gateway ;gw=StatusSNS,MT175,Bezug_aktuell print %gw% print Ralla gw >M 1 +1,3,m,16,9600,DC,1,2,010300000001,010300010001,010300020001,010310010001,010310020001 1,010302SSssxxxx@i0:100,Spannung (set),V,sVolt,2 1,010302SSssxxxx@i1:1000,Strom (set),A,sCur,2 1,010302SSssxxxx@i2:1,Ausgang (set),,sSwitch,0 1,010302SSssxxxx@i3:100,Spannung (disp),V,dVolt,2 1,010302SSssxxxx@i4:1000,Strom (disp),A,vCur,2 #
; Request Status information. The response will trigger the
U
sectionB
+>status 5
Dann sollte ja U print ausgeführt sein, ist aber nicht, dann kann nur WebSend falsch sein -
@ralla66 ,
denk daran das man eine Firmware mit USE_WEBSEND_RESPONSE braucht. -
@ralla66 ,
hier für dich falls du es noch nicht kennst.edit: Werde ich heute testen ob ich den aktuellen Verbrauch vom hichi holen kann wenn du nicht dazu kommst.
-
heute morgen war um 0:30 Feierabend
den Link lese ich heute Abend,
habe boot error am ESP nach dem flashen / script einfügen, war eventuell schon übermüdet
meine .bin mit USE_WEBSEND_RESPONSE aktiviert lief nicht sauber.
kannst du mal bitte die .bin hochladen mit Zeile 471 USE_WEBSEND_RESPONSE aktiviert
Wäre cool wenn du mit testes, macht das debuggen einfacher.Danke
-
-
Danke, jetzt weiter
-
erste Antwort, bekomme ein WEbQuery zurück
17:35:28.308 SCR: performs "WebSend [192.168.2.28] /cm?cmnd=status&2010" 17:35:29.951 MQT: stat/tasmota_3CECBB/RESULT = {"WebQuery":{"Status":{"Module":18,"DeviceName":"SMA","FriendlyName":["SMA"],"Topic":"tasmota_D35C9C","ButtonTopic":"0","Power":0,"PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0,"InfoRetain":0,"StateRetain":0}}} 17:35:29.955 MQT: stat/tasmota_3CECBB/RESULT = {"WebSend":"Done"} 17:35:29.957 Ralla websend
>D ; Ralla gw="" Vmax=60 Cmax=24 v=0 V=0 c=0 C=0 sw=0 SW=0 ; Ralla WS=0 rV="01060000" vV="" rC="01060001" vC="" rSW="01060002000" vSW="" >BS +>subscribe V, cmnd/%topic%/tvolt +>subscribe C, cmnd/%topic%/tampere +>subscribe SW, cmnd/%topic%/tpow >B smlj=0 ->sensor53 r ; Ralla ; Request Status information. The response will trigger the `U` section +>status 5 >R smlj=0 >S if upsecs>30 then smlj=1 endif >W bu(SW "DPM Ein" "DPM Aus") ; Ralla bu(WS "WebSend" "Websend") nm(0.0 60.0 0.01 V "DPM Ausgang (V)" 200 2) nm(0.0 24.0 0.01 C "DPM Ausgang (A)" 200 2) >T sw=DC#sSwitch v=DC#sVolt c=DC#sCur if ((chg[sw]>0) and (SW!=sw)) then SW=sw +>publish stat/%topic%/RESULT {"tpow":%0sw%} endif if ((chg[v]>0) and (V!=v)) then V=v +>publish stat/%topic%/RESULT {"tvolt":%2v%} endif if ((chg[c]>0) and (C!=c)) then C=c +>publish stat/%topic%/RESULT {"tampere":%2c%} endif if chg[V]>0 then if V>Vmax then V=Vmax endif if V<0 then V=0 endif vV=rV+sb(hx((V*100)) 4 4) +>publish stat/%topic%/RESULT {"tvolt":%2V%} sml(1 3 vV) endif if chg[C]>0 then if C>Cmax then C=Cmax endif if C<0 then C=0 endif vC=rC+sb(hx((C*1000)) 4 4) +>publish stat/%topic%/RESULT {"tampere":%2C%} sml(1 3 vC) endif if ((chg[SW]>0) then vSW=rSW+s(SW) +>publish stat/%topic%/RESULT {"tpow":%0SW%} sml(1 3 vSW) endif ; Ralla if ((chg[WS]>0) then =>WebSend [192.168.2.28] /cm?cmnd=status&2010 res=WebSend [192.168.2.28] /cm?cmnd=status&2010 ;Org Ralla IO http://192.168.2.28/cm?cmnd=status%2010 print Ralla websend endif ; Ralla ; Read the status JSON payload >U gw=StatusNET#Gateway ;gw=StatusSNS,MT175,Bezug_aktuell print %gw% print Ralla gw >M 1 +1,3,m,16,9600,DC,1,2,010300000001,010300010001,010300020001,010310010001,010310020001 1,010302SSssxxxx@i0:100,Spannung (set),V,sVolt,2 1,010302SSssxxxx@i1:1000,Strom (set),A,sCur,2 1,010302SSssxxxx@i2:1,Ausgang (set),,sSwitch,0 1,010302SSssxxxx@i3:100,Spannung (disp),V,dVolt,2 1,010302SSssxxxx@i4:1000,Strom (disp),A,vCur,2 #
-
@ralla66 ,
-
@ralla66 ,
Hichi:
>D aktuell=0 >B ->sensor53 r >T aktuell=MT175#P http("192.168.xxx.xxx" "/cm?cmnd=script>Aktuell="+s(aktuell)) >M 1 +1,3,s,16,9600,MT175 1,77070100010800ff@1000,E_in,kWh,E_in,1 1,77070100010801ff@1000,E_in_HT,kWh,E_in_HT,1 1,77070100010802ff@1000,E_in_NT,kWh,E_in_NT,1 1,77070100020800ff@1000,E_out,kWh,E_out,1 1,77070100100700ff@1,P,W,P,18 1,77070100000009ff@#,Server_ID,,Server_ID,0 #
DPM8624:
>D Aktuell=0 >W Aktuelle Leistung{m} %0Aktuell% W
-
Habe die Data, %20 weglassen
18:10:08.057 SCR: performs "WebSend [192.168.2.28] /cm?cmnd=status 10" 18:10:08.622 MQT: stat/tasmota_3CECBB/RESULT = {"WebQuery":{"StatusSNS":{"Time":"2023-09-20T18:10:08","MT175":{"Geräte_ID":"","Verbrauch_Gesamt":37714,"Bezug_Tarif_1":37714.412,"Bezug_Tarif_2":0,"Netzeinspeisung":0,"Lieferung_Tarif_1":0,"Lieferung_Tarif_2":0,"Bezug_aktuell":9,"Phase_L1":17,"Phase_L2":-71,"Phase_L3":62}}}} 18:10:08.626 MQT: stat/tasmota_3CECBB/RESULT = {"WebSend":"Done"} 18:10:08.628 Ralla websend
; Ralla if ((chg[WS]>0) then ;10 = show connected sensor information (replaces 'Status 8') =>WebSend [192.168.2.28] /cm?cmnd=status 10 print Ralla websend endif
Yeep
jetzt noch zerlegen, Ideen ? mit U ?Teste mal mit Hichi ob Daten kommen