Domotica

Slimme meter uitlezen met P1 monitor

De slimme meter zorgt ervoor dat je geen meterstanden voor stroom en gas meer op hoeft te nemen. Tegelijkertijd geeft de meter je ook de mogelijkheid om die gegevens uit te lezen. En dat is helemaal niet zo lastig. Meer dan een Raspberry Pi, kabeltje en gratis software heb je niet nodig. We leggen uit hoe je dat doet.

Benodigdheden

Slimme meter

Bij ongeveer de helft van de Nederlandse huishoudens, zo’n vier miljoen woningen, hangt inmiddels een slimme meter in de meterkast. Die geeft het gemeten stroom- en gasverbruik via het mobiele netwerk door aan de netbeheerder, die geen meteropnemer meer hoeft te sturen en ook meteen inzicht krijgt in pieken of storingen in het netwerk. Voor je energieleverancier is het ook handig: die kan direct de nota op maken. Ten slotte kun je hiermee ook zelf je verbruik bijhouden, en ook de teruggave van zonnepanelen als je die hebt. In deze workshop helpen we je op weg met zulke metingen.

Raspberry Pi

P1 monitor is specifiek ontwikkeld voor de Raspberry Pi. Je hebt een Pi 3 model B of B+ nodig of de nieuwe Pi 4. De meerwaarde van de Pi 4 is voor dit project vrij beperkt maar omdat er geen prijsverschil is met zijn voorgangers is het bij nieuwkoop de beste optie. Hoewel de 1 GB-uitvoering van de Pi 4 voldoet is dat eigenlijk zonde: je koopt de 2 GB-uitvoering tegenwoordig voor dezelfde prijs (€39,95). Voor de software heb je een microSD-kaart nodig van minimaal 16 GB. Eventueel kan 8 GB ook al maar toekomstige versies passen er dan mogelijk niet op.

Overige

Voor de Pi heb je aanvullend nog een betrouwbare voedingsadapter nodig en een behuizing. Bij de Pi 4 moet je de warmteontwikkeling goed in de gaten houden. Een klein koellichaam en/of een behuizing die de warmte goed af kan voeren is soms noodzakelijk. Voor de koppeling met de slimme meter heb je een zogenoemde P1-kabel nodig. Deze worden op diverse plekken verkocht (zo’n €5 tot €20). De meeste zijn geschikt voor alle slimme meters. Pas wel op voor Chinese kabeltjes: ze zijn goedkoop maar werken niet altijd. Wellicht geven de reviews van andere gebruikers daar inzicht in.

Aan de slag!

Software flashen

We beginnen met het downloaden van de software. Ga hiervoor naar https://www.ztatz.nl/ en zoek het bericht met de laatste versie op. Bij deze workshop gebruiken we versie 202002-0.9.15. Lees de release-notes om te zien of er bijzonderheden zijn. Download het zip-bestand (gebruik daarbij het bij de download vermelde wachtwoord) en pak het uit zodat je het imagebestand (.img) krijgt. Gebruik dan bijvoorbeeld balenaEtcher (https://www.balena.io/etcher/) om het te flashen op de microSD-kaart. Koppel daarvoor de microSD-kaart via een kaartlezer aan je pc, open balenaEtcher, verwijs naar het imagebestand en controleer of de juiste microSD-kaart wordt gebruikt. Start daarna het flashen en wacht tot de verificatie is voltooid.

Flashen met balenaEtcher

Met balenaEtcher kun je de image flashen op je microSD-geheugenkaart.

Aansluiten maar!

Als het flashen is afgerond kun je de microSD-kaart uit je kaartlezer halen en voorzichtig in het geheugenslot van de Pi steken. In de meterkast sluit je de Pi vervolgens via een netwerkkabel aan op de router. Naderhand kun je het eventueel via wifi gebruiken, in het onderdeel netwerk (onder instellingen). Kies voor de P1-kabel een vrije usb-poort op de Pi. De zwarte zijn usb 2.0, de blauwe usb 3.0, welke je gebruikt maakt niet uit. Steek het ‘telefoonstekkertje’ aan de andere kant in de communicatiepoort (P1) van de slimme meter. Als laatste sluit je nog de voedingsadapter aan waarna de Pi direct zal starten.

Eerste keer starten

Als de Pi is opgestart krijgt het van je router dankzij dhcp automatisch een ip-adres toegekend. Je kunt het opzoeken in de pagina’s van je router of de app Fing op je smartphone, maar echt vereist is dat niet: als je http://p1mon in je browser bezoekt kom je óók bij de gebruikersinterface van P1 monitor. Schrik niet als je nu nog geen gegevens van de slimme meter ziet. Er zijn verschillende uitvoeringen van de slimme meter die soms net wat andere instellingen voor de communicatie vereisen. Daarom gaan we daar eerst mee verder.

Het thuisscherm van P1 monitor

Het thuisscherm van P1 monitor, dat je bereikt door naar http://p1mon te browsen.

Instellingen doorlopen

Slimme meter instellen

Op het informatiescherm kun je rechtsboven de status voor de P1-poort zien. Als er geen data wordt ontvangen ga je naar de instellingen. De eerste keer moet je hierbij een wachtwoord opgeven. Bewaar dit zodat je ook in het vervolg in de instellingen kunt komen. Ga vervolgens naar P1 poort waar je de seriële instellingen kunt wijzigen, afhankelijk van jouw type slimme meter. Log dan uit om weer op de verbruikspagina’s te komen. Omdat de slimme meter ongeveer elke 10 seconden de gegevens stuurt kan het heel even duren voordat je hier daadwerkelijk gegevens binnen ziet komen. Je kunt de status ook nog even op het informatiescherm controleren.

Instellingen voor communicatie

Het kan eenmalig nodig zijn de instellingen voor communicatie goed te zetten.

Instellingen voor communicatie

Standaard is P1 monitor ingesteld voor dsmr 3. Voor de communicatie wordt daarbij een baudrate van 9.600 bps gebruikt met 7 databits, even pariteit en 1 stop bit. Bij meters van Iskra en Kamstrup is dit ook het meest gangbaar. Voor slimme meters met dsmr 4 of 4.2, vrij gangbaar voor de merken Kaifa en Landis + Gyr, is de baudrate in veel gevallen ingesteld op 115.200 bps met daarbij 8 databits, geen pariteit en 1 stop bit. Het kan geen kwaad als je per ongeluk verkeerde waardes opgeeft, de communicatie komt dan alleen niet tot stand.

Tarieven instellen

Er zijn diverse instellingen die je na kunt lopen. Maar voor een correcte weergave is het in ieder geval slim om het tarief voor elektriciteit en gas aan te passen aan je huidige situatie. Zo zorg je dat de juiste kostprijs wordt weergegeven in overzichten. Je kunt hierbij eventueel ook een grenswaarde voor de kosten opgeven. Dat is het bedrag wat je per maand uit wilt geven. In de kostenoverzichten zie je dan een grenslijn zodat je een indicatie hebt of je over of onder het maandbedrag blijft.

Voor de juiste verbruiksgegevens is het slim het tarief voor gas en elektriciteit aan te passen.

Metingen raadplegen

Actuele verbruik

We verlaten de instellingen en gaan terug naar de homepagina van P1 monitor. Hier zie je een overzicht van wat je hebt verbruikt en geleverd. We gaan naar het tweede icoontje dat het actuele verbruik laat zien. Op het eerste tabje zie je hoeveel stroom er op dit moment wordt gebruikt. Zet je bijvoorbeeld de inductiekookplaat aan dan zie je het pijltje voor het stroomverbruik vaak al na enkele seconden omhoog schieten, afhankelijk van wanneer data wordt ontvangen. Onder de grafiek zie je het verbruik van de laatste vier uur. Op het tweede tabje zie je dezelfde details voor stroomlevering. Het derde tabje toont het actuele gasverbruik met grafiek van de laatste vierentwintig uur. Elk tabje toont verder nog een totaal over de hele dag.

Je kunt in detail zien wat het actuele verbruik is voor onder meer stroomverbruik.

Historisch verbruik

Ook het historisch verbruik is via heldere grafieken te bekijken. Je vindt ze voor respectievelijk stroom en gas via het derde en vierde icoontje. Je kunt bij deze grafieken kiezen over welke periode je verbruiksdata wilt zien. Dat kan een kortere periode zijn, bijvoorbeeld de laatste minuten of uren, maar ook een (veel) langere periode zoals de afgelopen maanden en jaren. Over langere periodes kun je heel goed trends in het verbruik zien. Om het plaatje compleet te maken kun je, via het euroteken, ook de gemaakte kosten in kolommen bekijken, over de afgelopen dagen, maanden of jaren.

Tot in detail kun je het verbruik in het verleden terugzien, zoals hier voor je gasverbruik.

Weergegevens

P1 monitor kan ook het weerbericht voor je bijhouden. Hiervoor kun je een api-sleutel gebruiken die je bij OpenWeatherMap (zie kader) kunt aanmaken. Ga dan in P1 monitor naar het onderdeel weer onder instellingen. Hier kun je de aangemaakte api-sleutel invullen en een stad in een notatie zoals amsterdam,nl. Je kunt het actuele weerbericht dan aflezen in overzichtsschermen. Bij overzichten met historisch gasverbruik wordt bovendien een mooie lijn met de temperatuur geplot. De historische weergegevens worden overigens ook gewoon voor je bewaard en zijn via bijvoorbeeld de api opvraagbaar (zie verderop).

Informatie over het weer is een leuke toevoeging aan schermen en overzichten.

Extra mogelijkheden

Weergegevens via OpenWeaterMap

We gebruiken OpenWeatherMap (zie verderop) om weergegevens op te halen. Registreer bij deze website en verifieer je e-mailadres. Log dan in en ga naar het tabblad API keys. Hier kun je een nieuwe zogeheten api-sleutel aanmaken. Kies een herkenbare naam, bijvoorbeeld p1monitor. Je kunt zoveel api-sleutels aanmaken als je wilt, bijvoorbeeld één voor elke toepassing, maar bedenk dat alle aanroepen meetellen bij de limiet. In de praktijk zul je niet snel tegen beperkingen aanloopt, afhankelijk van hoe frequent de software de gegevens vernieuwt. P1 monitor zelf zal de weergegevens elk half uur vernieuwen.

OpenWeather biedt een api waarmee je weergegevens kunt opvragen voor locaties wereldwijd.

Bij OpenWeatherMap (https://openweathermap.org/) kunnen via een zogeheten api actuele weergegevens worden opgehaald, waar software zoals P1 monitor gebruik van kan maken. Hiervoor moet je je eerst registreren. Een gratis account biedt overigens al meer dan genoeg mogelijkheden, zoals het opvragen van het actuele weer op een bepaalde locatie. De limieten voor het aantal aanroepen zijn vaak ook meer dan voldoende.

Om een idee te krijgen hoe de gegevensuitwisseling werkt kun je naar https://openweathermap.org/guide bladeren. Hier kun je zien welke links je kunt gebruiken voor het ophalen van weergegevens, en hoe die vervolgens in het zogeheten json-formaat worden teruggestuurd voor verwerking door de software. Je zou zulke gegevens bijvoorbeeld kunnen gebruiken om je tuin alleen te bewateren in periodes van droogte.

De api gebruiken

Hierboven las je over de api van OpenWeaterMap voor het ophalen van weersgegevens. Op vergelijkbare wijze kun je de metingen van je slimme meter door P1 monitor benaderen vanaf andere systemen, zoals Domoticz of Home Assistant. De toegang tot de api van P1 monitor is relatief eenvoudig. Als je naar instellingen gaat en dan het onderdeel API kun je de url’s vinden waarmee gegevens toegankelijk zijn, zoals http://p1mon/api/v1/status. De brei van gegevens kun je wat leesbaarder maken door het te kopiëren en vervolgens te plakken in het linker invoerveld op https://jsonformatter.org/. Het kan wel een beetje een puzzel zijn om de gewenste details er uit te filteren of zelfs weergeven in een grafiek, bijvoorbeeld met Home Assistant, InfluxDB en Grafana.

Code in json kun je met deze tool leesbaarder maken.

Mqtt-client

Je kunt P1 monitor sinds kort als mqtt-client instellen, waarna het programma de meetgegevens via zogeheten topics publiceert bij de ingestelde mqtt-broker (zie kader) in je netwerk. Gegevens zijn dan breder beschikbaar en zitten dus minder ‘opgesloten’ in P1 monitor. Via instellingen, onder MQTT, kun je de details voor de mqtt-broker instellen en een voorvoegsel voor de topics kiezen. Geef ook aan wat er moet worden gepubliceerd. We zetten in dit voorbeeld alleen het verzenden van de smartmeter data aan. Als je het scherm vernieuwt, bijvoorbeeld door (na opslaan!) op herstel te klikken, kun je onder MQTT published topics zien in welke topics er werd gepubliceerd.

P1 monitor kan als mqtt-client gegevens via mqtt publiceren.

Mqtt-broker en clients

Voor deze workshop kiezen we de mqtt-broker Mosquitto, geïnstalleerd op een server. Hierbij hebben we binnen Mosquitto een aparte gebruikersaccount voor P1 monitor toegevoegd. Daarna hebben we ons met de opdracht mosquitto_sub -v -h localhost -u gebruikersnaam -P wachtwoord -t ‘#’ op alle topics laten ‘abonneren’. Na het invullen van de mqtt-instellingen in P1 monitor, kun je dan live de meetgegevens van Home Assistant binnen zien komen. Als je Home Assistant gebruikt, de bekende software voor thuisautomatisering, kun je daarin overigens ook eenvoudig een mqtt-broker activeren. Ook kan Home Assistant zich abonneren op bepaalde topics, bijvoorbeeld van P1 monitor, en daarop actie ondernemen, zoals het schakelen van een lamp.

Mqtt (Message Queue Telemetry Transport) is een heel praktisch lichtgewicht protocol voor de uitwisseling van statusinformatie in je netwerk. Een mqtt-broker is de centrale server waar mqtt-clients bepaalde statusgegevens kunnen lezen of schrijven. Dat doen ze via zogenaamde topics. Neem je bijvoorbeeld een buitensensor die temperatuur en luchtvochtigheid kan meten, dan kies je als topics bijvoorbeeld sensoren/buiten/temperatuur en sensoren/buiten/luchtvochtigheid. Omdat het zo’n lichtgewicht protocol is, kunnen ook apparaten als een Raspberry Pi of zelfs microcontrollers als de ESP8266 en ESP32 eenvoudig inhaken op de topics. 

Op de mqtt-server zie je berichten van P1 monitor binnenkomen.

Back-up maken

Het is verstandig om regelmatig een back-up van de verbruiksdata te maken via bijvoorbeeld ftp of naar Dropbox. De geëxporteerde bestanden kun je bij een andere P1 monitor weer importeren. Dat is ook handig als je overstapt naar een nieuwe versie. Het delen met Dropbox is tevens nuttig als je de nieuwe app voor iPhone of iPad wilt gebruiken, die de actuele verbruiksgegevens kan laten zien. Je kunt Dropbox ook gebruiken als bestemming voor een automatische back-up, zodat je bijvoorbeeld dagelijks of wekelijks een back-up van alle gegevens hebt.

Zorg dat je af en toe een backup maakt van gegevens, in ieder geval voorafgaand aan updates.

Invoer en uitvoer

De Raspberry Pi heeft een flink aantal gpio-pinnen voor invoer en uitvoer. Je kunt er binnen P1 monitor enkele gebruiken voor eigen schakelingen. Hiervoor ga je onder instellingen naar in- output. Onder teruglevering schakelaar kun je instellen dat één van de gpio-pinnen moet worden geactiveerd zodra een bepaald vermogen wordt opgewekt door je zonnepanelen. Je kunt dan bijvoorbeeld via een relais een boiler inschakelen. Onder tariefschakelaar kun je schakelen op piek- en dal-tarief. Zo kun je bepaalde apparaten aan- of juist uitzetten afhankelijk van het tarief. Ga wel zorgvuldig te werk bij het schakelen van grote vermogens. Een leuke uitbreiding van P1 monitor, die ook de gpio-pinnen gebruikt, is het meten van je waterverbruik.

De gpio-pinnen kun je gebruiken voor eigen schakelingen.

Ook je waterverbruik meten?

Met een extra schakeling kun je ook waterverbruik meten.,

Heb je het stroom- en gasverbruik in kaart, dan is de volgende uitdaging wellicht het uitlezen en bijhouden van het waterverbruik. Hiervoor kent P1 monitor sinds kort een mogelijkheid. Helaas leveren watermeters geen data zoals de slimme meter maar hier is ook wat op bedacht. Op de website van P1 monitor (https://www.ztatz.nl/p1-monitor-watermeter/) vind je een klein project voor het bouwen van een inductieve nabijheidssensor die met wat passen en meten de pulsen van de watermeter leest via het roterende schijfje dat er in zit. De pulsen worden aangeboden op een gpio-poort van de Raspberry Pi en omgezet naar het aantal gebruikte liters water. Bij de instellingen, onder in- output, kun je dat wat preciezer afstellen en ook een beginstand opgeven. Aan onderdelen ben je voor het project ongeveer €7,50 kwijt. Je moet hierbij een klein printplaatje solderen en het vraagt wat creativiteit bij het goed bevestigen van de nabijheidssensor.

 

2 Comments

  1. Super mooi progamma bedank hier voor
    ik heb een vraagje over de water meting ik krijg soms om de paar dagen in eens een uitschieter in het verbruik
    van soms wel 2000 liter en daarna is het verbruik weer precies goed.
    heeft iemand soms een idee waar dit aan kan liggen.
    Ik heb alles volgens het schema aan gesloten en hij geeft ook pecies het verbruik aan alleen die rare uit uitschieters.

    Alvast bedankt

    Nico

    1. Ik heb met de watermeter helaas zelf nog geen ervaring, maar heb de onderdelen er inmiddels wel voor in huis. Ik weet dat het wel vaak wordt toegepast, ook in combinatie met Domoticz, wellicht kun je ergens nog wat tips ervoor vinden! Een handmatige correctie is volgens mij ook altijd mogelijk.

Laat een reactie achter op Nico Reactie annuleren

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

0 %