Mijn Domotica: HomeWizard

Domotica met HomeWizard

 

Slimme meter uitlezen op een PC

Inleiding
Ik heb de EnergyLink aangeschaft samen met de HomeWizard, en die combinatie gebruik ik om actuele informatie uit mijn Slimme meter te bekijken en gegevens over langere termijn te kunnen loggen.
Daarnaast was het nog steeds mijn wens om de meterstanden van de Slimme meter te kunnen lezen vanuit mijn app OnyxSolar waarmee ik informatie over de door mij opgewekte zonnestroom (en die van enkele andere solar sites) en mijn verbruik van stroom/gas/water wekelijks actualiseer en bijwerk en beschikbaar stel via mijn website.
De meterstanden moest ik nog steeds handmatig invoeren, en dat moet toch automatisch kunnen?
 
 
 
Informatie over de P1 poort van een Slimme meter
Alle benodigde informatie over de P1 poort van een Slimme meter staat in document "P1 Companion Standard, Dutch Smart Meter Requirements" van Netbeheer Nederland. Het betreft documentversie 4, gedateerd 22 april 2011.
Klik hier om dat document (onder bestandsnaam "dsmr_v40_final_p1.pdf") op te halen van mijn website.
 
 
 
Schema van de interface
Verwijzend naar onderstaand schema, is dit nodig voor de interface tussen de Slimme meter en de PC:
Een FTDI Serial-to-USB-omzetter, een 9-polige Female subD-connector met behuizing, een diode en een weerstand.
Voor het gemak heb ik de pinning van een 6-polige RJ-11 connector weergegeven, handig ingeval de kabel van de P1 poort naar de PC nog aangelegd moet worden.
 
De FTDI Serial-to-USB-omzetter is bedoeld om RS232-signalen om te zetten zodat ze via een USB-poort op een PC kunnen worden gelezen of uitgestuurd.
Er worden slechts 3 pennen van de seriŽle subD connector aangesloten:
- Pen 2, dat is de RXD-ingang (Receive Data) en daarmee worden de datapakketten van de P1 poort gelezen.
- Pen 5, dat is Ground, die wordt verbonden met Ground van de P1 poort.
- Pen 7, dat is de RTS-uitgang (Request To Send). In mijn app OnyxSolar kan ik die pen aansturen zodat er een spanning van ongeveer plus 6V op de pen komt te staan, en met die spanning kan de P1 poort worden geactiveerd om datapakketten door te sturen. De spanning op de RTS-lijn kan ook negatief worden (-6 V) en de diode en de weerstand zijn toegevoegd ter beveiliging en om de stroom uit de RTS-lijn te beperken, die is tenslotte niet bedoeld als voedingslijn.
Het is ook mogelijk om een externe 5V-voeding te gebruiken in plaats van de RTS-lijn. De +5V kan direct op de RTS-input van de P1 poort worden aangesloten (de diode en de weerstand zijn niet nodig), de ground-lijn van de voeding wordt met GND verbonden.
 
Het schema van de interface.


 
 
 
De interface in beeld
De interface bestaat uit 2 delen:
- een 9-polige subD female connector die is aangesloten op de telefoonkabel vanaf de P1 splitter in de meterkast, waarbij slechts 3 elektronische onderdelen zijn gebruikt: een diode 1N4148 en 2 parallel geschakelde weerstanden van 120 Ohm.
- en een kant-en-klare Serial-to-USBconverter van FTDI, type UC232R.

 

 
De gekoppelde combinatie, waarvan de USB-aansluiting met de PC kan worden verbonden.
Onder Windows 10 wordt de Serial-to-USB omzetter automatisch geÔnstalleerd en is vervolgens beschikbaar als COM-poort.


 
 
 
De installatie van de interface
Welke kabel kan worden gebruikt voor de overdracht van de data van de Slimme meter naar de PC?
Er lagen nog 2 niet meer gebruikte 4-aderige platte telefoonkabels van de woonkamer via de meterkast naar de werkkamer nabij de PC, ooit aangelegd voor vaste telefonie, maar nu niet meer nodig.
Eťn van die kabels heb ik in de meterkast doorgeknipt en voorzien van een RJ-11 connector en verbonden met de P1 poort splitter nabij de Slimme meter. Die splitter was nodig omdat ik in de meterkast ook de EnergyLink wil aansluiten op de P1 poort. Zie naaststaande foto van de splitter in de meterkast (klik hier voor meer informatie).
De andere zijde van de kabel heb ik volgens bovenstaand schema direct gesoldeerd op de 9-polige Female subD connector, inclusief de benodigde diode en weerstand. De subD connector kon vervolgens vast worden gekoppeld met de FTDI Serial-to-USB omzetter, en die werd in een vrije USB-poort op de PC gestoken.
De seriŽle dataoverdracht werkt op 115 kBaud en de data blijkt probleemloos aan te komen bij de PC.
 
 
 
Datapakketten van de Slimme meter lezen
Mijn Slimme meter, een ISKRA AM550-ED1 GPRS, verstuurt elke seconde een P1 telegram, dat is ťťn compleet datapakket.
Dat gebeurt via de seriŽle datalijn, met deze specificaties: 115200 Baud, 1 startbit, 1 stopbit, geen parity.
Met behulp van een programma dat data van een seriŽle poort kan afhandelen, kunnen de datapakketten zo ingelezen worden. Het is dan nog een kwestie van de kop en de staart van een datapakket opzoeken.
 
Ik heb in mijn rapportage app OnyxSolar, dat ik heb geschreven in Delphi7, een inleesroutine toegevoegd om datapakketten op te halen.
De Serial-To-USB-converter heb ik, nadat de driver door Windows 10 was geconfigureerd, ingesteld op het gebruik van COM-poort COM5 en die COM-poort gebruik ik in mijn app.
Deze software en de broncode ervan zijn overigens niet beschikbaar.
 
 
Screenshot van mijn app OnyxSolar: uitlezen van een P1 telegram (ťťn compleet datapakket van de Slimme Meter).
In het linkervak staan alle regels van het P1 telegram.
De ASCII-codes CarriageReturn en LineFeed worden weergegeven in hexadecimale presentatie als resp. #0D en #0A.
Alle andere tekens zijn de werkelijke (leesbare) karakters in het telegram.
Meterstanden zijn in het telegram herkenbaar aan een getal, direct gevolgd door "*kWh" of "*m3".
Zie het bovenvermelde document van Netbeheer Nederland voor de betekenis van de overige regels in het P1 telegram.
In het rechter vak staan de regels die ik nodig heb voor de meterstanden, en de vertaling in leesbare vorm.

 
Screenshot van mijn app OnyxSolar: invoer van de de meterstanden.
De meterstand water moet nog handmatig worden ingevuld, de andere meterstanden worden automatisch ingevuld.


 
 
 
Afsluiting
Ik heb met de bouw van de interface en de uitbreiding van mijn app OnyxSolar mijn doel bereikt: ik kan vanuit mijn app de meterstanden automatisch uitlezen en gebruiken voor mijn rapportages.
Het was verrassend dat met slechts enkele onderdelen een betrouwbaar functionerende interface kan worden gebouwd.
 
 


Website gertvanvoorst.nl - © Gert van Voorst - Gewijzigd op 31-7-2020.