[Dutch] ‘Slimme’ Meter uitlezen met een USB Bub

Posted in Experiments with tags smart meter soldering -

Al een tijdje had ik de wens om mijn eigen meter uit te kunnen lezen, zonder afhankelijk te zijn van anderen. Op alle ‘slimme’ meters zit een P1 interface die dat mogelijk maakt. De documentatie die op internet te vinden is, is flink verouderd. De output van de P1 interface is ook wat veranderd, waardoor sommige instellingen niet meer kloppen. Hieronder mijn bevindingen, zodat anderen het ook makkelijk kunnen doen.

Uitlezen van slimme meters

Alle ‘slimme’ meters worden standaard uitgelezen door de netbeheerder. Dit kan helaas niet uitgezet worden. Je kunt wel aanvragen dat de data niet doorgegeven wordt aan je energieleverancier. De standen worden dan nog wel uitgelezen, maar er wordt verder niets mee gedaan. Dan moet je ook elk half jaar je standen zelf doorgeven.

Op dit moment is het niet verplicht om een ‘slimme’ meter te laten plaatsen. Leveranciers kunnen dit aanbieden en daar erg dwingend in zijn, maar het is absoluut niet verplicht. Als de ‘slimme’ meter eenmaal geplaatst is, zit je er helaas wel aan vast. Het is alleen mogelijk tegen betaling weer een oude meter geplaatst te krijgen. Helaas was de vorige eigenaar van mijn huis niet zo privacy bewust en had er al vrij vroeg een laten plaatsen, waardoor ik als nieuwe eigenaar nu aan het onding vast zit. Maar als je dan toch zo’n meter hebt, kan je er maar het beste van maken, vandaar dus dit uitlees project.

Fysieke configuratie

De fysieke interface van de P1 interface op de meter is een RJ-11 connector, zie hiernaast. Officieel is dat 6 draden, maar de buitenste twee worden niet gebruikt. Je kunt dan een standaard telefoonstekkertje gebruiken (zelfde afmeting, maar 4 aders). De P1 interface stuurt alleen data, vandaar dat pin 4 ook niet verbonden is.

Om het signaal uit te lezen heb ik een oude UTP kabel gebruikt. Telefoonkabels bevatten vaak erg weinig koper, en dat maakt solderen moeilijk. Om het naar USB te converteren gebruik ik een USB BUB II, maar dit kan ook met een FTDI Friend, of vergelijkbaar. De verbindingen die je nodig hebt zijn als volgt:

  • RJ-11 pin 2 (RTS) -> VCC
  • RJ-11 pin 3 (GND) -> GND
  • RJ-11 pin 5 (RxD) -> Rx

De RTS wordt verbonden met VCC om zo altijd een hoog signaal uit te sturen. Het effect daarvan is dat er constant elke 10 seconden een ‘telegram’ gestuurd zal worden met de huidige standen.

 

Software configuratie

Voor het uitlezen kan beginnen moet de FTDI chip nog opnieuw geprogrammeerd worden. De output van de P1 interface is namelijk een (niet-standaard) geïnverteerd signaal. Met FT_Prog kan je de FTDI chip herprogrammeren (vereist Windows). Onderaan bij “Physical Properties” kan je aanvinken dat het RS232 RxD signaal geïnverteerd moet worden. Na het herprogrammeren is de USB Bub klaar voor gebruik.

Een eerdere standaard van P1 gebruikte niet-standaard settings (9600 7E1), maar gelukkig gebruikt de nieuwe standaard wat meer standaard instellingen (115200 bauds 8 bits, geen parity, 1 stop bit, ofwel 8N1). Daarom kan het signaal dan makkelijk worden uitgelezen met cu -l /dev/ttyUSB0 -s 115200 --parity none of met minicom -D /dev/ttyUSB0.

De output geeft elke 10 seconden een nieuw ‘telegram’, die zien er dan ongeveer als volgt uit:

Meer info over de implementatie van de P1 interface en de data is te vinden in het document over de standaard.

Mijn volgende stap is om een Raspberry Pi uit te rusten software van smartmeterdashboard.nl (verkeerd gezien, dat is geen open-source) meterd.

Written by