Files
MEP-Echelon/README_DA.md
Thomas 036a53783c New File
Danish & English
2025-07-15 15:30:20 +02:00

4.1 KiB
Raw Blame History

🔌 Echelon 83331 MEP Sniffer med ESP32

Et projekt til at aflæse rådata fra MEP-porten på Echelon 83331 elmåleren ved hjælp af en ESP32. Data læses i RAW-format for senere parsing og dekryptering med lokal krypteringsnøgle.

🎯 Formål

  • Læs måledata direkte fra elmålerens MEP-port.
  • Undgå afhængigheder som SaveEye, cloud eller MQTT.
  • Gem og parse data 100 % lokalt.
  • Send senere data til Home Assistant via REST API.

🔌 Hardwaretilslutning

📟 Komponenter

  • ESP32 DevKit (WROOM anbefales)
  • RJ12-hunstik eller MEP-adapter
  • Evt. logikniveaukonverter (hvis MEP-port er RS-232 og ikke TTL)
  • Jumper wires

⚙️ MEP RJ12 Pinout (standard):

Pin Signal ESP32 GPIO eksempel
1 GND GND
2 VCC (3.3/5V) 3.3V / 5V (tjek målerens spænding)
3 TX fra måler GPIO16 (RX)
4 RX til måler GPIO17 (TX)
56 Ikke i brug

⚠️ Dobbelttjek spænding og signaltype hvis RS-232 bruges, skal du sætte en MAX3232 imellem ESP32 og måler.


📊 Forventet dataoutput

Når dekodningen er aktiv og korrekt krypteringsnøgle er implementeret, forventes følgende output fra måleren:

Felt Enhed Beskrivelse
meterType String Målerens type (fx "MEP meter")
meterSerialNumber String Målerens serienummer
wifiRssi dBm Signalstyrke (kun relevant for WiFi-modul)
activeActualConsumption Watt (W) Øjeblikkeligt aktivt forbrug
activeActualProduction Watt (W) Øjeblikkelig produktion (fx solceller)
activeTotalConsumption Wh/kWh Akkumuleret forbrug siden opsætning
activeTotalProduction Wh/kWh Akkumuleret produktion
reactiveActualConsumption VAr Øjeblikkeligt reaktivt forbrug
reactiveActualProduction VAr Øjeblikkelig reaktiv produktion
rmsVoltage (L1-L3) Volt (V) RMS spænding per fase
rmsCurrent (L1-L3) mA / A RMS strømstyrke per fase
powerFactor % Effektfaktor (fx 98 = 0.98 cos(φ))

Bemærk: Nogle værdier er afhængige af målerens firmware og opsætning


🔍 ESP32 Sniffer-kode (Arduino C++)

Brug denne kode til at logge rå data fra måleren i HEX, så det kan analyseres:

#include <HardwareSerial.h>

HardwareSerial MEP(2);  // UART2

void setup() {
  Serial.begin(115200);
  MEP.begin(9600, SERIAL_8N1, 16, 17); // RX=GPIO16, TX=GPIO17

  Serial.println("🔍 Starter MEP-sniffer...");
}

void loop() {
  while (MEP.available()) {
    byte b = MEP.read();
    if (b < 0x10) Serial.print("0");
    Serial.print(b, HEX);
    Serial.print(" ");
  }
}

👉 Når ESP32 er tilsluttet og måleren sender data, vises byte for byte i Serial Monitor (115200 baud).


🔐 Krypteringsnøgle

Projektet vil senere anvende elmålerens private krypteringsnøgle (hvis krævet) til at:

  • Autentificere sig mod måleren
  • Dekryptere binære data til forståelige værdier

🔒 Sikkerhedstiltag

  • Nøglen bliver hardcoded i firmware.
  • Ændringer kræver OTA eller fysisk opdatering ingen åben adgang i web eller serial interface.
  • Brug af nøglen håndteres i separat kodeblok ved parsing.

🧪 Næste trin

  1. Brug denne sniffer til at logge et datasæt fra måleren.
  2. Sammenlign værdier med dit kendte forbrug/spænding for at forstå datastrukturen.
  3. Vi implementerer parsing + kryptering, og REST-opdatering til Home Assistant.

📬 Kontakt

Udviklet og vedligeholdt af Thomas Emil.
For tekniske spørgsmål, kontakt via GitHub Issues eller ESP32-antenne-tanker 💡