definiere zusätzlich
#define USE_WEBSEND_RESPONSE
sende mit =>websend den Befehl
dann in
>E
pwr=ENERGY#Power
definiere zusätzlich
#define USE_WEBSEND_RESPONSE
sende mit =>websend den Befehl
dann in
>E
pwr=ENERGY#Power
der Fehler wurde am 7.12.22 behoben. nimm mal zur Sicherheit die neueste Version, da sollte dein ersten script gehen, glaube die 12.2.0 ist noch defekt.
oder versuch mal das hier:
oder hast du
#define USE_WEBSEND_RESPONSE aktiv.
dann darfst du nicht in >E senden bzw. must eine Rekursion verhindern.
du kannst die Abfrage auch in >F machen, dann hat du maximal eine Verzögerung von 100 ms
Hi,
Benutzt du eine aktuelle Tasmota Version?
Es gab einen Fehler dass websend in >E eine Rekursion ausgelöst hatte. Ist inzwischen behoben.
Dann sieh dir mal die delta Funktion an.
1,=d 1 60 @1,Leistung:,W,current,2
Diese Funktion berechnet aus der Zeile 1 die Differenz alle 60 Sekunden
Musst du mit Hilfe der Skalierung noch auf Watt umrechnen
Nachtrag, nur die Skalierung bei Leistung musst du eventuell noch anpassen
der Wert p wird vom SML Treiber als JSON ausgegeben und dann in >T vom Script eingelesen.
in >S berechnest du nochmal p, das kommt sich ins Gehege.
die Berechnungen in >S brauchst du gar nicht
>W brauchst du auch nicht
und damit kannst du auch >T weglassen
>J brauchst du auch nicht, da der SML Treiber das selbst verschickt.
also das sollte eigentlich reichen:
die Zeile muss so aussehen
1,1-0:1.7.0*255(@1,Leistung:,W,current,2
Du hast anscheinend RX und TX a die Pins 3 und 1 angeschlossen. Das geht selten gut weil dort der usb seriell Konverter parallel geschaltet ist, nimm mal andere Pins dann sollte es gehen.
Ja die Einstellungen sind richtig
der Zähler gibt ja Antwort aber warum kann die nicht dekodiert werden?
Setzte erst mal den loglevel auf mehr Details
Das geht problemlos per Script und SML Treiber
Es gibt ein Script für SDM530 als Vorlage das du kaum modifizieren must.
Das Saldieren kannst du dann ganz einfach im Script vornehmen oder auch direkt im SML descriptor eintragen
SDM530 sollte eigentlich direkt auch mit dem 630 gehen
>D
>B
->sensor53 r
>M 1
+1,3,m,0,9600,MODBUS,1,1,01040000,01040002,01040004,01040006,01040008,0104000a,0104000c,0104000e,01040010
1,010404ffffffff@i0:1,Voltage P1,V,Voltage_P1,2
1,010404ffffffff@i1:1,Voltage P2,V,Voltage_P2,2
1,010404ffffffff@i2:1,Voltage P3,V,Voltage_P3,2
1,010404ffffffff@i3:1,Current P1,A,Current_P1,2
1,010404ffffffff@i4:1,Current P2,A,Current_P2,2
1,010404ffffffff@i5:1,Current P3,A,Current_P3,2
1,010404ffffffff@i6:1,Active Power P1,W,Power_P1,2
1,010404ffffffff@i7:1,Active Power P2,W,Power_P2,2
1,010404ffffffff@i8:1,Active Power P3,W,Power_P3,2
#
Alles anzeigen
der Zähler gibt Antwort, also sollte die Baudrate eigentlich stimmen, ebenso die Adresse.
das Signal kommt auch am RX an wie du mit dem Oszi gecheckt hast.
jetzt musst du feststellen was da zurückkommt.
erst mal den SDM72 treiber testen.
im Modbus Treiber Kommentarstriche weg (TasmotaModbus.cpp)
//#define TASMOTAMODBUSDEBUG
und neu kompilieren
dann debug level more im Tasmota logging GUI einstellen.
jetzt solltest du Hilfreiche Ausgaben in der Konsole bekommen.
andere Möglichkeit wäre mit dem PC (Terminalprogramm) die seriellen Daten "mitzulesen"
falls das nicht weiterhilft, nimm meinen SML Treiber, dort kann ich dir beliebige Debug Möglichkeiten einbauen.
habe ich sofort gefixt pr bei Tasmota steht an oder auf meinem GitHub account
nein bisher werden nur die beiden Waveshare, die Lily Go 4,7 und (nur in meinem repo) die M5Stack 4,7 unterstützt.
Das hat ein User bei Tasmota gepostet.
Ist ne tolle Erleichterung für Anfänger.
Erstellt den Deskriptor des Meters aus dem Dump
Tasmota SML Decodereinfach bei Tageswechsel den counter auf 0 setzen:
>D
tag=0
>S
tag=day
if chg[tag]>0 {
->counter1 0
}
habe jetzt erst gesehen was du eingestellt hast. Das geht so nicht.
du kannst Tasmota counter nicht so einfach mit SML Countern vermischen.
SML nimmt als ersten counter immer den ersten Tasmota counter etc.
Also bestenfalls kannst du einen Tasmota counter noch hinten dran hängen nicht davor.
das ist so weil die SML counter denselben Speicherplatz verwenden wie die Tasmota counter.
am besten gar nicht mischen
einen offset kannst du einfach per + addieren (hier 2000)
es wird zuerst der offset addiert und danach skaliert, also +2000 / 1000 im Beispiel
1,77070100010800ff@1000+2000,HWR_Pow_Bezug,kWh,HWR_Pow_Bezug,4
du solltest counter am besten im IRQ mode betreiben (-50)
+1,13,c,0,-50,Zähler3
muss mit allen esp8266 funktionieren.
wie karoCB schon gesagt hat solltest du die Daten im ESP speichern. Allerdings macht das eigentlich nur Sinn mit einer SD Karte da das Flash Filesystem viel zu wenig Speicher hat. Scripting hat dafür eine eigene Datenbank integriert. Ist aber für Anfänger etwas kompliziert.
Früher hatte ich alles auf IOBroker aufgelegt mit Raspberry. Inzwischen habe ich alles auf ESP umgestellt inklusive Grafiken und beliebiger Auswertung.
Alle Verbrauchswerte des Hauses werden alle 15 Minuten in die Datenbank geschrieben. Ein zentraler ESP32 sammelt die Daten von 7 Zählern ein anderer
stellt eine Webseite mit den Auswertungen zur Verfügung. Dort kann ich Tagesprofile jedes einzelnen Tages grafisch anzeigen, sowie Wochenprofile und Jahresprofile als Grafik und Tabelle. Die Tabelle wird jeden Monat einmal per email an mich geschickt als Backup.
Auf Tasmota docs habe ich einige Screenshots gelegt: https://tasmota.github.io/docs/Scripting-Language/
ein anderer User speichert die Daten so wie ich auf SD Karte und so wie karoCB das auch vorgeschlagen hat liest dann mit Excel automatisch die Daten aus und zeigt dann mit Excel Macros die Auswertungen an.