Hallo zusammen, ich versuche aktuell meinen Smartmeter (Honeywell AS2020) über SML auszulesen. Das klappt auch soweit schon sehr gut, auch die Anbindung zu Home Assistant läuft bereits. Doch leider wird die Momentanleistung immer nur positiv von Tasmota zurück gegeben. Das ganze mache ich aktuell mit folgendem Script: ``` >D >B ->sensor53 r >M 1 +1,3,s,0,9600,,1 1,77070100600100ff@#,Server-ID,,server_id,0 1,77070100010800ff@1000,Total Consumed,kWh,total_consumed_kwh,1 1,77070100020800ff@1000,Total Delivered,kWh,total_delivered_kwh,1 1,77070100100700ff@0.1,Current Consumption,W,current_power,0 # ``` Nun bin ich auch soweit gekommen, das ich im Dump der SML Daten auch den unterschied erkennen konnte, wann der Wert positiv oder negativ ist. Und zwar ist es zu erkennen an der 62/63: ``` 77 07 01 00 10 07 00 ff 01 01 62 1e 52 ff 62 15 01 => -21W 77 07 01 00 10 07 00 ff 01 01 62 1e 52 ff 63 02 e3 01 => 739W ``` Hat einer von euch vlt. eine Idee, wie ich diesen Wert auslesen und korrigieren könnte, sodass über Tasmota und auch MQTT der richtige Wert ausgegeben wird? Gruß Kai
Kai schrieb: > Nun bin ich auch soweit gekommen, das ich im Dump der SML Daten auch den > unterschied erkennen konnte, wann der Wert positiv oder negativ ist. > Und zwar ist es zu erkennen an der 62/63: Ich fürchte nein. Die 62 bzw. 63 sind das Type-Length-Field. - die 6 bedeutet, dass es sich Datentyp unsigned handelt (also keine Vorzeicheninfo enthalten ist) - die 2 bzw. 3 bedeutet, dass der Eintrag insgesamt 2 bzw. 3 Bytes groß ist. "62 15" steht für den unsigned8 Wert 21 (hex 15) "63 02 3e" steht für den unsigned16 Wert 739 (hex 023e) Die Zahlenwerte 21 und 739 passen also zu dem, was du schreibst. Aber die Vorzeicheninfo ist trotzdem nicht enthalten. Dafür bräuchte es einen signed-Wert (5x im Type-Length-Field). Ich muss aber gestehen, dass ich die Interpretation deines Hex-Dumps nicht schlüssig hinkriege. Denn der OBIS-Code 16.7.0 in deinem Dump steht zwar für "Sum Active Instantaneous Power" (also Momentanwert der Gesamtwirkleistung). Aber die Einheit im Eintrag wäre nach meiner Interpretation Wh, was für eine Wirkleistungsangabe keinen Sinn ergibt. Bist du sicher, dass der HEX-Dump korrekt ist (und nichts durcheinandergekommen ist)? Falls ja, kann entweder ich die Nachricht nicht korrekt dekodieren, oder sie ist "seltsam" kodiert. Die wahrscheinlichere Variante ist, dass ich mit dem Dekodieren nicht klar komme ;-)
Ja, du hast recht. Da hab ich mich wohl zu früh gefreut :D Hab hier nochmal ganz frisch die Zeile für den Wert, also bin mir ziemlich sicher das nichts durcheinander gekommen bin: ``` 77 07 01 00 10 07 00 ff 01 01 62 1e 52 ff 63 02 7d 01 ``` Hab auch mal die Anleitung vom Zähler sowie zusätzlich mal ein Ausschnitt aus der Anleitung wo auch nochmal steht das es W sein sollte. Interessanter weise steht dort auch das eigentlich ein Vorzeichen vorhanden sein sollte. Eigentlich denke ich, das Tasmota das doch eigentlich richtig dekodieren sollte. Oder hast du eine andere Software für den ESP8266 im Sinn, was ich mal ausprobieren sollte um einfach mal ein paar Daten zu sammeln.
Kai schrieb: > Hab hier nochmal ganz frisch die Zeile für den Wert, also bin mir > ziemlich sicher das nichts durcheinander gekommen bin: > ``` > 77 07 01 00 10 07 00 ff 01 01 62 1e 52 ff 63 02 7d 01 Ergibt nach meiner Dekodierung wieder die Wertekombination 637*10-1*Wh - was nicht zum OBIS-Code passt. Dann ist es wohl so, und die Kodierung deines Geräts und meine Dekodierung passen nicht zusammen. Nach den von dir gezeigten Ausschnitten aus der Bedienungsanleitung würde ich auch erwarten, dass der Wert mit Vorzeichen ausgegeben wird. Nur finde ich halt das Vorzeichen nicht ;-) Die unterschiedlich langen Werte (62 bzw. 63 in den ersten HEX-Dumps) ergeben sich daraus, dass die Leistung ohne führende Nullen ausgegeben wird. Bei kleinen Leistungen reicht 62, bei größeren muss es 63 sein. Wenigstens das passt. Auf Seite 16 deiner Bedienungsanleitung wird beschrieben, dass im Display nur der Betrag der Wirkleistung angezeigt wird, das Vorzeichen müsse aus der Statusinformation der Energierichtung abgelesen werden. Vielleicht färbt diese Displayausgabe auch auf die SML-Ausgabe ab. Findest du im SML-Telegramm vielleicht eine Angabe zum Instantaneous power factor (OBIS-Code 13.7.0 bzw in hex 0D 07 00). Evtl. hilft dessen Vorzeichen weiter. Kai schrieb: > Oder hast du eine andere Software für den ESP8266 im Sinn, was > ich mal ausprobieren sollte um einfach mal ein paar Daten zu sammeln. Sorry, damit kann ich nicht dienen. Die Dekodierung deiner kurzen Schnippsel habe ich von Hand gemacht.
So, hab hier mal alles was er so ausgibt: ``` 21:03:10.165 : 77 07 01 00 60 32 01 01 01 01 01 01 04 45 4c 53 01 21:03:10.190 : 77 07 01 00 60 01 00 ff 01 01 01 01 0b 0a 01 45 4c 53 00 02 71 b7 f6 01 21:03:10.214 : 77 07 01 00 01 08 00 ff 64 1c 01 04 01 62 1e 52 ff 65 0c aa b2 4a 01 21:03:10.233 : 77 07 01 00 02 08 00 ff 01 01 62 1e 52 ff 63 ca 8b 01 21:03:10.252 : 77 07 01 00 10 07 00 ff 01 01 62 1e 52 ff 63 01 9f 01 21:03:10.272 : 77 07 01 00 01 08 01 ff 01 01 62 1e 52 ff 65 0c aa b2 4a 01 21:03:10.291 : 77 07 01 00 01 08 02 ff 01 01 62 1e 52 ff 62 00 01 21:03:10.308 : 77 07 01 00 02 08 01 ff 01 01 62 1e 52 ff 63 ca 8b 01 21:03:11.260 : 77 07 01 00 02 08 02 ff 01 01 62 1e 52 ff 62 00 01 01 01 63 14 d7 00 76 08 01 3b 01 3b 43 3b 02 62 01 62 00 72 63 02 01 21:03:11.263 : 77 01 0b 0a 01 45 4c 53 00 02 71 b7 f6 07 01 00 62 0a ff ff 72 62 01 65 07 17 d7 c1 79 ``` Das mit der Statusinformation ist gar kein schlechter Gedanke, in der Anleitung auf Seite 24/25 ist das Statuswort beschrieben und Bit 11 scheint dort die Energierichtung zu sein. Was auch recht interessant ist, das wohl das Statuswort beim Wert für Zählerstand enthalten sein soll (siehe Anhang) Korrigiere mich, wenn ich falsch liege aber könnte das bei OBIS 2.8.2 (02 08 02) mit versteckt sein, weil die mir auffällig lang erscheint.
Beitrag #7109093 wurde vom Autor gelöscht.
ich denke es findet sich bei 1.8.0 (siehe Anhang..)
Achim S. schrieb: > ich denke es findet sich bei 1.8.0 (siehe Anhang..) noch ein Nachtrag: mit dem letzten HEX-Dump scheint es mir immer wahrscheinlicher, dass die Einträge für Einheit und Scaler bei dir tatsächlich falsch ausgegeben werden. Die Einheit ist bei allen elektrischen Messgröße Wh (1e) - egal ob es um Leistungsgrößen oder Energiegrößen geht. Der Skalierungsfaktor ist bei allen elektrischen Messgrößen 10^-1 (ff). Im Fall von 1.8.0 passt die Einheit sogar. Aber wenn der Skalierungsfaktor stimmen sollte, dann müsste dein Zähler bei 1.8.0 auf dem Display einen Wert von 21251335421,2 Wh bzw. 21251335,4212 kWh anzeigen. Mehr als 20 GWh bekommt man auf einem privaten Zähler eher selten zu sehen, das Komma dürfte um ein paar Stellen verrutscht sein. Der korrekte Skalierungsfaktor hätte wohl eher 10^-4 (fc) lauten sollen (oder etwas in dem Bereich).
Ja, das könnte sich tatsächlich decken. 1c 01 04 => 00011100 00000001 00000100 Wenn ich das mit den Bits in der Anleitung vergleiche kommen alle eigentlich ganz gut hin. Bit 11 ist aktuell 0, heißt es wird aus dem Netz entnommen was ja in dem Fall passt. Jetzt muss ich nur noch warten auf die Sonne das ich das Mal abgleichen kann wie es aussieht wenn er einspeist.
Achim S. schrieb: > Im Fall von 1.8.0 passt die Einheit sogar. Aber wenn der > Skalierungsfaktor stimmen sollte, dann müsste dein Zähler bei 1.8.0 auf > dem Display einen Wert von 21251335421,2 Wh bzw. 21251335,4212 kWh > anzeigen. So hoch ist der Wert in der Realität zum Glück nicht :) Es sind 21251 kWh, deshalb wird im Tasmota Script auch bei 1.8.0 und 2.8.0 um den Faktor 1000 skaliert um dort den richtigen Wert auszugeben.
Kai schrieb: > um den Faktor 1000 skaliert und der Skalierungsfaktor hätte halt eigentlich schon im SML-Telegramm stehen müssen. Aber statt 10^-4 (fc) steht dort nur 10^-1 (ff), so dass das Skript willkürlich nochmal einen Faktor 1000 draufschlagen muss. Kai schrieb: > Jetzt muss ich nur noch warten > auf die Sonne das ich das Mal abgleichen kann wie es aussieht wenn er > einspeist. ich bin gespannt...
Die ausbeute ist heute zwar nicht so gut, sehr bewölkt aber ich hab doch den einen oder anderen Einspeisepunkt erwischen können. Dabei konnte ich nun sehen, das er zwischen diesen Werten pendelt: ``` 1c 49 04 => Bit 11 = 1 (Einspeisung gesamt), Bit 14 = 1 (Einspeisung auf L3) 1c 41 04 => Bit 11 = 0 (keine Einspeisung gesamt), Bit 14 = 1 (Einspeisung auf L3) ``` Ich glaube, damit haben wir das Telegram richtig entschlüsseln können. Werde aber die Tage nochmal Berichten, sobald das Wetter noch besser ist und es eindeutiger ist.
Vielen Dank Achim für deine Hilfe, dank der Entschlüsselungsarbeit konnte ich Tasmota insofern anpassen, das er nun anhand des Statusworts das richtige Vorzeichen ausgibt. Klappt wunderbar. Werde jetzt noch nen PR bei Tasmota erstellen, die docs aktualisieren und dann stehen die nächsten mit dem gleichen Zähler dann nicht mehr vor dem selben Problem :)
Kai schrieb: > Klappt wunderbar. > > Werde jetzt noch nen PR bei Tasmota erstellen, die docs aktualisieren > und dann stehen die nächsten mit dem gleichen Zähler dann nicht mehr vor > dem selben Problem :) Prima, und danke für die Rückmeldung.
Kai schrieb: > Werde jetzt noch nen PR bei Tasmota erstellen, die docs aktualisieren > und dann stehen die nächsten mit dem gleichen Zähler dann nicht mehr vor > dem selben Problem :) @Kai: kannst du das Skript von Tasmota noch hier einpflegen? Oder Link? Mir fehlt das optionale setzen des Minus-Zeichen für die Momentan-Leistung ... 1,77070100100700ff@0.1,Current Consumption,W,current_power,0 ...
Hi, Gibt es Neuigkeiten bezüglich des Scripts ? Kann das mal jemand posten oder den Link dahin geben ? Ich stehe grade vor dem gleichen Problem mit einem EHZ Smartmeter bei dem ich gerne erkennen würde ob Verbrauch/Einspeisung.
Hallo, mich würde auch die Lösung des Problemes sehr interessieren.
da ich gerade zwar auf der Suche nach einer Lösung für einen anderen Zähler gekommen bin, und hier die Lösung nicht stand, hier der PulLRequest bei Tasmota zu dem Thema: https://github.com/arendst/Tasmota/pull/15886 Denke damit sollten die meisten was anfangen können.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.