ich konnte mit Hilfe hier aus dem Forum mittels ESP01S Multicast-
messages vom SMA Homemanager2 und Energymeter empfangen. Meine
Beispiele liefert alles was in der Message steckt. Ich brauche aber
nur paar bestimmte Werte daraus und bin jetzt dabei die Ausgaben
zu durchforsten und nur das was für mich interessant ist auszuwählen.
Dabei bin ich auf folgende Dinge gestoßen dir mir im Moment nicht
ergründlich sind.
Ich bekomme einen Timestampwert. Welche Zeit ist das ? Epochtime wäre
zu weit in der Zukunft.
Es gibt da eine OBIS Wert 0:73.4.0 , der ist in der SMA Doku zum
Protokoll aber nicht aufgeführt.
dann gibt es am Ende noch paar Bytes die auch nicht dokumentiert sind.
Wie schon geschrieben: Bei mir läuft das über node-red, das Parsen des UDP-Packets hab ich in Javascript.
Für deinen ESP-Beispielcode hab ich das KI-Gestützt in Arduino-C++ übersetzt. Ob da die Byteorder passt, ob irgendwelche integer-promotions den int64 kaputt machen, usw. bitte selber prüfen. Als MSP430-Entwickler sollten dir die C-Fallstricke an der Stelle ja bekannt sein.
Für die Datenübertragung ESP->MSP430 ist das als Dezimalzahl eh "suboptimal", der liest das einfacher als HEX oder Binär...
d.H. das ganze rumgerechne ist eher für den Menschen der an der Seriellen mitliest.
jeweils mit Namen und Umrechnungsfaktor (Zählerwerte sind in Wattsekunden, Spannungen in 0.1V usw), das "db"-Flag markiert die Werte die ich zur Auswertung in der Datenbank speichere.
Der Datenblock für jede Phase ist immer gleich, nur um 20 verschoben, startet bei 21, 41, 61. So kommst du auch ohne explizite Dokumentation auf den 0:73.4.0 er Wert.
Was das 144er Feld bedeutet, weiß ich auch nicht.
und "2:13.6.82" macht wenig Sinn. Könnte sein, dass da der Parser-Code irgendwie aus dem Tritt gekommen ist, und die Feldgrenzen nicht mehr richtig erwischt. Evtl. wegen falscher Länge des 144er Feldes davor? Wenn die Werte danach nicht interessieren, könntest du die Bearbeitung auch gleich an der Stelle abbrechen.
Und der Timestamp sagt bei mir auch nix aus, kommt auch über Minuten immer derselbe Wert.
Ohne deine Unterstützung und Vorbereitung wäre ich nicht soweit gekommen.
Da ich jetzt sowohl die serielle Schnittstelle in beiden Richtungen und
einen TCP Server betreiben und auch noch die Multicast Messages
mitlesen kann, gebe ich meine AT-FW Version auf. Der MSP430 bleibt
natürlich. Diese eigene ESP01S FW-Version erleichtert das Ganze ungemein.
Mit der Darstellung der Multicast Messages oben komme ich weiter, danke
für die ausführliche Beschreibung.
Zu 144:0.0.0 habe ich was in der Doku EMETER-Protokoll-TI-de-10.pdf
gefunden. Wird als Softwareversion mit 4 Byte angegeben.
Der Timestampwert zählt bei mir schon hoch, deshalb dachte ich zuerst
an Epochtime, aber da wäre heute der 12. April 2053. Wäre schön gewesen
wenn man daraus noch die Uhrzeit ermitteln könnte.
Habe jetzt wieder neues "Futter" .
Danke nochmals für die äußerst hilfreich Unterstützung!
habe dank der 2 Beiträge hier, es geschaft meinen Home Manger 2.0 auzulesen.
Habe noch einen Punkt:
Mein Timestamp ist negativ und zählt somit runter Richtung 0.
-1482800258#Leistung=699.40
-1482799263#Leistung=715.50
-1482798268#Leistung=722.80
-1482797263#Leistung=710.50
@Bot N.: Könntest du mir deinen ESP Code zukommen lassen zum Vergleich?!
1
#include<ESP8266WiFi.h>
2
#include<ESP8266WiFiSTA.h>
3
#include<WiFiUdp.h>
4
#define LED D4
5
constchar*ssid="********";
6
constchar*password="********";
7
unsignedintmulticastPort=9522;// local port to listen on