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

114 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔌 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:
```cpp
#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](https://www.linkedin.com/in/thomas-emil-b3497995/).
> For tekniske spørgsmål, kontakt via GitHub Issues eller ESP32-antenne-tanker 💡