Slimme Meter Poort Extender (P1 HUB)

[ 16,924 keer bekeken / views ]

(Laatste update: 04-04-2023 – Versie 2.0)

Bijna alle Nederlandse huishoudens zijn inmiddels uitgerust met een zgn. “Slimme meter”. Deze meter stelt de energie leveranciers in staat om op afstand de meterstanden op te vragen.

Om ook de eindgebruiker te bedienen hebben de Slimme Meters een “P1”-poort waarmee lokaal alle relevante gegevens uitgelezen kunnen worden. Omdat er steeds meer toepassingen zijn en er ook steeds meer slimme uitlees kastjes op de markt komen is één P1 poort niet altijd genoeg, maar door de opzet van de P1 poort is het niet zonder meer mogelijk om twee (of meer) uitlees kastjes parallel op de P1 poort aan te sluiten.

Dat zit als volgt:

De P1 poort heeft zes “pinnen”.

  • Pin1 is een (kortsluit vaste) 5 volt uitgang die 250mA moet kunnen leveren. Helaas levert niet iedere meter de voorgeschreven 250mA. Iets om rekening mee te houden;
  • Pin3 en pin6 zijn met elkaar verbonden naar Ground (GND);
  • Op pin4 zit niets aangesloten;
  • Pin5 is de pin waar de data van de Slimme Meter (in de vorm van een telegram) uit komt;
  • Pin2 is de Data Request pin. Alleen als deze “hoog” is komt er data uit pin5.

Versie 2.0

4 april 2023:
Ondertussen heb ik een versie 2.0 van de P1 HUB ontwikkelt, gebruik makend van de kennis die ik heb opgedaan bij de ontwikkeling van de DSMR-logger32. Hierbij heb ik de P1 poort van de Slimme Meter “nagebouwd” zodat de Secondary P1 poort met behulp van een opto-coupler galvanisch gescheiden is van de rest van de schakeling. Voor de P1 HUB heb ik dit zelfde ontwerp toegepast, maar dan drie maal zodat er drie secondary P1 poorten ontstaan (twee extra P1 poorten dus).

Achteraan deze post vind je de ontwikkeling van de P1 HUB

Hieronder staat het schema van versie 2.0:

Vervolgens moeten de onderdelen ingekocht worden. Daarvoor kan KiCad een zogenaamde BOM (Bill Of Material) maken. Voor versie 2.0 van de P1 HUB ziet die er zo uit:

Nu moet het printplaat ontwerp geschikt worden gemaakt voor het productie process van PCBWay. Hiervoor moet je in de PCB Editor van KiCad op het [Plot] icoontje klikken …

… en in het popup window dat nu verschijnt klik je op [Plot] en daarna op [Generate Drill Files] …





Alle bestanden die nu zijn aangemaakt (eindigend in “.gbr”, “.drl” en het bestand dat eindigt op “.gbrjob”) stop je in een “.zip” bestand. Dit “.zip” bestand uploaden we straks naar PCBWay.

PCBWay heeft een mooie website waar je eenvoudig je printplaten kunt bestellen. Ga hiervoor naar “https://www.pcbway.com/” 

In een volgend scherm kun je extra informatie geven over hoe je de printplaat er uit wilt laten zien. De meest gebruikte opties zijn de kleur van het Solder Mask (hier zijn soms extra kosten of een langere productie tijd mee gemoeid) en van het Silkscreen. 

Is alles zoals je het wilt hebben dan kom je in een scherm waar je het zojuist gemaakte “.zip” bestand kunt uploaden. De inhoud wordt door mensen van PCBWay gecontroleerd en als er geen problemen in zitten krijg je de definitieve kosten te zien en kun je opgeven met welke courier je de printplaten wilt laten opsturen. Hier zitten grote verschillen in prijs en levertijden in. Ook kun je te maken krijgen met invoerrechten/BTW. Als je deze niet van te voren betaalt rekenen de couriers een behoorlijke fee voor de afhandeling. Ik kies dan ook altijd voor “FedEx-IP (IOSS)“. Je betaalt dan vooraf een bedrag (VAT Fee). In dit geval was dat $5,21.
Na het plaatsen en betalen van de order kun je de voortgang van de productie op de site van PCBWay volgen. Ook stuurt PCBWay een bericht als de printplaten aan de courier zijn meegeleverd.

Vervolgens moet er natuurlijk een mooie projectbox worden ontworpen (ik gebruik daar uiteraard de YAPPgenerator voor) en ge-3D-print. Hieronder wat plaatjes van het uiteindelijke resultaat.

Mocht je interesse hebben dan kan ik volledig geassembleerde P1 HUB’s leveren. Geef in de comments hieronder aan dat je interesse hebt en ik stuur je een PM.


Hoe deze post tot stand is gekomen

Hieronder volgt de originele tekst van deze post.

Om ook de eindgebruiker te bedienen hebben de Slimme Meters een “P1”-poort waarmee lokaal alle relevante gegevens uitgelezen kunnen worden. Omdat er steeds meer toepassingen zijn en er ook steeds meer slimme uitlees kastjes op de markt komen is één P1 poort niet altijd genoeg, maar door de opzet van de P1 poort is het niet altijd mogelijk om twee (of meer) uitlees kastjes parallel op de P1 poort aan te sluiten.

Dat zit als volgt:

De P1 poort heeft zes “pinnen”.

  • Pin1 is een (kortsluit vaste) 5 volt uitgang die 250mA moet kunnen leveren. Helaas levert niet iedere meter de voorgeschreven 250mA. Iets om rekening mee te houden;
  • Pin3 en pin6 zijn met elkaar verbonden naar Ground (GND);
  • Op pin4 zit niets aangesloten;
  • Pin5 is de pin waar de data van de Slimme Meter (in de vorm van een telegram) uit komt;
  • Pin2 is de Data Request pin. Alleen als deze “hoog” is komt er data uit pin5.

Wat in het schema opvalt is dat pin5 (data) een zogenaamde “open collector” aansluiting is. Dit is, voor de eenvoud, te vergelijken met een schakelaar. Als de Slimme Meter deze pin “laag” wil maken dan laat hij de bijbehorende LED branden waardoor de “schakelaar” dicht gaat (pin5 sluit kort naar GND). Maar zolang er geen spanning op pin5 staat maakt het weinig uit of de “schakelaar” open of dicht staat. Er zal aan pin5 niets veranderen!

Om dit toch te laten werken moet een aangesloten device er zelf voor zorgen dat er spanning op pin5 komt te staan. Dit kan eenvoudig door met behulp van een weerstand op pin5 een spanning te zetten. Deze spanning kan afwijken van de 5 volt van de Slimme Meter (bijvoorbeeld 12 volt of 3,3 volt).

Stel nu dat het aangesloten device pin5 met een 10k ohm weerstand naar 5 volt trekt. Sluit je hier parallel een tweede device op aan die ook een 10k ohm weerstand gebruikt dan is het resultaat een 5k ohm weerstand. Een derde device zou deze weerstand zelf verlagen tot 3k4 ohm. Dit is onwenselijk.

Een andere probleem ontstaat als de twee aangesloten devices verschillende spanningen gebruiken om pin5 omhoog te trekken. Grote kans dat één van de devices (waarschijnlijk het device dat de laagste spanning nodig heeft) de geest zal geven.

Nog een probleem bij het parallel aansluiten van devices op de P1 poort heeft te maken met pin2 (de Data Request pin). Als één van de aangesloten devices pin2 “laag” maakt omdat hij geen data wil ontvangen, zal ook het andere device geen data meer ontvangen … een ongewenste situatie. Als één van de devices de DTR pin actief “laag” maakt terwijl een ander device deze actief “hoog” maakt … nou ja: ook niet gewenst!

Simpelweg meerdere devices parallel op de P1 poort van de Slimme Meter aansluiten is dus geen optie!

Uit bovenstaande volgt dat iedere uitgang op de P1 hub aan de volgende eisen moet voldoen:

  • Een eigen, gescheiden van de andere uitgangen, pin5 (data);
  • Een eigen Data Request pin;
  • Een eigen, niet van de Slimme Meter afhankelijke 5 volt voeding op pin6.

Om dit te realiseren ben ik uitgegaan van een CD4050 (buffer) en een CD4093 IC. De CD4093 is een IC dat vier logic NAND gates (A, B, C en D) bevat. De waarheidstabel van een NAND poort ziet er zo uit:

De ingang van de P1 HUB ziet er schematisch zo uit:

Pin2 is direct verbonden met pin1 (5 volt) waardoor de Slimme Meter zo vaak hij kan (meestal 1x per seconde) een telegram verstuurt via pin5. Deze pin5 wordt met een 4k7 ohm weerstand met 5 volt verbonden en is de invoer voor de eerste buffer poort (U3A). Een hoog ingang signaal op U3A[3] resulteert in eenhoog signaal aan de uitgang (U3A[2]) en omgekeerd.

De 5 volt van de Slimme Meter wordt als voeding voor de CD4050, CD4093 én (afhankelijk van een jumper) voor de voeding van de P1_Out1 gebruikt. De andere twee poorten P1_Out2 en P1_Out3 krijgen hun voeding altijd van J1.

Behalve waar de voeding vandaan komt is de schakeling voor de drie uitgangen P1_Out1, P1_Out2 en P1_Out3 gelijk.

De uitgang U3A[2] van buffer A wordt als ingang voor de andere drie poorten gebruikt. Als U3A[3] “hoog” is, dan is A3U[2] óók “hoog” en als de ingang “laag” is is de uitgang óók “laag”. De enige functie van de buffer is dat pin5 van de slimme meter niet belast wordt.

U3A[2] is direct verbonden met U1B[6]. In onderstaande “truth table” is te zien wat er op de verschillende aansluitingen van het circuit gebeurd met de signalen. Duidelijk is dat alléén als pin2 van J6 “hoog” is het signaal van pin5 van J2 één op één wordt doorgegeven aan pin5 van J6.

Het signaal uit U1B[4] is geïnverteerd ten opzichte van het signaal op U3A[3] maar wordt door Q2 weer “terug geïnverteerd” waardoor we weer het signaal hebben dat de Slimme Meter ook afgeeft.

Hieronder het hele schema voor de P1 HUB (Rev. 1.4).

Voortschrijdend Inzicht

Tijdens het testen van boven getoonde schakeling begon ik mij af te vragen wat nu eigenlijk de functie van de DTR pin is. Ik ben niet in de gelegenheid geweest te achterhalen wat de Slimme Meter doet als hij een DTR “laag” krijgt. Hij stopt uiteraard met het versturen van telegrammen maar stopt hij ook met meten? En wat als de DTR “hoog” wordt? Is dat een signaal voor de Slimme Meter om op dát moment een nieuw telegram te versturen of was hij, intern, al halverwege het versturen van een telegram (en krijgt het aangesloten device dan eerst “de rest” van een telegram en daarná een volledig telegram?)?

In ieder geval zal met de schakeling zoals hierboven precies dát gebeuren. De Slimme Meter stuurt zo vaak een telegram als hij kan en de devices die op de hub zijn aangesloten kunnen bepalen wanneer ze een telegram willen ontvangen maar als er op dat moment al een telegram onderweg is zal hij eerst een restje van een telegram ontvangen (en negeren) om vervolgens het volgende telegram in zijn geheel binnen te halen en te verwerken.

Met die kennis kan de hub veel eenvoudigen mits we de tweede eis (iedere uitgangspoort een eigen Data Request pin) laten vallen.

Zie onderstaande schema:

CD4050 zorgt voor een buffer tussen de Slimme Meter en de aangesloten devices. Iedere keer dat de Slimme Meter een telegram verstuurt zal D1 oplichten (licht knipperend). Eventueel kan er met de overgebleven buffer (U1F) nóg een poort gemaakt worden.

Met J3 kan gekozen worden om de voeding uit de Slimme Meter te gebruiken (als de overige aangesloten devices bij elkaar niet meer dan ~250mA verbruiken) of om een externe (USB/5 volt) voeding aan te sluiten.

This entry was posted in Arduino, ESP32, ESP8266, Hardware, KiCAD and tagged , , , , , , , , . Bookmark the permalink.

33 Responses to Slimme Meter Poort Extender (P1 HUB)

  1. GF says:

    Beste Willem,
    Kan het zijn dat er een pull-up weerstand van 4k7 mist in je schema van de versie 2.0? Volgens mij krijg je zo geen puls…

    • Willem Aandewiel says:

      Hoi Guus,

      Ik maak deze bordjes exact zoals het schema is .. en ze werken probleemloos!
      Ook de DSMR-logger32 heeft geen pullup weerstand en ook die “werkt” goed.

      Ik denk dat het geen kwaad kan om zo’n pullup weerstand kin het schema op te nemen.

      • GF says:

        Bij mij werkte het niet. Ik heb de weerstand toegevoegd en nu doet ie het wel. De slimme meterkant is een potentiaal vrij contact, dan moet je toch ergens een spanning vandaan halen? Anyhow, het werkt nu bij mij.

  2. Jan v. H. says:

    Hallo Willem, goeden morgen.
    Ik merk dat wanneer ik de DSMR-loggerAPI van de Slimme Meter afhaal om de andere DSMR-logger te kunnen testen en daarna weer terug op de Slimme Meter plaats dit de betrouwbaarheid van de geregistreerde gegevens niet ten goede komt.
    En jij hebt daar een prachtige oplossing voor in de vorm van de SM Poort Extender.
    Kan ik er 1 bij je bestellen en heb je misschien ook nog zo’n mooi geprinte 3D doos voor bij ? Zelfbouw mag ook. Scheelt jouw weer de tijd van het solderen.

    • Willem Aandewiel says:

      Jan,

      Als je de DSMR-logger van de SM loskoppelt, om-wat-voor-reden-dan-ook, zal hij geen verbruiks gegevens registreren. Heeft niets met “betrouwbaarheid” te maken maar meer met de fysieke (on) mogelijkheid om verbruik te registreren als de DSMR-logger niet op de SM is aangesloten!

      Nee, ik heb geen PCB’s van de HUB meer… Zul je zelf moeten ontwerpen!

  3. Tinus says:

    Beste Willen,

    is het mogelijk om dit printje te betellen?

    Met vriendelijke groet,
    Tinus

  4. Willem Aandewiel says:

    Johan,

    Het schema en de tekst lijkt mij vrij duidelijk.

    J3 heet niet voor niets “power Select“..

  5. Johan says:

    Dag Willem,
    Je hebt je wel wat op de hals gehaald met deze website. Wordt je niet een beetje moe van al dat “gezeur” van mij en alle andere collega-hobbyisten ? Voordat ik verder ga met de DSMR-logger moet ik er eerst voor zorgen dat ik hem ook kan aansluiten op de Slimme-meter. Er zit nu al een kastje op P! dus ben ik een Splitter nodig. Nu zie ik op jou schema Rev. 1.5 dat je RJ12 (6P6C) gebruikt. Op mijn meter zit een aansluiting voor een RJ-10 (4P4C). Nu vraag ik mij af hoe de Pin’s moeten worden aangesloten op deze Splitter. Ik hoop dat ik het zo voldoende heb uitgelegd. Wacht graag je uitleg af. Nogmaals Dank !!

    • Willem Aandewiel says:

      Hm.. weet je zeker dat de Slimme Meter 4P4C is? Ben ik nog niet eerder tegen gekomen in Slimme Meters (maar dat zegt niets hoor!).

      De aansluitingen zijn hetzelfde alleen worden de twee buitenste pinnen niet gebruikt. Zo kun je dus ook een 4P4C stekker in een 6P6C connector stoppen. De slimme Meter blijft werken alleen heb je dan geen 5volt voeding beschikbaar voor de DSMR-logger.

      Maar als je er meerdere devices op aansluit kun je de 5Volt sowieso niet gebruiken omdat deze maar beperk vermogen levert.

      Overigens staat de uitleg over RJ10 en RJ12 ergens uitvoerig besproken in de documentatie. Ik snap dat het veel lees- en uitzoekwerk is, maar ik heb liever dat jij dat doet dan dat ik het moet doen!

      • Johan says:

        Inmiddels nog even goed gekeken naar de aansluiting van de P1 connector van de Slimme meter. Het is inderdaad een aansluiting voor een RJ12 6P6C connector alleen heeft Eneco een RJ10 4P4C stekker gebruikt. Dit probleem is dus opgelost. Heb nog wel wat problemen met de testversie van de DSMR-logger maar daarvoor moet ik even naar de andere comment-site.

      • Johan Wolbink says:

        Dag Willem. Nog een vraagje betreffende de voeding voor de Hub ver. 1.5. In het schema bij J3 zie ik 2 aansluitingen, Power from USB plug en Power from Slimme Meter. Is het de bedoeling dat je beide aansluitingen moet gebruiken, de USB plug (pin 3 J3) en de Power (pin 1 J3) . Of is het hier een kwestie van of de USB of de Power ? Beide lijkt mij niet waarschijnlijk. Dit vraagt om uitleg . Hoor graag van je, Johan.

    • Willem Aandewiel says:

      Nee hoor, ik word niet moe van “al het gezeur” (ik zie het ook niet als “gezeur”, als iets niet duidelijk is dan moet het verduidelijkt worden!). Het is een hobby en ik stel ook regelmatig vragen aan mensen die “er” veel meer verstand van hebben dan ik.

      Wat me wél verbaast is dat sommige posts op deze site meer dan 100.000 keer gelezen zijn en dat ik, over alle posts op deze site, precies 1 kopje koffie van iemand gedoneerd heb gekregen..

      –update–
      Ik heb twee(!) koppen koffie gedoneerd gekregen 😉 Thanks!

  6. Jan van der Aa says:

    Beste Willem,

    Je boek
    “Zelf draadloze sensoren maken met microprocessoren en Arduino” blijkt overal uitverkocht. Dus zal het wel een goed boek zijn :). Maar de echte vraag, komt er een nieuwe druk? Of heb je inmiddels wel al printjes?

  7. Remco says:

    Hoi, okay, het schemaatje is er dus, maar nog geen printje van de hub.
    Heb je een leesbare partlist voor me, sommige componenten zijn slecht leesbaar.

    Gr. Remco

  8. Jan van der Aa says:

    Beste Willem,

    Heb je dit printje beschikbaar ?

    M.v.g. Jan

    • Willem Aandewiel says:

      Jan,

      Als er nog vijf anderen een printje willen hebben dan laat ik nieuwe maken. Maar op dit moment heb ik ze niet meer.

      • Niels says:

        Ik heb ook interesse! Sinds de elektrische auto, of beter gezegd, de laadpaal, gebruik ik je DSMR-logger helaas niet meer :(. De laadpaal leest namelijk ook de p1-poort uit om het stroomverbruik af te stemmen. Ik zou nu juist graag het verbruik willen zien als ik de auto laad.. Als ik het goed begrijp zou ik bij de hub voldoende hebben aan de voeding uit de slimme meter, daar de DSMR-logger het ook prima doet met enkel voeding uit de slimme meter (en de laadpaal natuurlijk voorzien is van een eigen voeding)

        • Willem Aandewiel says:

          Niels,

          Of je in jouw situatie voldoende hebt aan alleen de voeding uit de Slimme Meter weet ik niet. Het lijkt er wel op.

          Ik ga binnenkort nieuwe PCB’s bestellen.

          • Niels Marsman says:

            Mooi dan hou ik de website in de gaten!

          • Remco says:

            Hi, ik heb al een tijdje een passieve splitter (2x rj11 met 1 pootje minder aangesloten) werkend op de P1, waarvan de output naar de (geupgrade) DSMR gaat, en de 2e naar de Rpi. het zou idd mooi zijn om alles netjes in 1 kastje te plaatsen.
            ik hou me aanbevolen.

            gr. Remco

          • Remco says:

            Hi Willem,
            zit er een order aan te komen?
            Solderen kan ik prima zelf, maar compleet is ook welkom.

            gr. Remco

          • Nicolaas says:

            Hi Willem,

            Had je ooit nog PCB’s in bestelling genomen of ga je dat nog doen? Ik heb iig interesse!

            N.

          • Willem Aandewiel says:

            Hey Nicolaas,

            Nee, ik heb de PCB’s niet meer na-bestelt en ik heb er ook geen meer in voorraad.

  9. Peter Bungenstock says:

    Voordat ik het ontwerp van Willem tegenkwam heb ik een ander ontwerp gebouwd dat inderdaad de hub aan boord heeft. Willem’s software vond ik echter beter, en heb ik daarop gezet. Ik zoek alleen nog een methode om de daarop aanwezige S0 aansluitingen in de software bij te vegen om via interrupts als watermeteraansluiting te gebruiken met een hallsensor.

    • Rob Roos says:

      Peter, we werken aan een nieuw hardware ontwerp met ESP32 met 2x P1 uitgang (voor 2 extra readers) en meerdere GPIO inputs. Tevens stuurt de software de decoded telegrammen naar Influxdb en MQ (met Autodiscovery voor Homeassistant en Domoticz). Kijk hier.

      • Remco says:

        Hi RobRoos,
        is er al voortgang op dit alles in 1 printje?

        gr. Remco

        • Rob says:

          Remco, ik heb het bij de print layout designer gevraagd, nog geen antwoord. Het prototype werkte bij mij, met de ESP32 versie, maar er moet nog gesleuteld worden aan de S0 interface. Ga ik mee verder als ik printje heb, Robert is ook bezig met andere firmware versie.
          Gr. Rob

          • Remco says:

            Bump upje… Ik heb nu de P1 rechtstreeks in mijn NAS werkend met Hassio Energy, maar die laat niet net zo mooi als de WS software de L1-L3 zien.
            dus ben ik nog steeds nieuwsgierig naar een werkende splitter/hub. een schemaatje is ook voldoende, zolang er maar niet geflashed moet worden (ervaring is key). Gr. Remco

          • Willem Aandewiel says:

            Kijk hier.

  10. Ceriel says:

    Wat mij nog handig lijkt is een P1-Logger die een HUB aan boord heeft: P1 poort in, en P1 poort uit. Zodat je na het aansluiten van de logger, nog/weer een P1 poort over hebt om een ander apparaat op aan te sluiten.

Leave a Reply

Your email address will not be published. Required fields are marked *

The maximum upload file size: 4 MB. You can upload: image, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here

This site uses Akismet to reduce spam. Learn how your comment data is processed.