NEWS
DMP8624 -> iobroker
-
@jonas-haber sagte in DMP8624 -> iobroker:
In den letzten Zeilen steht am Ende eine 1 und eine 0. Hat das was mit dem SML zutun? Ich frage, da du 1 eingetragen hast aber ich ja den aktuellen Verbrauch benötige und nicht den Zählerstand.
<precision> number of decimal places. Add 16 to transmit the data immediately. Otherwise it is transmitted on TelePeriod only.
-
SML ist doch eine Sprache. Und der Wert [1] gehört dem SML energy register an. Somit sind jenes und precision nicht die gleichen Sachen. Ich frage mich nur wo ich den Wert [1] im SML energy register finde und sehen kann, dass er dem aktuellen Verbrauch angehört.
-
@jonas-haber ,
jetzt ich verstehen will.
Der Wert 1 ist die 1 Zeile von>M 1 +1,5,s,0,9600,LK13BE,1,10,2F3F210D0A,063035310D0A 1,77070100100700ff@1,Verbrauch aktuell,W,Power_curr,0 1,77070100010800ff@1000,Zählerstand,kWh,Power_total_in,1 #
also Power_curr, sml[2] ist die 2 Zeile also Power_total_in
-
@wal top danke. Werde alles in der kommenden woche testen.
-
@wal eine frage hätte ich tatsächlich noch zur global variable auf die ich noch keine antwort gefunden habe. Da ich zur Steuerung des DPM zwingend die anliegende Spannung der Batterie wissen muss habe ich mich dazu entschieden einen PZEM-017 zu verbauen der ebenfalls über Tasmota laufen soll.
Allerdings muss man hier nur in der Konfiguration die richtigen Ports auswählen und kein Script haben wie beim DPM oder dem IR-Lesekopf.
Kann ich dann trotzdem mit der entsprechenden Firmware auf edit script gehen und dort einfach eine global variable definieren ?
>D u:spa=0 ; Global Variable u >S spa=sml[1] ; Werte aus der ersten Zeile #
-
@jonas-haber ,
viel kann ich dir dazu nicht sagen, da ich das Teil nicht habe.
Ist in dem Teil schon ein ESP eingebaut oder hängst du das Teil an ein Wemos ?
Falls ein ESP eingebaut ist, kann es schon an dem vorhandenen Speicher scheitern Script zu aktivieren.Man kann die Daten von Teleperiode im Script auslesen und in eine Globalen Variablen schreiben.
>D g:cur=0 >T cur=ENERGY#Power >S if upsecs%10==0 { print Solar %cur%W }
hier die Teleperiode und die Ausgabe von print Solar.
09:39:12.251 MQT: tele/Haus.Balkonkraftwerk/SENSOR = {"Time":"2024-04-19T09:39:12","ENERGY":{"TotalStartTime":"2023-08-17T21:06:39","Total":383.286,"Yesterday":2.448,"Today":0.021,"Period":0,"Power":20,"ApparentPower":45,"ReactivePower":41,"Factor":0.43,"Voltage":232,"Current":0.194}} 09:39:20.196 Solar 19.00W 09:39:21.201 Solar 19.00W 09:39:22.210 MQT: tele/Haus.Balkonkraftwerk/STATE = {"Time":"2024-04-19T09:39:22","Uptime":"199T13:43:36","UptimeSec":17243016,"Heap":21,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":96,"POWER":"ON","Wifi":{"AP":1,"SSId":"1000MBit","BSSId":"B0:F2:08:54:F3:97","Channel":11,"Mode":"11n","RSSI":70,"Signal":-65,"LinkCount":6,"Downtime":"0T00:00:17"}} 09:39:22.223 MQT: tele/Haus.Balkonkraftwerk/SENSOR = {"Time":"2024-04-19T09:39:22","ENERGY":{"TotalStartTime":"2023-08-17T21:06:39","Total":383.287,"Yesterday":2.448,"Today":0.022,"Period":0,"Power":19,"ApparentPower":45,"ReactivePower":40,"Factor":0.43,"Voltage":231,"Current":0.193}} 09:39:22.230 Solar 19.00W 09:39:31.225 Solar 19.00W 09:39:32.233 MQT: tele/Haus.Balkonkraftwerk/STATE = {"Time":"2024-04-19T09:39:32","Uptime":"199T13:43:46","UptimeSec":17243026,"Heap":21,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":96,"POWER":"ON","Wifi":{"AP":1,"SSId":"1000MBit","BSSId":"B0:F2:08:54:F3:97","Channel":11,"Mode":"11n","RSSI":70,"Signal":-65,"LinkCount":6,"Downtime":"0T00:00:17"}} 09:39:32.245 MQT: tele/Haus.Balkonkraftwerk/SENSOR = {"Time":"2024-04-19T09:39:32","ENERGY":{"TotalStartTime":"2023-08-17T21:06:39","Total":383.287,"Yesterday":2.448,"Today":0.022,"Period":0,"Power":19,"ApparentPower":45,"ReactivePower":41,"Factor":0.42,"Voltage":231,"Current":0.193}} 09:39:40.201 Solar 19.00W 09:39:41.200 Solar 19.00W 09:39:42.205 MQT: tele/Haus.Balkonkraftwerk/STATE = {"Time":"2024-04-19T09:39:42","Uptime":"199T13:43:56","UptimeSec":17243036,"Heap":21,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":96,"POWER":"ON","Wifi":{"AP":1,"SSId":"1000MBit","BSSId":"B0:F2:08:54:F3:97","Channel":11,"Mode":"11n","RSSI":70,"Signal":-65,"LinkCount":6,"Downtime":"0T00:00:17"}} 09:39:42.215 MQT: tele/Haus.Balkonkraftwerk/SENSOR = {"Time":"2024-04-19T09:39:42","ENERGY":{"TotalStartTime":"2023-08-17T21:06:39","Total":383.287,"Yesterday":2.448,"Today":0.022,"Period":0,"Power":19,"ApparentPower":45,"ReactivePower":41,"Factor":0.42,"Voltage":232,"Current":0.193}} 09:39:42.222 Solar 19.00W 09:39:51.228 Solar 18.00W 09:39:52.235 MQT: tele/Haus.Balkonkraftwerk/STATE = {"Time":"2024-04-19T09:39:52","Uptime":"199T13:44:06","UptimeSec":17243046,"Heap":21,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":96,"POWER":"ON","Wifi":{"AP":1,"SSId":"1000MBit","BSSId":"B0:F2:08:54:F3:97","Channel":11,"Mode":"11n","RSSI":70,"Signal":-65,"LinkCount":6,"Downtime":"0T00:00:17"}} 09:39:52.248 MQT: tele/Haus.Balkonkraftwerk/SENSOR = {"Time":"2024-04-19T09:39:52","ENERGY":{"TotalStartTime":"2023-08-17T21:06:39","Total":383.287,"Yesterday":2.448,"Today":0.022,"Period":0,"Power":18,"ApparentPower":45,"ReactivePower":41,"Factor":0.41,"Voltage":232,"Current":0.192}} 09:40:00.219 Solar 18.00W 09:40:01.225 Solar 18.00W 09:40:02.234 MQT: tele/Haus.Balkonkraftwerk/STATE = {"Time":"2024-04-19T09:40:02","Uptime":"199T13:44:16","UptimeSec":17243056,"Heap":21,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":96,"POWER":"ON","Wifi":{"AP":1,"SSId":"1000MBit","BSSId":"B0:F2:08:54:F3:97","Channel":11,"Mode":"11n","RSSI":70,"Signal":-65,"LinkCount":6,"Downtime":"0T00:00:17"}} 09:40:02.247 MQT: tele/Haus.Balkonkraftwerk/SENSOR = {"Time":"2024-04-19T09:40:02","ENERGY":{"TotalStartTime":"2023-08-17T21:06:39","Total":383.287,"Yesterday":2.448,"Today":0.022,"Period":0,"Power":18,"ApparentPower":44,"ReactivePower":41,"Factor":0.40,"Voltage":231,"Current":0.191}} 09:40:02.254 Solar 18.00W 09:40:11.216 Solar 17.00W
-
@wal nein ich hänge das Teil nur an einen NodeMcuESP mit aktiviertem Script und global variable in der Tasmota Firmware. Ich kann also ganz sicher im Script schreiben.
"Man kann die Daten von Teleperiode im Script auslesen und in eine Globalen Variablen schreiben."
Das klingt doch super.
>D g:cur=0 ; globale Variable wird definiert. >T ; Teleperiod cur=ENERGY#Power ; Teleperiod wird aktiviert für cur und nur in Verbindung mit print Solar%cur%W >S ; ausgeführt jede Sekunde if upsecs%10==0 { ; wenn ... print Solar %cur%W ; schreibe in der Konsole / hier wird die variable geprinted und kann von Teleperiod weiter genutzt werden }
Dann schreibe ich meins mal um:
>D u:volt=0 ; Global Variable u >T volt=ENERGY#Voltage >S print Battery %volt%V ; Spannungswert jede Sekunde #
Edit:
>T ; Teleperiod cur=ENERGY#Power ; oder wird hier ein Wert vom WebUI "ENERGY" mit cur verbunden? Wo kann ich sehen dass cur und mein Voltage im WebUI fest verbunden sind?
-
@jonas-haber sagte in DMP8624 -> iobroker:
>D u:volt=0 ; Global Variable u
falsch
>D g:volt=0 ; Global Variable volt
edit: Wie kommst du nur auf "u"
-
@jonas-haber sagte in DMP8624 -> iobroker:
oder wird hier ein Wert vom WebUI "ENERGY" mit cur verbunden? Wo kann ich sehen dass cur und mein Voltage im WebUI fest verbunden sind?
Schau dir mein Beispiel oben nochmal genau an, wie ich aus der Teleperiode Nachricht die Aktuelle Leistung(Power) gewinne.
-
@wal ich dachte da ich g schon benutzt habe für den DPM nehme ich eben u für die Spannung. Aber ich glaube, dass g nur zeigt, dass es sich um eine globale variable handelt und erst nach dem : der eigentliche Name der Variablen kommt. Danke
-
>S if seconds since start %10 == 0 { ; weiss nicht genau was das bedeutet .. print Solar %cur%W ; cur ist also "ENERGY" # "Power".
Ich sehe, dass es eine Struktur gibt beim Teleperiod. Damit habe ich mich noch nicht befasst. Aber was ich verstehe bezüglich meines weiteren Vorgehens ist, dass ich zuerst die Console auslesen muss und damit dann die erforderlichen Verzeichnisse bekomme. Das wären bei dir z.B. "ENERGY" und dann "Power" wobei zwischen diesen noch ein # kommt. Ich glaube das müsste es sein.
-
@jonas-haber ,
dein Bild ist fast richtig, Energy und Power stimmt.
%cur% ist die Variable cur und hat nichts mit Current zu tun.Current wäre "ENERGY#CURRENT"
-
@wal ja genau. Vielen Dank.
-
@wal hey. benutzt du eigentlich einen laderegler und einen akku?
-
@jonas-haber ,
habe mich noch nicht für einen Akku durchringen können. -
@wal ah verstehe. Ich suche grade einen Laderegler den ich über Tasmota auslesen kann, da mein Projekt mit dem PZEM-017 nach hinten los ging und gleichzeitig der victron 100 /20 den löffel abgegeben hat. Hast du eine Idee für einen Laderegler?
Edit:
habe mich nun für den Epever entschieden.
Dazu habe ich mir dieses Forum angeguckt: https://github.com/arendst/Tasmota/discussions/12800
Ein script für den ESP liegt bei:D B ->sensor53 r M 1 +1,3,m,1,115200,Epever,1,10,01043100,01043101,01043102,0104310C,0104310D,0104310E,01043105,01043110 1,010404UUuuxxxx@i0:100,PV Voltage,V,Voltage,2 1,010404UUuuxxxx@i1:100,PV Current,A,Current,2 1,010404UUuuxxxx@i2:100,PV Power,W,Power,2 1,010404UUuuxxxx@i3:100,Output Voltage,V,lv,2 1,010404UUuuxxxx@i4:100,Output Current,A,lc,2 1,010404UUuuxxxx@i5:100,Output Power,W,lp,2 1,010404UUuuxxxx@i6:100,Charging Current,A,bc,2 1,010404SSssxxxx@i7:100,Temperature,°C,Temperature,1
Verbunden wird das ganze von einem rj45 über einen rs485 adapter hin zum esp
Das kann ja nur schief gehen oder ?
Jedenfalls mein PZEM-017 ist gestern Nacht abgebrannt. Ich hoffe mit dem neuen Epever Solar Charger Controller kann ich zwei Fliegen mit einer Klappe schlagen nämlich die Spannung auslesen ohne den PZEM zu verbauen und gleichzeitig den kaputten Victron los zuwerden.
-
@jonas-haber ,
ich habe mir den EASun 80A MPPT Laderegler geholt, habe aber noch nichts gemacht damit.