Slimme driefasen meter draadloos uitlezen in Domoticz

Update voor de P1 module
Warmtepompen, elektrische auto’s, thuisbatterijen: ze vreten stroom en daarom is de driefasen-aansluiting in Nederland tegenwoordig super populair. Zo’n aansluiting kan bijna het dubbele aan vermogen aan (17.25kW), maar stelt ook andere eisen aan de slimme meter. Daar kwam ik achter toen ik in Domoticz ineens geen elektriciteitsgebruik, -levering en gas-data meer binnenkreeg.
Een tijdje terug schreef ik over hoe je met een simpel Wemos D1 mini-‘zendertje’ je slimme meter draadloos kunt uitlezen in Domoticz, zonder duur kant-en-klaar apparaat en zonder verplichte app. Die opstelling (een Wemos met ESPEasy en de P1 Wifi Gateway-plugin van ‘Esp8266 Thingies’) deed bij mij jarenlang trouw dienst op een Sagemcom-meter.
Tot de netbeheerder mijn oude meter kwam vervangen door een nieuwe: een ZIV-meter met een driefase-aansluiting. Mijn vertrouwde opstelling deed het ineens niet meer. Geen foutmelding op het scherm, geen rookwolkjes — gewoon stilte in Domoticz. Tijd om uit te zoeken wat er anders is aan deze nieuwe generatie meters, en hoe je dat oplost.
Wat er anders is aan nieuwere meters
De moderne meterrollout in Nederland gebruikt de ESMR5-standaard (gebaseerd op DSMR 5.0). Het belangrijkste verschil met de oudere DSMR4-meters: waar een DSMR4-meter maar eens in de 10 seconden een telegram met je verbruiksgegevens over de P1 poort verstuurt, doet een ESMR5-meter dat elke seconde. En bij een driefase-aansluiting met gaskoppeling bevat zo’n telegram flink wat extra regels: spanning, stroom en verbruik per fase, plus tellers voor spanningsdips en -pieken per fase.
Het resultaat: een telegram van een driefase ESMR5-meter is aanmerkelijk groter dan wat de oudere DSMR4-meters produceerden — soms wel 2 tot 3 keer zo groot. Met als gevolg dat de log volloopt met:
P1 error: buffer fullP1 error: buffer fullP1 error: buffer full
Steeds netjes om de seconde, precies zo vaak als de meter een nieuw telegram stuurt. Geen bekabelingsprobleem dus, en (in mijn geval) ook geen kwestie van een niet-geactiveerde P1-poort — dat laatste is trouwens wél iets om te checken als je in België woont: daar staat de P1-poort standaard uit en moet je hem eerst laten activeren via je netbeheerder (Fluvius, Sibelga of Ores). In Nederland is de poort wettelijk verplicht altijd actief, dus dat was bij mij niet de oorzaak.
De oplossing: wissel van plugin
De simpelste fix is de P1 Wifi Gateway-plugin helemaal niet te gebruiken, maar in plaats daarvan ESPEasy’s generieke Serial Server-plugin (ook bekend als Ser2Net). Die plugin parseert het telegram helemaal niet zelf — hij stuurt gewoon alle binnenkomende bytes rechtstreeks door naar de netwerkpoort, zonder enige limiet op telegramgrootte. Domoticz’s eigen “P1 Smart Meter with LAN interface”-hardware doet aan de ontvangende kant zelf de telegram-herkenning en checksum-controle, en heeft daarbij geen last van een vaste buffergrootte.
Zo stel je dat in:
- Ga in ESPEasy naar Devices en klik op Edit bij de taak die eerder “P1 Wifi Gateway” was.
- Wijzig het veld Device naar Serial Server.
- Vul (opnieuw) in:
- TCP Port: hetzelfde poortnummer dat je al gebruikte (bijvoorbeeld 8088)
- Baud Rate: 115200
- Data bits: 8
- Parity: No parity
- Stop bits: 1
- RX Receive Timeout: 50 (bij 0 blijft de plugin soms onnodig lang wachten voordat hij data doorstuurt)
- Klik op Submit.
Aan de Domoticz-kant hoeft er niets te veranderen: dezelfde hardware-instelling “P1 Smart Meter with LAN interface” met hetzelfde IP-adres en poortnummer blijft gewoon werken, want die verwacht toch al een rauwe TCP-stream met P1-telegrammen.
Na deze omschakeling verschenen bij mij binnen enkele minuten keurig alle devices in Domoticz: stroomverbruik en -teruglevering per fase, spanning per fase, en de gekoppelde gasmeter.
Bijwerking: incidentele CRC-fouten
Met deze oplossing kun je af en toe het volgende in de Domoticz-log tegenkomen:
P1 Smart Meter: Dismiss incoming - CRC failed
Dat is op zich geen halszaak: Domoticz controleert de checksum van elk telegram en gooit een corrupt telegram gewoon weg, om vervolgens het eerstvolgende goede telegram te gebruiken. Toch zijn er soms opvallende glitches.
Zo ontstond in de testfase een wel heel vreemde piek, alsof ik in een minuut 11.800 Watt zou hebben teruggeleverd (terwijl er geen thuisbatterij of zonnepanelen waren aangesloten). Ook zie in het Power failure device in Domoticz, waar ik normaal nooit naar kijk, ineens de teller van korte en lange stroomstoringen ineens stijgen.

De oorzaak ligt bij de kleine hardware-ontvangstbuffer van de ESP8266 (maar 128 bytes), die af en toe wat tekens kwijtraakt als de wifi-verzending even blokkeert — met name bij het hoge tempo van 1 telegram per seconde bij ESMR5 komt dat vaker voor dan bij de trage DSMR4-cyclus.
Eén simpele instelling helpt om dit te verminderen: zet in ESPEasy onder Tools → Advanced de Serial log level op None/0. Standaard gebruikt ESPEasy namelijk dezelfde seriële hardware ook voor zijn eigen debug-berichten, en dat kost net genoeg CPU-tijd om de kans op een volle buffer te vergroten. Met logging uit, komen er merkbaar minder corrupte telegrammen door.
En de parasitaire voeding dan?
Een detail waar ik zelf ook tegenaan liep: mijn P1 Wifi Gateway-module is de ‘parasitaire’ versie, die normaal gesproken zijn stroom rechtstreeks uit de P1-poort van de meter haalt (moderne meters leveren daar 5V), zodat je geen aparte telefoonlader nodig hebt. Bij mijn nieuwe ZIV-meter bleek dat niet genoeg: het lampje op de Wemos bleef gewoon uit.
De verklaring zit hem waarschijnlijk in de Serial Server-plugin zelf: die houdt continu een actieve TCP-verbinding open, zonder de energiebesparende slaapstand die de originele P1 Wifi Gateway-plugin wél gebruikte (die schakelt tussen metingen de wifi-radio uit, waardoor het verbruik daalt van zo’n 70 mA naar 15 mA). Met de Serial Server-plugin is het stroomverbruik dus constant hoger, en dat is precies wat een parasitaire voeding op een beperkte P1-poort niet trekt.
Voor nu draai ik de module gewoon op een simpele USB-telefoonlader naast de meterkast, wat prima werkt. Wie toch parasitair wil blijven werken op een driefase ESMR5-meter, kan overwegen om de Wemos volledig te herflashen met ESPHome en de bijbehorende dsmr-component: die ondersteunt een instelbare buffergrootte én een request_pin-optie waarmee de meter alleen kort wordt “gewekt” wanneer nodig, wat stroomverbruik flink scheelt.
Of dat ook daadwerkelijk betekent dat je geen externe voeding meer nodig hebt, zal in de praktijk moeten blijken. Op papier levert de ZIV meter 250mA op de P1 poort, net als zijn voorganger, de Sagemcom. Maar praktijk en theorie lopen wel eens vaker uiteen. Een extra voedinkje in de meterkast is ook geen groot probleem. Het maakt het ook mogelijk om een snellere MCU in te zetten met meer geheugen, zoals de ESP32C3. Een kleine prijs voor het voorkomen van CRC-fouten. Daar duik ik later dieper in.
Kortom
Loop je met een gloednieuwe (driefase) slimme meter tegen een stille Domoticz-opstelling aan die vroeger prima werkte? Kijk dan eerst in de ESPEasy-log of je “buffer full”-meldingen ziet. Is dat zo, dan is de kans groot dat je simpelweg van plugin moet wisselen: van “P1 Wifi Gateway” naar de generieke “Serial Server”. Dat, gecombineerd met het uitzetten van de Serial log level en eventueel een externe voeding in plaats van parasitaire stroom, zou je weer helemaal up-to-date moeten brengen met de nieuwste meterstandaard.
Zie ook:
Wemos D1 mini
0 reacties