Hi zusammen,
ich hab mir den folgenden TTL IR-Lesekopf in der Bucht gezogen und möchte gerne das SML-Protokoll meines Stromzählers (EasyMeter Q3CA 1081) auslesen:
Ich weiß, dass das Ganze ein sehr sehr komplexes Thema ist und das es schon fertige Lösungen wie z.B. Tasmota gibt.
Aber könnte mir trotzdem jemand
erklären, wie ich den Sensor an einen ESP32 anschließe (RX/TX oder besser/egal SoftwareSerial und beliebige Pins)
anhand eines einfachen Sketches zeigen, wie ich das vom Stromzähler gesendete SIgnal (in meinem Fall SML-Protokoll 1.04) lesbar am Serial-Monitor ausgeben kann
Am Ende sollte ja sowas in der Art
1.8.0255(000471.6452kWh)
2.8.0255(000528.9178kWh)
rauskommen.
Laut Support von EasyMeter sendet die MSB-Datenschnittstelle oben auf dem Zählerrand selbstständig alle 2 Sekunden einen SML-Datensatz mit Zähler-ID und abrechnungsrelevanten Werten (SML Version 1.04).
Ich hab für den ersten Test mal den RX Pin des Sensors mit GPIO 13 des ESP32 verbunden und das Script hier verwendet:
#include <IRremoteESP8266.h>
#include <IRrecv.h>
#include <IRutils.h>
const int IR_RECEIVER_PIN = 13;
IRrecv irrecv(IR_RECEIVER_PIN);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.print("Raw-Daten: ");
for (int i = 0; i < results.rawlen; i++) {
Serial.print((char)results.rawbuf[i], HEX);
}
Serial.println();
irrecv.resume();
}
}
Damit werden mir dann folgende Daten am Serial-Monitor ausgegeben:
Raw-Daten:
13B2D742B3D2C742C712BA45F3B2D3C603C60A42C712B84174F194D1A858444244C1A4F194E194E1AF216F217B9164E1A854C3C60715F702D3B2C742B3C953A943B2D3B95C2C3C2C742CDD2B3C2C702C3C2B702C3C95B2DDC2C3BCD3B2E732D3B2C74
Raw-Daten:
13D5E3E5EB8184E4E4B51B9174E4E4C50B8174E4E4D50B8173C2D742B3C2C742C3C2C752B3C2D742B715F3C943B2D3C2D3C2BC2DDD2BA4943B2C3C2D7060D960715FA394712BA55E3E2ADD2C712BA45F3B2DDC2C8518847F4A1E4D1B4E19844B4C1BF1
Raw-Daten:
12D3C95B2C3C2C752C3C2C752B3B2C752BD92CD82C3C2C752B3CCE3A62A4603B2C3B2C742DD2B7060702B7094491E8517B84A4D1B4E1A8A174E1B4D19844B4C1C4E4E8517B81884178516B8184EB64820702BA52B3CFD702BA55F3B2D70C8A32C702C
Raw-Daten:
13A2D742C3C2C742D8417B84B4C1C4F4E4C4FBA16861784174E1A4E19868345234D1B4D1A3C2D3B2CDD2CDD2B3C2DA42B7060A42B3CFD3A2D752B3B953B943B2E3B95B2D3B2C752BDD2B3C2D702B3B2C702C3D94C2CDD2C3BCD3A2E752C4D1A891786
Ist das völliger Blödsinn oder kann man aus den Daten mit der korrekten Entschlüsselung irgendwie mein erwartetes Ergebnis (siehe oben) rausbekommen?
Für eine kleine EInstiegshilfe wäre ich euch sehr dankbar - quasi als Weihnachtsgeschenk