DSMR Reader (Docker)
DSMR Reader is een optionele, zelfgehoste toepassing voor het opslaan van ruwe P1-telegrammen en het analyseren van elektriciteits- en gasverbruik over een langere periode. DSMR Reader draait als aparte containerservice op een server, NAS of Raspberry Pi. Met het optionele ESPHome-package kan P1MeterKit via je lokale netwerk een kopie van ieder ruw P1-telegram naar DSMR Reader sturen.
DSMR Reader is geen SmartHomeShop- of Home Assistant-app. Het is een aparte toepassing die je zelf installeert en beheert. DSMR Reader is niet nodig voor de SmartHomeShop-app, Home Assistant of de normale werking van P1MeterKit.
Waar Is Dit Voor?
Gebruik DSMR Reader als je:
- een apart, lokaal beheerd archief van ruwe slimme-meterstanden wilt;
- de dashboards, vergelijkingen en tariefberekeningen van DSMR Reader wilt gebruiken;
- buiten Home Assistant toegang tot de oorspronkelijke telegramgegevens wilt;
- deze aanvullende historie in een database op eigen hardware wilt bewaren.
De gegevens volgen deze route:
- De slimme meter verstuurt een ruw DSMR-telegram via de P1-poort.
- P1MeterKit verwerkt het telegram voor de normale ESPHome-, Home Assistant- en optionele SmartHomeShop-functies.
- Het optionele package stuurt via het lokale netwerk een geauthenticeerde HTTP-kopie door.
- DSMR Reader slaat de meting op en visualiseert deze in een eigen database.
Het DSMR Reader-project is gratis voor niet-commercieel gebruik. Controleer de actuele licentie voordat je het in een commerciële of zakelijke omgeving gebruikt.
Wat Wordt Wel en Niet Doorgestuurd?
Het package stuurt het volledige ruwe P1-telegram door. DSMR Reader kan daardoor waarden verwerken die in het telegram aanwezig zijn, waaronder:
- elektriciteitsafname per tarief;
- teruglevering per tarief;
- actueel vermogen en meterstatus;
- gas of een andere ondersteunde M-Busmeting wanneer de slimme meter deze aanlevert.
P1MeterKit-metingen die niet in het ruwe telegram staan, worden niet doorgestuurd:
- temperatuur en luchtvochtigheid;
- wifi- en diagnosegegevens;
- berekende SmartHomeShop- of Home Assistant-entiteiten.
De normale P1MeterKit-entiteiten blijven beschikbaar. Dit package voegt forwarding toe en vervangt de bestaande integraties niet.
Benodigdheden
Voordat je begint heb je nodig:
- een werkende P1MeterKit met wifi-firmware;
- een in ESPHome Device Builder geadopteerd apparaat, zodat je aangepaste YAML kunt bewerken en installeren;
- een DSMR Reader-container die vanaf P1MeterKit bereikbaar is op het lokale netwerk;
- een ingeschakelde DSMR Reader REST API en de bijbehorende API-sleutel;
- toegang tot
secrets.yamlin ESPHome Device Builder.
DSMR Reader-forwarding wordt niet ondersteund door de Thread-firmware. HTTP-forwarding voegt op elk ondersteund hardwaremodel extra geheugen-, firmware- en netwerkbelasting toe. De huidige wifi-configuraties compileren met succes, maar bij sommige modellen blijft na toevoeging van dit pakket weinig ruimte in de firmwarepartitie over. Valideer daarom altijd de volledige YAML voordat je deze installeert en controleer daarna de logs en stabiliteit.
1. Installeer DSMR Reader
Installeer DSMR Reader op een aparte host die Docker of Podman kan draaien. Volg de officiële DSMR Reader-containerhandleiding.
Voor aanlevering via de API:
- Rond de installatie van de containers en database af.
- Maak de DSMR Reader-webinterface alleen bereikbaar op je lokale netwerk. Bijvoorbeeld:
http://192.168.1.10:7777. - Verwijder of deactiveer de rechtstreekse
/dev/ttyUSB0-koppeling in het Compose-bestand wanneer DSMR Reader geen eigen P1-kabel gebruikt. - Controleer of je de webinterface kunt openen en kunt inloggen.
De officiële handleiding gebruikt Podman, maar vermeldt ook dat Docker en compatibele Compose-implementaties gebruikt kunnen worden.
2. Schakel de REST API In
De DSMR Reader REST API staat standaard uit.
- Log in bij DSMR Reader.
- Open Configuration.
- Schakel de REST API in.
- Kopieer de gegenereerde API-sleutel.
P1MeterKit stuurt metingen naar:
http://<docker-host>:7777/api/v1/datalogger/dsmrreading
De aanvraag gebruikt een Authorization: Token ...-header en verstuurt het URL-gecodeerde ruwe telegram in het formulierveld telegram.
3. Bewaar de API-sleutel in ESPHome
Open secrets.yaml in ESPHome Device Builder en voeg toe:
dsmr_reader_api_key: "jouw_dsmr_reader_api_token"
Publiceer dit bestand niet en plaats de echte sleutel niet in een openbaar supportverzoek. De sleutel wordt in de apparaatfirmware gecompileerd.
4. Voeg het Forwarding-package Toe
Open de YAML van je geadopteerde P1MeterKit. Behoud het bestaande P1MeterKit-package en voeg de host, API-sleutel en het DSMR Reader-package toe:
substitutions:
dsmr_reader_host: "http://192.168.1.10:7777"
dsmr_reader_api_key: !secret dsmr_reader_api_key
packages:
smarthomeshop.dsmr_reader:
github://smarthomeshop/p1meterkit/packages/dsmr-reader.yaml@main
Vervang 192.168.1.10 door het vaste lokale IP-adres of de bereikbare hostnaam van je DSMR Reader-host. Verwijder de bestaande smarthomeshop.p1meterkit-regel niet uit je geadopteerde configuratie.
Het forwarding-package:
- leest het volledige, onverwerkte telegram uit de DSMR-component van ESPHome;
- codeert het telegram voor de HTTP-aanvraag;
- verstuurt het als geauthenticeerde HTTP
POST; - accepteert alleen een HTTP
2xx-antwoord als geslaagd; - logt verbindingsfouten en geweigerde HTTP-antwoorden afzonderlijk.
5. Valideer en Installeer
- Kies Validate in ESPHome Device Builder.
- Los eventuele dubbele
packages,substitutionsofhttp_request-configuraties op. - Installeer de configuratie draadloos of via USB.
- Open Logs van P1MeterKit.
- Wacht op een nieuw P1-telegram.
- Controleer in DSMR Reader of er een recente meting staat.
Een geslaagde aanvraag logt:
DSMR Reader accepted telegram
Bij een HTTP-fout wordt de teruggegeven statuscode gelogd. Bij een netwerk- of verbindingsfout verschijnt:
DSMR Reader upload failed
Mislukte telegrammen worden niet bewaard om later opnieuw te versturen. Een onbereikbare server kan de verwerking vertragen terwijl de HTTP-aanvraag op de timeout wacht. Verwijder daarom het optionele package of herstel de server wanneer fouten blijven optreden.
Beveiliging en Betrouwbaarheid
- Houd DSMR Reader en poort
7777binnen je vertrouwde lokale netwerk. Stel deze niet rechtstreeks bloot aan internet. - Het pakket schakelt TLS-certificaatcontrole uit voor compatibiliteit met de ondersteunde hardware. Gebruik daarom het beschreven lokale HTTP-adres op een vertrouwd netwerk en beschouw deze verbinding niet als veilig internettransport.
- Geef de containerhost een vaste DHCP-reservering, zodat het ingestelde adres niet verandert.
- Bewaar de API-sleutel alleen in
secrets.yaml. - Maak back-ups van de DSMR Reader-database volgens de eigen documentatie.
- Gebruik voor langdurige databaseopslag liever betrouwbare opslag dan een SD-kaart.
- Gebruik per slimme meter één invoerroute om dubbele metingen te voorkomen.
Problemen Oplossen
Er verschijnen geen metingen
- Controleer of P1MeterKit zelf actuele P1-waarden ontvangt.
- Open het ingestelde DSMR Reader-adres vanaf een ander apparaat op hetzelfde netwerk.
- Controleer of de REST API is ingeschakeld.
- Controleer de API-sleutel en
dsmr_reader_host. - Controleer firewall-, VLAN- en containerpoortregels.
DSMR Reader geeft 401 of 403
De API-sleutel ontbreekt of is ongeldig. Kopieer de actieve sleutel uit DSMR Reader, werk secrets.yaml bij en installeer de ESPHome-configuratie opnieuw.
DSMR Reader geeft 404
Controleer of de host naar DSMR Reader verwijst en of achter de ingestelde URL geen ander pad staat. Het package voegt /api/v1/datalogger/dsmrreading zelf toe.
In de apparaatlogs staat DSMR Reader upload failed
P1MeterKit kan de verbinding niet afronden. Controleer het hostadres, de poort, DNS-resolutie, firewall en of de container actief is.
Metingen komen dubbel binnen
Schakel de seriële of netwerkdatalogger van DSMR Reader uit wanneer dezelfde slimme meter al via dit REST API-package telegrammen aanlevert.
P1MeterKit reageert minder snel
De extra HTTP-aanvraag gebruikt bij ieder telegram geheugen en verwerkingstijd. Controleer op herhaalde verbindingstime-outs, houd DSMR Reader op hetzelfde lokale netwerk en verwijder het optionele package wanneer de hardware niet stabiel blijft.