Meteen naar de inhoud

Slimme Meter uitlezen via DSMR P1 poort met MQTT

in deze instructie leg ik je uit hoe je je slimme meter kunt koppelen via MQTT aan Home Assistant. Zorg eerst dat je een MQTT broker hebt geïnstalleerd. Hoe je dit doet kun je hier lezen.

Wat heb je nodig voor het uitlezen van de slimme meter door Home Assistant met MQTT?

Om het uitlezen van de slimme meter met Home Assistant met MQTT heb je een Slimme Meter WiFi gateway nodig. Deze is hier verkrijgbaar. (Klik op de foto om naar de Slimme Meter WiFi gateway productpagina te gaan).

https://smartgateways.nl/slimme-meter-p1-dsmr-uitlezen/

Wat zijn de voordelen van MQTT?

Het voordeel van MQTT ten opzichte van bijvoorbeeld de telnet koppeling is dat de gateway de berichten controleert op juistheid. Jouw meter stuurt namelijk achter ieder telegram een CRC checksum. Dit is de uitkomst van een vastgestelde berekening die de slimme meter berekent op basis van het verstuurde telegram. De gateway kent deze berekening en berekent zelf ook de uitkomst aan de hand van de data die van de slimme meter is ontvangen. Zijn beide uitkomsten gelijk, dan is het telegram goed aangekomen. Zit er een verschil tussen deze uitkomsten dan is de CRC check failed en negeert de gateway het telegram. Op deze manier hou je dus je home assistant schoon van verkeerde meterstanden.

Bepalen van de Interval

MQTT kun je ook gebruiken door de interval waarmee de gateway data naar jouw broker verstuurt te verkleinen. SMR meters sturen namelijk iedere seconde een telegram. Dit kan erg belastend zijn voor Home Assistant dus is het soms nodig om de interval te verkleinen. De gateway stuurt standaard om de 10 seconden een update ook al stuurt jouw meter er iedere seconde een.

Stabieler

Boven bijvoorbeeld de telnet variant van koppelen met de slimme meter aan Home Assistant is MQTT ook een stuk stabieler. Door de foutcontrole en het verlagen van de interval wordt Home Assistant niet onnodig belast. Het kan ook zijn dat door slechte wifi verbinding Home Assistant vaak opnieuw een connectie probeert te maken met de ingebouwde telnet server van de gateway. De telnet server kan maximaal 7 sessies aan. Indien een sessie is verbroken door bijvoorbeeld een herstart van Home Assistant of het wegvallen van de wifi verbinding wordt er opnieuw met de gateway verbonden. Na 7 sessies zal de gateway handmatig opnieuw te worden opgestart omdat alle telnet sessies in gebruik zijn.

Uurverbruik ook zichtbaar

Door gebruik te maken van de Slimme meter gateway via wifi kun je ook het uurverbruik inzichtelijk maken. De gateway berekent zelf de juiste waardes zodat je zelf geen berekeningen hoeft te doen binnen Home Assistant. Wel zo handig!

Slimme meter gateway koppelen aan Home Assistant via MQTT

De gateway met scherm dient eerst gereset te worden naar fabrieksinstellingen om toegang te krijgen tot de configuratieportal. Druk hiervoor 10 seconden het knopje rechts onder naast het display in en laat dit los. Het reset scherm wordt weergegeven. Nadat de gateway opnieuw is opgestart kan er verbonden worden met het wifi netwerk dat de gateway uitzendt. Vul de comsetting en baudrate in die bij jouw meter horen. Voor DSMR2 is dit 9600 / 7E1. De hogere versies gebruiken 115200 / 8N1.

Gebruikers met de gateway zonder display Advanced kunnen het knopje indrukken om de portal te activeren. Het wifi netwerk CONNECTIX P1 READER wordt uitgezonden en is benaderbaar via http://192.168.4.1

Je kunt de MQTT gegevens vervolgens invullen in de portal

Vul de volgende velden in:

  • MQTT SERVER: ip adres van jouw mqtt broker (waarschijnlijk het ip adres van jouw raspberry pi waar home assistant op draait)
  • MQTT SERVER PORT: het poortnummer van jouw mqtt broker (standaard is dit 1883)
  • MQTT USERNAME: de gebruiker die je hebt aangemaakt op jouw mqtt broker
  • MQTT PASSWORD: het bijbehorende wachtwoord
  • MQTT INTERVAL: de interval (in seconden) waarmee de gateway updates verstuurt naar jouw broker. Als je niks invult is dit 10. Hiermee kun je beperken hoe vaak de gateway updates naar Home Assistant verstuurt
  • MQTT PREFIX: het voorloop topic dat je kunt gebruiken. Dit is alleen voor geavanceerde gebruikers. De meeste gebruikers hoeven hier niks in te vullen

Eenmaal ingevuld zal de gateway verbinding maken met jouw mqtt broker en data versturen met de interval die je hebt ingesteld.

Hoe weet ik of de broker de verbinding met de broker juist tot stand is gekomen en de data correct aankomt?

Je kunt zelf verbinding maken met jouw mqtt broker door het programma MQTT Explorer te gebruiken. MQTT Explorer is hier te downloaden.

Als je MQTT Explorer hebt geïnstalleerd dien je eerst een verbinding met jouw mqtt broker tot stand te brengen. Selecteer de “+” om een nieuwe verbinding toe te voegen. Het scherm ziet er dan ongeveer als volgt uit:

Druk indien je alles hebt ingevuld op CONNECT.

Het volgende scherm wordt weergegeven. Hier zie je alle informatie (mqtt topics) die jouw broker afhandelt. Als het goed is zie je hier ook het dsmr topic en het smart_gateways topic. Door de pijltjes voor het topic te selecteren kun je alle gegevens tonen die de gateway verstuurt naar jouw broker.

Onder in het scherm zie je een grafiek van de laatste meterstanden. Door een ander topic te selecteren zie je de grafiek van het geselecteerde topic. Dit is dus een goede controle om te zien of jouw gateway goed communiceert met jouw MQTT broker.

Hoe kan ik de meterstanden weergeven in Home Assistant?

Als je bovenstaande stappen hebt doorlopen kun je beginnen met het aanmaken van de verschillende dashboards binnen Home Assistant. Home Assistant kent al een standaard integratie die alle waardes weergeven. Hiervoor dien je de configuration.yaml aan te passen met het volgende:

# Voorbeeldconfiguratie Connectix Slimme Meter WiFi Gateway
sensor:
  - platform: dsmr_reader
  - platform: mqtt
    name: "Gasverbruik per uur"
    state_topic: "dsmr/reading/gas_hourly_usage"
    unit_of_measurement: 'm3'
  - platform: mqtt
    name: "Electriciteitsverbruik per uur"
    state_topic: "dsmr/reading/electricity_hourly_usage"
    unit_of_measurement: 'kW'

De eerste regel (- platform: dsmr_reader) is in principe voldoende om de meterstanden via MQTT als sensors aan te maken binnen Home Assistant. De overige 2 – platform: mqtt sensors zijn voor het uurverbruik. Eventueel kun je ook het volgende topic toevoegen om een notificatie te maken indien er een firmware update beschikbaar is. Het topic smart_gateways/update_available verandert namelijk van false in true indien er een firmware update beschikbaar is voor de slimme meter wifi gateway. Op deze manier hoef je dus niet het scherm van de gateway in de gaten te houden.

Indien je de configuration.yaml hebt aangepast, dien je Home Assistant te herstarten. Dit is nodig om de sensors voor de slimme meter zichtbaar te maken.

Nadat Home Assistant is herstart kun je bijvoorbeeld het actuele stroomverbruik weergeven op het dashboard. Dit doe je door de volgende card aan te maken:

name: Huidig Energieverbruik
severity:
  green: 750
  red: 1500
  yellow: 1100
type: gauge
entity: sensor.dsmr_reading_electricity_currently_delivered
min: 200
max: 4000

Dit ziet er grafisch als volgt uit:

Je kunt ook het uurverbruik voor gas en electriciteit weergeven:

Dit doe je door de volgende tekst te gebruiken bij het aanmaken van bijvoorbeeld een Vertical Stack Card:

type: vertical-stack
cards:
  - type: sensor
    entity: sensor.electriciteitsverbruik_per_uur
    graph: line
   name: Electriciteitsverbruik / uur
   unit: kW
- type: sensor
  entity: sensor.gasverbruik_per_uur
  graph: line
  name: Gasverbruik / uur
  unit: m3

Dit ziet er grafisch als volgt uit:

Uiteraard kun je nog meer toevoegen aan het dashboard. Alle slimme meter sensoren beginnen met “sensor.dsmr_reading”. Je kunt dus zelf naar smak een mooie dashboard samenstellen.