Slimme meter uitlezen via een Raspberry Pi
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, een kabeltje en gratis software heb je niet nodig. We leggen uit hoe je dat doet, met de vernieuwde P1 monitor die onder andere MQTT ondersteunt.
1 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 opmaken. Ten slotte kun je hiermee ook zelf je verbruik bijhouden en ook de teruggave van zonnepanelen als je die hebt. In dit artikel helpen we je op weg met zulke metingen.
2 Raspberry Pi
We gebruiken P1 monitor dat specifiek is ontwikkeld voor de Raspberry Pi. Je hebt een Pi 3 Model B of B+ nodig, of de nieuwe Pi 4. De meerwaarde van de Raspberry 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 1GB-uitvoering van de Pi 4 voldoet, is dat eigenlijk zonde: je koopt de 2GB-uitvoering tegenwoordig voor dezelfde prijs (39,95 euro). Voor de software heb je een micro-sd-kaart nodig van minimaal 16 GB. Eventueel kan 8 GB ook, maar toekomstige versies passen er dan mogelijk niet op.
©PXimport
3 Andere benodigdheden
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 kan afvoeren 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 euro). 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.
©PXimport
4 Software flashen
We beginnen met het downloaden van de software. Ga hiervoor naar www.ztatz.nl en zoek het bericht met de laatste versie op. In ons geval is dat 202002-0.9.15. Lees de release-notes om te zien of er bijzonderheden zijn. Download het zip-bestand (gebruik het vermelde wachtwoord) en pak het uit zodat je het imagebestand (.img) krijgt. Gebruik dan bijvoorbeeld balenaEtcher om het te flashen op de micro-sd-kaart. Koppel daarvoor de micro-sd-kaart via een kaartlezer aan je pc, open balenaEtcher, verwijs naar het imagebestand, en controleer of de juiste micro-sd-kaart wordt gebruikt. Start daarna het flashen en wacht tot de verificatie is voltooid.
©PXimport
5 Aansluiten maar
Als het flashen is afgerond, kun je de micro-sd-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 de Pi 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 zijn usb 3.0, maar 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.
©PXimport
6 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.
©PXimport
7 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.
©PXimport
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, dat vaak wordt gebruikt door 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.
8 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 dat je per maand uit wilt geven. In de kostenoverzichten zie je dan een grenslijn, zodat je een indicatie hebt of je over het maandbedrag gaat of eronder blijft.
©PXimport
9 Actueel 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.
©PXimport
10 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.
©PXimport
11 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, plus een stad in een notatie zoals amsterdam,nl. Je kunt het actuele weerbericht dan aflezen in overzichtsschermen. Ook heel mooi is dat, zoals de afbeelding bij de vorige stap laat zien, bij de overzichten met historisch gasverbruik een mooie lijn met de temperatuur wordt geplot. De historische weersgegevens worden ook gewoon voor je bewaard en zijn via bijvoorbeeld de api opvraagbaar (zie volgende stap).
©PXimport
Weersgegevens van OpenWeatherMap
Bij OpenWeatherMap kunnen via een zogeheten api actuele weersgegevens worden opgehaald, waar software zoals P1 monitor gebruik van kan maken. Hiervoor moet je je eerst registreren. Een gratis account biedt 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. Verifieer na registratie eerst je e-mailadres en log dan in. Ga vervolgens 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. Om een idee te krijgen hoe de gegevensuitwisseling werkt, ga je naar
©PXimport
12 Api gebruiken
In het kader las je over de api van OpenWeatherMap 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 naar 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 deze site. Het kan een beetje een puzzel zijn om de gewenste details eruit te filteren of de gegevens weer te geven in een grafiek, bijvoorbeeld met Home Assistant, InfluxDB en Grafana.
©PXimport
13 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 in je netwerk (zie kader). 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 de optie verzenden 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.
©PXimport
MQTT-broker en clients
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 naartoe 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. In Computer!Totaal hebben we hier eerder al wat projecten mee gedaan, zoals aanwezigheidsmeldingen. Voor dit artikel hebben we als MQTT-broker gekozen voor Mosquitto, geïnstalleerd op een server. Hierbij hebben we binnen Mosquitto een apart gebruikersaccount voor P1 monitor toegevoegd. Daarna hebben we ons met deze opdracht op alle topics laten ‘abonneren’: mosquitto_sub -v -h localhost -u gebruikersnaam -P wachtwoord -t '#' 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.
14 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.
©PXimport
15 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 (zie kader).
©PXimport
Waterverbruik meten
Heb je het stroom- en gasverbruik eenmaal goed in kaart gebracht, dan is de laatste uitdaging wellicht het bijhouden van het waterverbruik. Elke dag gebruiken we per persoon gemiddeld zo’n 120 liter water en dat is zeker iets waarop je kunt besparen, voor je portemonnee, maar natuurlijk ook voor het milieu. Sinds enkele maanden biedt P1 monitor een mogelijkheid om de watermeter uit te lezen. Helaas leveren watermeters geen data zoals de slimme meter. Hier is een oplossing voor bedacht. Op de website van P1 monitor 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 euro kwijt. Je moet hierbij een klein printplaatje solderen en het vraagt wat creativiteit bij het goed bevestigen van de nabijheidssensor.
©PXimport