Draadloze P1-meter met ESP32-C3-ZERO en ESPHome

Actieve ontwikkeling

Draadloze P1-meter met ESP32-C3-ZERO en ESPHome

De slimme meter in mijn meterkast heeft een P1-poort: een seriële uitgang die real-time verbruiksdata stuurt volgens het Nederlandse DSMR 5.0-protocol. Tot voor kort las ik die uit via een USB-adapter die rechtstreeks op mijn Home Assistant-server zit. Nadeel: de server staat niet naast de meterkast, en USB-kabels door het huis zijn geen optie.

De oplossing: een kleine ESP32 die de P1-poort draadloos doorstuurt naar Home Assistant.

Hardware

Het hart is de ESP32-C3-ZERO — een minuscuul bordje met WiFi, USB-C voeding en een ingebouwde WS2812B RGB-led. De meter stuurt data op 5V met een geïnverteerd signaal; de ESP32 werkt op 3,3V en verwacht een normaal signaal. Daarvoor is een simpel NPN-transistorcircuitje nodig met twee weerstanden.

Aansluitschema:

De ESP32-C3-ZERO wordt gevoed via USB-C — de RJ11-aansluiting levert geen voeding.

De RGB-led geeft directe statusindicatie:

  • Groen — WiFi verbonden, goed signaal (RSSI ≥ −70 dBm)
  • Geel — WiFi verbonden, zwak signaal
  • Rood — geen WiFi

Firmware

De firmware draait op ESPHome met het esp-idf framework. ESPHome heeft ingebouwde DSMR-ondersteuning: één dsmr:-blok en alle meetwaarden verschijnen automatisch als entiteiten in Home Assistant — energie-afname T1/T2, teruglevering, vermogen per fase, spanning, stroom en gasverbruik.

Na de eerste flash verschijnt het apparaat vanzelf als ESPHome-device in Home Assistant. Geen MQTT, geen custom code.

Mijn installatie

Mijn aansluiting is driefasig met zonnepanelen op L1. Alle drie fasen worden individueel gemeten. De gasmeter is via MBus gekoppeld aan de slimme meter en leest ook mee via P1.

Ik heb ook een Alfen laadpaal die de P1-poort gebruikt voor dynamisch laden. Die twee tegelijk aansluiten vereist een passieve RJ12 6-pins Y-splitter.

Resultaat

Een P1-dongle, volledig lokaal, geen cloud, en direct geïntegreerd in Home Assistant.