DSMR-logger V4 (Slimme Meter uitlezer)

[ 167,158 keer bekeken / views ]

In augustus 2018 publiceerde ik een project voor het uitlezen van de Slimme Meter.

Aan de hand van de vele reacties van de mensen die het project hebben nagebouwd en mijn eigen ervaring met versie 3 van de DSMR-logger vond ik het tijd worden om een nieuwe versie van de hardware en de firmware te ontwikkelen.

[31-07-2019] Vanaf versie 0.4.5 kan de DSMRloggerWS firmware ook telegrammen van pré DSMR 4.0 standaard Slimme Meters uitlezen!

[09-03-2020] De nieuwste DSMRloggerAPI firmware kan ook telegrammen van sommige Belgisch Slimme Meters uitlezen (testers gevraagd)!

De DSMRloggerWS firmware en nog veel meer kun je op github vinden! De nieuwste DSMRloggerAPI firmware kun je hier vinden.

[15-06-2021] v3.0.1 van de DSMRloggerAPI firmware is gereleased! 
Deze zgn. “One Fits All” release maakt het overbodig om voor verschillende soorten Slimme Meters (DSMR 2+, 3+, 4+ 5+ en de Belgische varianten hiervan) aangepaste firmware te gebruiken. Alle (mij bekende) Slimme Meters kunnen met deze éne release uitgelezen worden.

Een aantal gebruikers gaf aan gebruik te maken van externe diensten om de gelogde data in grafieken weer te geven. Ik heb ook de behoefte aan een grafische weergave van de gelogde data maar ik wil voorkomen dat ik daar externe diensten voor moet gebruiken.

Bij Opencircuit is versie 4.5 van de
DSMR-logger
in de aanbieding!!

De doelstellingen voor versie 4 van de DSMR-logger zijn ongeveer gelijk gebleven aan die van versie 3 met dien verstande dat ik méér data op de DSMR-logger wil opslaan én dat ik de gelogde data ook in grafieken wil kunnen bekijken.

Tot en met versie 3 van de DSMR-logger wordt iedere seconde een telegram van de Slimme Meter ontvangen. Daarvan wordt slechts een klein deel (iedere tien seconden) één telegram ook daadwerkelijk verwerkt. Op zich is dat geen probleem want de overige negen telegrammen vallen gewoon in een groot gat maar .. de ESP8266 UART moet wél op deze vloed aan data reageren (de UART is interrupt driven). Zowel de Slimme Meter als de DSMR library van Matthijs Kooijman hebben een mogelijkheid om telegrammen alleen op afroep te versturen (Slimme Meter) of te vragen (DSMR library).
Het werkt zo: De Slimme Meter verstuurd alléén een telegram als de Data Request pin “hoog” is. De DSMR library heeft een functie call “enable(true)” die een pin van de ESP8266 “hoog” maakt en deze “hoog” houdt tot er een volledig telegram is ontvangen (waarna de pin “laag” wordt gemaakt).
Omdat ik voor de eerdere versies van de DSMR-logger een ESP-01 bordje wilde gebruiken kon van deze functionaliteit geen gebruik worden gemaakt eenvoudigweg omdat de ESP-01 niet genoeg pinnen heeft om er één voor vrij te maken.

De ESP-12(E/F) heeft wel voldoende GPIO pinnen en aanzienlijk (4x) zoveel geheugen als de ESP-01(S). Het was daarom een logische keuze om deze variant van de ESP8266 te gebruiken voor versie 4 van de DSMR-logger.

Het prototype en Proof of Concept heb ik op een 1of!-ESP12 processor bordje met een 1of!-Proto bordje gemaakt.

Data Request Circuit

Voor het “hoog” en “laag” maken van de Data Request pin van de Slimme Meter heb ik verschillende varianten uitgeprobeerd. Met een combinatie van één of twee transistoren en/of MosFets kreeg ik het niet stabiel werkend. Uiteindelijk is het een opto-coupler geworden.

Hieronder staat het schema voor de Data Request functionaliteit:

Het circuit wordt gestuurd vanuit GPIO12 van de ESP8266 en zorgt ervoor dat bij een “hoog” signaal de led in de opto-coupler gaat branden.

Hierdoor zal de transistor “sluiten” (hij gaat geleiden) waardoor de 5Volt op de collector (pin5) direct op de emitter (pin4) terecht komt (hij wordt “hoog”). Hierdoor zal DTR_SM ook “hoog” worden en zal de Slimme Meter een telegram versturen.


Telegram ontvangen

Het telegram wordt door de Slimme Meter via pin 5 van de RJ12 connector met een geïnverteerde 5volt TTL logica verstuurd. Voor de ESP8266 moet dit signaal zowel (terug) geïnverteerd- als geschikt gemaakt worden voor 3v3 logica van de ESP8266.

In rust zal R6 de Base van Q1 “hoog” trekken, waardoor Q1 “gesloten” wordt en de Collector, en daarmee Rx_SM “laag” zal zijn. Als Tx_SM “laag” is zal de Base van Q1 óók “laag” worden en zal Q1 “open” gaan staan. De Collector en daarmee ook Rx_SM zal door R8 naar 3v3 getrokken worden. Rx_SM is dan dus “hoog”. Komt er bij Tx_SM een “hoog” signaal binnen, dan zal de Base van Q1 ook “hoog” worden. Hierdoor gaat Q1 geleiden en zal de Collector samen met Rx_SM “laag” worden.


Hiernaast zie je hoe dat deel van het schema er op het 1of!-Proto bordje uit ziet.



I2C Interface

Een aantal bouwers van versie 3 vroeg of het mogelijk is in een volgende versie een klein Oled scherm op te nemen. Er zijn twee mogelijkheden om een Oled scherm aan te sturen. Eén is via een SPI interface de andere maakt gebruik van de I2C interface. Ik heb ervoor gekozen de I2C interface te gebruiken.

In versie 4 is een uitbreiding poort met I2C interface opgenomen die ook voor andere modules gebruikt kan worden. In de firmware wordt een Oled scherm aangestuurd.

Er kan in de J4 poort direct een Oled-module worden gestoken. Omdat niet iedere verkrijgbare Oled-module dezelfde aansluitingen heeft moet via draad-bruggen de juiste aansluitingen van J2 naar J3 worden doorverbonden (met name GND en 3v3 zitten niet op alle Oled-modules op dezelfde plaats).


ADC Interface

Een groot nadeel van de Slimme Meter is dat deze de energie van de zonnepanelen sommeert met die van de verbruikers op dezelfde groep.

Zo krijg je nooit een inzicht in de werkelijk opgewekte energie en de werkelijk verbruikte energie. De opgewekte energie kun je ook (buiten de Slimme Meter om) meten met een AC Stroom Sensor (bijvoorbeeld een SCT013-030 of ECS1030-L59). Deze klem je om de, in de meterkast binnenkomende, fase draad van de zonnepanelen en ze geven een spanning af die afhankelijk is van de stroom die door de kabel loopt. Voor gebruik van dit soort sensoren is de ADC (Analoge to Digital Convertor) pin van de ESP8266 uitermate geschikt. In het schema van de DSMR-logger v4 heeft deze, via een weerstands-deler een bereik van 0-5volt. Door R12 en R13 (5% tolerantie, een kleinere tolerantie is beter) aan te passen kun je dit bereik veranderen.

Putting It All Together

Om het schema van de nieuwe DSMR-logger te complementeren moet het basis-circuit van de ESP8266 nog worden toegevoegd (zie mijn post over de 1of!-ESP12). Dit basis circuit bestaat uit de ESP-12, de 3v3 voeding, een Program Interface en de schakeling rond de Reset en Flash buttons.

Dit resulteert in het complete schema voor de DSMR-logger V4:

Uitgebreide (‘technische’) documentatie van dit project kun je hier vinden.


      Een complete kit met alle onderdelen kun je hier kopen.

En hieronder staat een plaatje van het prototype zoals ik dat op de 1of!-bordjes heb gemaakt en getest.

Daarna met KiCAD een PCB ontworpen:

En een life versie van het prototype in de meterkast:

This entry was posted in Arduino, Computer, DSMR-logger, ESP8266, Hardware, WiFi and tagged . Bookmark the permalink.

451 Responses to DSMR-logger V4 (Slimme Meter uitlezer)

  1. henk koorn says:

    Beste Willem ,
    ik heb het script van michel groen aangepast voor domoticz in Docker
    ik kan de file niet uploaden dus schrijf ik het hier maar bij
    ik heb het volgende toegevoegd bovenin :

    ————————————————————————————
    domoticz_in_docker = “Nee” — Zet domoticz_in_docker op Ja als domoticz op Docker is — geinstalleerd. Keuze “Ja” of “Nee” (hoofdlettergevoelig)
    ——————————————————

    en halverwegen dit veranderd :

    —————————————————————————-
    if domoticz_in_docker==”Nee” then
    json = (loadfile “/home/pi/domoticz/scripts/lua/JSON.lua”)()
    else
    json = (loadfile “scripts/lua/JSON.lua”)()
    end
    ——————————————————-

    met vriendelijke groet

    • admin says:

      Hi Hans,

      Bedankt voor de informatie.

      Ik denk dat niet veel makers nog gebruik maken van deze firmware nu er nieuwere, betere firmware (DSMRloggerAPI en DSMRlogger32) beschikbaar is.

  2. Willem Aandewiel says:

    Je kunt op deze post geen comments meer plaatsen.

    De DSMRloggerWS firmware is ondertussen achterhaalt door de DSMRloggerAPI firmware.

  3. Bert Groothuis says:

    Hallo Willem,

    Ik zag op opencircuit.nl andere schermen staan van de slimme meter uitlezer. Ik dacht dat er dus een nieuwere versie beschikbaar was. Dus ik proberen om de firmware te upgraden. Helaas bleek er iets mis te gaan. Ik heb nu geen informatie meer op het OLED scherm, de rode led brand en de blauwe knippert om de ongeveer 8 seconden. Ook met wifi kan ik hem niet meer benaderen.
    Wat moet ik nu doen om hem weer werkend te krijgen?

    Thanks.

    • Willem Aandewiel says:

      Bert,

      Op zich lijkt het correct dat de rode led brandt en de blauwe om de 8 á 10 seconden knippert.

      Afhankelijk wat je hebt geflashed (ook SPIFFS of niet) kan het zijn dat je WiFi credentials opnieuw moet invoeren. Haal de DSMR-logger uit de Slimme Meter en sluit hem weer aan. Lees de documentatie voor eerste keer opstarten.

      Kijk vervolgens hier hoe je van alles (bijvoorbeeld of je een OLED scherm hebt of niet en welke GUI je wilt gebruiken) kunt instellen.

      Als je een upgrade van DSMRloggerWS naar DSMRloggerAPI hebt gedaan let er dan op dat de hostname is veranderd in “DSMR-API.local”.

  4. Russell says:

    Excellent project. Your documentation is fantastic.

    I wanted to post that my Kaifa E0025 (MA105) worked great with a 4 conductor RJ cable and external 5V power.

    Did you ever consider RRDTool for data storage and graphing? Would that have a wear leveling impact?

    • Willem Aandewiel says:

      Hi Russel,

      Thanks for the complement.

      In my book about wireless sensors I did use the RRDTool to present the temperatures in and around the house.

      The main objective for the DSMR-logger was (is) to make a device that does not need other systems to present the results. It is completely “self supporting”. But you can still send the data to the RRDTool. It will, however, not have influence in wear leveling as the DSMR-logger still writes all the data to the RING-files. But, according to my calculations, the flash memory will not wear out in the next 100 years or so…

  5. Staf Van Gestel says:

    Vergeet voorgaande. Ben nu met de API versie bezig ipv de WS versie.
    Excuses.

  6. Staf Van Gestel says:

    Beste,
    Bij mij (in België) werd onlangs een digitale meter geïnstalleerd. Tijd om die uit te lezen en zo kwam ik bij uw project uit.
    Deze week de laatste versie besteld en snel ontvangen.
    De logger opgestart en kon meteen verbinding maken met mijn netwerk.
    Verder kon ik naar het ip-address gaan en kon de systeeminfo bekijken, data kwam er niet binnen. Uiteraard, wij hebben blijkbaar een andere versie van datapakketten.
    Ik had ergens iets gelezen over de Belgische digitale meters, alleen vind ik die info niet meer meteen terug, maar ik heb in de software DSMRloggerWS een “#include dsmr-be.h” bijgevoegd en de dsmr.h in commentaar gezet. Ook alle nodige bibliotheken geïnstalleerd zodat compileren foutloos verliep. Echter boardsetting komen niet overeen met de settings die in de zeer uitgebreide documentatie staat. Ik kan bv in de optie Flash size enkel settings met OTA kiezen, dat SPIFFS staat er niet tussen.
    Maar met enige moeite toch alles kunnen installeren en logger terug in gang gekregen. Ik zie aan de ‘Systeem Info’ dat het gewijzigd is.
    Er komen telegrammen binnen, maar zie geen data, de velden blijven op nu staan.
    Wat ook wel is, de aansluitingen van de Belgische meters zijn RS-422 met op 5 de + lijn en op pen 4 de – lijn van de databus. Zou dit een probleem kunnen zijn? Of moet ik toch nog meer doen om de Belgische pakketten te kunnen lezen.
    Alvast dank voor enig antwoord.

  7. Barry says:

    Heeft iemand al geprobeerd om een SSL enabled WifiClient te gebruiken, zodat we de gegevens direct naar bijvoorbeeld een AWS IoT MessageBroker gestuurd kunnen worden? Zie hier

    • Willem Aandewiel says:

      Barry,

      Ik denk dat het met een esp8266 processor niet mogelijk is.

      Jelmer de Jong heeft de DSMR-logger voor een esp32 aangepast en Robert van den Breemen heeft de firmware voor deze esp32 versie van de DSMR-logger aangepast. Ik denk dat je via die ontwikkeling de meeste kans maakt.

      Hou ons op de hoogte!

  8. Erik says:

    Hoi Willem, wat een mooi project. Binnenkort krijg ik mijn slimme energiemeter en wil gebruik maken van jouw kit.

    Is het mogelijk met jouw ontwerp ook de Landys stansverwarming kan uitlezen via een infrarood seriële poort? Dit is het Optical interface EN 62056-21:2003 Protocol.

    Een groot deel van Almere hangt vol met deze landys UH50 Meters die verre van slim zijn. De NUON loopt helaas behoorlijk achter met de ontwikkeling en het zou mooi zijn als beide meters kan uitlezen via dezelfde logger.

    Een website in Duitsland levert het ontwerp voor de IR head voor een raspberry PI maar ook serieel, TTL en usb.
    https://wiki.volkszaehler.org/hardware/controllers/ir-schreib-lesekopf-pi-ausgang

    Alvast bedankt!

    • Willem Aandewiel says:

      Erik,

      Het is zonder meer mogelijk om de firmware zodanig aan te passen dat je er een IR sensor mee uit kunt lezen.
      Je zult dat alleen wel zelf moeten coderen. Hou er rekening mee dat er alles aan is gedaan om de firmware zo robuust mogelijk te maken en als je veel gaat bijbouwen kán het zijn dat je tegen een geheugen (heap) probleem aan gaat lopen.

      Eén van de projectjes waar ik me nog een keer op wil storten is een “DSMR-logger”-achtige module die allerhande puls-gerelateerde sensoren kan uitlezen en via een restAPI kan ontsluiten. Als we dat hebben kun je in de DSMRloggerAPI firmware volstaan met het uitlezen van de puls-logger.. Toekomst muziek.

      • Erik says:

        Beste Willem , dank je voor je antwoord. Lijkt me een prima plan als je mogelijk in de toekomst een universeel board gaat bouwen om een heel scala van sensors uit te lezen. Ik houd je site in de gaten 😉 Erik

  9. Wesley says:

    Is er iemand met een 2.2 meter variant?
    Ik heb met Willem overleg gehad, maar aangezien hij deze meter niet heeft is het lastig puzzelen.
    Mijn meter lijkt nu geen Actueel verbruik door te geven.
    Ook de tijdsnotitie loopt een uur achter.
    Dit zou iets in de software kunnen zijn. Helaas heb ik er zelf nou ook niet zoveel verstand van dat ik hier uit kom……
    Ik hoop op iemand die dit bekend voorkomt en een oplossing weet!
    Alvast bedankt!

    • Robert van den Breemen says:

      Kan je een telegram via het tabblad Telegram ophalen en delen?

      • Wesley says:

        Dit is wat er nu uit komt:

        /XMX5XMXABCD100007815
        
        0-0:96.1.1(4B383257303039373436333132313131)
        1-0:1.8.1(14446.023*kWh)
        1-0:1.8.2(09230.389*kWh)
        1-0:2.8.1(03573.793*kWh)
        1-0:2.8.2(08585.634*kWh)
        0-0:96.14.0(0002)
        1-0:1.7.0(0000.00*kW)
        1-0:2.7.0(0000.00*kW)
        0-0:96.13.1()
        0-0:96.13.0()
        !
        
        • Willem Aandewiel says:

          @Robert

          Ik vraag mij af of je hier uithaalt wat we nodig hebben. Volgens mij laat de Arduino-DSMR library van Matthijs alleen de gegevens zien waar in de library een OBIS van is opgegeven.

          DSMRloggerAPI.h

          Zie hier.

          /**
           * Define the DSMRdata we're interested in, as well as the DSMRdatastructure to
           * hold the parsed DSMRdata. This list shows all supported fields, remove
           * any fields you are not using from the below list to make the parsing
           * and printing code smaller.
           * Each template argument below results in a field of the same name.
           */
          using MyData = ParsedData
          .
          .
          

          Ik heb het vermoeden dat de Slimme Meter van Wesley veel meer gegevens doorgeeft dan wat we nu zien … of ben ik abuis?!

  10. George Nadort says:

    Hoi Willem,
    IK heb twee vragen.
    1: Hoe kan ik veranderen van wifi netwerk?
    2: Na firmeware update en spiffs update brand de blauwe led continu. Wat kan hier de oorzaak van zijn?
    Vast bedankt voor je advies

    • Robert van den Breemen says:

      Hi George,

      Na het opstarten van een nieuw geflashte firmware (en spiff) zal de firmware zich melden als een accesspoint. Ga via je telefoon of computer naar het AP toe met de naam DSMR-API-xx-xx-xx-xx-xx

      Daar kan je de wifi instellingen in de DSMRlogger zetten. En vervolgens kan je na een reboot (die vanzelf gaat) de firmware gaan gebruiken.

    • Robert van den Breemen says:

      De blauwe led blijft continue branden in Wifi Configuratie modus. Dus dat is op zich juist… Als je de configuratie hebt gedaan, zal je na de reboot en het verbinden met het netwerk de blauwe led 5x zien knipperen.

  11. HENK Overduin says:

    Geen commentaar, klacht of probleem. Mijn bewondering voor je mateloze geduld en je tomeloze inzet. Voor mij onbegrijpelijk. Je blijft de vriendelijkheid en correctheid in persoon. Vond het nodig je dit te laten weten.
    Dank en groeten.
    Henk O.

    • Willem Aandewiel says:

      Wauw.
      Wat een compliment. Dank.
      Ik doe mijn best hoewel het soms toch niet lukt.

    • OWK says:

      Beste Willem

      Ik sluit mij hier graag bij aan.

      Je verdient een compliment voor je tomeloze energie en wijze dat je dit project aan het doen bent. En al zou het een keer niet lukken dan nog komt het in 2e instantie toch goed omdat jij altijd een oplossing weet te vinden.
      Ik denk dat dit project mede daarom ook zo’n succes is.

      OWK

  12. Wouter says:

    Beste Willem,

    Gisteren mijn P1 lezer binnen gekregen en aangesloten. Dat werkt perfect!
    Is het mogelijk ergens beginstanden in te voeren of iets dergelijks? Het lijkt nu net of ik gisteren enorm veel stroom en gas heb verbruikt, waardoor ik geen mooi overzicht krijg.

    • Willem Aandewiel says:

      Wouter,

      Deze vraag is al meerdere keren beantwoord. Even de documentatie en de comments op de post’s over de DSMR-logger lezen.

      • Wouter says:

        Ik heb uiteraard de documentatie doorgelezen en de posts doorzocht, maar kan het niet vinden. Als ik alleen al in dit topic zoek naar het woord “stand” krijg ik 117 vermeldingen die me allen niet verder helpen. De RING bestanden worden uberhaupt niet genoemd in de documentatie.
        Ik vermoed dat ik die bestanden aan moet passen. Maar moet ik ze dan alle 3 aanpassen? Als ik in de online editor bijvoorbeeld de standen van eind maart 2020 opgeef, dan blijven de hoge waarden die gisteren zijn opgeslagen gewoon erin staan. Ook als ik deze op 0 zet, komen ze gewoon weer terug.

        • Willem Aandewiel says:

          De dagen en uren tabel geven respectievelijk na 14 dagen en 24 uur de juiste standen.

          Voor de maanden moet je álle maanden invoeren. Zie ook de documentatie.

          Soms moet je wat moeite doen.

  13. Piet Oberman says:

    Hallo Willem,

    Gebruik al een tijdje de DSMR naar tevredenheid. Kwam echter gisteren iets tegen wat ik nog niet eerder gezien heb. In de uren tabel staan een paar hele hoge waardes die niet kloppen. Daardoor is de grafische weergave van die tabel ook niet juist. Je kan door die hoge waardes de normale waardes bijna niet meer zien. Als ik echter in RINGhours.csv kijk is het verloop normaal. Worden de gegevens nog anders bijgehouden ? En kun je die hoge waardes eventueel handmatig aanpassen ?
    Alvast dank voor je reactie.

    • Willem Aandewiel says:

      Piet,

      Wat vreemd!

      Het lijkt erop dat er tussen 00 en 01 uur iets mis is gegaan. Netzo tussen 08 en 09 uur..
      Had je de DSMR-logger los gehaald? Stroom storing?

      De gegevens worden alleen in de RINGhours.csv (per uur), RINGdays.csv (per dag) en RINGmonths.csv (per maand) bijgehouden.

      Je kunt de RINGmonths.csv met de ingebouwde editor aanpassen. Om de uren aan te passen moet je het bestand naar je computer downloaden en daar met een echte editor (geen tekst verwerker of zo) aanpassen. Je kunt daar het beste mee beginnen om een paar minuten over het uur en dan vooral ook weer uploaden vóór het einde van het uur en de DSMR-logger re-booten.

      Let er op dat de records precies de goede lengte houden anders is de ellende niet te overzien!!

  14. Martin Beekhuis says:

    Is er informatie over uitlezen van onderstaande meter??
    5CTA – LTE 4G ESMR5
    Ik kan er iets over vinden.
    Bij het aansluiten gaat de 5V led een paar keer knipperen
    Ook de blauwe led gaat aan. Op het WIFI netwerk is de DSMR te zien.
    Maar het gaat toch niet goed. Met name het nipperen van de rode led doet mij vermoeden dat de te leveren stroom op P1 niet genoeg is.

    5CTA – LTE 4G ESMR5 smart meter | Single & Three Phase

    • Willem Aandewiel says:

      Martin,

      Er staats iets “vreemds” in de documentatie van deze meter … “P1: 2 wires/RJ12”.
      Ik snap echt niet wat ze daar mee bedoelen. Dat de rode led knippert duidt inderdaad op onvoldoende vermogen van de SM.
      Probeer eerst een externe voeding en als dat het probleem niet oplost misschien met je energie leverancier meer informatie vragen.

      Dat de DSMR-logger op je netwerk te zien is lijkt erop dat je wel je WiFi credentials hebt in kunnen voeren. Is dat zo?

  15. Johan says:

    Ik heb niet alles gelezen, dus als het al eerder is gevraagd, dan mijn excuses.
    Ik ontvang de telegram-gegevens van de slimme meter, en zet die door naar Home Assistant en visualiseer die met Grafana. Mijn systeem laat echter wel eens een gaatje vallen en registreert niet altijd alles even goed.
    Nu las ik dat in de Slimme Meter ook allerlei waarden worden opgeslagen (zoals maand- dag en kwartierstanden, die na verloop weer worden overschreven.
    Is het ook mogelijk om die waarden uit te lezen met een P1 kabel ?

    • Willem Aandewiel says:

      Johan,

      Je kunt de gegevens draadloos uitlezen met een API call.

      • johan says:

        toevallig wat meer info daarover of een linkje 🙂 ?

        Kan zelf ook zoeken hoor, maar vermoed dat jij weet waar het te vinden is. In ieder geval bedankt voor je snelle reactie

  16. Harrie Bouwens says:

    Willem, ik heb een aangepaste variant van jou 4.5 werkend met Stroom Sensor SCT013-010 – 10A en buitentemperatuur sensor DS18B20, en koppeling naar Googlesheets. Mocht je geïnteresseerd zijn in de ino, gerber/diptrace en googlescript file laat het maar weten

    • Willem says:

      Harrie,

      Ik denk dat er best makers zijn die hier interesse in hebben!

      Kun je de files op github zetten?

  17. Benno van de Meent says:

    Vraagje Willem,
    Ben een oude ESP-01 gebruiker, met een eigen op de HTTP2 logger gebaseerde versie.
    Recent drie moderne bordjes aangeschaft, waarvan er 2 bij vrienden zonder problemen draaien.
    Mijn eigen exemplaar nog niet aangesloten, omdat ik nog wat aanpassingen wil doen, en een stroommetertje wil aansluiten voor mijn zonnepanelen.
    Heb nu een probleem met AP mode : ik kan firmware en data uploaden, maar geen verbinding maken met de webserver om netwerkverbinding te maken. Zodra ik probeer te verbinden met DSMR-WS krijg ik een reset van de logger (zit een OLED op)
    Zelfde probleem treed op als ik probeer (mijn) oude versie van de firmware te laden.
    Enige wat ik kan bedenken is een kapotte ESP8266??

    • Willem Aandewiel says:

      Beste Benno,

      Dit comment hoort hier niet thuis maar bij de post waar je comment over gaat!
      Ik zal hem verplaatsen.

      Ik heb geen idee wat je hebt aangepast en welke instellingen je gebruikt.

      Wat is het probleem met de AP-mode? Kun je je WiFi credentials niet invoeren?

      Kan het zijn dat je browser gegevens van je oude DSMR-logger ge-cached heeft?
      Kun je er wel bij met het IP adres van de DSMR-logger?

      Vooralsnog lijkt het mij onwaarschijnlijk dat de ESP8266 de geest heeft gegeven.

    • Willem Aandewiel says:

      Benno,

      Heb je soms geflashed met “Erase All” optie?

      Dan moet je ná het flashen van de firmware ook SPIFFS opnieuw flashen!

  18. Chris says:

    Beste Willem,

    Ik ben alles behalve handig met electronica op dit niveau, maar met alle beschrijvingen denk ik dat ik er wel uit kom. Een ding is voor mij nog niet helemaal duidelijk: als ik de slimmerMeter-uitlezer aansluit op de P1 port, krijgt hij hier dan zijn voeding (stroom) vandaan, of moet ik er nog wat bij aanschaffen en zo ja welke / wat dan ?

    * Slimmer Meter Uitlezer
    * Project Box om de printplaat erin te doen
    * OLED Display (nieuwe versie)

    Ik lees namelijk wat over een externe adapter en een stroom sensor.
    Mbt de stroom sensor dient de software aangepast te worden heb ik gelezen.

    Alvast dank.

    • Willem Aandewiel says:

      Hoi Chris,

      Jammer. Als de documentatie toereikend zou zijn had je deze vragen niet hoeven stellen. Daar moet ik dus nog wat aan verbeteren.

      Als je een geschikte SM hebt, dan levert deze de stroom voor de DSMR-logger. Heb je géén geschikte SM dan heb je nog een 5volt (USB) voeding met ronde jack nodig (in beide gevallen moet je de jumper goed instellen). Of je een geschikte SM hebt kun je voor een aantal veel gebruikte meters in de documentatie vinden).

      Een oled scherm SDD1306 of beter nog een SH1106 is informatief en zou ik zeker aanraden.

      Er is ruimte voor een analoge input, maar daar heeft, voor zover mij bekend, nog niemand iets mee gedaan.

      • Chris says:

        Beste Willem,

        Dank voor je super snelle reply.

        Denk meer dat het aan mijn gebrek aan electronica kennis ligt. Wat voor ‘jullie’ logisch is, wil ik misschien nog expliciet vragen.
        Better save than sorry, toch ?

        Aan de andere kant: zo wordt de documentatie nog duidelijker 🙂

        Dank voor de info en ga vandaag de bestelling direct plaatsen.

        Chris

        • Chris says:

          Beste Willem,

          Vandaag alle onderdelen ontvangen.
          Klopt mijn aanname dat er al software op staat, of moet ik dat er eerst zelf nog op zetten ?

          Het display doet helemaal niets namelijk;
          Ik zie geen WiFi waar in mijn interne WiFi gegevens mee zou in kunnen vullen;
          Het rode lampje brand continue en het blauwe lampje knippert continue.

          Misschien vergeet ik een stap die voor kennis vanzelfsprekend is, maar mij lukt het nog niet.

          Alvast dank.

          • Willem Aandewiel says:

            Chris,

            Heb je de documentatie gelezen?
            Ik heb best wel een hoop moeite gedaan om uitvoerig te beschrijven hoe alles werkt. Zowel voor volledige beginners als ook voor meer technisch onderlegde gebruikers.

            De firmware staat al op de DSMR-logger v4.5.

            Over de hardware kun je hier het één en ander vinden.
            Let vooral op de aansluitingen van het OLED scherm. Vcc en GND zijn soms omgewisseld en dan moet je de twee doorverbindingen onderaan de DSMR-logger doorsnijden (voorzichtig!) en gekruiste doorverbinding solderen.

            Over het opstarten met de DSMRloggerWS firmware kun je hier het één en ander vinden.
            De documentatie van de DSMRloggerAPI firmware kun je hier vinden.

          • Chris says:

            Beste Willem,

            Er is inderdaad erg veel beschreven wat ik allemaal kan doen. Waar ik nu op vastloop is dat ik geen WiFi ‘netwerk’ van de DSMR-logger kan zien. Wat ik begrijp uit de documentatie is dat als je de DSMR-logger aansluit deze eerst onderdeel van je interne netwerk moet worden. Dit zou je moeten kunnen doen door verbinding te maken met het WiFi signaal van de DSMR-logger, maar die zie ik niet, ook al ga ik voor de meterkast staan.

            Qua OLED had ik inderdaad gelezen dat er 2 uitvoeringen zijn, maar ik heb (gelukkig) de rechter en hoef geen aanpassing door te voeren.

            Het enige wat ik heb moeten doen is de jumper van extern naar SM te verplaatsen om de stroom van de meter te krijgen.
            Bovenstaande uitgevoerd voordat ik de DSMR-logger aan de meter heb gekoppeld. Hierna had ik verwacht een WiFi DSMR-WR signaal te zien.
            Ook als ik de OLED er weer afhaal zie ik niets.

            Mis ik nog een stap ?

            Via Arduino kan je flashen indien nodig, maar daarvoor moet je eerst verbinding met de DSMR-logger krijgen lijkt mij en daar loop ik al op vast.

            Het niet kunnen zien van de WiFi en aangezien de OLED ook niets laat zien, is er misschien wat anders aan de hand ?

            Alvast dank voor de reactie.

  19. Tom says:

    Beste Willem,

    Ik gebruik de DSRM logger v4.5 al enige tijd met veel plezier. Echter wil ik de dsrm logger in een ander wifi netwerk plaatsen. Hoe kan ik dit aanpassen? Of vereist dit een volledige reset?

    Bedankt!
    Tom

    • Willem Aandewiel says:

      Tom,
      Als de DSMR-logger bij het opstarten geen verbinding kan krijgen met het, bekende en tot nu toe gebruikte, netwerk, dan start hij zichzelf op als AccessPoint en kun je de credentials van je nieuwe WiFi netwerk opgeven.
      Een andere mogelijkheid is om via telnet de WiFi credentials weg te gooien. Ook dan zal de DSMR-logger bij het opnieuw opstarten zichzelf als AP presenteren.

  20. Tom Goossens says:

    Een rare bug tegengekomen bij de DSMRloggerWS. Het apparaat reageerde niet meer via web en bij opvragen van de site merkte ik ook timeouts in de verbinding. Via telnet leek alles OK. Na lang zoeken ontdekt dat het apparaat een reboot (!) deed bij het opvragen van het CSS bestand. Ik zag ook 1 rare waarde in het “hourly” csv bestand. Ik ga ervan uit dat er een file corruptie gebeurd is op een gegeven ogenblik. Oplossing was via een browser met development tools het downloaden van de CSS file blokkeren, dan een bestand met dezelfde naam en 0 bytes grootte uploaden via de File Explorer (die wel werkt eens je dat bestand blokkeert) en daarna de goeie versie uploaden. Daarna werkt alles weer naar behoren.
    Ik begrijp dat er een nieuwe firmware is. Zet het hier neer voor het geval anderen komen zoeken met gelijkaardige issues met de oude versie.

  21. Bert Groothuis says:

    Hoi Willem,

    Ik heb de logger thuis gekregen en aangesloten. Ziet er allemaal perfect uit. Ik moest een externe voeding aansluiten en de DSMR logger start op. Tot zover goed. Ik moest handmatig verbinding maken met http://192.168.4.1/ Zie dan de het netwerk ‘DSMR-WS-‘. Dan klik ik op Configure WiFi. Daar zie ik staan mijn WiFi netwerken en VRV95170528FC. Dan het password. Geen idee wat dat is . admin werkt niet. Van alles geprobeerd ook VRV95170528FC. Niks werkt. Ik zal ergens iets missen.

    Maar wat is het password?

    Thanks.

    Groet Bert

    • Willem Aandewiel says:

      Bert,

      Ik weet ook niet wat het wachtwoord van VRV95170528FC is. Misschien bij je buren vragen of zo. Maar waarom selecteer je niet je eigen WiFi AP (ik neem aan dat je dáár het wachtwoord wél van weet). Het gaat er immers om dat de DSMR-logger weet wat jóuw WiFi credentials zijn zodat hij zich op jouw netwerk kan aanmelden!

      • Bert Groothuis says:

        Willem,

        Aha. Ik begreep niet dat je je eigen netwerk moest kiezen. Dat is nu gelukt. De rode led brand constant en de blauwe brand om de 10 seconden.
        Hij doet het dus.

        Thanks.

  22. Leendert Bijnagte says:

    Hi Willem, ik heb hem nagebouwd en het werkt perfect. Ik ben een paar dingen tegen gekomen die ik even wil delen. Ik kreeg de energieprijzen eerst niet goed ingevuld. Ik had het bedrag aangepast, zoals ook de komma daar stond. Dat moet echter een punt zijn, anders wordt de waarde niet opgeslagen.
    Verder had ik moeite om de MQTT verbinding te krijgen. Hij melde dat hij niet connecte. Na wat speurwerk (maar ik had beter moeten lezen) had ik de waarde die default op 0 staat, op bv 60 seconde moeten zetten. Dan gaat het wel goed.
    De meest lastige om te vinden was dat de waarde van de gasmeter van de ISKRA wel goed binnenkwam, maar niet in de log bestanden opgeslagen werd. In de code maak je een table aan, waarbij ‘gas_delivered2’ vervangen wordt door ‘gas_delivered’. Maar die staan dan 2 x in de look up table en bij het inlezen van de overeenkomstige waarde pakt hij de eerste, waar niks in staat. In de code (spiFFSstuff.c) waar de log weggeschreven wordt, heb ik op regel 60 van gas_delivered gas_delivered2 gemaakt en het werkt dan vlekkeloos.
    Hartelijk dank voor dit puik stukje werk. En wat een prachtige code ook, zeer inspirerend, ik ga er voor de hobby veel uit hergebruiken!

    • Willem Aandewiel says:

      Leendert,

      Wat voor meter heb je (merk en type)?
      Dat gas_delivered2 moet ik even opzoeken. Volgens mij krijg je die alleen als je bij het compileren de USE_PRE40_PROTOCOL gebruikt. Heb je een oude meter?

      Ik kan helaas nergens in de buurt van een regel 60 “iets” vinden wat “iets” doet met gas_delivered2 …

      Omdat je bij deze post comment ga ik ervan uit dat je de DSMRloggerWS firmware gebruikt. Die is “end-of-life”. Je kunt beter overstappen op de DSMRloggerAPI firmware!

      In ieder geval: veel plezier met deze leuke hobby!

      • Leendert Bijnagte says:

        Dank voor je antwoord. Het is een (oude) iskra MT382. Ik gebruik de DSMRloggerAPI inderdaad al, daar heb ik de code even aangepast, gewoon de Define pre 40 voor gebruikt. Ik sluit het Plaatje even bij.

        Groet,
        Leendert

  23. Bert says:

    Willem,

    Mooi project dat ook ik wil aanschaffen. Nu ben ik een beginneling en ik vraag mij af hoeveel data de logger kan opslaan voordat hij ‘vol’ is.
    Ik kan hier niets over vinden. Wel via een externe partij maar ook ik wil dat niet. Kan ik de data ook overzetten naar mijn pc bijvoorbeeld?
    Alvast bedankt.

    Groet Bert

    • Willem Aandewiel says:

      Bert,

      Het staat wat verdekt in de documentatie over de restAPI’s

      De DSMR-logger bewaard de historische gegevens per 24 uur, 14 dagen en 24 maanden. De DSMR-logger loopt dus nooit “vol” omdat de oudste waarde aan de achterkant verdwijnt als er een nieuwe waarde (nieuw uur, nieuwe dag of nieuwe maand) aan het begin bijkomt.

      Via de ingebouwde FSexplorer kun je de bestanden naar je computer uploaden. Dit kan ook automatisch met een script.

  24. job says:

    Ik heb een dsmrlogger v4,5 gekocht, en een Rj12.
    Maar als ik ze aansluit op mijn slimme meter een sagemcom T210-D ESMR5 gebeurd er niks.

    Ik wil hem met een rest api aan home assistent koppel?

    Misschien dat ik iets mis dat ik er eerst iets op moet installeren, zou iemand mij hierbij kunnen helpen?

    • Willem Aandewiel says:

      Hi Job,

      Ik heb nog niet eerder informatie over deze Slimme Meter gekregen. Kijk hier maar.
      Er zijn een paar mogelijkheden:

      • 1. De jumper staat niet goed.
      • 2. De Slimme Meter levert niet genoeg stroom (wat doen de ledjes?)
      • 3. Je hebt de P1 poort niet “aan” gezet (als je in België woont).

      De DSMR-logger is in principe “plug-and-play” maar je moet wel de documentatie goed lezen.
      Mocht je dan nog problemen hebben, dan moet je meer informatie geven. Lees alle andere comments om te zien wat ik nodig heb om op afstand te kunnen helpen.

  25. Hein Verhoeven says:

    Beste Willem,
    Hartelijk dank voor deze mooie logger. Ik heb nu net de koppeling via MQTT en Home Assistant voor elkaar. Nu lees ik dat meerdere mensen problemen hebben met de koppeling MQTT en Home Assistant. Men krijgt daar geen waarde maar de tekst Onbekend ipv van een waarde. Dat had ik ook en heb het op de volgende wijze opgelost.

    Ik heb deze logger recent gekocht V4.5 met firmware V1.03C erop. De geeft MQTT berichten in het volgende formaat: {“power_delivered_l1″:0,”unit”:”Watt”}

    Zojuist heb ik de firmware upgrade van de logger naar V1.04 geupgrade. (Dank voor de duidelijke uitleg via het filmpje op youtupe).

    Met de upgrade veranderde ook de MQTT berichten. Nu hebbende berichten dit formaat: {“power_delivered_l1”:[{“value”:1.564,”unit”:”kW”}]}

    En nu werkt het wel met het MQTT uitleg en format zoal op de site opencircuit staat beschreven.

    Ik ben helemaal blij.

    • Willem Aandewiel says:

      Beste Hein,

      Welke firmware gebruik je nu?
      Ik neem aan dat je nog steeds DSMRloggerWS gebruikt (die is “end of life”). Je kunt het beste upgraden naar DSMRloggerAPI (dat is écht hele andere firmware).

      Toevallig heb ik vandaag de documentatie aan gevuld met hoe je deze firmware met Home Assistant kunt koppelen.

      In ieder geval: mooi dat je het naar tevredenheid werkend hebt gekregen.

      • Hein Verhoeven says:

        Je hebt gelijk. Ik maak nog gebruik van de DSRMLoggerWS en niet van de DSMRLoggerAPI.
        Dank dat je me daarop attendeert. Voor nu ben ik al blij dat het allemaal samenwerkt en ik wacht nog even met het updaten naar die versie. Ik ga nu genieten van mijn resultaat.

        met vriendelijke groet,
        Hein.

  26. nick says:

    hallo willem,

    mijn DSMRlogger doet het niet meer.

    ik heb dit werkend gehad op mijn HA met versie v1.0.3 nu heb ik hem gisteren geupdate en zit nu op V1.1.0 maar aal mijn sensoren blijven op onbekend.

    het viel mij wel op dat in de Mosquitto broker hij binnen kwam als DSMR-API.
    dit heb ik weer terug veranderd naar DSMR-WS.

    maar zonder succes.
    wat zie ik over het hoofd?

    • Willem Aandewiel says:

      Nick,

      Het topTopic van DSMRloggerWS was: “DSMR-WS/JSON”
      Bij DSMRloggerAPI is het nu: “DSMR-API”

      Je kunt in setting het topTopic aanpassen naar zoals het wás, maar mooier is het natuurlijk om de configuratie van HA aan te passen.
      Laat even weten of het hiermee weer lukt!

  27. Harrie Bouwens says:

    Willem, de logger heeft een tijd gewerkt, maar nu komt er geen data meer. Waar moet ik naar kijken voor de oorzaak?

    • Willem Aandewiel says:

      Harrie,
      Kort antwoord: onderzoek waarom er geen data meer binnenkomt en los het op.

      Ik kan echt niets met de vraag “hij doet het niet”.

      • Harrie says:

        Zo’n stomme vraag “hij doet het niet” heb ik ook niet gesteld. Mijn terechte vraag was er komt geen data binnen, waar moet ik zoeken?
        1 de p1 poort geeft geen data
        2 de kabel is stuk
        3 de print doet niet wat hij moet doen

        1. Kan ik verder zelf niet vaststellen
        2. Is ok
        3. De print, wat kan ik met multimeter meten?

        Is de vraag nu wel ok?

        • Willem Aandewiel says:

          Harrie,

          Ik heb ook niet geschreven dat het “een domme vraag” is. Ik schreef dat ik er niets mee kán!
          Wat zou helpen:

          • Wat voor firmware gebruik je?
          • Heb je oled scherm? Wat geeft die weer
          • Wat doen de ledjes?
          • Doet de GUI het (iets)
          • Heb je met telnet gekeken wat voor meldingen je krijgt? Kun je daar een kopie van posten
          • Wat is er veranderd waardoor hij nu niet meer werkt? Heb je zelf iets gedaan?

          Kortom, je kunt een hoop doen en doorgeven waar ik wellicht iets mee kan.
          Op dit moment heb ik geen idee!

          • Harrie Bouwens says:

            Willem,

            De GUI funktioneert, blijft alleen op data wachten, TELNET zie bijlage funktioneert, alleen nullen,
            ook de restAPI werkt, alleen maar nullen.
            Dus ik verdenk de P1 meter, maar wat kan daar fout gaan, die is toch met optocouplers beveiligd, en het scherm op de slimme meter geeft alles juist weer.

          • Willem Aandewiel says:

            Harrie,

            • Wat voor firmware gebruik je?
            • Heb je oled scherm? Wat geeft die weer
            • Wat doen de ledjes?
            • Doet de GUI het (iets)
            • Heb je met telnet gekeken wat voor meldingen je krijgt? Kun je daar een kopie van posten

            Ik wil echt wel helpen, maar je maakt het erg moeilijk.
            Gebeurd er helemaal niets als je met telnet in de DSMR-logger “kijkt”? Je hebt de letter “d” ingetoetst waarna je de inhoud van het PRDdays.csv bestand te zien krijgt. Maar ik ben juist geïnteresseerd in de andere meldingen. Wat wel handig is om een “b” in te toetsen zodat ik de board informatie kan zien en “f” en “s”.

            Maar goed.

            Als ik het met deze informatie moet doen dan lijkt het mij onwaarschijnlijk dat de Slimme Meter “kapot” is. Ik zou het eerder in het kabeltje zoeken. Kun je controleren of hij goed in de meter zit (je moet een duidelijke “klik” horen) en of hij goed in de DSMR-logger zit. Je zult verbaast zijn hoe vaak gebruikers hier fouten / problemen door krijgen.
            Mocht dit het probleem niet oplossen, dan zou je met een scoop moeten controleren wat er voor signaal uit de P1 poort komt (pin 5 en pin 2). Als pin 2 niet hoog wordt stuurt de SM geen telegram. Heb je wel gecompileerd met “USE_ESP12”?

            Mocht dit allemaal niets opleveren dan is mijn inschatting (maar bedenk: ik vaar nog steeds blind) dat de DSMR-logger stuk is.

          • Harrie Bouwens says:

            Willem, ik ben een RUND:

            Heb je wel gecompileerd met “USE_ESP12”?
            Dat was de oplossing. Hij doet het weer prima.

            Omdat de logger niets meer deed heb ik de firmware opnieuw geüpload, met geen vinkje bij USE_ESP12. Waarom? ik zou het niet meer weten.

            Bedankt voor al je moeite, en SORRY!

            PS de andere info schermen van Telnet had ik opgeslagen, maar ik kon er maar 1 meesturen, en een zip ging ook niet.

          • Willem Aandewiel says:

            Harrie,

            Ik ben blij dat het is opgelost .. maar snap je nu mijn vragen? Als je bij je eerste comment een beetje meer informatie had gegeven (zoals bijvoorbeeld “na opnieuw compileren en flash-en deed hij het niet meer”) of als je een scherm afdruk van de “Systeem Info” pagina had gepost, dan hadden we het in één keer kunnen oplossen.

            Any way: de volgende stap is overschakelen naar de DSMRloggerAPI firmware.

  28. D. Wismeijer says:

    Hi Wim,
    Je advies opgevolgt en het resultaat is dat volgens de log van de MQTT broker 2 devices zijn aangesloten, i.e. ip ….180/181 en 10. Het DSMR board is 180 en blijkt de enige te zijn die ondanks het feit dat het connected is, geen data doorstuurt. Mijn conclusie op basis van bescheiden ervaring is dat dit aan de DSMR firmware ligt maar laat mij graag adviseren door jou met mogelijke vervolg stappen om tot een oplossing te komen.
    Grtjs
    Dick

    • Willem Aandewiel says:

      Dick,

      Het klopt dat de optie HAS_NO_METER het versturen van een MQTT bericht niet uitvoert. De reden hierachter is dat de dummy data niet in de vorm van een telegram wordt gegenereerd. MQTT maakt zijn berichten aan op basis van een telegram .. dat er dus niet is 🙁

      Overigens blijf ik van mening dat je beter kunt overstappen op de DSMRloggerAPI firmware! In die firmware worden MQTT berichten ook verstuurd als je de “HAS_NO_METER” optie gebruikt!
      Lees ook deze post!

  29. D. Wismeijer says:

    Voor de integratie met HA op basis van mqtt heb ik de navolgende documenten geconsulteerd:
    1) https://opencircuit.nl/Blog/Integratie-ESP8266-data-met-Home-Assistant/
    2) https://mrwheel.github.io/DSMRloggerWS/integratieHassio/
    Nr. 1 lijkt mij niet van toepassing aangezien ik HASSIO 0.106.6 draai en dus geen toegang heb tot unix commands.
    Nr. 2 heb ik volledig gevolgd en met uitzondering van de aanpassing van de configuratie.yaml. In HASSIO maak ik gebruik van de Mosquitto broker Add-On waarin de configuratie plaats vindt.
    De MQTT broker is reeds lange tijd functionerende voor een paar andere ESP8266 devices. De DSMR blijkt tevens communicatie te hebben getuige het navolgende uit de Log van de broker:
    1584135104: New client connected from 192.168.2.180 as TEST-DSMRA4:CF:12:C2:FD:76 (p2, c1, k15, u’xxxx’).
    Ondanks dit krijg ik toch geen data van de sensors/ DSMR-Actueel.yaml door. Tevens blijft de Entity State onde Developer Tools “Unknown”.
    Enige richtlijn waar ik verder naar kan zoeken om de data door te krijgen? Onder Settings is De MQTT Topic aangegeven als DSMR-WS, overeenkomstig het sensor DSMR-Actueel.yaml bestand.

    • Willem Aandewiel says:

      Dick,
      Ik geloof dat ik sowieso een oude versie van hassio draai dus het kan zijn dat mijn configuratie niet up-tp-date is.
      Wat je het beste kunt doen is met een mosquito client subscriben op toptopic DSMR-WS en dan kijken hoe de berichten eruit zien die uit de DSMR-logger komen. Vervolgens je .yaml file daarop aanpassen.

  30. D. Wismeijer says:

    Hi Wim,
    Dank! Ik maak vooruitgang. Oled scherm leest mooi uit met test data. Volgende stap MQTT naar HA. Struikel nog een beetje over het juiste topic in de settings in vergelijk met het voorbeeld. Genoeg te lezen en als ik er niet uit kom meld ik me weer.
    Grtjs
    Dick

  31. D. Wismeijer says:

    Beste Wim,
    Dank nogmaals. Een heleboel te absorberen maar wel erg mooi verwerkt en uitgebreid. Voor een “novice user” even een paar ophelderingen:
    Ik heb inderdaad de DSMR bedraad aan m’n PC hangen. Begrijp ik het dus goed dat in dat geval niets anders nodig is dan het gebruik van de ” ESP8266 Sketch Dat Upload commando. Dus geen navolgende “Upload” commando van de Arduino IDE (knop naast de Verify knop). Ik neem tevens aan dat “Hard resetting via RTS pin message inhoudt dat ik de reset van de DSMR board moet indrukken.
    Als voorstaande compleet is dan begrijp ik dat de .spiffs.bin slechts betrekking hebben op de OTA flash.
    Ik hoop dat ik hiermede juist zit.
    Grtjs Dick

    • Willem Aandewiel says:

      Hi Dick,

      Dat klopt helemaal. Als je bedraad flashed hoef je niets speciaals te doen. Als OTA spiffs wil flashen moet je uitzoeken waar de IDE het spiffs.bin file heeft neergezet. In de documentatie staat precies hoe je daar achter kunt komen (standaard zet de IDE dat telkens ergens anders neer).
      “Hard reset” betekent inderdaad dat je op de reset knop van de DSMR-logger moet drukken.

  32. Dick Spork says:

    Hallo Willem, tot nu toe heb ik versie 1.03 gebruikt en dat loopt prima. Met de update naar versie 1.0.5 heb ik een probleem met de MQTT info. De struktuur is is veranderd door de Json strings en daar staat nu het topic dubbel in. Dat is natuurlijk wel oplosbaar, maar daarvoor zou ik in de testversie ook graag de MQTT signalen hebben. In v1.0.3 lukte dat door een extra sendMQTTData in has_no_meter.h op te nemen. Maar in v1.0.5 werkt dat niet. Heb jij daar een oplossing voor?
    Vriendelijke groet,
    Dick

    • Willem Aandewiel says:

      Hi Dick,

      Ik zou, als je toch aan het updaten bent, overstappen op de restAPI versie.

      Zie deze post.

      Ik denk niet dat het topic dubbel in de MQTT berichten staat. Per veld uit de Slimme Meter is er een topic. De inhoud van het bijbehorende bericht is een json string. In die json string staat ook weer de “name” van het veld (en de value en eventueel een unit).
      Anyway: de structuur van de MQTT berichten staat nu vast en zal in nieuw versies van de DSMRloggerAPI firmware niet meer veranderen.

  33. D. Wismeijer says:

    Beste Willem, Dank voor snelle reactie. Ik ben inmiddels verder hetgeen gerealiseerd is door versie ESP8266FS-0.5.0.zip te laden (voorheen versie 4). Zo te zien draait alles nu perfect en ben in de FSexplorer ESP folder van de DSMR logger. Ik probeerde “Update Firmware” uit maar stuit op het probleem dat bij het kiezen van “Choose File” van het DSMR-logger Flash utility, ik niet zou wteen waar de xx.spiffs.bin files staan. Heb ik iets over het hoofd gezien dat nog apart gedownload moet worden?
    Grtjs
    Dick

    • Willem Aandewiel says:

      Beste Dick,

      Heb je dit gelezen?

      Heb je de firmware ook met de Update Server ([Update Firmware]) ge-flashed?
      Als je dat “bedraad” hebt gedaan kun je het SPIFFS ook het makkelijkste bedraad flashen.

      Heb je dit trouwens gelezen?

  34. D. Wismeijer says:

    Met Arduino IDE 1.8.12 onder Windows 10 compiled de DSMRLoggerWS zonder fouten. Echter, het succes verhaal stopt bij “Firmware Bedraad Flashen. De foutmelding die ik krijg na het commando ESP8266 Sketch Data Upload is “SPIFFS Create Failed!”
    Ik gebruik een FT232R USB to Serial/TTL Interface Module welke is aangesloten overeenkomstig het hoofdstuk “USB to TTL Serial adaptor kabel”.
    Is iemand die mij mogelijk op weg kan helpen hoe e.e.a. op te lossen.

  35. Bas says:

    Weet jij toevallig welke DSRM versie mijn meter is (Iskra AM550-ED1.01)? En of deze voldoende stroom levert onderstaand bordje van stroom te voorzien?

    DSMR-logger v4.5

    • Willem Aandewiel says:

      Hoi Bas,

      Heb je de uitvoerige documentatie van de DSMR-logger gelezen?
      De enige eis aan de Slimme Meter is dat hij de minimaal aan de DSMR 4.0 standaard voldoet.
      Als je wat Googelt kun je vinden dat jouw meter met de DSMR 5.0 standaard werkt.

      Ik verwacht dan ook geen problemen. In het érgste geval moet je een externe USB voeding gebruiken, maar dat verwacht ik met deze combinatie niet.

      • Bas says:

        Hi Willem,

        Ik had wel wat uurtjes zitten zoeken, maar ik ben nieuw in het veld, mogelijk dingen verkeerd begrepen of verkeerde zoektermen 🙂

        Bedankt voor je snelle reactie!!!

        Groet.

  36. Willem Aandewiel says:

    Harrie,

    Dat moet je niet aan mij vragen 😉 ik heb geen idee of iemand dat doet.

    Er zijn twee niet gebruikte GPIO pinnen (zoals je in het schema kunt zien) n.l. GPIO14 en GPIO16. GPIO16 is “hoog” tijdens het opstarten. Ik denk dat GPIO14 de beste keuze is.

    Ik ben trouwens wel benieuwd waarom je de temperatuur in de meterkast wilt weten.

    • Harrie Bouwens says:

      Willem,

      Niet in de meterkast, maar er zit een sensor achter de deurbel, dus buiten 🙂

  37. Harrie Bouwens says:

    Hi Willem,
    Is er iemand die de stroom meet van de zonnecellen, en die verwerkt heeft in het programma?
    En nog een vraag: Is er nog een vrije pin voor een DS18B20 temperatuursensor?

  38. Ronald Rakké says:

    Hi Willem,

    Ik gebruik de DSMR software nu een week naar alle tevredenheid.
    Wat mij opviel is dat in het Actueel overzicht geen weergave is van de actuele GAS verbruik, dan enkel de actuele meterstand. Van de elektriciteit verbruik is wel een actuele weergave.

    Is het mogelijk om ook de actuele gas verbruik weer te geven?

    Mvrg,

    Ronald

    • Willem Aandewiel says:

      Ronald,

      De Slimme Meter geeft geen actueel gas verbruik. Dat moet je dus zelf berekenen aan de hand van de vorige stand en de actuele stand.

      Actueel_Verbruik = Meterstand(t) – Meterstand(t-1);

      De standaard GUI van de nieuwe DSMRloggerAPI firmware laat het actuele verbruik in de chart zien.. nog even wachten dus.

  39. Hilbert says:

    Ik had de volgende structuur eerst:

    Arduino
    – DSMLoggerWS ( alles gekopieerd vanuit github)
    – libraries
    – tools

    Nu heb ik:
    Arduino
    – DSMLoggerWS ( alles gekopieerd vanuit github)
    – libraries
    – tools
    – data ( gekopieerd van de DSMLoggerWS folder)

    Dit laatste leek de oplossing te zijn dus. Ik had verwacht dat hij standaard de data folder zou herkennen van het DSMLoggerWS project. Dit lijkt in mijn geval dus niet zo te zijn.

  40. Hilbert says:

    De logger is nu wel benaderbaar op het adres. Ik heb nogmaals een reset uitgevoerd en de data folder heb ik in de root folder gezet van het Arduino project. Nu kan ik op het ipadres alles weer benaderen. Bedankt Willem. Enig idee hoe het kan dat ik voorheen dit via dsmr-ws.local kon gebruiken en het nu alleen werkt via het ip-adres? Moet ik een dns instelling nog ergens doen?

    • Willem Aandewiel says:

      Ik heb niet zo snel een idee.

      In ieder geval heb je de firmware niet goed van github gehaald anders zou de data-map automatisch in de root-directory van je DSMRloggerWS project hebben gestaan.

      Ronald (zie de comments) had ook problemen met mDSN en hij heeft dat weten te isoleren door het mee compileren -of niet- van een OLED scherm. Ik heb nog geen tijd gehad om dat verder te onderzoeken.

      Bij de standaard geïnstalleerd firmware is de code voor een OLED scherm mee gecompileerd. Je kunt dus nog even proberen of dat voor jou ook de oplossing is.

  41. Hilbert says:

    Nee de logger is niet benaderbaar op 192.168.2.39 in mijn geval. De DSMR-logger deed het wel goed, behalve de problemen met de API. Vandaar de keuze uiteindelijk om te upgraden. Het IP is wel zichtbaar in mijn router.

  42. hilbert says:

    Dankje Willem. Met deze versie en een reset werkt het wel gelukkig. Zowel de firmware , reset, data upload tool zijn nu gelukt. Vervolgens kies ik een netwerk en dan blijft hij 4x knipperen. De website http://dsmr-ws.local/ is niet bereikbaar. Wat kan ik nu nog doen? Het zou toch moeten werken?

    • Willem Aandewiel says:

      Kun je de DSMR-logger via het IP adres benaderen?

      Heeft de DSMR-logger met de originele (geïnstalleerde) firmware wel gewerkt?

  43. Willem Aandewiel says:

    Ik heb even gegoogled en kom hier uit.

    Hier vind je de laatste (officiële) releases van dit data-upload tool.

    Ik gebruik versie 0.5.0 en die werkt met de esp8266 core versie 2.6.2 en 2.6.3.

    Mijn Arduino IDE zit op versie 1.8.10

    Ik hoop dat jullie hier mee uit de voeten kunnen.

  44. Harrie Bouwens says:

    Hi Willem,
    Ook ik heb hetzelfde probleem als Hilbert en Chris
    “esptool: error: unrecognized arguments: –end”

    De update en FSexplorer kan ik niet bereiken.
    ESP8266FS-0.4.0.zip is de versie die ik geïnstalleerd heb, en dat zou de laatste versie zijn
    Ik snap niet hoe ik nu verder moet ???

  45. Hilbert says:

    Hoi Willem,

    Het flashen van de firmware is gelukt, echter het uploaden via de Data upload tool werkt niet.

    Ik krijg de volgende melding:

    usage: esptool [-h] [--chip {auto,esp8266,esp32}] [--port PORT] [--baud BAUD]
                   [--before {default_reset,no_reset,no_reset_no_sync}]
                   [--after {hard_reset,soft_reset,no_reset}] [--no-stub]
                   [--trace] [--override-vddsdio [{1.8V,1.9V,OFF}]]
                   {load_ram,dump_mem,read_mem,write_mem,write_flash,run,image_info,make_image,elf2image,read_mac,chip_id,flash_id,read_flash_status,write_flash_status,read_flash,verify_flash,erase_flash,erase_region,version}
    
                   ...
    
    esptool: error: unrecognized arguments: --end
    
    SPIFFS Upload failed!
    

    Het gaat om versie #define _FW_VERSION “v1.0.5 (09-01-2020)”

    Weet jij wat er fout gaat? Ik heb een bord via OpenCircuit.nl compleet gekocht zo.

  46. Ronald Rakké says:

    Hi Willem,

    Ik heb het e.e.a. opgebouwd met een ESP-12E op een breakout board gesoldeerd. Voor het geheel een enkelzijdige printplaat ontworpen. GPIO 12 omgezet naar GPIO 15. Geheel werkt super!!! Bij gaand 2 foto’s van de print.

    Vraagje m.b.t. de web pagina’s. Ik merk dat in Microsoft Edge en IE-11 de tabellen niet netjes uitlijnen. Chrome en Firefox is het wel goed.

    Ander vraagje, ik heb last dat vaak de mDNS responder niet start. Van de 10x wil hij 8x niet starten. Enig ide wat dit zou kunnen veroorzaken?

    Groet,

    Ronald

    • Ronald Rakké says:

      Koperzijde

    • Willem Aandewiel says:

      Mooi gemaakt!

      Waarom heb je GPIO12 omgezet naar GPIO15?

      Microsoft Edge is van, nou ja, Microsoft 🙁
      Geen idee waarom dat niet compatible is met de andere browsers maar compatibiliteits problemen komen bij meer Microsoft producten voor. Mijn advies: niet gebruiken.

      mDNS is een protocol dat op bijna ieder netwerk “werkt”. Wel blokkeren veel WiFi repeaters dit protocol. Waarom het dan soms wel en soms niet werkt weet ik niet.

      Binnenkort geven we de nieuwe firmware vrij. Deze is helemaal opnieuw ontworpen om de DSMR-logger via restAPI’s te ontsluiten. Er zit ook een GUI bij, maar die draait helemaal in de browser en is vooral bedoelt om anderen uit te dagen zelf mooie GUI’s te ontwikkelen. Arjan de Jong is bijvoorbeeld al met een héle mooie GUI bezig.

      • Ronald Rakké says:

        GPIO15 kwam qua pcb routering beter uit. Moest anders een draadbrug maken en dat vond ik minder mooi. PCB’s met de handtekenen vergt altijd wat meer ruimte, vandaar de wat ruime opzet.

        Oudere DSMR versie op de ESP-01S gaat mDSN wel goed. Wellicht iets met mijn ESP-12E. We gaan verder zoeken.

        Gaaf die nieuwe look and feel.!

        Dank voor al je mooie werk.

        Groet,
        Ronald

        • Ronald Rakké says:

          Hi Willem,

          Lijkt er op dat ik het probleem met de mDNS heb gevonden.

          Ik gebruikte nog geen OLED display, dus dat had ik gedisabled, //#define HAS_OLED_SSD1306. Vandaag kwam toevallig de SSD1306 binnen. Compileer de firmware opnieuw met de OLED enabled.
          Bij reboot zie ik gelijk dat de mDNS opstart. Enkele keren gerest, mDNS blijft het netjes doen. Denk das gek… dus gecompileerd zonder de OLED en ja hoor, mDNS werkt niet meer. 4x met en zonder OLED gecompileerd om zeker te zijn. Blijkbaar door het enable van de OLED wordt er nog iets extra’s gedaan, delay of zo???, waardoor de mDNS het doet.

          Mvrg,

          Ronald

  47. Hilbert says:

    Hoi Willem,

    Het uploaden van de laatste versie is fout gegaan ( over the air). Ik kan nu http://dsmr-ws.local bv niet meer benaderen en ik zie het ip-adres ook niet meer bij mijn router. Ik heb de meter gekocht via opencircuit.nl. Ik denk dat ik de logger via hardware moet flashen weer? Wat heb ik hiervoor nodig? via https://mrwheel.github.io/DSMRloggerWS/hardware_V4_Programmer/ zie ik zoveel opties dat ik niet weet of ik dit allemaal nodig heb of dat 1 van de opties de manier is? Wat is het eenvoudigste om te doen?

    Alvast bedankt!

    Groeten, Hilbert

    • Willem Aandewiel says:

      Hilbert,

      Wat vervelend dat het uploaden fout is gegaan. Heb je enig idee wát er niet goed is gegaan?

      Ik gebruik voor de DSMR-logger meestal deze programmer. Let er dan wél op dat je de rode draad op de 5 volt pin (naast de RJ11 jack) aansluit. GND (zwarte draad) kun je op de GND naast de 5Volt aansluiten óf op de programmer port naast de 3v3 pin. De groende en witte draad is altijd even uitzoeken. Als je een time-out krijgt tijdens het flashen dan moet je groen en wit omdraaien.

      Succes!

      • Hilbert says:

        Dankje Willem. Het laden van de nieuwe firmware leek niet te gebeuren en elke pagina reageerde ook niet meer. Uiteindelijk maar uit gezet aangezien de logger toch niet te bereiken was.De enige reden om te upgraden naar de laatste firmware ( 1.03 -> 1.05) was trouwens dat de API niet meer werkte. Ken je dit probleem? Ik zal de programmer kopen. Via Arduino.ide kan je dit dan eenvoudig upgraden?

        Bedankt!

  48. Martin Schilder says:

    Hi

    Ik heb vandaag je bordje via opencircuit binnen gekregen ea netjes aangesloten op mn iskra meter maar geen enkele vorm van data. Dit terwijl mn homewizard kastje wel netjes ea ontvangt.. Enig idee wat er mis kan zijn?

  49. OWK says:

    Beste Willem
    Dank voor de 1.04 firmware!

    Tip voor het upgrade proces: als er een volgorde is voor het uploaden van de 2 bin bestanden, dan lijkt het logisch om de velden op de upload pagina ook in die volgorde te zetten. Nu staat ino.bin als eerste terwijl die als laatste aangeboden moet worden.
    Als beide bestanden vereist zijn dan misschien zelfs met een stap 1 en stap 2 label?

    Groet,
    OWK

    • Willem Aandewiel says:

      OWK,
      Bedankt voor de tip. Ik ga ermee aan de slag!

      • Ronald says:

        Hi Willem,

        Ik ben bezig om je project na te bouwen en hiervoor een print te ontwerpen waarop de ESP-12E via een adapterboard geplaatst kan worden.

        Om de pcb routing te vergemakkelijken wil ik graag GPIO12 vervangen voor GPIO15. Is het voldoende om in de software bij DTR_ENABLE 12 voor 15 te vervangen?

        Andere vraag, ik kan nergens in de software de setting voor GPIO13 vinden. Waar wordt die gedefineerd?

        Alvast dank voor je reactie.

        Groet,

        Ronald

        • Willem Aandewiel says:

          @Ronald,

          Je kunt GPIO12 vervangen door GPIO15, maar bedenk wel dat GPIO15 tijdens het opstarten “laag” moet zijn!

          GPIO13 wordt door het swap() commando gebruikt als seriële RXD poort. De ESP8266 core zorgt voor de juiste instellingen.

  50. Fokko says:

    Gelukt! 🙂

  51. Fokko Vos says:

    Hoi Willem,

    Voor de zekerheid mijn Tektronix oscilloscoop mar eens aan de P1 poort gehangen. Tot mijn verbazing zag ik geen data voorbij komen. na wat meting op de interface en aan het kabeltje naar de P1 poort constateerde ik dat daar de RTS niet contact maakte, dus ook geen Data kon spugen op de data pin! nadat ik dat probleem had verholpen kreeg ik zowaar data uit op mijn notebookscherm. Toch wil ik graag overstappen op jouw DSMRloggerWS versie om dat ik zag dat daar hiermee ook MQTT rapporten kunnen worden verstuurd, en aangezien ik met Domoticz werk lijkt me dat niet verkeerd. Ik ga mij eens verdiepen in jouw DSMRloggerWS en even een nieuwe interface bouwen. Heb ook sterke twijfels of wat er in mijn scherm verschijnt wel klopt. In de snapshots zie je wat ik in mijn scherm te zien krijg.

    • Fokko Vos says:

      En nog een snapshotje

      • Willem Aandewiel says:

        Fokke,

        Waarom denk je dat het niet klopt?

      • Fokko Vos says:

        Ik krijg bij het compileren van de V4 sketch een heel aantal foutmeldingen die ik niet kan thuis brengen.

        In file included from sketch\UpdateServer.cpp:20:0:
        
        UpdateServer.h:20:7: error: using typedef-name 'using ESP8266WebServer = class esp8266webserver::ESP8266WebServerTemplate' after 'class'
         class ESP8266WebServer;
               ^
        In file included from sketch\UpdateServer.cpp:17:0:
        
        C:\Users\jbfvo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\libraries\ESP8266WebServer\src/ESP8266WebServer.h:241:80: note: 'using ESP8266WebServer = class esp8266webserver::ESP8266WebServerTemplate' has a previous declaration here
         using ESP8266WebServer = esp8266webserver::ESP8266WebServerTemplate;
                                                                                        ^
        exit status 1
        using typedef-name 'using ESP8266WebServer = class esp8266webserver::ESP8266WebServerTemplate' after 'class'
        
        • Willem Aandewiel says:

          Fokke,

          Het is wél handig als je de, best wel uitvoerige, documentatie leest. Er staat écht héél duidelijk dat je de esp8266 core 2.5.2 moet gebruiken.

          • Fokko Vos says:

            Ah ja, inderdaad! had ik wel gelezen, maar vergeten weer te downgraden… sorry. Ga ik direct doen. 😉

  52. Fokko Vos says:

    Beste Willem,

    Ik heb jouw Slimme Meter project opgepakt. D e hardware was appeltje-eitje. Met de software ondervind ik echter problemen. De sketch heb ik met succes kunnen uploaden en ook daarna via de webbrowser kunnen configureren in mijn netwerk. Maar ik krijg geen data binnen waarschijnlijk omdat ik de SPIFFS nog niet had geflashed. Het probleem ontstaat bij het flashen van de SPIFFS. Na wat Googlen bleek dat er veel hobbyisten problemen hebben met het flashen van de ESP8266 of ESP-01 na update van het ESP8266 board in Arduino-IDE. De aanbevolen downgrades naar ESP8266 2.5.1. heeft geen positieve uitwerking. Inmiddels dan ook weer geupdate naar de laatste versie. Ondanks dat blijf ik de foutmelding SPIFFS upload failed! behouden. De bestanden staan in de juiste directories en de compoort communicatie loopt volgensmij ook goed. Ik weet het ff niet meer. Zou je mij verder kunnen/willen helpen?

    • Willem Aandewiel says:

      Fokke, natuurlijk wil ik je verder helpen maar of ik dat ook kán ..

      De laatste versie van de DSMRloggerWS firmware is getest met de Arduino IDE versie 1.8.10 en ESP8266 core 2.5.2. Ik zou die dan ook gebruiken. Ondertussen zijn er wat updates van het esptool.py verschenen. De DSMRloggerWS documentatie verwijst naar versie 4, wellicht dat je meer geluk hebt met een nieuwere versie. Je kunt er hier één uitkiezen.

      Dat je geen data binnenkrijgt heeft waarschijnlijk niet zoveel met SPIFFS te maken al zal de DSMR-logger zonder SPIFFS wel moeite hebben met het wegschrijven van de bestanden ;-). Heb je de instellingen voor SPIFFS wel goed staan (1MB / 256kB SPIFFS voor een Versie 3 DSMR-logger/ESP-01)? Sluit je ook de Serial Monitor van de IDE af vóórdat je SPIFFS probeert te flashen?

      Wat bedoel je met “de COM poort communicatie loopt goed“? Bedoel je telnet? Via de COM poort kun je alleen de eerste boodschappen zien, tot dat de Slimme Meter enabled wordt geloof ik.

      Als je nog meer hulp nodig hebt moet je ook wat meer informatie geven. Bijvoorbeeld de uitvoer van telnet als je “b”, “s” en “f” intoetst. Eventueel kun je met “p” ook kijken of er überhaupt telegrammen binnen komen. Maak er overigens géén plaatjes van. Die zijn niet of nauwelijks te lezen! Gewoon de uitvoer als tekst is veel leesbaarder!

      ——-
      Ok, ik zie nu pas dat je met DSMRloggerHTML werkt. Die kan met wat minder SPIFFS toe (al zou ik ook voor deze versie SPIFFS op 256kB zetten). Aan de melding die je krijgt te zien denk ik dat je de Serial Monitor niet hebt afgesloten. Met de Serial Monitor “open” lukt SPIFFS flashen niet!

      • Fokko Vos says:

        Hallo Willem,

        De serial monitor staat niet open hoor. Daar heb jij in jouw artikel ook nog nadrukkelijk op gewezen.
        Ik krijg nu nog steeds het onderstaande rapport:

        Arduino:1.8.10 (Windows 10), 
        Board:"Generic ESP8266 Module, 
        80 MHz, 
        Flash, 
        Disabled (new can abort), 
        All SSL ciphers (most compatible), 
        dtr (aka nodemcu), 
        26 MHz, 40MHz, 
        DOUT (compatible), 
        1MB (FS:256KB OTA:~374KB), 
        1, 
        nonos-sdk 2.2.1 (legacy), 
        v2 Lower Memory, 
        Disabled, 
        None, 
        Only Sketch, 115200"
        

        Ok, bovenstaande geeft nét geen beeld van waar die waardes voor staan. Op mijn systeem (iMac) ziet het er ietwat anders uit (denk ik).

        [SPIFFS] data    : C:\Users\jbfvo\AppData\Local\Arduino15\DSMRlogger2HTTP\data
        [SPIFFS] size    : 256
        [SPIFFS] page    : 256
        [SPIFFS] block   : 4096
        /index.html
        /index.js
        /PRDhours.csv
        /PRDmonths.csv
        /PRDweek.csv
        /TSThours.csv
        /TSTmonths.csv
        /TSTweek.csv
        
        [SPIFFS] upload  : C:\Users\jbfvo\AppData\Local\Temp\arduino_build_203348/DSMRlogger2HTTP.spiffs.bin
        [SPIFFS] address  : 0xBB000
        [SPIFFS] reset    : --before default_reset --after hard_reset
        [SPIFFS] port     : COM6
        [SPIFFS] speed    : 115200
        [SPIFFS] python   : C:\Users\jbfvo\AppData\Local\Arduino15\packages\esp8266\tools\python3\3.7.2-post1\python3.exe
        [SPIFFS] uploader : C:\Users\jbfvo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\tools\upload.py
        
        esptool.py v2.8
        
        Serial port COM6
        
        Connecting....
        
        Chip is ESP8266EX
        Features: WiFi
        Crystal is 26MHz
        MAC: bc:dd:c2:23:e3:4d
        Uploading stub...
        Running stub...
        Stub running...
        Configuring flash size...
        Auto-detected Flash size: 1MB
        Compressed 262144 bytes to 8804...
        
        Writing at 0x000bb000... (100 %)
        Wrote 262144 bytes (8804 compressed) at 0x000bb000 in 0.8 seconds (effective 2689.3 kbit/s)...
        
        Traceback (most recent call last):
          File "C:\Users\jbfvo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.3\tools\upload.py", line 65, in 
            esptool.main(cmdline)
          File "C:/Users/jbfvo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 2938, in main
            operation_func(esp, args)
          File "C:/Users/jbfvo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 2398, in write_flash
            res = esp.flash_md5sum(address, uncsize)
          File "C:/Users/jbfvo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 104, in inner
            return func(*args, **kwargs)
          File "C:/Users/jbfvo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 691, in flash_md5sum
            timeout=timeout)
          File "C:/Users/jbfvo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 369, in check_command
            val, data = self.command(op, data, chk, timeout=timeout)
          File "C:/Users/jbfvo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 347, in command
            p = self.read()
          File "C:/Users/jbfvo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 292, in read
            return next(self._slip_reader)
          File "C:/Users/jbfvo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.6.3/tools/esptool\esptool.py", line 2045, in slip_reader
            raise FatalError("Timed out waiting for packet %s" % waiting_for)
        esptool.FatalError: Timed out waiting for packet header
        
        SPIFFS Upload failed!
        
        • Willem Aandewiel says:

          Fokke,
          Dank voor de extra info. Het probleem is dat ik al heel lang niets meer met DSMRloggr2HTTP heb gedaan.
          De timeout zou erop kunnen wijzen dat het esptool geen verbinding met de ESP-01 kan maken.

          Ik zie wel dat je de esp8266 core 2.6.3 gebruikt…. Krijg je daar de DSMRlogger2HTTP firmware mee gecompileerd?

          Is er een reden waarom je niet overstapt naar DSMRloggerWS? Die heeft wat meer mogelijkheden en de firmware is ook met wat recentere tools (Arduino IDE 1.8.10, esp8266 core 2.5.2) getest.

  53. Johan Hellinx says:

    Dag Willem,

    De meters zijn hier ongeveer 1,5 maand geleden geinstalleerd.
    Elektriciteitsmeter is een Sagemcom S211 (1-fasig) en de gasmeter een Flonidan Uniflo G4SRTV. Dit zijn de meters die Fluvius momenteel in België installeerd bij hun klanten. Na wat opzoekwerk online ben ik op een document terechtgekomen die vermeld dat de gebruikerspoort ingericht is vlg het Nederlands concept. nl. 5.0.2 P1 companion standard.
    Ik heb ondertussen wel gevonden welk bestand ik zou moeten aanpassen van die DSMR bibliotheek, maar ik heb de aanpassingen nog niet uitgevoerd. Ben momenteel nog wat in de handleidingen van die DSMR5.0.2 aan het lezen. Misschien dat ik nog andere aanpassingen aan die bibliotheken zou moeten doen?
    Alvast bedankt voor uw antwoord

    Mvg
    Hellinx Johan

    • Pauwel Demeyer says:

      Johan,

      Ik heb zelf ook de dsmr-bibliotheek aangepast, en staat gecommit in een fork (https://github.com/pdemeyer/arduino-dsmr), met een pull-request naar de repo van Matthijs. De gasmeting wordt ingelezen via “gas_delivered_non_temp_converted” ipv “gas_delivered”. In de dsmr-logger moet je niets aanpassen. Er komen automatisch nieuwe MQTT topics bij.

  54. Johan Hellinx says:

    Hey,
    Wat een knap project. Ik heb zonet de V4.5 ontvangen en geinstalleerd in BE op een meter van Fluvius. Elektriciteitsdata komt dadelijk binnen en werkt perfect.
    Maar bij de gas zit ik wel met een probleem. Deze data komt niet correct binnen.

    Restapi Get actuel geeft me hetvolgende: (Dus 0 voor gas)

    {
     "Timestamp":"200104202349W"
    ,"Energy_Delivered":"342.724"
    ,"Energy_Returned":"0.026"
    ,"Gas_Delivered":"0.00"
    ,"Energy_Delivered_Tariff1":"180.802"
    ,"Energy_Delivered_Tariff2":"161.922"
    ,"Energy_Returned_Tariff1":"0.001"
    ,"Energy_Returned_Tariff2":"0.025"
    ,"Power_Delivered":"0.361"
    ,"Power_Returned":"0.000"
    ,"Voltage_l1":"240.7"
    ,"Current_l1":"1"
    ,"Voltage_l2":"0.0"
    ,"Current_l2":"0"
    ,"Voltage_l3":"0.0"
    ,"Current_l3":"0"
    ,"Power_Delivered_l1":"0"
    ,"Power_Returned_l1":"0"
    ,"Power_Delivered_l2":"0"
    ,"Power_Returned_l2":"0"
    ,"Power_Delivered_l3":"0"
    ,"Power_Returned_l3":"0"
    }
    

    Maar als ik dan via telnet connecteer en hier P ingeef, krijg ik dit:

    /FLU5\253770234_A
    
    0-0:96.1.4(50213)
    0-0:96.1.1(3153414731313030303331373636)
    0-0:1.0.0(200104202329W)
    1-0:1.8.1(000180.802*kWh)
    1-0:1.8.2(000161.920*kWh)
    1-0:2.8.1(000000.001*kWh)
    1-0:2.8.2(000000.025*kWh)
    0-0:96.14.0(0002)
    1-0:1.7.0(00.364*kW)
    1-0:2.7.0(00.000*kW)
    1-0:32.7.0(240.9*V)
    1-0:31.7.0(001*A)
    0-0:96.3.10(1)
    0-0:17.0.0(999.9*kW)
    1-0:31.4.0(999*A)
    0-0:96.13.0()
    0-1:24.1.0(003)
    0-1:96.1.1(37464C4F32313139303935333131)
    0-1:24.4.0(1)
    0-1:24.2.3(200104202004W)(00385.264*m3)
    

    Op de laatste regel zie ik hier wel de gasmeterstand, (385.264) maar deze zie ik dus niet in de DSMR logger.

    Hier ook nog even de Devinfo via restapi

    {
     "Identification":"FLU5\253770234_A"
    ,"P1_Version":""
    ,"Equipment_Id":"3153414731313030303331373636"
    ,"Electricity_Tariff":"0002"
    ,"Gas_Device_Type":"3"
    ,"Gas_Equipment_Id":"Unknown"
    ,"Author":"Willem Aandewiel (www.aandewiel.nl)"
    ,"FwVersion":"v1.0.3c (22-11-2019)"
    ,"Compiled":"Nov 22 2019  11:55:17"
    ,"FreeHeap":"7312"
    ,"maxFreeBlock":"6496"
    ,"ChipID":"c2fce7"
    ,"CoreVersion":"2_5_2"
    ,"SdkVersion":"2.2.1(cfd48f3)"
    ,"CpuFreqMHz":"80"
    ,"SketchSize":"545.953kB"
    ,"FreeSketchSpace":"2524.000kB"
    ,"FlashChipID":"001640EF"
    ,"FlashChipSize":"4.000MB"
    ,"FlashChipRealSize":"4.000MB"
    ,"FlashChipSpeed":"40.00MHz"
    ,"FlashChipMode":"DOUT"
    ,"BoardType":"ESP8266_GENERIC"
    ,"SSID":"telenet-1629389"
    ,"IpAddress":"192.168.xxx.yyy"
    ,"WiFiRSSI":"-22"
    ,"Hostname":"DSMR-WS"
    ,"upTime":"0(d):03(h):14"
    ,"TelegramCount":"933"
    ,"TelegramErrors":"1"
    ,"lastReset":"External System"
    }
    

    Heb je enig idee hoe ik die gaswaarde wel kan zien in de DSMR logger?
    Alvast bedankt

    • Willem Aandewiel says:

      Johan,

      Je meter geeft deze obis-id af voor de gas meting:

      0-1:24.2.3(200104202004W)(00385.264*m3)
      

      Terwijl de dsmr bibliotheek deze verwacht:

      0-1:24.2.1(180409095501S)(17685.314*m3)
      

      Er zit niets anders op dan de dsmr bibliotheek hierop aan te passen …

      Nu ik er wat beter naar kijk.. is het wel een Slimme Meter met dsmr 4.0 of hoger?
      Ik mis allerhande informatie zoals, o.a., de P1 versie! Ook de power_delivered_l1/2/3 zijn “0” terwijl power_delivered niet nul is…

      • Hellinx Johan says:

        Dag Willem,

        De DSMR v4.5 logger werkt na enkele wijzigingen perfect met de Belgische slimme meters van Fluvius. Elektriciteitsmeter is een Sagemcom S211 (1-fasig) en de gasmeter een Flonidan Uniflo G4SRTV.

        De wijzigingen die ik uitgevoerd heb zijn de volgende:

        – RJ12 werkt niet. Krijgt niet voldoende van de Slimme meter; via een externe voeding gaat het natuurlijk wel.
        – De DSMR bibliotheek heb ik inderdaad wat moeten aanpassen. (Enkel de fields.h)
        – Dan de firmware opnieuw compileren met de optie SM_HAS_NO_FASE_INFO actief en OTA uploaden naar de DSMR.

        Hierna werkt alles wel ok.

        Mvg

        • Willem Aandewiel says:

          @Johan,

          Wat fijn om te lezen. Je bent zelf best ver de diepte in gegaan begrijp ik!!!

          Wel vreemd dat de SM niet voldoende stroom levert. In de specificatie staat toch écht dat hij 250mA moet leveren en pas bij 300mA mag stoppen. Zoveel trekt de DSMR-logger écht niet!

          • Hellinx Johan says:

            Hey Willem,

            Ik heb net nog eens geprobeerd met een andere RJ12 kabel en met deze werkt het wel.
            Ik heb ook de oude kabel eens doorgetest met een tester en ja pin 6 maakte geen verbinding, dus het werkt wel degelijk met een RJ12. Ik had gewoon een slechte kabel…

        • Dennis Kuppens says:

          Hallo Johan,

          Ik heb zelf ook een nieuwe electriciteitsmeter van Fluvius. Welke wijzigingen heb je precies gemaakt? Zou je die beschikbaar willen maken. Het liefst gecompileerde firmware zodat de logger ook voor belgische klanten van Fluvius werkt? Bij voorbaat dank.

          @Willem, staat ondersteuning voor onze belgische meter al op de ‘roadmap’ voor een volgende versie?

          • Willem Aandewiel says:

            @Dennis,
            Er zijn een aantal mensen die de arduino-dsmr library hebben aangepast voor de Belgische “Slimme Meter”. Omdat ik dat niet kan testen wil ik ook geen binary’s daarvan beschikbaar stellen. Wellicht dat één van de mensen die deze aanpassingen hebben gemaakt een binary voor je wil maken. Je moet daarvoor zelf contact met ze opnemen.

          • Robert van den Breemen says:

            @dennis,
            Ik heb de library die zou moeten werken voor je. Kan jij die dan uitproberen (ik woon in NL) en dat terug melden. Als dat werkt, dan kan ik namelijk voor firmware 1.04 het zo maken dat het werkt in Belgie.
            Groet
            Robert

          • Dennis Kuppens says:

            Hallo Robert,

            Ik wil graag helpen met het testen van de firmware.

            Groet,
            Dennis.

  55. Frans van der scheer says:

    Geweldig project l; software, hardware, documentatie, uitleg ziet er allemaal goed verzorgd uit, compliment. Nog wel paar zaken om eens naar te kijken aub.

    gebruik esp12 maar versie 2.5.0 geeft compiler fouten. 2.5.2 compileert wel zonder problemen (wel een waarschuwing). Lastige is dat 2.5.2 niet toe staat dat de flash via een usb kabel wordt gedaan. bug vanaf 2.5.1 en dat is weer 0pgelost ergens in 2.6.x en tot 2.5.0 moet het ook werken.

    Wil de wifi SSID wijzigen, maar …….. als er iets mis gaat kan ik er niet meer in met de huidige 2.5.2 versie en kan ik ook niets meer via OTA wijzigen. Zag ook dat het access point niet meer opkomt als de wifi verbinding uitvalt ; had eigenlijk gehoopt dat dit zou gebeuren zodat ik daarmee de wijziging kon aanbrengen.

    Zou goed zijn als er weer een mogelijkheid komt om via usb te flashen, dan gaat het altijd goed. Mogelijk snelst om even te checken waarom versie 2.5.0 mis gaat?

    • Willem Aandewiel says:

      Frans,

      Dank voor het compliment.

      Je kunt het beste esp8266 core 2.5.2 gebruiken. Daar is de laatste firmware mee ontwikkelt. Core 2.6.n compileert niet.

      Ik snap niet hoe je erbij komt dat de firmware met core 2.5.2 niet via USB te flashen is. Ik doe dat regelmatig zonder problemen (met een USB naar tty adaptor of een eenvoudige programmer).

      Als de DSMRloggerWS geen verbinding met WiFi kan maken start hij automatisch een AP op waar je de (nieuwe) credentials kunt invoeren.

      Upload via de update server werkt ook prima (als je een WiFi verbinding hebt).

      Als je de WiFi credentials wilt verwijderen kun je inloggen met telnet en dan de optie “W” (hoofdletter!) selecteren.

      Misschien moet je duidelijker beschrijven wat je probleem is.

  56. Jochem Steenbakkers says:

    Na het upgraden naar 1.0.4 krijg ik de waardes niet meer te zien in Home Assistant. Is er misschien iets mis/veranderd met de MQTT berichten?

    • Willem Aandewiel says:

      Jochem,

      Inderdaad, de structuur van de berichten is veranderd. Ik moet de documentatie daar nog op aanpassen.

      De Json string per rubriek ziet er nu zo uit:

      {"power_delivered_l1":[{"value":0.078,"unit":"kW"}]}
      {"timestamp":[{"value":"191231073754W"}]}
      
      • Jochem Steenbakkers says:

        hmm ok, ik weet zelf niet hoe ik dit aan moet passen. Ik weet hier te weinig van. Enig idee wanneer de documentatie aangepast is. Of kun je kort zeggen wat ik moet veranderen?

  57. Robert van den Breemen says:

    Ceriel,

    Ik heb er zelf voor gekozen om alle data te loggen op het maximale resolutie, dat is elke 10 seconden. De logger zorgt voor betrouwbare MQTT berichten. Die kan je dan oppikken met je favoriete oplossing. In mijn geval, Home Assistant, en dan weer door InfluxDB uitlezen, zodat je een database opbouwt met de hoogst mogelijke resolutie.

    Ik besef me dat je dan wat meer nodig hebt dan de DSMR logger, maar goed, het is wel hoe ik het oplos. Het feit dat dat de DSMR logger betrouwbaar data logt, MQTT aanmaakt en via Wifi uitleesbaar was is voor mij de reden geweest om Willem’s project te gebruiken.

    Groet,
    Robert

    • Ceriel says:

      Hoi Robert,

      Bedankt voor jouw suggestie. Na het teruglezen van eerdere post was ik hem al tegengekomen: de Pi met Home Assistant plus InfluxDB plus Grafana. Lijkt dit op de manier zoals jij Grafana aan de praat krijgt? Of die je dat compleet anders?

      Groeten, Ceriel

      PS Willem: Dropboxen en (i)Clouds gebruik ik bewust niet.

  58. Ceriel says:

    Willem, wat ik mij verder nog afvraag: heb je een schakelende DC DC conversie overwogen (zoals 300mA TPS62240 of 600mA TPS62260) in plaats van een LDO (MCP1700-3302E)?

    Bij 90% efficiëntie levert dat continu 0,250 × 5 × 0,9 = 1,125W ÷ 3,3 ≍ 341 mA op 3.3V

    • Willem Aandewiel says:

      Ceriel,

      Bedankt voor het compliment!

      Eén data record is 80 bytes. Er is ongeveer 800kb vrij op het SPIFFS. Dus ruimte is het probleem niet.
      Wat wel een probleem is, is de bestands-structuur. Zoals die in de webSocket firmware is opgezet is het niet aan te raden langere periodes op te slaan.

      Bij de firmware die ik nu aan het ontwikkelen ben is het eenvoudig één define in de code waarmee je kunt aangeven hoeveel metingen je wilt vastleggen en dat werkt snel en efficiënt. Daarnaast kun je via api’s alles wat er uit de Slimme Meter komt opvragen. Als jouw meter die spanning en stroom per fase afgeeft kun je die dus ook via een api opvragen. Eventueel de bestandsstructuur (met die extra velden) aanpassen wordt in de nieuwe firmware ook vrij eenvoudig..
      .. maar ik ben nog in een héél prematuur stadium met de ontwikkeling. Gaat nog wel twee a drie maanden duren. Eventueel kun je de ontwikkel versie natuurlijk zelf al van github halen.

      Op github heb ik ook een library gezet waarmee je gegevens kunt loggen. Die zou je voor die uitzonderingen mooi kunnen gebruiken!

      De Slimme Meter levert maximaal 250mA bij 5 volt. De ESP8266 vraagt maximaal 200mA á 250mA tijdens het aanmelden bij een WiFi AP. Normaal gebruik is zo’n 80mA. De LDO is goedkoop en ruim bemeten voor zijn taak.

      • Ceriel says:

        Met 80 bytes en 800kb kom ik op ruim 10.000 records. Bij één record per dag komt dat overeen met ruim 28 jaar. Mijn doel is 16 jaar historie, dus dat gaat lukken met wat extra ruimte voor aggregatie per maand, wat recente details per kwartier, en nog wat excepties. Voor echt veel historische details te bewaren, is er een andere oplossing nodig.

    • Willem Aandewiel says:

      Ceriel,

      Toch denk ik niet dat de DSMR-logger/ESP8266 geschikt is om dit in zijn eentje te doen. Ik neem tenminste aan dat je ook nog iets met die historische gegevens wilt dóen. Dan kun je beter de data beperkt op de DSMR-logger bewaren (bijv. een uur/week/maand) en via een api call de aanwezige historie automatisch naar een echte computer uploaden en daar de bewerkingen doen en de data naar de cloud kopieëren (iCloud, DropBox you name is).

      Anyway: mogelijkheden zat.

  59. Ceriel says:

    Hoi Willem, een mooi project vindt ik dit. Met name de keuze om het bord bus-powered te maken. Zelf zou ik wat telegramdata uit een 3-fase Sagemcom T210-D willen bewaren. Het gaat om een meter van een PV-productieinstallatie, dus gasverbruik is niet aan de orde.
    De schermafbeeldingen lijken slechts met één jaar te vergelijken. Ik wil graag (1) meer historie qua jaren bewaren en (2) uitzonderingen, zoals spanning buiten -10 en +15% en fasestroom > 80A, met detailtijdstempel loggen. En deze data ook nog via de webinterface toegankelijk maken, zonder dat iemand kan schrijven (alleen lezen).

    Kun je een idee geven met welke snelheid met hw 4.5 + sw 1.0.4 het 940 kB bestandsysteem vol loopt? Oftewel hoeveel jaar historie past er in de opslagruimte bij jouw standaard opzet?

  60. Willem Aandewiel says:

    Upgraden naar de DSMRloggerWS v1.0.4 firmware.
    ================================================

    Er zijn drie manieren om vanaf versie v0.4.7 of hoger te upgraden naar v1.0.4

    1)
    Via de upload firmware pagina kun je zowel het SPIFFS filesysteem (..spiffs.bin) alsook de firmware (..ino.bin) flashen. Wél in deze volgorde want de firmware heeft bestanden die op het filesysteem staan nodig!
    Nadeel van deze methode is dat je de historische bestanden kwijt raakt.

    2)
    Als 1 alleen download je eerst de PRD..csv bestanden (3 bestanden) naar je computer. Na het flashen van SPIFFS en de firmware upload je de 3 bestanden weer naar de DSMR-logger. Niet vergeten direct na het uploaden van de 3 bestanden de DSMR-logger resetten!

    3)
    Je flashed alleen de ..ino.bin firmware en upload daarna alle .html, .js en .css bestanden uit de data-map naar de DSMR-logger. De aanwezige PRD..csv bestanden laat je ongemoeid. Niet vergeten na het uploaden van alle bestanden de DSMR-logger te resetten!

  61. Om te beginnen wensen wij iedereen een mooie jaarwisseling. Happy 2020!

    En eindelijk!
    Versie v1.0.4 van de DSMRloggerWS firmware is gereleased.
    Wij raden iedereen aan om naar deze release over te stappen omdat we erg ons best hebben gedaan om het geheugenbeslag van deze release te verkleinen, wat de stabiliteit ten goed komt! Tevens is er standaard een integratie met Mindergas.nl toegevoegd.

    Dit is ook meteen de láátste DSMR firmware die op webSockets is gebaseerd.

    Alle files van deze versie (inclusief de binaries) kun je hier vinden.
    Bekijk ook de aangepaste documentatie!

    API’s zijn de toekomst en in het nieuwe jaar gaan we druk aan de slag met een versie die helemaal uit te vragen en te configureren wordt via restAPI’s.

  62. george Nadort says:

    Hoi Willem,
    Bedankt voor je reactie IK wacht op V1.0.4. MQTT ken ik niet
    Groeten

  63. Jochem says:

    Ik moest de firmware zelf compilen, omdat ik een oudere meter heb. Het is me gelukt om de dsmr logger te verbinden en ik krijg data.
    Alleen staat in het info scherm
    Free Heap 7264 / max.Blck 5920 te laag!
    in het rood. Wat kan ik daar aan doen?

    • Willem Aandewiel says:

      Jochem,
      Als de freeheap zo laag blijft zou je de opties die je niet nodig hebt uit kunnen schakelen.
      De nieuwste versie die einde 2019 uitkomt is geoptimaliseerd om meer heap space vrij te maken.

      • Jochem Steenbakkers says:

        Ok, bedankt. Ik zal eens kijken.
        Je bedoelt waarschijnlijk de #defines?
        Eind 2019 is niet lang meer wachten 😉

    • Willem Aandewiel says:

      Firmware V1.0.4 met MQTT en Mindergas enabled

  64. George Nadort says:

    Hoi Willem.
    De logger werkt perfect. Alleen wil ik graag een logbestand (CSV file) over een langere periode per 10 seconden. Is dit mogelijk. ( de overige loggingen zijn dan niet nodig)
    Vast bedankt.

    • Willem Aandewiel says:

      Hi George,
      In principe is alles mogelijk.
      Binnenkort releasen we V1.0.4. Via MQTT kun je alle gegevens uit de Slimme Meter uitlezen. Alleen of dat ook per 10 seconden lukt durf ik niet te garanderen.

      Je kunt de firmware natuurlijk helemaal aan je eigen behoefte aanpassen. Als je alles weghaalt wat je niet nodig hebt en alleen de zaken logt die voor jou van belang zijn moet je een heel eind kunnen komen.

      Wellicht moet je nog even geduld hebben. Wij zijn op dit moment druk bezig met een re-design waarbij we alle gegevens alleen nog maar via MQTT en api call’s beschikbaar stellen.

      • Robert van den Breemen says:

        George,

        De MQTT versie kan elke 10 seconde de Telegrams doorsturen. Dat is het laatste wat je momenteel kan instellen. Je kan dan bijvoorbeeld met MQTT communiceren naar Home Assistant, en als je dat dan combineert met InfluxDB en Grafana, kan je prachtige logs opbouwen van je verbruik en mooie grafieken maken.

  65. Jelmer de Jong says:

    Hoi willem,

    dat klopt ik bedoel voor het inloggen van de dsmr site dat je daar een pop up krijgt in je browser om in te loggen voor je je gegevens ziet. als je iets met telnet wil bekijken is dat toch wat voor gevorderden, normale mensen weten daar toch niks van:).
    ik ben zelf al een beetje bezig geweest alleen kom niet echt uit het programmeer skilss van jouw 😉 ben nog wat een beginner.

    zou willem mij daar in kunnen helpen?

    dit heb ik gemaakt
    Nieuw tablad: Autentication

    #ifdef AUT_C 
    #include 
    #include 
    #include 
    #include 
    
    ESP8266WebServer        httpServer (80);
    String header;
    
    #endif
    //===========================================================================================
    void startAuthC() {
    //===========================================================================================
    
      WiFiClient  wifiClient;
    #ifdef AUT_C 
      if (wifiClient) { // als er een nieuwe client binnen komt
        DebugTln("Nieuwe Client."); //
        String currentLine = ""; //maak een string voor een komende client
        while (wifiClient.connected()) 
        { // loop 
          if (wifiClient.available()) { // een byte lezen van de client
            char c = wifiClient.read(); // lees 1 byte en dan
            Serial.write(c); // print serial
            header += c;
            if (c == '\n') { // als de byte een nieuweline-teken is
              // stuur een reactie:
              if (currentLine.length() == 0) {
                // controleer de header
                // dXNlcjpwYXNz = 'user:pass' (user:pass) base64 encode
                // Het vinden van de juiste inlogreeks en laadt vervolgens de webpagina
                if(header.indexOf("dXNlcjpwYXNz") >= 0) {
                  ???????
                }
    
                else { 
                  client.println("HTTP/1.1 401 Unauthorized");
                  client.println("WWW-Authenticate: Basic realm=\"Secure\"");
                  client.println("Content-Type: text/html");
                  client.println();
                  client.println("Authentication failed");
                  break;
                } 
              } else { // Als je een nieuwe regel hebt, wis dan currentLine
                currentLine = "";
              }
            } else if (c != '\r') { // als je iets anders hebt,
              currentLine += c; // voeg deze toe aan het einde van de huidige regel
            }
          }
        }
        // Clear de header 
        header = "";
        // stop connectie
        client.stop();
        Serial.println("Client gestopt.");
        Serial.println("");
      }
    #endif
    }
    

    Groet, Jelmer de Jong

  66. Jelmer de Jong says:

    Beste Willem,

    Ik heb een vraag,
    kan er op het in loggen een authenticatie komen? als je inlogt je een wachtwoord met gebruiker moet invoeren?
    zoals: Admin
    PassW: admin

    als er iemand in je wifi zit kunnen ze zo je gebruiks gegevens inzien:).

    misschien een idee voor de volgende update?

    Met vriendelijke groet,

    Jelmer de Jong

    • Willem Aandewiel says:

      Jelmer,

      Telnet is een protocol zonder username en password.
      Daarnaast is de ESP8266 niet krachtig genoeg voor een SSH encryptie.

      • Robert van den Breemen says:

        Kleine aanvulling:
        Telnet wordt als debug kanaal voor de firmware gebruikt, een soort serial over telnet zeg maar, als je de USB aangesloten zou houden, zou je exact dezelfde output lokaal kunnen zien op je PC via de serialmonitor.

        De telnet is vooral bedoeld voor lokale debugging doeleinden (alleen lokaal). We zouden nog een “no-debug” kunnen bedenken, maar dat maakt het ondersteunen van gebruikers weer ingewikkelder.

        Het punt is wel dat de logger in je interne netwerk draait, en eigenlijk ook niet afhankelijk moet zijn van beveiligingsfuncties. Kan je uitleggen waartegen je wilt afschermen?

        Groet,
        Robert

        • Jelmer de Jong says:

          Hoi robbert!

          Wou graag dat de website een wachtwoord heeft,
          dat er mensen in je netwerk op de wifi zitten dat zij geen toegang kunnen krijgen in jouw verbruik;-)

    • Robert van den Breemen says:

      Hi Jelmer,
      Goed idee. Een simpele authenicatie voor de HTTP server zou moeten kunnen. Echter het afschermen met TLS op de 8266 te laten draaien zal moeilijk blijken. De oorzaak is vooral dat er weinig vrij HEAP over is en encryptie nogal een taak is.

      Misschien toch maar eens het hardware ontwerp omzetten naar een ESP32.

      Robert

      • Jelmer de Jong says:

        Ja dat zat ik ook al te denken! een upgrade naar esp 32.
        ik heb het een en andere al geprobeerd maar het lukt mij nog niet.
        leuk dat er meer mensen intresse in hebben!

        Gr, Jelmer de Jong

      • Jelmer de Jong says:

        Heb het web design ook flink onderhanden genomen!
        wil het graag even laten zien maar hoe upload je een foto hier?

        Gr Jelmer.

        • Robert van den Breemen says:

          Wat heb je exact aangepast aan het webontwerp?

          • Jelmer de Jong says:

            Hoi Robert,

            ik heb de hele style verandert. deze is ook geschikt voor je mobiel nu, hij past automatische de resolutie aan met dag en nachtmodus wat nu helemaal in is op ios devices. daar bij heb ik nog wat extra opties in de code gemaakt en ik ben bezig met een esp32 printplaatje voor die authenicatie.

          • Jelmer de Jong says:

            Wit modus

          • Jelmer de Jong says:

            Grafiek

  67. Erik says:

    Beste Willem,

    Ik ben met DSMRLogger v4.5 bezig, nog niet aan de slimme meter maar via een usb aan mijn laptop van prik voorzien. Ziet er goed uit.
    Om mqtt te testen heb ik de software opnieuw gecompileerd met de optie HAS_NO_METER enabled. Na OTA flashen start de DSMRLogger weer netjes op.
    Ik zie dat ik v1.0.4 draai (ipv 1.0.3c) en dat er csv bestanden gevuld worden. Grafiekje verschijnen.
    Er gaat echter iets niet goed, de verbinding valt telkens weg en in het debug venstertje krijg ik:

    [16:02:51]
    [16:02:51] WebSocket(‘ws://192.168.178.42:81/’, [‘arduino’])
    [16:02:51] bootsTrap()
    [16:02:54] DebugMode checked!
    [16:02:56] newTab: tabSettings
    [16:03:11] Error: [object Event]
    [16:03:11]
    [16:03:11] Disconnected!
    [16:03:11]

    te lezen.

    Om de zoveel seconden gaat het blauwe LED weer aan en blijft het even branden. Daarna gaat het weer uit en valt de verbinding weer weg. Het lijkt allemaal heel traag te werken.

    Ik kan met wat pogingen wel weer OTA flashen, terug naar v1.0.3c zonder HAS_NO_METER en dan lijkt het weer te werken.
    Enig idee wat er fout gaat?

    Gr. Erik

    • Willem Aandewiel says:

      Erik,
      V1.0.4 is nog in alpha test en niet productie rijp!
      Om meer inzicht te krijgen in wat er eventueel fout gaat kun je beter telnet gebruiken.
      V1.0.3c (main branch) kun je óók met HAS_NO_METER compileren.
      Ik ben wel nieuwsgierig of je dan ook problemen krijgt.
      Via een ander command window kun je ook “ping 192.168.178.42” invoeren en dan kun je zien of je een stabiele verbinding hebt (hoe korter de trip tijd is hoe beter)

      • Erik says:

        Ik had V1.0.3c ook met HAS_NO_METER gecompileerd maar ben er niet achter gekomen wat er fout ging. Na verwijderen van de TST bestanden en nogmaals compileren (zonder HAS_OLED_SSD1306) gaat het weer goed.
        De ping is redelijk, telnet werkt prima.
        Blij dat het weer werkt, nu mqtt nog testen 🙂

        Gr. Erik

      • Robert van den Breemen says:

        Hi Erik,
        Ik heb zowel de main branch als de alpha branch, met has_no_meter draaien zonder problemen. Het is mij niet helemaal duidelijk de versie die je had zo instabiel was.

        Lees dat dit bij jou ook werkt op dit moment. Draait jouw MQTT broker ook weer naar behoren?

        • Erik says:

          Robert,

          Ja, nu ik het teruglees was mijn tekst niet heel duidelijk 🙂
          Ik merk onder zowel 103c als 104 dat het heel erg traag wordt met HAS_NO_METER en dat ik telkens een disconnect krijg tijdens het testen.

          Er stond een bin file (SPIFFS), die heb ik weggehaald en nu lijkt het beter te gaan, ruimte gebrek?

          Ik heb de code van 103c wat aangepast om ook bij HAS_NO_METER mqtt berichten te versturen, dat werkt prima.

          Gr. Erik

          • Willem Aandewiel says:

            Erik,
            Als je het spiffs.bin file op je spiffs filesysteem hebt ge-upload heb je zéker een ruimte probleem. Dat spiffs.bin file is n.l. het hele filesysteem met alle noodzakelijke bestanden daarin .. en 1Mb groot.
            De bedoeling is dat je de spiffs.bin naar de DSMR-logger flashed (bedraad of met de updat server via de onderste selectie en flash knoppen!

  68. Ype says:

    Beste Willem,

    Ik heb de DSMRlogger V4.5 gekregen (de geassembleerde en geprogrammeerde versie). Het lijkt mij een mooie DIY manier om met mijn energie gebruik te kunnen spelen, zeker als ik het later kan combineren met enkele buiten en binnen sensoren. Ik geef meteen toe dat dit nu nog een vergezicht is, want het aansluiten van de DSMRlogger blijkt al weerbarstig. Dit ligt natuurlijk vooral aan mijn kunsten/inzicht die ik met dit kerstproject langzaam wat hoop te ontwikkelen.

    1e poging: erg gebeurt na aansluiten niks: wel 5 volt over de buitenste draden van de 6 aderige kabel maar verder nergens spanning. Na tijdje verder doormeten blijkt dat deze versie standaard ingesteld staat op spanning vanuit externe jack en niet vanuit de SM? Klopt dit?

    2e poging (na schakeling omzetten van jack naar SM). Rode led gaat kort 1 tel aan, blauw led knippert 1 keer. Verder niks. Als ik op reset knop druk herhaalt dit zich. Geen knipperende lichtjes geen rode led.

    Wat mij (te laat) opviel is dat de oled display (die standaard aangeraden wordt op de verkoopsite en waarvan ik dus onterecht dacht dat die wel zou passen) idd de v3v en grnd heeft omgedraaid vergeleken met de voorbeelden hierboven.

    Hier zit ik nu even vast. Moet ik me gaan verdiepen in hoe ik de software opnieuw moet gaan uploaden (en daar de tools voor aanschaffen); heb ik door het verkeerd aansluiten van de oled al onherstelbare schade toegebracht, is er misschien nog een switch die ik moet omzetten, of moet ik toch opzoek naar een externe voeding?

    Bedankt voor beginnerstips, Ype

    • Willem Aandewiel says:

      Ype,
      Het lijkt er inderdaad op dat de voeding van de Slimme Meter zich zelf uitschakelt. Dat het oled scherm de aansluitingen andersom heeft zal zeker niet geholpen hebben. Ik hoop dat er niet iets kappot is gemaakt.
      Heb je geprobeerd om de meter te starten zónder oled scherm? Je kunt de sporen onder het PCB bij (ik meen) J2 en J3 onderbreken en dan met jumper draadjes de juiste verbindingen maken.
      Geeft de SM ook zonder oled scherm niet voldoende stroom dan is een externe voeding inderdaad noodzakelijk.

      De software opnieuw flashen lijkt mij vooralsnog niet aan de orde!

  69. Peter says:

    Hallo Willem,

    Zelden heb ik zo’n gedegen bouw- en installatieinstructie gezien op internet. Dank!
    Inmiddels heb ik de v4 werkend met een nodemcu op een breadboard.
    Meest interessant vind ik het actuele verbruik om te kunnen achterhalen wat voor invloed veranderingen en bepaalde apparaten in mijn huis hebben op het verbruik. Ik mis echter het actuele gasverbruik. Uit jouw commentaar maak ik op dat dit verbruik in de telegrammen slechts 1x per 5 minuten wijzigt. Maar dit zou ik al erg waardevol vinden: een volume per 5min. Zou ik dit zichtbaar kunnen krijgen in de “actuele” grafiek? Ik kan enigszins firmware programmeren met de Arduino IDE, maar heb geen ervaring met grafische gebruiksinterfaces programmeren.

    • Willem Aandewiel says:

      Peter,
      De gegevens zitten allemaal in de DSMR-logger in de PRD-tabellen. De grafieken worden in de GUI opgebouwd en daar kun je alles in aanpassen of toevoegen. Het zijn de DSMRlogger.html .js en .css bestanden. De meeste graphics zitten in DSMRgraphics.js.
      Eat your hart out!

    • Willem Aandewiel says:

      Peter,
      Het gasverbruik (meterstand) wordt wel naar de MQTT broker gestuurd. Met MQTT kun jehen dus uit de logger halen.

      • Peter Kooren says:

        Hallo Willem,
        Dank voor je reacties. Ik ga ermee aan de slag. Ik laat nog weten of het is gelukt.

  70. Willy Verbiest says:

    Hallo Willem,
    Ik heb hier in Gent ook een digitale meter gekregen.
    Volgens de gevonden documentatie is de P1 interface gebouwd naar het voorbeeld van Nederland.
    Ik kan reeds de boodschappen inlezen in een ESP8266 maar met de CRC lukt
    het langs geen kanten.

    Hier een voorbeeld van een ontvangen bericht:

    /FLU5\253769484_A

    0-0:96.1.4(50213)
    0-0:96.1.1(3153414733313030303638373236)
    0-0:1.0.0(191204184601W)
    1-0:1.8.1(000050.069*kWh)
    1-0:1.8.2(000055.085*kWh)
    1-0:2.8.1(000019.870*kWh)
    1-0:2.8.2(000005.678*kWh)
    0-0:96.14.0(0001)
    1-0:1.7.0(00.655*kW)
    1-0:2.7.0(00.000*kW)
    1-0:32.7.0(225.1*V)
    1-0:52.7.0(000.0*V)
    1-0:72.7.0(225.7*V)
    1-0:31.7.0(001*A)
    1-0:51.7.0(002*A)
    1-0:71.7.0(001*A)
    0-0:96.3.10(1)
    0-0:17.0.0(999.9*kW)
    1-0:31.4.0(999*A)
    0-0:96.13.0()
    0-1:24.1.0(003)
    0-1:96.1.1(37464C4F32313139303935373430)
    0-1:24.4.0(1)
    0-1:24.2.3(191204184600W)(00070.043*m3)
    !6E84;

    Kan u mij een CRC functie geven die de CRC van dit bericht kan controleren.
    Als ik mijn bericht in de “dsmr parse” van Matthijs Kooijman stop
    https://platformio.org/lib/show/5702/Dsmr/examples
    krijg ik enkel:
    Error found:
    !6E84
    ^
    Checksum mismatch

    Met vriendelijke groet,
    Willy Verbiest

    • Willem Aandewiel says:

      Willy,
      De crc wordt door de dsmr library berekent en vergeleken met de door de Slimme Meter meegestuurde crc.
      Waarom zou je die zelf willen berekenen?
      Als de door de parser berekende waarde afwijkt van de meegestuurde dan zijn er ergens tekens verloren gegaan en wordt het telegram terecht afgekeurd.

      • Willy Verbiest says:

        Willem,
        Ik krijg steeds een foutmelding met gelijk welk telegram die ik gelogd heb in het parse programma van https://platformio.org/lib/show/5702/Dsmr/examples.
        Woensdag heb ik Fluvius gemaild (onze netbeheerder in Vlaanderen) om uitleg over de CRC en zij hebben een testtool om te kijken of de meter een juist CRC berekend.
        Ze hebben mij een screendump van de testresultaten opgestuurt.
        Zelf met hun voorbeeld uit de screendump bekom ik op alle mogelijke crc programma’s een foutief crc getal.
        Hier hun voorbeeld:

        /FLU5\253770234_A

        0-0:96.1.4(50213)
        0-0:96.1.1(3153414731313030303030323331)
        0-0:1.0.0(191219105454W)
        1-0:1.8.1(000000.915*kWh)
        1-0:1.8.2(000001.955*kWh)
        1-0:2.8.1(000000.000*kWh)
        1-0:2.8.2(000000.030*kWh)
        0-0:96.14.0(0001)
        1-0:1.7.0(00.000*kW)
        1-0:2.7.0(00.000*kW)
        1-0:32.7.0(228.3*V)
        1-0:31.7.0(000*A)
        0-0:96.3.10(1)
        0-0:17.0.0(999.9kW)
        1-0:31.4.0(999*A)
        0-0:96.13.0(466C7576697573)
        0-2:24.1.0(003)
        0-2:96.1.1(37464C4F32313138303030313237)
        0-2:24.4.0(1)
        0-2:24.2.3(191219105038W)(00000.003*m3)
        !AAC1

        Ik laat de code uitrekenen op een ESP8266 en werk met PlatformIO om de code te compileren en te downloaden.
        Ik moet niet echt nog zelf de crc uitrekenen maar ben wel op zoek naar waar het foutloopt.
        Zonder goede crc is voor mij de P1 telegram waardeloos.

        • Willem Aandewiel says:

          Willy,
          Ik weet niet wat je aan het doen bent en wat je opstelling is.
          Ik vermoed dat je zelf een telegram kopieert en als invoer gebruikt. Als dat zo is denk er dan aan dat elke regel van een telegram afgesloten moet worden met een CR en LF. Eén verkeerd teken in je telegram maakt dat de CRC verandert. Ook een lege regel bestaat uit minimaal een CR en LF!

          • Willy Verbiest says:

            Beste Willem,
            Ik heb de bestaande const char raw[] definitie uit het parse voorbeeld van Matthijs Kooijman gewijzigd naar het ontvangen telegram van Fluvius en het ziet er zo uit:
            // Data to parse (Fluvius mail)
            const char raw[] =
            “/FLU5\253770234_A\r\n”
            “\r\n”
            “0-0:96.1.4(50213)\r\n”
            “0-0:96.1.1(3153414731313030303030323331)\r\n”
            “0-0:1.0.0(191219105454W)\r\n”
            “1-0:1.8.1(000000.915*kWh)\r\n”
            “1-0:1.8.2(000001.955*kWh)\r\n”
            “1-0:2.8.1(000000.000*kWh)\r\n”
            “1-0:2.8.2(000000.030*kWh)\r\n”
            “0-0:96.14.0(0001)\r\n”
            “1-0:1.7.0(00.000*kW)\r\n”
            “1-0:2.7.0(00.000*kW)\r\n”
            “1-0:32.7.0(228.3*V)\r\n”
            “1-0:31.7.0(000*A)\r\n”
            “0-0:96.3.10(1)\r\n”
            “0-0:17.0.0(999.9kW)\r\n”
            “1-0:31.4.0(999*A)\r\n”
            “0-0:96.13.0(466C7576697573)\r\n”
            “0-2:24.1.0(003)\r\n”
            “0-2:96.1.1(37464C4F32313138303030313237)\r\n”
            “0-2:24.4.0(1)\r\n”
            “0-2:24.2.3(191219105038W)(00000.003*m3)\r\n”
            “!AAC1\r\n”;

            Dit heb ik ook gedaan voor een ganse reeks van telegrammen die ik zelf heb kunnen loggen alle geven een fout CRC.
            Ik vermoed dat Fluvius (Netbeheerder in Vlaanderen) iets gewijzigd heeft aan de CRC berekening zoals die in
            Nederland uitgevoerd word en beschreven staat in document:
            https://www.netbeheernederland.nl/_upload/Files/Slimme_meter_15_a727fce1f1.pdf (DSMR 5.0.2 P1 companion standard)
            The Metering System transmits the data message, as described below, immediately following the activation through the Request signal.
            / X X X 5 Identification CR LF CR LF Data ! CRC CR LF
            CRC is a CRC16 value calculated over the preceding characters in the data message (from
            “/” to “!” using the polynomial: x16+x15+x2+1). CRC16 uses no XOR in, no XOR out and is
            computed with least significant bit first. The value is represented as 4 hexadecimal characters (MSB first).
            Uit de dsmr lib van Matthijs Kooijman kan ik de CRC berekening niet achterhalen, deze lib is voor mij moeilijk te begrijpen.

          • Willem Aandewiel says:

            Willy,
            Ik zou je graag willen helpen maar daar is deze post niet echt een geschikte plek voor.
            Dat jullie provider de CRC berekening zou hebben verandert lijkt mij erg onwaarschijnlijk. De DSMR-logger die hier beschreven staat en die je hier kunt kopen werkt met de meeste Slimme Meters ook in België.

        • Willem Aandewiel says:

          Willy,

          Verander deze regel:

          “/FLU5\253770234_A\r\n”

          In:

          “/FLU5\\253770234_A\r\n”

          En probeer dan nog eens te parsen.

          Een backslash heeft een speciale betekenis.

          • Willy Verbiest says:

            Beste Willem,
            Fantastisch het werkt! Ik heb de originele _crc16_update gebruikt uit (https://github.com/PaulStoffregen/cores/blob/master/teensy3/util/crc16.h)
            en de extra \ tegevoegd en bekom het zelfde CRC getal uit als opgestuurd in het P1 telegram van mijn digitale meter (slim is die niet).
            Hartelijk bedankt.
            Nu was mijn aandacht ook op de \ gevallen daar ik veel ervaring heb in het schrijven van communicatie
            programma’s maar normaal wordt er een \ verzonden als er in de data zelf een start (stx) of (etx) stop teken moet verzonden worden.
            In PlatformIO stonden na de \ ook de volgende 3 tekens highlighted.
            Welke … heeft dat bedacht om een \ op te sturen in de telegram header?
            Zeker 4 dagen eraan verloren en testen met 45 polynomials plus testen op websites en reverse-enginering CRC (hackaday.com) zonder succes.
            De DSMR-logger lijkt mij een fantastisch produkt echt aan te raden aan vrienden.
            Daar mij hobby elektronika en programmeren zijn wil ik wel zelf iets programmeren tussen de digitale meter en mijn ‘Loxone smart home’ processor.
            Mijn idee is een modbus TCP interface op de ESP8266 te schrijven zodat de Loxone enkel een modbus bevel moet maken om de gewenste waarde te lezen.
            Nog prettige feestdagen.

  71. Edwin Steenbeek says:

    Hallo Willem,

    Bestaat er ook gewoon een soort gateway voor de P1 die die elke “zoveel” kwh eenpuls geeft op een digitale (potentiaal vrije) uitgang?

    Met vriendelijke groet,
    Edwin Steenbeek

  72. Jan Willem Maas says:

    Ha Willem,
    Nu weer even terug naar mijn tweede logger. Deze heb ik in elkaar gezet. Na wat hardware debugging bleken TX en RX op de ESP niet goed gesoldeerd. Nu geflashed en na een paar keer proberen gelukt.
    Ik kreeg een knipperende rode led, dus ik heb voeding van de meter ontkoppeld in de steker en tegelijk een 5V externe voeding aangesloten.
    Echter: ik kan inloggen op de logger, alle pagina’s bekijken, maar ik krijg geen data uit de meter. Wat kan ik daaraan doen? Het is een Landis & Gyr slimme meter. Het uitlezen met de lezer van Youless lukt wel gewoon.

    • Willem Aandewiel says:

      @Jan Willem,
      Het enige dat ik mij kan voorstellen is dat de DTR pin (ook) niet goed doorverbonden is óf dat je hem, met het “ontkoppelen” van de 5Volt uit de meter (pin 1), per ongeluk óók pin 2 hebt “ontkoppelt”…

  73. Willem Aandewiel says:

    Als de DSMR-logger voor het eerst opstart of als de SSID van je (WiFi) netwerk veranderd is start de DSMR-logger een Access Point (AP) op waar je de credentials van je WiFi netwerk kunt invoeren (zoals het laatste frame van deze video).

    Zijn deze gegevens al bekend dan meldt de DSMR-logger zich aan bij je WiFi netwerk, start de webserver op en verwerkt de binnenkomende telegrammen (dat zie je dus niet op deze video).

  74. Jan Willem says:

    Beste Willem,

    Ik wilde graag nog een twee printje maken, voor een andere meter, maar helaas is de kit niet meer te koop! Wat ontzettend jammer. Ik was echt geïnspireerd, bouwde daarom een eigen ontwerp voor watermeter.
    Ik zal de geassembleerde versie kopen als deze weer beschikbaar komt. Wel heel erg jammer.

  75. Willem Aandewiel says:

    @Marco (comment)

    Wat fijn dat je een oplossing hebt gevonden. Eén minuut is ook wel een héle korte lease tijd!
    Hebben andere devices binnen je netwerk daar dan geen last van? Ik dacht trouwens dat die lease alleen verloopt als je geen verbinding meer hebt en opnieuw verbinding zoekt met de DHCP server.

    In ieder geval bedankt voor het delen!

    • Marco dG says:

      Hoi Willem,

      Ja ik dacht ik deel het maar. Ja die minuut was ooit erin gezet om diagnostic redenen, en natuurlijk verder vergeten. En nee elke dhcp client wordt geacht een DHCP renewal te doen binnen de leasetijd, anders verloopt het IP address. Nee ander devices hebben daar geen last van (Allemaal Sonoffs met Tasmota – ik draai alle IoT op een aparte SSID in een andere IP range met eigen DHCP server en met de nodige IP filtering erop).

  76. Marco says:

    Hey Willem,

    Je hebt echt een top toepassing gemaakt man, helemaal goed.
    Al een paar weken je DSMR 1.0.3 software hier dus draaiend op een wemos D1mini clone.
    Heb enkel de BC547B-inverter onderdelen gebruikt om de boel simpel te houden want waarom ingewikkeld als t makkelijk kan 😛

    Een kleine opmerking, geen idee of iemand daar al tegenaan gelopen is.
    Mijn LAN-IP adres (dus uiteindelijk IP wat de DHCP uit de router braakt) was 192.168.0.1
    En daar ging t ff helemaal mis met de MQTT optie.
    Die gaf continue aan dat ie geen broker kon vinden. Terwijl een test met een externe internet broker wel goed werkte.
    Blijkt na lang zoeken dat in je software een kleine glitch zit naar mijn mening.
    In de MQTT-stuff.ino zit een IP check (OF) 1 van de 4 parameters een 0 (nul) bevat.
    Zo ja doet ie de IP afwijzen van de broker….
    Ik heb mn LAN-IP in de router aangepast naar 192.168.1.1 en dan doet ie t uiteraard gewoon wel….
    Wellicht kan je hier naar kijken en die nog in een eventuele vervolgversie aanpassen, want zie dat je al bezig bent met een 1.0.4 versie op github.
    Nogmaals heel veel dank voor je prachtige stukkie huisvlijt 🙂

    betreft de onderstaande code in de MQTT-stuff.ino file.
    if ( MQTTbrokerIP[0] == 0 || MQTTbrokerIP[1] == 0
    || MQTTbrokerIP[2] == 0 || MQTTbrokerIP[3] == 0) {
    DebugTf(“ERROR: [%s] => is not a valid URL\r\n”, MQTTbrokerURL);

    • Willem Aandewiel says:

      Marco,
      Dank voor de lovende woorden.

      Ik ga dit aanpassen in v1.0.4 (vanmorgen v1.0.3c gereleased, net te vroeg om deze fout op te lossen). Eerlijk gezegd nooit geweten dat die nullen geldige IP adressen maken!

  77. Jelmo2 says:

    Hoi Willem,

    ik heb wat problemen met het uploaden van je code 1.0.3
    dit is de fout melding

    Arduino:1.8.9 (Windows 10), Board:"Generic ESP8266 Module, 80 MHz, Flash, Legacy (new can return nullptr), All SSL ciphers (most compatible), dtr (aka nodemcu), 26 MHz, 40MHz, DIO, 1MB (FS:64KB OTA:~470KB), 2, nonos-sdk 2.2.1+111 (191024), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
    
    In file included from sketch\UpdateServer.cpp:17:0:
    
    UpdateServer.h:14:7: error: using typedef-name 'using ESP8266WebServer = class esp8266webserver::ESP8266WebServerTemplate' after 'class'
    
     class ESP8266WebServer;
    
           ^
    
    In file included from sketch\UpdateServer.cpp:14:0:
    
    C:\Users\JDJ WORK\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.1\libraries\ESP8266WebServer\src/ESP8266WebServer.h:220:80: note: 'using ESP8266WebServer = class esp8266webserver::ESP8266WebServerTemplate' has a previous declaration here
    
     using ESP8266WebServer = esp8266webserver::ESP8266WebServerTemplate;
    
                                                                                    ^
    
    exit status 1
    using typedef-name 'using ESP8266WebServer = class esp8266webserver::ESP8266WebServerTemplate' after 'class'
    
    
    Ongeldige bibliotheek gevonden in C:\Program Files (x86)\Arduino\libraries\tool: no headers files (.h) found in C:\Program Files (x86)\Arduino\libraries\tool
    
    Dit rapport zou meer informatie bevatten met
    "Uitgebreide uitvoer weergeven tijden compilatie"
    optie aan in Bestand -> Voorkeuren.
    
  78. Robert van den Breemen says:

    Hi Willem,

    Zoals ik al eerder aangaf heb ik mindergas.nl in gebruik en wilde ik het integreren. Dat is gelukt. Daarnaast heb ik de gas delivered op drie cijfers nauwkeurig, zoals in de telegram,uitgelezen.

    Wat is een handige manier om de code changes aan je door te geven.
    Robert

  79. bert says:

    Hallo,
    ik gebruik v3 met espeasy software werkt super i.c.m domoticz
    gr b.kalk

  80. Bauke says:

    Hoi Willem,
    Kun je me aangeven waar / hoe ik de layout van de website kan wijzigen. met name de “per uur” en “per dag” tabellen komen er een beetje te smal uit. Is dat HTML5/CCS3?
    Verder wil ik je vertellen dat ik super tevreden ben. Loopt als een zonnetje.
    Wel jammer dat het systeem niet meer als bouwpakket te koop is (maar ik begrijp je beweegredenen -:) ).
    Mvrgr, Bauke

    • Willem Aandewiel says:

      Hoi Bauke,

      De layout is vastgelegd in de bestanden DSMRlogger.css en DSMRlogger.html
      Die kun je naar hartelust aanpassen aan je eigen wensen.

      Het is niet mijn keuze om de DSMR-logger niet meer als bouwpakket te verkopen (door opencircuit.nl). Mijn motivatie voor dit soort projecten is juist om makers te laten zien hoe leuk het is om zelf microprocessoren te programmeren en eenvoudige elektronische schakelingen te ontwikkelen. Met de verkoop van een “kant en klaar” product hoopt opencircuit.nl om makers vragen te voorkomen.

      Succes met het aanpassen van de layout en stuur een plaatje van het uiteindelijke resultaat!

  81. Wesley says:

    Het was even stoeien met Mqtt maar is goed gekomen.
    Goed om te weten is dat de omschrijving op de website over versie 1.03 gaat.
    Ik heb 1.02 draaien en dan zit het net iets anders blijkbaar.
    De Mqtt gegevens dan goed controlleren die verstuurd worden!

    Nu kan ik mooi verder met Home assistant en dit project!
    Geweldig gemaakt!

  82. Jan Willem Maas says:

    Willem, wat een topproject is dit toch. Alles werkt perfect toen ik het bordje op de slimme meter aansloot.
    Volgende vraag is of je ook een dergelijk project gedaan hebt voor de Landis & Gyr warmtemeter (Ultraheat 2WR5, de voorloper van de T550). Er schijnt een IR naar USB kabel in omloop te zijn, waar je de meter mee kunt uitlezen. Ik heb hem nog niet kunnen vinden. Is zelf bouwen een optie?
    Ik heb dezelfde vraag voor een domme elektriciteitsmeter. Kan ik daar ook iets zelf voor bouwen. De watermeter komt wat mij betreft als laatste aan de beurt. Hartelijke groet.

    • Willem Aandewiel says:

      Jan Willem,

      Bedankt voor het compliment!

      Ik heb helaas geen ervaring met de “Landis & Gyr warmtemeter” maar omdat hij blijkbaar een IR interface heeft moet het zonder meer mogelijk zijn om hem uit te lezen en dan is zelf bouwen zéker een optie! Ik juich dat toe. Mijn motivatie voor de door mij ge-poste projecten is juist om mensen aan deze leuke hobby (het programmeren van microprocessoren en electronica) te krijgen!

      Voor het uitlezen van de “domme elektriciteitsmeter” zijn tientallen projecten op internet te vinden. Deze maken allemaal gebruik van een optische koppeling (LDR of halfgeleider) en dat is dus zonder meer (na) te bouwen. Wel moet je erop verdacht zijn dat de uit te lezen data t.o.v. een Slimme Meter erg beperkt is!

  83. Arjen says:

    Hi Willem, bedankt voor een mooi stukkie software. Nu heb ik een ESP 12E development board, met een 5V-3V3 aan boord, USB connectie. Je kent ze wel. Ik kan de software flashen, ik krijg een website te zien, ik zie op de TX poort -aangesloten op mijn RS232 ingang van de PC- meldingen dat de bole opstart en de wifi wordt herkend. So far so good.

    Om de slimme meter te emuleren heb ik een PIC controller geprogrammeerd die op 115kBaud een telegram stuurt elke 10 sec. Ook getest en dat werkt. Echter ik zie op de logger geen enkele respons. Nu heb ik meerdere RS232 poorten op mijn ESP12E bordje, en ik dacht de telegram van de PIC controller aan te sluiten op de pin RX, dus die naast de TX die de meldingen geeft. Helaas geen sjoege. Daarna de pin D6 geprobeerd, dat zou de 2e RX pin zijn. Maar ook dan krijg ik geen enkele repons. ook niet dat het telegram errors zou bevatten. Welke pin moet ik gebruiken als input vd slimme meter?

    Telegram:

    /KFM5KAIFA-METER
    
    1-3:0.2.8(42)
    0-0:1.0.0(190805204420S)
    0-0:96.1.1(4530303236303030303237313334363135)
    1-0:1.8.1(004029.456*kWh)
    1-0:1.8.2(002611.355*kWh)
    1-0:2.8.1(000000.000*kWh)
    1-0:2.8.2(000000.000*kWh)
    0-0:96.14.0(0002)
    1-0:1.7.0(00.163*kW)
    1-0:2.7.0(00.000*kW)
    0-0:96.7.21(00012)
    0-0:96.7.9(00005)
    1-0:99.97.0(6)(0-0:96.7.19)(190508111811S)(0000008169*s)(190406211046S)(0000011164*s)(180315134657W)(0000000506*s)(161007053040S)(0000004483*s)(161007022423S)(0000022463*s)(000101000056W)(2147483647*s)
    1-0:32.32.0(00001)
    1-0:52.32.0(00003)
    1-0:72.32.0(00004)
    1-0:32.36.0(00000)
    1-0:52.36.0(00000)
    1-0:72.36.0(00000)
    0-0:96.13.1()
    0-0:96.13.0()
    1-0:31.7.0(000*A)
    1-0:51.7.0(000*A)
    1-0:71.7.0(000*A)
    1-0:21.7.0(00.157*kW)
    1-0:41.7.0(00.000*kW)
    1-0:61.7.0(00.011*kW)
    1-0:22.7.0(00.000*kW)
    1-0:42.7.0(00.000*kW)
    1-0:62.7.0(00.000*kW)
    0-1:24.1.0(003)
    0-1:96.1.0(4730303332353631323533373030343135)
    0-1:24.2.1(190805200000S)(03293.167*m3)
    !5A99
    
    • Willem Aandewiel says:

      Op mijn website (en die van opencircuit.nl) staat het volledige schema. Daar zou je alles uit moeten kunnen halen wat je nodig hebt.

  84. Bauke says:

    Hallo Willem,
    Enige tijd geleden vroeg ik je of je wist hoe de P1-poort kon worden gesplit.
    Ik gebruik namelijk Eneco Toon en nu ook jouw P1-logger (met veel plezier!!).
    Heb eerst zelf wat zitten knutselen op experimenteer bord maar dat lukte niet.
    Nu een splitter gekocht bij Tech4U en ik wilde even melden dat dit prima werkt.
    Mvrgr, Bauke

  85. Jeroen says:

    Hallo Willem,

    Ziet er perfect uit. Ik ben ook van plan om deze te kopen/installeren om het te intergreren met mijn home assistant.
    Helaas woon ik tegenwoordig in Belgie en ben ik niet zeker of het in BE ook gaat werken. Ik heb alvast een aanvraag gedaan bij de netbeheerder om de communicatie/gebruikerspoorten open te zetten (staan standaard uit in BE en je netbeheerder moet deze open zetten om de poorten te kunnen gebruiken).

    Van zodra mijn netbeheerder (fluvius) de poort(en) heeft open gezet zal ik het bordje bestellen en het eens uittesten.

    Jeroen

    • Jeroen says:

      De gebruikspoorten kun je zelf open zetten via de portal van fluvius en dit kost op het moment van schrijven niets extra. Het bordje ga ik dus bestellen en uittesten 🙂

      • Karel says:

        Is dit gelukt, met de slimme meter van Fluvius (België).
        Ik ben ook geïnteresserd om dit eventueel te bestellen.

  86. Robert van den Breemen says:

    En de laatste vraag voor vandaag, ik heb R12 en R13 niet gemonteerd… Volgens mij is dat alleen nodig als je ook daadwerkelijk externe power gaat gebruiken.

    Nu heb ik een v4 board van je gekocht recent. Nu staat er sinds kort een 4.5rev op de site, met specifiek externe power mogelijkheid. Maakt dit nog veel uit?

    • Robert van den Breemen says:

      Kuch, kuch, de laatste vraag met je negeren… ADC input, r12/r13 maken een net leesbaar signaal.

      Het verschil tussen rev 4.0 en rev 4.5 is de power jack aansluiting volgens mij. Is er een pagina waar je bijhoudt wat de rev. verschillen zijn?

  87. Robert van den Breemen says:

    Nog een vraagje… op de site van OpenCircuit staat vermeld dat met “enig knutselwerk” de logger in een doosje te bouwen is. Kan je wellicht vertellen wat het knutselwerk is dat je moet doen? Ik heb het doosje, en zit al een poosje te puzzelen wat je het beste kan doen.

    Wellicht een voorbeeld? Of tips hoe ik dat het beste kan aanpakken?

    Het doosje is: https://opencircuit.nl/Product/14161/Project-Box-zwart-101-x-61-x-26mm

  88. Robert van den Breemen says:

    Prachtig project. Dank je wel Willem. Heb dit weekend alles in elkaar gesoldeerd. En het werk nu als een zonnetje. Nu wil ik het nog inbouwen in het doosje dat ik erbij gekocht heb, en dan de integratie met home assistant.

    Een van mijn wensen die ik zelf nog wil implementeren is vanuit de logger direct mindergas.nl updaten, dat is 1 simpele JSON call per dag. En dan heb ik het daar ook bijgewerkt, dat doe ik nu nog via Home Assistant, maar dat kan evenzogoed vanuit de ESP lijkt mij.

    • Willem Aandewiel says:

      Beste Robert,
      1)
      Ik ken “mindergas.nl” niet, maar het moet niet al te moeilijk zijn om dat te implementeren. Als je het voor elkaar hebt kun je de oplossing wellicht hier delen.

      2)
      Je moet een uitsparing in de project-box maken waar de RJ12 stekker doorheen past. Er moet ook één gaatje in de deksel waar de lange (flash) schakelaar doorheen kan. Afhankelijk of je een Oled scherm hebt moet je dáár ook een uitsparing voor in het deksel maken.

      3)
      R12 en R13 heb je inderdaad niet nodig.
      Het v4.5 bordje heeft een mogelijkheid om een externe voeding aan te sluiten. Verder is het bordje “kant en klaar” en al “in elkaar gezet”. Véél minder leuk dan hem zelf in elkaar te zetten.
      Als het v4 bordje het doet zonder een externe voeding heb je die aansluiting ook niet nodig.

      • Robert van den Breemen says:

        Hoi Willem
        Wat fijn dat je zo snel reageert.

        1. Als ik de integratie met minder gas voor elkaar heb deel ik het.
        2. Dank, ik ga vanavond maar eens zagen en knutselen 😉
        3. Hmmmm, jammer, ik denk dat makers het juist leuk vinden om zelf te maken. Als je naar 40 euro gaat met rev 4.5, kom je in de buurt van de commerciële p1-uitleesopties. Het hele idee voor mij is juist zelf in control te zijn, dus geen externe kant en klare oplossingen als ik het niet kan beïnvloeden of begrijpen.

        Nogmaals enorm bedankt voor je snelle reactie, en dit geweldige project.

  89. Jan Willem Maas says:

    Willem, ik kreeg bij het uitlezen van “electricity_tariff” in Home Assistant de waarde “unknown”, terwijl alle andere getallen en tekst goed worden weergegeven. De waarde van deze parameter kan 0001 of 0002 zijn, zie ik met de MQTT sniffer.
    Volgens mij is er in de MQTT sketch een probleem met de leading zeroes in deze waarde. Ik heb in MQTTstuff de volgende regel:
    sprintf(cMsg, “{\”electricity_tariff\”:%04d}”, String(ElectricityTariff).toInt());

    veranderd in:
    sprintf(cMsg, “{\”electricity_tariff\”:\”%s\”}”, String(ElectricityTariff).c_str());

    Nu werd de waarde in Home Assistant correct weergegeven als 0001 of 0002. Wellicht dat anderen ook tegen dit (kleine) issue aanlopen.

  90. Luc Baert says:

    Beste Willem,

    Ik probeer de DSMRlogger v1.02 te gebruiken om mijn Belgische DSMR 5.0 meter Sagemcom S211 uit te lezen via Wemos D1 Mini, en invertor met BC547, 3.3V vanuit Wemos. De firmware werkt ok, ik zie system info in de logger, maar Telegrams Processed blijft op 0 staan, errors ook op 0. Mijn data input staat op Wemos RX. Is dat correct? In de code staat #define IS_ESP12
    #define USE_UPDATE_SERVER

    verder staat #define DTR_ENABLE 12 en die wordt gebruikt voor
    P1Reader slimmeMeter(&Serial, DTR_ENABLE);
    Moet ik dan poort GPIO12 gebruiken, dus D6 op Wemos?

    Als ik via telnet naar wemos ga zie ik menu, met B zie ik board info, idem als in browser, verder bijv.
    [00:05:52] [ 17520] webSocketEve( 46): [0] Got message: [tabActual]
    Als ik dan P + Ctr-Enter doe zie ik niets, behalve dat menu verandert naar
    P – Start Parsing again

    Enig idee wat ik verkeerd heb? Of welke andere testen ik kan doen?

    Alvast bedankt,
    Luc

  91. Jan Willem Maas says:

    Hallo Willem.

    Ik heb mijn logger nog niet op mijn slimme meter aangesloten. Ik ben nog niet in de buurt geweest van de betreffende lokatie. Ik doe nu een test met dummy data. Is het juist dat die dummy data niet via MQTT verzonden worden? Als ik via telnet mee kijk naar de activiteiten zie ik er niet over.
    Kan ik MQTT verkeer op een andere manier testen als ik niet in de buurt van een slimme meter ben?

    • Hi Jan Willem,
      In de documentatie geef ik aan hoe je de binnenkomende MQTT berichten die naar de broker worden gestuurd via de mosquitto_sub client kunt uitvragen.

  92. Jan Willem Maas says:

    Ten overvloede: ik het de rechte haken in de value templates vervangen door accolades. Dus dat zou het probleem niet moeten zijn.

    • Wesley says:

      Ben je al iets verder gekomen met het unknown probleem in Home Assistant?
      Ik heb hetzelfde probleem hiermee.
      Ook de haakjes vervangen idd.

      • Jan Willem Maas says:

        Ja bij mij klopt alles nu. Als de meter uitlezer in de teststand staat, worden deze data niet naar de MQTT broker gestuurd. Daarom krijgt HA geen waarde voor de sensoren die gedefinieerd zijn.
        Zodra je de lezer aansluit op de meter (nadat je de software geflashod heb zonder de testdata optie te kiezen), komen de data gewoon naar HA op het onderwerp dat je in de sensor gekozen hebt, goed op de lezer is ingesteld.

  93. Jan Willem Maas says:

    De test-data modus aangezet.
    Via de restAPI kan ik deze data uitlezen.
    Maar via de Home Assistant krijg ik bij alle sensoren “unknown”. Klopt het dat de test data via Home Assistant niet uitgelezen kunnen worden? Of is hier iets anders aan de hand. Ik heb de topic in HA op DSMR gezet. In de logger staat het topic op dezelfde naam. Wat kan hier aan de hand zijn?

    • Willem Aandewiel says:

      Jan Willem,

      Ik ga ervan uit dat je MQTT gebruikt. Dat heeft alleen niets met de restAPI te maken.

      Het (MQTT) hoofd-topic heet standaard “DSMR-WS” en niet “DSMR” (behalve als je dat hebt aangepast).

      De documentatie hier En hier is je beste vriend.

  94. Prachtig project. PCB solderen was simpel.
    Bij het compilen van de sketch krijg ik nogal wat foutmeldingen. Een melding geeft exit code 1:
    “DSMRloggerWS_v103:104:11: error: redefinition of ‘uint8_t settingSleepTime’
    uint8_t settingSleepTime; // needs to be declared before the oledStuff.h include
    ^
    DSMRloggerWS:103:11: error: ‘uint8_t settingSleepTime’ previously declared here
    uint8_t settingSleepTime; // needs to be declared before the oledStuff.h include”

    Wat kan hier het probleem zijn? Het lijkt wel alsof tab 1 en tab 2 hetzelfde doen? Moeten die beide bestaan?
    ^

    • Willem Aandewiel says:

      Jan Willem,

      Je geeft te weinig informatie om een zinnig antwoord te kunnen geven.
      Heb je de hele Sketch gedownload en zie je ook alle tabbladen?
      Heb je versie 2.5.n van de esp8266 core geïnstalleerd?

      • Jan Willem Maas says:

        Ik heb 2.5.2. van esp8266 gedownload. Ik heb alle tabbladen. De eerste twee tabbladen zijn:
        DSMloggerWS
        DSMloggerWS_v103

        Deze twee zijn bijna gelijk, de tweede is een nieuwere versie van de eerste. Zou dit de verklaring kunnen zijn dat de compile vast loopt op een dubbele declaration van ‘uint8_t settingSleepTime’. Ik ga de eerste tab weghalen om te kijken of dat wat uit maakt.

        • Jan Willem Maas says:

          Na weghalen van DSMloggerWS tab en hernoemen van DSMloggerWS_v102 naar DSMloggerWS lukt de compile nu goed.
          Nu krijg ik de meldingen:

          Chip erase completed successfully in 7.7s
          Hard resetting via RTS pin...
          esptool.py v2.6
          Serial port /dev/cu.usbserial-1410
          

          Daarna krijg ik vele malen de volgende foutmeldingen:

          Connecting...TRACE +0.000 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
              0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
              5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
              55555555                          | UUUU
          TRACE +0.000 Write 46 bytes: 
              c000082400000000 0007071220555555 | ...$........ UUU
              5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
              5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
          TRACE +0.009 Read 1 bytes: c0
          TRACE +0.000 Read 11 bytes: 0108020000000000ff00c0
          TRACE +0.000 Received full packet: 0108020000000000ff00
          TRACE +3.000 Timed out waiting for packet header
          

          Om te eindigen met:

          Traceback (most recent call last):
            File "/Users/janwillem/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/upload.py", line 25, in 
              esptool.main(fakeargs)
            File "/Users/janwillem/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool/esptool.py", line 2653, in main
              esp.connect(args.before)
            File "/Users/janwillem/Library/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool/esptool.py", line 468, in connect
              raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
          esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
          

          Heb ik misschien een soldeerfout gemaakt?

          • Jan Willem Maas says:

            Gek genoeg werkt de ESP8266 Sketch Data upload wel zonder foutmeldingen.

          • Willem Aandewiel says:

            Hier hebben meer makers last van. Als je tijdens een hapering van het uploaden nog een keer (snel, binnen de time-out) de esp8266 in Flash-Mode zet gaat de upload daarna vaak gewoon verder.

          • Willem Aandewiel says:

            Niet waarschijnlijk. Een rommelig contact tussen je programmer en het DSMR-logger bordje is meer waarschijnlijk ..

        • Willem Aandewiel says:

          Jan Willem,

          Mijn fout!
          Ik heb net github ge-update. Als je daar nu de firmware vanaf haalt moet het goed gaan.

          • Jan Willem Maas says:

            Ja, het verwijderen van de “oude” versie TAB zorgde voor een goede compile.
            Daarna inderdaad nog een keer de Flash mode ingegeven. Dat werkte. Prachtig project! Echt een aanrader.
            Binnenkort de integratie met Home Assistant inregelen!

  95. Wim Nijntjes says:

    Bericht aan Bauke.

    Bauke, ik las dat je bezig met met de data naar Domoticz te sturen.
    Dat wil ik ook.
    Ben zo ver dat de data via Mqtt op een PI4 komt en Domoticz is geïnstalleerd.
    Ben nu op zoek naar de volgende stap.
    Zou jij me een duwtje in de rug willen geven zodat ik de goeie kant op ga?
    Ik ben vrij goed in Python en Electronica.
    Maar Domoticz is nog een geheel lege bladzijde in mijn hoofd.

    • Bauke says:

      Hallo Wim,
      Als je Domoticz hebt geinstalleerd , ben je eigenlijk al een heel eind.
      Ik gebruik zelf versie 4.10717.
      Ik maak gebruik van het script van Michel Groen om data van de logger over te krijgen in Domoticz. Dat gebeurt niet via MQ maar via een api call vanuit het script van Michel naar de logger. De logger antwoordt dan met de actuele waarden.
      In Domoticz moet je een aantal virtuele sensoren aanmaken (kijk bij Instellingen – Hardware). Onder Instellingen – Apparaten zie je de sensoren dan staan en hierbij is het IDX nummer van belang.
      IDX nummer invullen in het script en de sensoren onder het tablad Overige worden nu bijgewerkt.
      Het script zelf kun je vinden op de Github pagina van Willem en dit script kopieer je naar Domoticz onder Instellingen – Meer opties – Gebeurtenissen

      Zelf ben ik nog niet helemaal tevreden met het type van de sensoren (ik gebruik Counter – Incremental maar daar is nog wel aan te onderzoeken).
      Ben ik mee bezig.

      • Remco says:

        Dag Bauke,
        kan je me PM (eMail adres weggehaald) sturen Hoe eea in te stellen is in Domoticz?
        ben best wel nieuw met scripten, maar wil dit wel werkend krijgen..

  96. Remco van der Meer says:

    Super mooi project! ben er erg blij mee, heb zelf de mqtt iets aangepast denk dat je met deze aanpassing heel veel mensen blij zou maken.
    Aan de MQTT Json de volgende onderdelen toevoegen:
    ElectricityTariff , EnergyDeliveredTariff1, EnergyDeliveredTariff2.
    Heb zelf PowerRetL1, PowerRetL2, PowerRetL3 Uit gezet omdat ik dit niet gebruik weet niet of de Json anders te groot word. Het zou ook mooi zijn om de MQTT Poort instelbaar te maken (na het flashen van de software) aangezien deze nu vast in de code zit:
    MQTTclient.setServer(MQTTbrokerIPchar, 1883);
    Dit miste ik een beetje in de software zou mooi zijn als dit er standaard bij in zou zitten bij de volgende update! (ook voor mij omdat ik inmiddels versie 4.5 ook heb besteld).

    • Willem Aandewiel says:

      Remco,
      Vanaf Versie 1.0.3 van de DSMRloggerWS firmware kun je de poort van de MQTT broker opgeven.

    • Willem Aandewiel says:

      Remco,
      De firmware vanaf v1.0.3 stuurt de volgende velden naar de MQTT broker:

        identification
        p1_version
        timestamp
        equipment_id
        energy_delivered_tariff1
        energy_delivered_tariff2
        energy_returned_tariff1
        energy_returned_tariff2
        electricity_tariff
        power_delivered
        power_returned
        voltage_l1
        voltage_l2
        voltage_l3
        current_l1
        current_l2
        current_l3
        power_delivered_l1
        power_delivered_l2
        power_delivered_l3
        power_returned_l1
        power_returned_l2
        power_returned_l3
        gas_device_type
        gas_delivered
      
  97. Marco Schilder says:

    Werkt top, dank hiervoor! Ik heb eerst een tijdje geëxperimenteerd met ESPEasy en de DSMR sensor in HomeAssistant, dan ziet HA eigenlijk direct wat de P1 poort kan leveren. Nadeel wat ik hiervan ondervond is dat het veel data (updates) zijn die er naar verloop van tijd voor zorgen dat de sensoren niet meer updaten.

    Met de DSRMLoggerWS en handmatig aangemaakte MQTT sensoren gaat het een stuk beter 🙂 Maar dan mis ik het actuele gasverbruik die ik eerder wel had. Eigenlijk zoals energy_delivered de tegenhanger van gas_delivered is, zoek ik nog een tegenhanger van power_delivered voor gas. Kan die sensor toegevoegd worden?

    • Willem Aandewiel says:

      Beste Marco,
      Als je gasmeter op de Slimme Meter is aangesloten komt het gasverbruik ook gewoon op de DSMR-logger binnen.

      • Marco Schilder says:

        Dat klopt! En ik zie op de web interface ook een waarde achter ‘Gas verbruik (M3)’ staan, maar dat is een waarde die alleen maar oploopt, net als ‘Energie verbruikt (kWh)’. Maar ik ben eigenlijk nog op zoek naar de actuele waarde van gasverbruik, zodat ik kan zien op welke momenten van de dag ik (het meest) gas verbruik. I weet dat de P1 poort die ook doorgeeft, maar hoe kan ik die aan de DSMR-Logger toevoegen? Of waar moet ik met HomeAssistant een JSON query op doen om deze waarde te krijgen?

        • Willem Aandewiel says:

          Het “actuele verbruik” (van de afgelopen vijf minuten) is de nieuwe eindwaarde van de vorige eindwaarde aftrekken.
          De Slimme Meter geeft die waarde niet zelf!

  98. Wesley says:

    Bedankt voor de hulp bij de problemen die ik had met dit project.
    Blijkbaar lag het probleem bij mijn soldeer kunst en heb je dit snel gevonden voor mij!
    Erg blij mee.
    Nu kan ik komende tijd verder met het integreren in Home Assistant.
    Super!

  99. Wesley says:

    Hoi Willem,

    Geweldig project!
    Heb het printje besteld en gisteren gesoldeerd.
    Nu aan het voorbereiden voor de flash.
    Ik lees in het deel van Data Upload tool dit:
    Als er onder de map van je Sketch óók een map data staat, dan kun je de bestanden die in deze data-map staan met het Sketch Data Upload tool naar het SPIFFS van de ESP8266 flashen.
    Ik weet niet precies waar ik dit moet vinden? Als het er niet staat kan je het dan overslaan ofzo?
    Ik heb weinig ervaring met Arduino dus ben graag voorzichtig!

    • Willem Aandewiel says:

      Beste Wesley,

      Bedankt voor het compliment!

      Je hebt het Data Upload Tool echt nodig want er staan files in de map “data” die onderdeel van de DSMRloggerWS firmware zijn!

      Heb je alle documentatie goed gelezen. Alles wat je moet weten staat daarin!

      Succes

      • Wesley says:

        Het eerste deel van die pagina lukt wel. Het extra kopje sketch data upload staat er.
        Maar daarna snap ik het niet meer.
        De map tools staat in mijn sketch lokatie.
        In een andere map , DSMloggerWs staat wel de map data.
        Wordt deze bedoeld? Vanaf deze stap moet de logger aangesloten zijn of nog niet?

        • Willem Aandewiel says:

          Waar de map “tools” staat is niet belangrijk. Als in het “drop-down” menu de optie “ESP8266 Sketch Data Upload” staat, dan heb je de tool goed geïnstalleerd. Nadat je de firmware naar de DSMR-logger hebt geflashed kies je de optie “ESP8266 Sketch Data Upload” waarna de bestanden in de map “data” naar het SPIFFS file systeem van de DSMR-logger wordt geflashed. Klaar!

          • Wesley says:

            Ok ik denk dat ik dit deel snap.
            Nu probeer ik met mijn flasher te flashen.
            Krijg helaas melding:
            esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

            Ik had al gelezen dat dan vaak tx en rx niet gekruisd zitten, maar dit heb ik wel zo zitten.
            Nog een tip misschien?

    • Wesley,
      Heb je écht de documentatie goed gelezen?
      Als esptool geen verbinding met de DSMR-logger kan maken, dan heb je hem niet goed in flash-mode gezet. Soms is het nodig dat nog een keer te doen als de Arduino IDE al die …___…___ in het log window laat zien.

      • Wesley says:

        Ja heb denk ik alles meerdere keren gelezen, het zijn nogal wat pagina’s.
        Ik heb de knoppen flash en reset gebruikt om in flash mode te komen.
        als ik indruk zie ik een blauwe led branden.
        maar toch de foutmelding helaas

    • Willem Aandewiel says:

      @Wesley,
      Het enige dat ik dan nog kan bedenken is dat je ‘ergens’ een slechte soldeer verbinding hebt …
      Dat de blauwe LED heel even oplicht is normaal gedrag dus de reset en flash knoppen ‘werken’ (waarschijnlijk).
      Kun je met een multimeter controleren dat Rx en Tx op de program poort ook zijn verbonden met de ESP-12?

      • Wesley says:

        Alle solderingen bekeken en gemeten.
        Lijkt me goed.
        De TX en RX hebben ook connectie.
        Begin de moed op te geven, snap niet waar het mis gaat!
        Steeds dezelfde melding

  100. Dick B. says:

    Beste Willem,

    Heel interessant project! Recent heb ik een slimme meter gekregen (Landis+Gyr E360) en het leek mij heel geschikt om zelf de slimme meter uit te lezen.
    Ik heb het bouwpakketje (Versie 4) bij openCircuit besteld en in elkaar gesoldeerd. Als programmer gebruik ik een USB to Serial adaptor bordje, aangesloten op een Windows 10 laptop. De firmware en de data flashen lukt.
    Na de eerste keer opstarten, blijft de blauwe LED aan. Via mijn telefoon kan ik de SSID en het wachtwoord opgeven en opslaan. Na het herstarten van de DSMR logger (verbonden met de laptop) kan ik de web-pagina van de DSMR logger bereiken en ook via telnet inloggen op de DSMR logger. Zowel de blauwe als de rode led branden continue (wacht op telegram).
    Als ik de DSMR logger afkoppel van de programmer en aansluit op de slimme meter, start de DSMR logger op (rode led brandt continue), de blauwe led knippert 3x langzaam en blijft daarna aan. Ik kan geen verbinding maken met de DSMR logger. Niet via het ingestelde IP adres. Er verschijnt ook geen DSMR-WS netwerk op telefoon/computer.

    Enig idee wat er aan de hand is?

    • Willem Aandewiel says:

      Hallo Dick,

      Ondanks je uitvoerige uitleg mis ik informatie om hier iets zinnigs over te kunnen zeggen.
      Er zijn lichtpuntjes (de rode LED brand!). Dat de blauwe LED na drie x knipperen “aan” blijft zou betekenen dat hij geen verbinding met je WiFi netwerk kan maken en dus het Access Point weer opstart.
      Het zou helpen als je een kopie van de uitvoer van telnet post. Met name de board-info en SPIFFS info geeft inzicht in wat je hebt. Omdat je via de Slimme Meter geen netwerk verbinding krijgt volstaat deze informatie als de DSMR-logger op je PC is aangesloten.

      • Dick B. says:

        Bedankt voor je reactie, Willem.

        Boardinfo

        ==================================================================                                                                                                                                                                                             (c)2019 by       [Willem Aandewiel]
        Firmware Version [v1.0.2 (26-08-2019)]
        Compiled         [Oct  2 2019  22:30:23]
        compiled with    [dsmr.h]
        #defines         [IS_ESP12][USE_UPDATE_SERVER][USE_MQTT]
        Telegrams Processed       [0]
        With Errors               [0]
        FreeHeap                  [11496]
        Chip ID                   [77DB03]
        Core Version              [2_5_0]
        SDK Version               [3.0.0-dev(c0f7b44)]
        CPU Freq (MHz)            [80]
        Sketch Size (kB)          [486.31]
        Free Sketch Space (kB)    [2584.00]
        Flash Chip ID             [00164020]
        Flash Chip Size (kB)      [4096]
        Flash Chip Real Size (kB) [4096]
        SPIFFS Size (kB)          [934]
        Flash Chip Speed          [40]
        Flash Chip Mode           [DOUT]
        ==================================================================                                                                                                                                                                                             Board type               [ESP8266_GENERIC]
        SSID                     [THUISLAN]
        PSK key                  [**********]
        IP Address               [192.168.2.xxx]
        Hostname                 [DSMR-WS]
        Last reset reason:       [External System]                                                                                                upTime                   [0(d):00(h):02]                                             
        

        SPIFFS info:

        ================================================================== 
                                                                                                                                                                                                              /DSMReditor.html           13050
        /DSMReditor.js             33336
        /DSMRgraphics.js           15651
        /DSMRlogger.css             5238
        /DSMRlogger.html           16680
        /DSMRlogger.js             30980
        /FSexplorer.png             1245
        /DSMRchartColors.ini         442
        /PRDhours.csv               3450
        /PRDdays.csv                1072
        /DSMRsettings.ini            358
        /PRDmonths.csv              1690
                                                                                                                                                                                                                   Available SPIFFS space [   810]kB
        SPIFFS Size            [   934]kB
        SPIFFS block Size      [  8192]bytes
        SPIFFS page Size       [   256]bytes
        SPIFFS max.Open Files  [     5]
        

        Als je meer informatie nodig hebt, hoor ik het graag. Alvast bedankt!

    • Willem Aandewiel says:

      Hi Dick,

      Vreemd. Je hebt alles, voor zover ik het kan zien, goed ingesteld. Jammer dat je geen OLED schermpje hebt, want die geeft wat meer inzicht in wat de DSMR-logger aan het doen is en waar hij dus, blijkbaar, stopt met werken.
      Volgens de documentatie start hij opnieuw het Access Point op. Dit gebeurd bijvoorbeeld als hij (in de meterkast) geen verbinding met je WiFi netwerk kan maken. Als hij opnieuw het Access Point opstart zal hij na ongeveer 3 minuten geen contact met een client opnieuw opstarten. Je ziet dan weer de blauwe LED 3x langzaam knipperen…

      Als dat niet het geval is dan wacht hij op een telegram en is de verbinding met je Slimme Meter niet in orde.

      • Dick B. says:

        Bedankt voor je reactie. Ik ga er een OLED schermpje aanhangen.

        • Dick B. says:

          OLED schermpje aangesloten en nieuwe firmware geupload. Schermpje werkt als een zonnetje!
          Als ik de DSMR-logger op de Slimme Meter aansluit, blijft het schermpje staan op:
          “Verbinden met WiFi”
          Zowel de rode als de blauwe led blijven branden (meer dan tien minuten gecontroleerd).

          • Willem Aandewiel says:

            Dick,

            Vreemd. Kan het zijn dat je geen (WiFi) dekking hebt in je meterkast?
            Ik stuur je een PM, dan kunnen we wat sneller schakelen.

  101. Marco dG says:

    Hoi Willem, mooi project. Toevallig had ik net zelf een print ontwikkeld toen ik dit tegenkwam. Ik heb helaas wel een vreemd issue. na ongeveer een minuut disconnect zowel de websocket als de telnet. Dit is op vaste tijdstippen (dus onafhankelijk wanneer je telnet of web socket connect). lijkt iedere 60 sec na boot te zijn. Ook de MQQT geeft een foutmelding dat ie niks kan versturen (kom niet boven de payload size). Heb al zo’s beetje alle combinaties van settings geprobeers (NO_meter, wel/geen display), draaien open een kale wemos D! mini (zonder print) voeding viaextern of USB. Maakt allemaal niks uit. Uitlezen meter gaat prima en display werkt ook prima. Enig idee waar ik dit zou moeten zoeken?

    • Willem Aandewiel says:

      Marco,
      Ik heb echt geen idee.
      Het meest voor de hand liggende is dat het met SPIFFS acces te maken heeft maar ik heb gewoon te weinig informatie.
      Wat helpt is een log van telnet met de optie ‘b’ (Board info) en wat log regels. Ook een (duidelijke) schermafdruk van de Systeem Info pagina is handig.

      • Marco dG says:

        Beste Willem, bedankt!

        Ik heb nu maar even een python script draaien wat de waardes via REST uitleest in een database zet – dus kan vooruit. Denk zelf dat het ergens in de compiler misgaat, misschien ergens toch een lib die niet helemaal lekker is. Het probleem is namelijk ook aanwezig als ik helemaal niks verander behalve HAS_NO_METER op aan zet en het op een kale WEMOS D1 mini draai gevoed via USB en zonder in de pcb te steken. Mijn pcb gebruikt een andere pin voor data_request en gebruikt de gewone serial – wilde kijken of dat wellicht een probleem was. Ik zal eens een stand-alone arduino IDE opzetten en alles opnieuw via de (werkelijk zeer goede) documentatie ‘kaal’ installeren. Het zou overigens wel heel fijn zijn als je in de bin van de github ook een 1.0.2. versie zou kunnen zetten, ik zie daar nu alleen oude verses staan – kan ik in elk geval kijken of dat helpt…voor de zekerheid de board info. Schermafdruk kan ik eventueel apart zenden

                      (c)2019 by [Willem Aandewiel]
                 Firmware Version [v1.0.2 (26-08-2019)]
                         Compiled [Sep 15 2019  15:22:40]
                    compiled with [dsmr.h]
                         #defines [IS_ESP12][USE_UPDATE_SERVER][HAS_OLED_SSD1606][USE_MQTT] 
              Telegrams Processed [25802]
                      With Errors [2]
                         FreeHeap [11736]
                          Chip ID [8C9399]
                     Core Version [2_5_2]
                      SDK Version [2.2.1(cfd48f3)]
                   CPU Freq (MHz) [80]
                 Sketch Size (kB) [502.28]
           Free Sketch Space (kB) [2568.00]
                    Flash Chip ID [00164020]
             Flash Chip Size (kB) [4096]
        Flash Chip Real Size (kB) [4096]
                 SPIFFS Size (kB) [934]
                 Flash Chip Speed [40]
                  Flash Chip Mode [DOUT]
        

        Aanvullende info systeem Info pagina:

        	  
        Identification Ene5\XS210 ESMR 5.0
        P1 version      DSMR 50
        
        DSMR Hostname   DSMR-WS
        DSMR upTime     3(d):00(h):42
        DSMR Last Reset Reason External System
        
        Free Heap 12592
        WiFi RSSI (dBm) -82
        
        • Marco dG says:

          kleine update: standalone (portable) arduino ide en proberen zoveel mogelijk de geteste versies van de libaries te gebruiken werkt niet: zelfde resultaat. Moet het ergens anders gaan zoeken. NB heb al jaren Sonoff Tasmotas werken over dezelfde wifi met mqtt en dat werkt zonder probleem.

          • Marco dG says:

            Ik ben er eindelijk achter wat de reset geeft iedere 60 seconden. Dit ligt aan de DHCP. Mijn DHCP server stond op een lease tijd van 60 seconden en blijkbaar veroorzaakt een DHCP renewal een reset van verbindingen: Telnet en web socket worden verbroken en MQTT stopt er mee. Mocht iemand dus soortgelijk probleem hebben, verhoog dan de leasetijd van de DHCP server.

  102. Allart says:

    Dag Willem en Dick,

    Bij mij was er geen knipperende LED, maar helemaal geen LED. Oftewel: externe voeding nodig.
    Net getest zonder voeding met een 100µF op C3. Dit werkt zonder problemen en stabiel. Ook de laatste firmware OTA geupload zonder problemen.
    Meter is een Iskra AM550.

    gr,
    Allart

  103. marco says:

    hallo ik krijg de firmware er niet op…
    timed out waiting for packet header..

    hoe moet ik nu verder? zit al een avondje te puzzelen..

    groetjes marco

    • Willem Aandewiel says:

      Marco,

      Als je in de IDE de opdracht geeft om de sketch to uploaden, verschijnen er, na het compileren, een serie puntjes en streepjes. Als je op dát moment (is niet kritisch) de flash knop indrukt en ingedrukt houdt vervolgens op de reset knop drukt, deze weer los laat en dán de flash knop loslaat, moet het lukken.
      Normaal gesproken kun je dat ook al doen tijdens het compileren of zelfs daarvóór, maar sommige bouwers hebben ondervonden dat er “iets” naar de ESP8266 gestuurd wordt waardoor hij uit de flash-mode gaat.
      Mocht bovenstaande niet werken, dan heb je waarschijnlijk de Tx en Rx draadjes verkeerd-om aangesloten. Tx van de programmer moet naar Rx van de DSMR-logger. Tx van de DSMR-logger moet naar Rx van de programmer. Zie ook de documentatie!

      Laat even weten of het nu wel lukt.

  104. Tony Knors says:

    Dag Willem, Werkt de V4 versie ook voor de Belgische slimme meters (P1 Versie 5 ?)

    Alvast bedankt en vriendelijke groet,

    Tony

    • Willem Aandewiel says:

      Hi Tony,

      Kort antwoord is “Ja”.
      Er zijn al meerdere landgenoten van je die de meter met succes gebruiken.

      Wel lijkt het dat jullie meters die alleen geschikt zijn voor 1-fase niet de, door de DSMRloggerWS firmware verwachtte data afgeven voor de “Actuele Chart”.
      Door bij het compileren de #define SM_HAS_NO_FASE_INFO actief te maken kun je toch deze actuele data in de web-gui zien.

      Zie ook de documentatie!

  105. Juno says:

    Hi Willem,
    Ik denk erover om je V4 te bestellen. Graag zou ik ook de watermeter willen integreren. Dit zal moeten gebeuren door het ‘wieltje’ te gaan tellen. Is hier ruimte voor in de firmware en pinnen op de ESP?

  106. Dick says:

    Hi Willem,
    Een fototje uploaden via deze relpay lukt niet. Als je mij een mailtje stuurt, krijg je een foto van de logger met 1.3″ Oled retour. Die dingen zijn bij Ebay voor iets minderals USD 5 te koop.

  107. Dick says:

    Ik raad aan om de spanning op pin 3 van ESP12 te meten. Dit moet 3V zijn. Dit is de Enable pin. Bij mij zat daar ook een probleem.

    • Michael Kin says:

      Hoi Dick,

      ik heb net met twee verschillende waardes voor C3 geprobeerd. Maar op mijn KAIFA meter lukt het niet
      eerste poging was een 470uF 25V voor C3.
      Rode led ging aan en de blauwe led knipperde als een gek.
      tweede poging was een 100uF 63V voor C3.
      Rode en blauwe led knipperde als een gek.

      Dus orginele elco terug gezet RJ12 afgedekt en weer via externe voeding aan gesloten en start meteen op.

      groeten Michael

  108. Peter Creyghton says:

    Hallo Willem,

    Wat een ontzettend leuk project is dit! Ik heb het bouwpakket kado gekregen, en heb de print en de software zonder problemen aan de praat gekregen.
    Een collega van me wilde ook graag zijn slimme meter uitlezen, dus een tweede bouwpakket besteld, maar die kreeg ik niet aan de praat.

    In eerste instantie ging bij het aansluiten van de voedingsspanning via de USB programmer wel de rode led branden, maar zag ik niet dat de ESP spanning kreeg (de blauwe led licht heel even op bij mijn eerste print). Bij het doormeten bleek dat de ESP geen voedingsspanning kreeg. Na het opnieuw solderen van de Vcc op de ESP kwam de voedingsspanning wel door en zag ik ook de blauwe led even oplichten, maar kon ik de ESP niet flashen.

    Vervoglens heb ik de verbinding tussen de switches en de ESP doorgemeten en die was goed (de flash en reset kan ik meten op de ESP), en ook de rx/tx verbindingen waren in orde, net als de spanning op de Enable pin.

    Dus uiteraard even gecheckt of ik met de Arduino software mijn eerste bordje nog wel kan flashen, en dat werkte gewoon. Maar flashen van het nieuwe bordje met dezelfde software en programmer niet.

    Is het mogelijk dat de ESP beschadigt is geraakt doordat er geen voedingsspanning op de chip stond terwijl er wel signaal op stond?
    Wat kan ik nog meer proberen om de ESP aan de praat te krijgen?

    Vast bedankt voor je tijd,
    Peter

    • Willem Aandewiel says:

      Peter,

      Het is niet waarschijnlijk dat de ESP-12 beschadigt is geraakt door het ontbreken van de voedingsspanning.
      Ik denk dat het verstandig is om álle pinnen (boven en onderkant, de pinnen aan de achterkant worden niet gebruikt en hoeven ook niet gesoldeerd te worden) nogmaals te solderen. Hou er wel rekening mee dat zo’n pin maar één á twee seconden tot zo’n 280 graden verwarmt mag worden. Laat de ESP-12 dus na iedere pin even afkoelen en soldeer twee naast elkaar liggende pinnen niet direct na elkaar vast maar sla steeds een paar pinnen over.
      Als het dan nóg niet werkt zou de ESP-12 kapot kunnen zijn maar dat komt eigenlijk bijna nooit voor. Vervangen van de ESP-12 is een lastig klusje en daar heb je eigenlijk een hot-air gun voor nodig.

      Keep me posted!

      • Peter Creyghton says:

        Dank voro de snelle reactie!

        Ik ga alle pinnen opnieuw solderen. Dank ook voor de tip om een paar pinnen over te slaan, die informatie had ik wel gezocht maar kon ik niet vinden. Ik laat je weten hoe het afloopt.

        Gr. Peter

      • Peter Creyghton says:

        Opnieuw solderen van de contacten van de ESP-12 heeft niet geholpen. Ik heb de instellingen in de software nog een keer nagelopen, en verschillende keren geprobeerd te flashen maar geen witte rook (wat op zich een goed ding is 😉

        De temperatuur van mijn soldeerbout stond ingesteld op 375 graden, wellicht heeft de temperatuur het probleem veroorzaakt.

        Desolderen is niet mijn ding, dus ik ga een nieuwe kit bestellen.

        Gr. Peter

        P.S. De eerste print staat vrolijk data te verzamelen.

        • Dick says:

          Hi Willem,
          Prima projectje, met passende hardware en duidelijke software.
          Maar toch nog wat opmerkingen.

          -Mijn slimme meter kan blijkbaar de startstroom niet aan en schakelt dan af, om even later het weer te probereb. Resultaat een knipperende rode led. Het blijkt dat Elco C3 te groot is, daardoor te grote startstroom. C3 is door mij vervangen door 100microF en nu ok.
          -Ik heb een wat groter OLED display aangesloten(1.3″), deze heeft een SH1106 chip. Om hem te gebruiken is het alleen nodig om in oledStuff.h regel 62 aan te passen oled.begin(&SH1106_128x64, I2C_ADDRESS);

          -In de beschrijving wordt gesproken van het meten van de stroom van bv een solarpaneel. In de software heb ik hier niets van kunnen vinden, is het wel gerealiseerd? Als stroomsensor wordt de SCT013-030 genoemd, maar dit is een stroomtrafo die met hoge frequentie bemonsterd moet worden om de effectieve stroom te krijgen, lukt dat?

          Ik broed op nog wat aanvullingen, lukt dat, dan laat ik het weten.
          Groet,
          Dick

          • Willem Aandewiel says:

            Dick,

            Dank voor je comment.
            De meeste mensen (ik eigenlijk ook) denken dat een groter elco voor meer stabiliteit zorgt. Dat is ook zo, maar aan die grotere startstroom heb ik nooit gedacht (ik ben in mijn omgeving alleen Slimme Meters tegengekomen die blijkbaar volledig aan de DSMR-standaard voldoen en dus ook geen enkele moeite hebben met de startstroom. Ik was het probleem zelf dus ook nooit tegen gekomen). Ik hoop dat meer mensen met het knipperende rode ledje ook een kleinere elco plaatsen en terugkoppelen of dit het probleem ook voor hun oplost.

            Ik ontvang graag een fotootje van je DSMR-logger met dat grotere OLED scherm. Kan wellicht ook als compiler optie worden ingesteld.

            De firmware doet niets met de ADC ingang. Dat zul je dus zelf moeten uitzoeken.

  109. Tom says:

    Hallo Willem,

    Wat een tof project. Zou het ook mogelijk zijn om er een ethernet aansluiting op te maken. Of zal dan wel een externe voeding benodigd zijn, of dan wel met POE. Ik ben niet zo van de wifi verbindingen behalve telefoons.

    • Willem Aandewiel says:

      Tom,
      Dank voor het compliment.

      Ik denk niet dat het héél moeilijk is om een ethernet variant te maken .. maar ík ga het niet doen.
      Volgens mij is juist draadloos communiceren de norm en waarom zou je moeilijk doen?
      De basis van dit project is een ESP8266 en laat die nou juist gemáákt zijn met alle mogelijkheden van WiFi!
      Of je voor ethernet een externe voeding nodig hebt is vooral afhankelijk van je Slimme Meter. De standaard schrijft voor dat deze minimaal 250mA moet leveren. Als je op de ESP8266 WiFi uitschakelt kun je volgens mij zonder problemen een ethernet ‘dingetje’ aansluiten. Er zijn nog genoeg GPIO pinnen over.

      Als je dat gaat doen: succes!

      En laat ons weten hoe je het gedaan hebt.

  110. Michael says:

    Hallo Willem,

    even een vraagje…..
    Ik kan mijn logger via het thuis netwerk goed benaderen maar buiten mijn netwerk om wil de pagina niet laden.
    Ik krijg wel de tekst DSMR-logger en het mapje te zien.
    Via mijn laptop kan ik dat mapje niet aanklikken maar op mijn telefoon lukt dit wel en krijg dan FSexplorer.
    Ik heb via No-Ip een hostname die werkt.
    Portforwarding staat ook goed ingesteld.
    Als ik namelijk mijn port 80 doorverwijs naar mijn raspberry werkt dit goed.

    Of is het benaderen van de logger extern niet mogelijk?
    Alvast bedankt,
    groeten Michael

    • Willem Aandewiel says:

      Michael,

      De DSMR-logger maakt ernstig gebruik van WebSockets. Hiervoor gebruikt de firmware DSMRloggerWS poort 81. Hoewel ik er geen ervaring mee heb (als je van buiten je thuis netwerk op wil zou ik altijd aanraden om een VPN verbinding te gebruiken) lijkt mij dat als je poort 81 op dezelfde manier routeert als je nu met poort 80 doet, het zou kunnen werken.
      Hou er wel rekening mee dat als jij poort 80 van buitenaf kunt benaderen, anderen dat ook kunnen!
      Als je het “aan de praat” krijgt, schrijf je dan weer een comment?

      • Michael says:

        Hoi,

        ik heb nu poort 81 geforward naar de logger.
        Als ik nu het ip adres van mijn router invoer met daarachter :81
        dan krijg ik het volgende in mijn browser te zien:
        This is a Websocket server only!.

        Kan ik hier iets mee?

    • Willem Aandewiel says:

      Michael,

      Zo als ik al schreef: ik heb echt geen idee 🙁

      • Michael says:

        Hoi Willem,

        ik heb openVpn server om mijn raspberry geinstalleerd en nu werkt het wel.
        Nu kan ik buitenshuis de pagina wel laden.
        Ook heb ik alle poorten weer dichtgezet, behalve die voor de vpn server.

        Groeten Michael

        • Willem Aandewiel says:

          Michael,

          Dat is precies hoe je het beste van buitenaf je eigen netwerk kunt benaderen!

    • Peter Creyghton says:

      Hallo Michael,

      Je kunt de DSMR logger benaderen als je zowel poort 80 als 81 forward naar het ip adres van de DSMR logger. Je kunt dan met je browser de webpagina benaderen, en de javascript code kan via port 81 de websockets benaderen. Ik heb dat net getest en het werkt prima.

      Succes,
      Peter

      • Michael says:

        Hoi Peter,

        bedankt voor de tip….
        Ik had alleen poort 80 of 81 ge-forward en dan laad de pagina niet.
        Wat ook opviel was dat de “Free heap” omlaag kelderde en in de rode cijfers kwam.
        Het lukt nu ook prima, en heb meteen een VPN server.
        En alle poorten van mijn modem staan nu dicht.

  111. Camiel says:

    Hoi Willem,

    Eindelijk! Een manier om in mijn meterkast buiten mijn appartement en zonder stopcontact toch mijn stroomverbruik te kunnen gaan meten. Enige is dat het jammer is dat ik niet heel erg goed ben in solderen en dat weerhoudt me een beetje om de V4 aan te gaan schaffen. Hoe ingewikkeld is dit en bestaat er ook een mogelijkheid om dit bordje gesoldeerd (en eventueel geprogrammeerd) te bestellen?

  112. Pieter Bollen says:

    Hallo Willem,
    Allereerst nogmaals bedankt voor dit prachtige stukje werk en niet te vergeten je snelle en goede tips.

    De IDE 1.89 geïnstalleerd op een Raspberry PI 3, het compileren duurde erg lang om vervolgens in een hangup van de Raspberry te eindigen.
    IDE 1.85 geïnstalleerd daarna compileerde het programma prima.
    Tijdens het uploaden verscheen er een timeout, door nu nogmaals de Flash en Reset in te drukken ging het uploaden verder.

    Bij het testen kwam ik erachter dat de data niet was overgezet, geprobeerd de data te uploaden, dit lukte niet.
    Nu heb ik de soldeerverbindingen van de esp eens goed bekeken en een aantal opnieuw gesoldeerd. Het uploaden van de bestanden lukte nu perfect.
    Hierna kon ik ook de webserver gebruiken!

    Alles werkt nu, ik wil mijn project verder uitwerken om afhankelijk van de terug geleverde energie via MQTT apparaten aan of uit te schakelen.
    Indien iemand hier ervaring mee heeft dan hoor ik het graag.

    Willem graag kom ik in het bezit van het door jou geschreven sensor boek.
    Ik hoor graag hoe te bestellen.

  113. jos says:

    Goeieavond Willem,

    net het printje gesoldeerd firmware geladen en data er in geladen ik dacht dit kan niet meer mis gaan! 😛

    helaas heb ik het probleem dat de DSMR niet overeind komt als AP op de wifi niet als ik hem aan de p1 poort hang niet als ik hem aan een 5v voeding hang (met 1e pen op RJ12 afgetaped) en ook niet als hij aan de computer hangt

    enig idee? solderingen zijn allemaal gewoon in orde voor zover ik kan zien

    met vriendelijke groet,
    Jos

    • Willem Aandewiel says:

      Jos,
      Heb je een DSMR-logger met OLED schermpje?
      Wat voor meldingen komen daarop voorbij?
      Wat doet het blauwe ledje op de ESP-12?

      Wat bedoel je met “niet overeind komt als AP op de wifi”?

      Als de blauwe led eerst knippert en daarna blijft branden dan moet je met je computer bij de WiFi settings een AP zoeken die DSMR-WSnnnnn heet en je computer daar verbinding mee laten maken. Vervolgens kun je de WiFi credentials van je eigen AP invullen.

      • jos says:

        met niet overeind bedoel ik dat ik de access point niet in de lijst met wifinetwerken zie op mijn computer/iphone/android toestel

        de blauwe led knippert zoals je documentatie aangeeft 3x langzaam en daarna continu na x aantal minuten begint de logger aan een reboot

        ik heb geen oled scherm maar heb wel met de seriele monitor de dsmr logger uit kunnen lezen

        22:37:23.576 ->
        22:37:23.576 -> ets Jan 8 2013,rst cause:2, boot mode:(3,6)
        22:37:23.576 ->
        22:37:23.576 -> load 0x4010f000, len 1384, room 16
        22:37:23.609 -> tail 8
        22:37:23.609 -> chksum 0x2d
        22:37:23.609 -> csum 0x2d
        22:37:23.609 -> v8b899c12
        22:37:23.609 -> ~ld
        22:37:23.676 ->
        22:37:23.676 -> SDK:2.2.1(cfd48f3)/Core:2.5.2=20502000/lwIP:STABLE-2_1_2_RELEASE/glue:1.1-7-g82abda3/BearSSL:a143020
        22:37:23.676 ->
        22:37:23.676 ->
        22:37:23.676 -> Booting….[v0.4.7 (06-08-2019)]
        22:37:23.710 ->
        22:37:48.281 -> *WM:
        22:37:48.281 -> *WM: AutoConnect
        22:37:48.281 -> *WM: Connecting as wifi client…
        22:37:48.315 -> *WM: Using last saved values, should be faster
        22:37:48.315 -> *WM: Connection result:
        22:37:48.315 -> *WM: 0
        22:37:48.315 -> del if0
        22:37:48.315 -> usl
        22:37:48.315 -> mode : softAP(86:f3:eb:78:53:8c)
        22:37:48.315 -> add if1
        22:37:48.315 -> dhcp server start:(ip:192.168.4.1,mask:255.255.255.0,gw:192.168.4.1)
        22:37:48.315 -> bcn 100
        22:37:48.315 -> [00:00:16] [ 21576] configModeCa( 43): Entered config mode
        22:37:48.349 -> [00:00:16] [ 21640] configModeCa( 45): 192.168.4.1
        22:37:48.349 -> [00:00:16] [ 21640] configModeCa( 48): DSMR-WS-84:F3:EB:78:53:8C
        22:37:48.349 -> *WM:
        22:37:48.349 -> *WM: Configuring access point…
        22:37:48.349 -> *WM: DSMR-WS-84:F3:EB:78:53:8C
        22:37:49.131 -> *WM: AP IP address:
        22:37:49.131 -> *WM: 192.168.4.1
        22:37:49.131 -> *WM: HTTP server started

        blijkt dus dat deze wel opstart maar zoals ik zeg ik zie hem niet in de lijst met wifinetwerken

        • Willem Aandewiel says:

          Jos,
          Aan de kant van de DSMR-logger ziet alles er prima uit. Het klopt dat hij, als hij na ongeveer drie minuten geen reactie op het AP krijgt, de DSMR-logger reboot.

          Ben je in de gelegenheid om de DSMR-logger bij iemand anders te testen? Als je daar wél het AP krijgt kun je de WiFi credentials van je thuis WiFi invoeren.

          • Jos says:

            Bij iemand anders testen als in bij iemand anders thuis of op iemand anders z’n telefoon?

            Ga ik dan zeker even proberen!

            Mijn gevoel gaat uit dat er iets mis is met de antenne ofzo van de esp zou dit kunnen of is dat gekke praat 🙈

          • jos van emmerik says:

            Willem,
            dankjewel voor je hulp en uiteraard het ontwerp! het is uiteindelijk gelukt om een 2e DSMR logger in elkaar te solderen zonder problemen door opencircuit goed geholpen bij de vervanging van de defecte logger even in het midden gelaten of ik iets fout heb gedaan of dat de esp-12 problemen had.

            al met al een redelijk eenvoudig soldeer project met een mooie uitgebreide uitleg hoe je alles stap voor stap moet uitvoeren!

            ik heb zelf nog gebruik gemaakt van de koppeling met Homey ook dit werkt prima!

  114. Pieter Bollen says:

    Hallo Willem,
    Ik heb de arduino IDE op een Raspberry pi3 gezet en alles geïnstalleerd, op dit moment is de raspberry aan het compileren.
    Ik vraag me af of dit kan op een Raspberry aangezien de Raspberry nu al een uur bezig is,
    Er komen geen warnings alleen het ledje op de Raspberry knippert soms, verder zie ik niets gebeuren. Ik vraag mij af of dit wel gaat werken op met een Raspberry.
    Rasbian versie image 2019-7-10
    IDE versie 1.8.8.
    Kun jij aangeven hoe lang dit kan duren?
    met vriendelijke groet,
    Pieter

    • Willem Aandewiel says:

      Pieter,

      Ik heb geen enkele ervaring met de Arduino IDE op een Raspberry.
      Ik verwacht dat het moet kunnen werken maar .. als de Raspberry al “uren” aan het compileren is dan dénk ik dat er iets mis is. Ik zou eerst eens een simpel programmaatje (blink.ino) compileren en flashen. Kijken of dat gaat.

      • Pieter Bollen says:

        Dag Willem,
        dank je wel voor je snelle reactie, ik heb het e.e.a uitgeprobeerd en nu blijkt dat geen enkel programma compileert als ik bij bord kies voor de 8266, bij de keuze voor bijvoorbeeld een mega 2560 compileert hij wel blink.ino
        Heb jij hier een verklaring voor? Ik zal ongetwijfeld iets verkeerd doen maar weet niet wat.
        Met vriendelijke groet,
        Pieter

        • Willem Aandewiel says:

          Pieter,
          Ik heb echt geen idee en ook geen ervaring met deze setup.
          Het lijkt mij meer een vraag voor Raspberry, Arduino en/of ESP8266 core fora.

          • Pieter Bollen says:

            Willem,
            Dank je wel voor het geweldige stuk werk, het ziet er allemaal perfect uit.
            Ik ga proberen om de logger via mijn Apple te programmeren.
            met vriendelijke groet,
            Pieter

  115. Bauke says:

    @Michel,
    Ik heb gebruik gemaakt van je lua script om data naar Domoticz door te zetten.
    Als ik in de log kijk dan zie ik de json data prima doorkomen.
    Echter in de virtuele sensors (ik heb er 3 aangemaakt om te testen) zie ik ik geen waarde hoewel ik de idx nummers goed heb opgegeven; ook heb ik het bijwerken van de dummy-switches onderaan geactiveerd.
    Heb je enig idee hoe dit kan Michel?
    Ik maak gebruik van de logger v4 en Domoticz 10.717

    • Michel says:

      @Bauke,

      Heb je de Debug optie al eens aangezet, mogelijk dat er dan meer te zien is waar het fout gaat. Plaats als onderstaan niets verhelpt ook eens een deel van de logging zodat ik kan zien wat er gebeurt.

      Belangrijk is dat je de namen in het script niet veranderd aangezien deze nodig zijn ivm JSON output. Je kunt de JSON output zelf controleren door in je browser te gaan naar http://DSMR-WS.local/restAPI?get=Actueel

      Waarbij je DSMR-WS.local eventueel kunt vervangen door het het ip-adres van jouw DSMR-logger.

      Controleer of deze namen nog steeds overeen komen met die in het script.
      Ik gebruik niet de meest recente versie van de firmware dus mogelijk is hierin nog iets veranderd.

      Kijk ook of bij onder commandArray={} ook de — hebt verwijderd. Je moet dus op 2 plekken de — verwijderen in het script.

      • Bauke says:

        @Michel,
        Wat je opnoemt, heb ik ook allemaal gedaan. Wat dat betreft had je het script ook duidelijk ingedeeld en goed aangegeven wat moet worden gewijzigd. De debug-logging had ik ook al aangezet en komt precies overeen met een losse RESTapi call.
        Ik denk dat jouw script prima werkt. !

        Overigens heb ik het idee dat het meer een issue is van domoticz zelf en de juiste type van de virtuele sensors. Ik vind dat niet voldoende flexibel maar moet nog wel wat experimenteren..

        • Michel says:

          @Bauke,

          Ik gebruik wel de beta van Domoticz en meestal de meest recente versie. Juiste type sensor staat er ook achter vermeld en daar werkt het bij mij wel dus op zich zou dat geen probleem moeten zijn. Mogelijk omdat jij de stable versie gebruikt dat hierin een verschil zit.

          Als je Domoticz vai een SD kaart draait zou je een image kunnen maken van je SD kaart en daarna voor de test upgraden naar de beta versie. Als het dan wel werkt weet je gelijk waar het probleem zit.

          Als je klaar bent met testen en je wilt terug naar de stable dan zet je de image weer terug op SD.

          Nu moet ik er wel bij zeggen dat Domoticz hier inderdaad niet heel overzichtelijk werkt en eigenlijk valt mij dat zwaar tegen. Ik wil tzt dit gaan omzetten naar
          Grafana icm InfluxDB aangezien het grafiek deel niet denderend is in Domoticz.

          En denk ook sterk om tzt over te stappen op HA omdat dit veel meer bied al is het instellen ervan weer een stuk lastiger. Maar eenmaal dat deel draaiend dan is iets toevoegen vaak weer veel eenvoudiger.

          Ik gebruik nu ook vaak mijn.energieinzicht.nl om een eenvoudig overzicht te krijgen en hoef je helemaal niets voor in te stellen alleen toestemming geven om 1x per dag je gegeven van je meter uit te lezen.

          • Bauke says:

            Hoi Michel,
            Las nog ff je reply terug. En wil nog ff melden dat je DSMR-logger script prima werkt.
            Bedankt hiervoor.
            Mvgr, Bauke

  116. Bauke says:

    Beste Willem,
    Ik kan de Domoticz aansluiting (script van Michel) niet meer op GitHub vinden.
    Is dat niet meer beschikbaar? Een alternatief zou zijn een MQTT oplossing maar dat is lastig omdat Domoticz al specifieke kenmerken in het bericht wenst (idx). Niet bepaald een nette ontkoppeling van pub en sub.

  117. PimB says:

    Leuk idee!
    Ik heb er van de week 1 besteld, alles netjes gesoldeerd en aangesloten via een FTDI232-plankje… maar het uploaden werkt niet. Ik krijg de volgende fout:
    esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header

    Nu lees ik online dat dit komt omdat de ESP niet in flash-mode komt…
    Ik zie ook geen enkel verschil tussen de normale mode en de flash mode. Het LEDje blijft branden, maar knippert nooit ofzo. Ik druk zoals in de doc, eerst op flash, dan reset, dan eerst reset loslaten en dan flash. Niks, nada, noppes.

    Wat doe ik verkeerd?

    • Willem Aandewiel says:

      Hi PimB,

      Als we ervan uitgaan dat je bij het solderen niets fout hebt gedaan, dan is de enige fout die ik kan bedenken dat je de TxD en RxD lijnen niet goed hebt aangesloten. Tx van de FTDI moet naar de RxD van de DSMR-logger en de Rx van de FTDI moet naar TxD van de DSMR-logger!

      Kun je dat nog eens controleren?

      • PimB says:

        Gedaan, met meerdere FTDI-plankjes. No rock n’ roll.

        Ik ga het eens op een Windows-laptop proberen, ik heb wel vaker problemen gehad met Arduino op de Mac.

        • Willem Aandewiel says:

          PimB,

          Wat vervelend.
          Je kunt inderdaad niet zien of de ESP-12 in Flash- of Normale-Mode zit maar onder normale omstandigheden moet het allemaal toch vrij probleemloos gaan (ik werk zelf uitsluitend met MacOS).
          Als je er toch niet uitkomt moet je de DSMR-logger maar naar mij opsturen. Dan probeer ik hem voor je aan de praat te krijgen.

        • JW says:

          “Failed to connect to ESP8266: Timed out waiting for packet header” -> FTDI bordje levert waarschijnlijk onvoldoende power op zijn 3V3 uitgang. Met een losse 3V3 voeding was het probleem bij mij opgelost.

  118. Albert says:

    Hier is mijn 3d behuizing met display te vinden.

  119. Jos says:

    Dag Willem

    Ik heb zojuist versie 4.7 geinstalleerd. MQTT werkt. Dat is al mooi. Dat ziet er zo uit:

    5-8-2019 16:52:53node: 1a8b6a7f.7f9986
    home/smart-meter/DateTime : msg.payload : string[19]
    "2019-08-05 16:53:04"
    5-8-2019 16:52:53node: 1a8b6a7f.7f9986
    home/smart-meter/EnergyDel : msg.payload : string[9]
    " 249.504"
    5-8-2019 16:52:54node: 1a8b6a7f.7f9986
    home/smart-meter/EnergyRet : msg.payload : string[9]
    " 791.333"
    5-8-2019 16:52:55node: 1a8b6a7f.7f9986
    home/smart-meter/GasDel : msg.payload : string[9]
    " 0.00"
    5-8-2019 16:52:56node: 1a8b6a7f.7f9986
    home/smart-meter/PowerDel : msg.payload : string[9]
    " 0.000"
    5-8-2019 16:52:57node: 1a8b6a7f.7f9986
    home/smart-meter/PowerRet : msg.payload : string[9]
    " 0.769"
    5-8-2019 16:52:58node: 1a8b6a7f.7f9986
    home/smart-meter/PowerDelL1 : msg.payload : string[9]
    " 0"
    5-8-2019 16:52:59node: 1a8b6a7f.7f9986
    home/smart-meter/PowerDelL2 : msg.payload : string[9]
    " 0"
    5-8-2019 16:53:00node: 1a8b6a7f.7f9986
    home/smart-meter/PowerDelL3 : msg.payload : string[9]
    " 0"
    5-8-2019 16:53:01node: 1a8b6a7f.7f9986
    home/smart-meter/PowerRetL1 : msg.payload : string[9]
    " 0"
    5-8-2019 16:53:02node: 1a8b6a7f.7f9986
    home/smart-meter/PowerRetL2 : msg.payload : string[9]
    " 0"
    5-8-2019 16:53:03node: 1a8b6a7f.7f9986
    home/smart-meter/PowerRetL3 : msg.payload : string[9]
    " 0"
    

    De meeste waardes zijn nul. Geen idee wat daar de oorzaak van kan zijn. Ik heb een Telnet sessie gestart maar dat geeft geen verder inzicht. Is e.e.a. het gevolg van het hebben van een Belgische meter? Kan ik meer debug info in Telnet boven water krijgen?

    • Willem Aandewiel says:

      Jos,

      Als de SM bepaalde waarden niet geeft, dan zijn ze uiteraard “0”.

      Kun je in telnet een paar “raw” telegrammen opvangen? Dit doe je met invoer van de letter “p” (had ik als reactie op je eerdere comment ook al aangegeven).

      Ik ben benieuwd wat voor telegrammen je binnen krijgt!

      Als je in telnet op [Enter] drukt krijg je een menu met mogelijkheden te zien. “v” geeft verbose output, nog een keer “v” nog meer output.

      Ook de documentatie geeft veel informatie!

      Misschien ook handig om de Board Info uit te vragen.
      Tenslotte: wat voor merk en type SM heb je?

      • Jos says:

        Dag Willem,

        Dank voor jouw bericht. Ik had al wel naar dde Telnet info gekeken. Hieronder de Board info:

        ==================================================================
                       (c)2019 by [Willem Aandewiel]
                 Firmware Version [v0.4.7 (05-08-2019)]
                         Compiled [Aug  5 2019  15:58:09]
                    compiled with [dsmr.h]
                         #defines [IS_ESP12][USE_UPDATE_SERVER][HAS_OLED_SSD1606][USE_MQTT][SHOW_PASSWRDS]
              Telegrams Processed [1089]
                      With Errors [0]
                         FreeHeap [13712]
                          Chip ID [77EA37]
                     Core Version [2_5_2]
                      SDK Version [2.2.1(cfd48f3)]
                   CPU Freq (MHz) [80]
                 Sketch Size (kB) [552.80]
           Free Sketch Space (kB) [2516.00]
                    Flash Chip ID [00164020]
             Flash Chip Size (kB) [4096]
        Flash Chip Real Size (kB) [4096]
                 SPIFFS Size (kB) [934]
                 Flash Chip Speed [40]
                  Flash Chip Mode [DOUT]
        ==================================================================
                       Board type [ESP8266_GENERIC]
                             SSID [**************]
                          PSK key [**************]
                       IP Address [192.168.n.nnn]
                         Hostname [DSMR-WS]
               Last reset reason: [Exception]
                           upTime [0(d):16:23]
        ==================================================================
        

        Hieronder een paar telegrammen.

        [09:27:20] [   12296] webSocketEve(  49): [0] Got message: [tabActual]
        [09:28:55] [   12120] restAPI     (  24): [0] [GET] => [ACTUEEL] sendDataActual(): send JSON string
        
        [Time]=====[FreeHeap]=[Function]==(line)====================================================
        [09:29:32] [   12080] loop        ( 976): read telegram [1104] => [190806091618S]
        [09:29:33] [   11832] processData ( 585): actual hourKey is [19080609] NEW hourKey is [19080609]
        [09:29:33] [   11976] sendMQTTData( 150): Sending data to MQTT server [192.168.0.66]
        length[79]
        identification: FLU5\253769484_A
        timestamp: 190806092933S
        equipment_id: 3153414733311234567890123456
        energy_delivered_tariff1: 55.79kWh
        energy_delivered_tariff2: 200.58kWh
        energy_returned_tariff1: 616.23kWh
        energy_returned_tariff2: 177.48kWh
        electricity_tariff: 0001
        power_delivered: 0.00kW
        power_returned: 0.93kW
        voltage_l1: 240.60V
        voltage_l2: 238.80V
        voltage_l3: 239.00V
        current_l1: 1A
        current_l2: 2A
        current_l3: 1A
        -Totalen----------------------------------------------------------
        Datum / Tijd         :  2019-08-06 09:29:33
        Energy Delivered     :      256.371kWh
        Energy Returned      :      793.710kWh
        Power Delivered      :     0.000kW
        Power Returned       :     0.930kW
        Power Delivered (l1) :         0Watt
        Power Delivered (l2) :         0Watt
        Power Delivered (l3) :         0Watt
        Power Returned (l1)  :         0Watt
        Power Returned (l2)  :         0Watt
        Power Returned (l3)  :         0Watt
        Gas Delivered        :      0.00m3
        ==================================================================
        [09:29:40] [   12008] webSocketEve(  49): [0] Got message: [tabActual]
        

        Mijn meter is van het merk Sagemcom uit de serie Siconia, type T211. Drie fasen meting.

  120. Bart Uytterhoeven says:

    Willem , Hierbij het resultaat dat ik heb verkregen :
    telnet P = [ 14736] websocketEve( 49): [0] Got message: [tabActual]
    Dit elke 10 seconden

    telnet B = hierbij krijg ik de volledige board info zoals beschreven in handleiding.
    ik heb hiervan een printscreen genomen . Ik zo deze kunnen bezorgen , maar gaat niet via deze weg.

    Groetjes Bart

  121. Allart says:

    Of het een mooi kastje is geworden, mogen anderen beslissen.

    Het resultaat werkt voor mij prima!

  122. Bart Uytterhoeven says:

    Dag Willem ,

    Ik heb het printje met display besteld en geïnstalleerd op een slimme meter in België.
    Alles start op maar ik krijg geen telegrammen binnen op het printje. Nu heb ik wat opzoeking gedaan naar de meter en hier vermeld men het volgende:

    4.3 Fysieke interface
    De gebruikerspoort wordt ingericht volgens het Nederlandse concept, nl. DSMR 5.0.2 P15.
    De fysieke en protocolimplementatie van de gebruikerspoort voldoet aan de specificaties beschreven in Hoofdstuk 5 en 6 van het document DSMR 5.0.2 P1 companion standard.

    4.4 Software interface
    De ter beschikking gestelde gegevens op de gebruikerspoort wijken licht af van die in Nederland (e.g. afsluitstatus). Dit komt door marktverschillen tussen Nederland en Vlaanderen. Hierdoor zijn de mogelijkheden van de digitale meter dus licht anders.
    Omdat bepaalde data-objecten uit de minimale ter beschikking gestelde gegevens niet beschreven staan in sectie 6.12 van DSMR 5.0.2 P1, werd een uitbreiding aan deze sectie toegevoegd. Deze uitbreiding en een aantal andere nuances zijn beschreven in het specificatie document (eMUCS – H). Via de website van netbeheerder Eandis6 kun je dit document downloaden.

    Kan ik de software aanpassen zodat dit werkt?

    groetjes Bart

    • Willem Aandewiel says:

      Bart,

      Kun je inloggen met telnet en dan de letter “P” intoetsen?

      De output die je dan krijgt (de ‘raw’ telegrammen’) zou ik graag van je ontvangen.

      Ook de output die met de letter “B” krijgt ontvang ik graag ..

      Maar natuurlijk kun je de dsmr library aanpassen conform de beschrijving.
      Van mij moet je niet al te veel hulp verwachten want de bibliotheek is in C++11 geschreven en .. daar snap ik echt niets van.

      Wellicht kan Matthijs je verder helpen (zie de arduino-dsmr library op github).

  123. Allart says:

    Dag Willem,

    Vanmorgen heb ik deze print gesoldeerd en (met externe voeding) aan het werk gekregen. In de beschrijving (bij ‘vragen en antwoorden’) wordt daartoe isolatietape over de witte draad geplakt. Bij doormeten bleek dat ik juist de blauwe draad moest afplakken. Ik heb een Iskra AM550 meter, maar dat zou niet uit moeten maken, lijkt me. Het komt wel overeen met de beschrijving van DSMR5, waarin juist de blauwe draad pin 1 is. In ieder geval werkt het nu wel.
    Ik zie in je documentatie een mooie 3D afbeelding van het complete bord. Ik heb een begin gemaakt met een ontwerp voor een nette behuizing. Is de 3D file beschikbaar om het ontwerp goed te kunnen afmaken?
    Alvast bedankt,
    Allart

    • Willem Aandewiel says:

      Hallo Allart,

      In de documentatie staat ook dat je een RJ11 (6p4c) of RJ10 ‘telefoonhoorn’ (4p4c) kabeltje kunt gebruiken. Het gaat inderdaad om het isoleren van pin1 (die is gestandaardiseerd ‘wit’).

      Gerard is begonnen aan een 3D kastje (heeft hij ook voor de DSMR-logger V3 gemaakt) maar tijdgebrek heeft ervoor gezorgd dat die nog niet af is (ik zal morgen zijn ongeprinte, ongeteste versie op github zetten).

      Er bestaat geen 3D model van de DSMR-logger. Mocht je toch een mooi kastje ontwerpen dan hoop ik dat je die met ons wilt delen.

  124. jen says:

    Hi,

    Allereerst mn complimenten ik vind dit een erg mooi project geworden. Gisteren het soldeer werk af gekregen. Het flashen ging goed, dat data upload ding ging wat minder soepel maar uiteindelijk is dat ook gelukt:)
    Anyway, ik ben vooral geintresseerd in dit werkend te krijgen in Domoticz, maar ik ben geen (lua) scripting ninja. Ik blijf rond het IDX verhaal hangen. Moet zo’n var niet ook een type mee krijgen?

    
    Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_time_esp-dsmr-logger.lua: .../pi/domoticz/scripts/lua/script_time_esp-dsmr-logger.lua:38: unexpected symbol near '='
    
    37  Timestamp_164 =                   -- Dummy = Text
    38   Energy_Delivered_165 =            -- Dummy = Counter Incremental --> Engergy
    
    

    en dan lines

    
    198 commandArray[#commandArray+1] = {['UpdateDevice'] = ''..Timestamp_IDX..'|0|'..Timestamp..''}
    199  commandArray[#commandArray+1] = {['UpdateDevice'] = ''..Energy_Delivered_IDX..'|0|'..Energy_Delivered..''}
    
    

    bvd,
    jen

    • Willem Aandewiel says:

      Beste Jen,

      Je kunt het beste contact met Michel opnemen. Hij heeft de intergratie gemaakt.

    • Michel says:

      @Jen,

      Sorry ik zie dit nu pas en krijg geen melding als er een reactie is.

      Mocht het nog niet niet werken dan komt dit waarschijnlijk om je in regel 37 en 38 het IDX hebt ingevuld op de verkeerde plek.
      De namen kun je beter niet aanpassen want dan komen die niet meer overeen met de rest.

      Timestamp_164 = moet zijn Timestamp_IDX = 164

      Je verwijderd dus de — en achter het = teken vul je het IDX nummer in.
      Dit herhaal je voor elke regel die je wilt opnemen in Domoticx en waar je een dummy voor hebt aangemaakt.

      • Jen says:

        @michel en ik zie t nu pas;)

        Dat had ik als eerste geprobeerd maar ik bleef vage errors houden. Assert faalt kennelijk niet erg gracieus. Lang verhaal kort ik had bovenin het script nog staan

        21 Firmware = "DSMRlogger2HTTP"

        en bij mij moet dat kennelijk Websockets zijn dus nu doet ie t een stuk beter. Super bedankt voor je script, ondertussen heb ik weer wat geleerd.

      • marco says:

        hoi,

        ik heb hier exact hetzelfde en krijg geen dat binnen in domoticz.

        met deze error in het log:
        2019-09-13 22:44:00.778 Error: EventSystem: in P1 esp Module: [string “- …”]:1: unexpected symbol near ‘-‘

        • Willem Aandewiel says:

          Hi Marco,

          Dus het flashen van de firmware is uiteindelijk gelukt?
          Wat heb je anders gedaan waardoor het nu wel ging?

  125. Jos says:

    Dag Willem

    Ik heb de print met display in elkaar gezet de software gecompileerd en geflashed. Alles lijkt op het eerste gezicht te werken met de Belgische meter. Ik heb de logger nu een klein uurtje aan de meter hangen maar -Power en +Power op het display blijft nul Watt. Ook op de URL is de actuele data overal nul. Wel zie ik waardes bij Energie verbruikt, Energie teruggeleverd, Verbruik T1 en T2, Levering T1 en T2. Van de actuele gegevens is enkel de spanning ingevuld en stroom ingevuld (zonder cijfers achter de komma).

    Kun je op basis van bovenstaande beoordelen of het P1 protocol compatible is?

    Ik zou nu verder willen gaan met MQTT en Node-RED. Beschik je over een voorbeeld waarbij de totalen uit de logger eens per minuut als tele message gestuurd worden?

    • Willem Aandewiel says:

      Beste Jos,

      [ik heb je comment verplaatst]

      Als de waardes die je bij Verbruik en Teruglevering ziet overeenkomen met wat je daadwerkelijk verbruikt (je kunt daarvoor het beste de meterstanden controleren met de meterstanden in de tabellen) dan werkt de Belgische meter met eenzelfde soort protocol. Blijkbaar geeft hij echter geen actueel verbruik door. Je kunt kijken hoe een binnenkomend telegram eruit ziet door met telnet op de logger in te loggen en dan het commando “P” te activeren. Je ziet dan de “raw” binnenkomende telegrammen voorbij komen.

      Ik begrijp niet wat je met “Ook op de URL is de actuele data overal nul” bedoeld. Worden alle andere rubrieken wel gevuld? Worden de Charts gevuld?

      Mocht jouw meter inderdaad het actuele verbruik niet doorgeven, dan kun je die berekenen aan de hand van de spanning en de stroom, maar dat is niet heel nauwkeurig.

      MQTT zit binnenkort standaard in de firmware (waarschijnlijk in V0.4.6) .

      Wat bedoel je met “tele message”? Gegevens uitlezen via de restAPI moet je van buiten de DSMR-logger initiëren.

    • Willem Aandewiel says:

      Beste Jos,

      In versie V0.4.5 zit een optie om de Power te berekenen als de SM deze niet geeft.

      Dit is de code daarvoor:

      #ifdef SM_HAS_NO_FASE_INFO                                                                  //NO_FASE
          PowerDelivered_l1   = PowerDelivered * 1000;  // kW * 1000 => Watt                      //NO_FASE
          PowerDelivered_l2   = 0;                                                                //NO_FASE
          PowerDelivered_l3   = 0;                                                                //NO_FASE
                                                                                                  //NO_FASE
          PowerReturned_l1    = PowerReturned * 1000;   // kW * 1000 => Watt                      //NO_FASE
          PowerReturned_l2    = 0;                                                                //NO_FASE
          PowerReturned_l3    = 0;                                                                //NO_FASE
      #endif                                                                                      //NO_FASE
      

      Deze code moet je in de functie processData(MyData DSMRdata) opnemen na /*--update data set's--*/ en vóór de bepaling van de maxPower velden.

  126. Albert says:

    Hoi Willem,

    Top project!
    Gisteren avond V4 bouwpakket besteld plus display en vanmorgen geleverd.
    Binnen een half uur in elkaar gezet en gekoppeld aan mijn Homey.
    En alles werkt in 1 keer.

    Nog wel een kleine uitdaging te gaan omdat ik mij P1 signaal heb gesplitst naar mijn laadpaal en nu met het data request even uit vogelen wie ik de master laat zijn. Mijn voorkeur gaat uit om het signaal continu hoog te laten staan.

    • Willem Aandewiel says:

      Albert,
      Dank voor het compliment!

      Als je de Data Request line (vanuit de DSMRlogger) continue “hoog” wilt maken moet je deze aanroep:

          P1Reader slimmeMeter(&Serial, DTR_ENABLE);

      veranderen in:

          P1Reader slimmeMeter(&Serial, 0);

      en ergens aan het einde van setup() dit toevoegen:

            digitalWrite(DSR_ENABLE, HIGH);

      Heb jij de Homey intergratie ontwikkeld? If so, wellicht goed om daar op deze site melding van te maken!

      • Albert says:

        Willem,

        Ik heb de Homey integratie niet ontwikkeld.
        Alle eer is aan Tycho Schenkeveld.
        Door zijn Homey app ben ik op jouw site gekomen.

        • Bauke says:

          Hallo Albert en Willem,
          Ik heb al eerder een post hieraan gewijd maar ben nog niet verder gekomen. Wat ik wil is de slimme meter logger v4 samen met Toon (van Eneco) aan de p1 poort hangen. Recht-toe-recht-aan splitten werkt niet.
          Ook heb ik geprobeerd de data-request pin2 voor een van de twee niet te verbinden met de p1. Werkt niet. Ook andersom niet. Heeft iemand hiervoor een oplossing?
          Mvrgr, Bauke

          • Willem Aandewiel says:

            Bauke,

            Om te beginnen moet je controleren of je telegrammen binnen krijgt als je de DSMR-logger en Toon aangesloten hebt. Ga daarvoor met telnet naar de DSMR-logger en selecteer “Raw telegrammen” (de letter “p” intoetsen.
            Als de telegrammen die je dan ziet er “goed” uitzien en Toon werkt ook nog, dan moet je de enable-pin in de #define DTR_ENABLE 12 aan het begin van de Sketch weghalen (of even verderop “#undef DTR_ENABLE zetten).
            De DSMR-logger zal dan geen gebruik meer van de DTR pin maken.
            Niet getest, zo uit mijn hoofd.
            Succes en laat weten of dit werkt..

          • Bauke says:

            Hoi Willem, bedankt voor je snelle antwoord.
            De P1-split-met-Toon-situatie is als volgt:
            Ik heb al de datalijnen 2,3,4 en 5 uit P1 exact gekopieerd naar beide apparaten (Toon en de logger). in dit geval blijft Toon het gewoon doen en geeft de logger een continu blauw led.
            Met telnet (p) zie ik ook geen telegrammen langs komen.
            Vervolgens heb ik pin2 niet gesplitst (dus bv wel verbonden met Toon maar niet met de logger) en ook andersom geprobeerd. In beide gevallen op de logger een continu blauw led en geen telegrammen in telnet.

          • Willem Aandewiel says:

            Bauke,

            Als ik dit zo lees lijkt het dat de Toon de datalijn zodanig belast dat de DSMR-logger geen data meer binnenkrijgt. Als dat zo is gaat het dus niet werken. Je zult een manier moeten bedenken om de data lijn (elektronisch) te scheiden in een datalijn voor Toon en één voor de DSMR-logger.

          • Bauke says:

            Hoi Willem,
            By-the-way de splitsing is gewoon een ‘galvanische’ splitsing. Dus niet via opto-coupling.

  127. Gert says:

    Dag Willem,
    Heb DSMR 4 gelezen en hele V4-pakket ontvangen.
    De ondelenlijst bevat optinele onderdelen afhankelijk van welke voltages ik wens uit te lezen. Hoe en waarom zou ik dit willen c.q moeten weten? Heeft dit te maken met het type slimme meter? (landis + gyr E350)

    • Willem Aandewiel says:

      Beste Gert,

      De ADC interface is optioneel. De twee weerstanden (R12 en R13) hoef je niet op de PCB te solderen zodat je eventueel op een later tijdstip (als je de interface ergens voor wilt gebruiken) alsnog kunt bepalen wat voor spanningsdeler je nodig hebt.
      Zie ook deze pagina.

  128. ed says:

    OK, vanmiddag dan eindelijk de schakeling gebouwd, op gaatjesprint met een Wemos D1 mini.
    Probleemloos werkend.
    je hebt aardig wat in die ESP weten te stoppen 🙂

  129. Jordy says:

    Hoi Willem,

    Ik heb je printje gesoldeerd en webpagina etc laad correct.
    echter ontvang ik geen telegrammen.
    Mijn meter:

    Kamstrup 162 1-fase kleinverbruik RJ-11, 4-pins DSMR 2.2 9600 7E1

    Ik heb bij serial.begin aangepast naar 9600, SERIAL_7E1, de connectie van het kabeltje richting de meter heb ik aan moeten passen omdat volgens het www pin 1 van de meter links begint en niet rechts. Kun je mij helpen om het printje werkend te krijgen.

    • Willem Aandewiel says:

      Jordy,

      Ik heb géén ervaring met meters die niet aan DSMR 4.0 of hoger voldoen en de Kamstrup 162 is er daar helaas één van…

      Blijkbaar heb je zelf al het nodige onderzoek gedaan. Je hebt zelf al ontdekt dat er een RJ10/RJ22 (4P4C) kabeltje nodig hebt. Omdat de vier aansluitingen overeenkomen met de binnenste vier aansluitingen van de door de DSMR-logger gebruikte RJ12 (6P6C) connector kun je een standaard telefoonkabeltje met aan beide uiteinden een RJ10/RJ22 stekker tussen de Slimme Meter en de DSMR-logger gebruiken.
      Wat je bedoeld met “ik (heb de kabel) aan moeten passen omdat volgens het www pin 1 van de meter links begint en niet rechts” weet ik niet. Het is een “rechte” kabel dus of je van links-naar-rechts of andersom begint met tellen maakt voor de kabel weinig uit.

      Anyway: Je hebt de regel Serial.begin(); in Setup() volgens mij correct aangepast.

      Wat je nu nog moet doen is een (USB) voeding (5Volt) aansluiten tussen GND (J8) en +5V(J7) op de DSMR-logger.

      Volgens alle logica zou het dan moeten werken!

      Wil je een reactie plaatsen met je bevindingen? Daar heeft iedereen dan weer wat aan!

      Succes

      • Jordy says:

        Hey Willem,

        Oké ik ben een stap dichterbij de oplossing.
        Ik heb activiteit op de Data pin TX_SM tevens geïnverteerd op RX_SM dus dat werkt. maar nog geen gegevens op de webpagina.

        heb de RX pin van de USB >> serial kabel op RX_SM aangesloten om de kijken of ik daadwerkelijk een telegram ontvang en jawel ik ontvang telegrammen. dus tot aan de ESP chip komt alles goed binnen. Dan moet het bijna in de software liggen.

        Ik ga alles nog een keer programmeren zoals beschreven staat in de handleiding en kijken of het dan beter werkt.

        • jordy says:

          Alles opnieuw geprogrammeerd, helaas blijft het blauwe ledje aan en knippert niet, nadat verbinding is gemaakt met de WiFi.

          In mijn serial monitor programma kan ik duidelijk zien dat ik een telegram ontvang, echter de ESP lijkt niks te zien. Waar zou dit aan kunnen liggen.

          En ja ik heb de serial goed ingesteld na het opnieuw programmeren 🙂

          • Ferdy says:

            Heb je hier inmiddels een oplossing voor gevonden? Ik heb hetzelfde probleem, met twee bordjes en twee verschillende Iskra meters. (een oude type op 9600 baudtrate [Serial.begin(9600, SERIAL_7E1); ] en een nieuwe op 115200 / standaard instelling.) Het seriële signaal op de processor pin heb ik afgetapt en komt netjes binnen.
            M’n P1 kabeltje van Ali geeft overigens op beide meters ook een goed resultaat.

            Op het Oled blijft de melding staan”‘OK found, DSMRlogger.html, continue normal operation..”
            Ook is de DTR pin direct actief vanaf opstarten.
            De webserver doet het wél en geeft aan dat het free memory heap te laag is (na een paar minuten pas.). Verder geen meter informatie of iets zichtbaar met debug mode. Jammer we hadden ons erg verheugd op het loggen van onze Iskra meters , maar inmiddels weten we niet meer waar we moeten zoeken…

          • Willem Aandewiel says:

            Ferdy,
            Ik dénk dat firmware versie 0.4.5 al je problemen oplost.

            Wel de documentatie lezen.

    • Jordy,

      DSMRloggerWS v0.4.5 kan Slimme Meters van vóór DSMR 4.0 ‘lezen’!

  130. Wytse Bezemer says:

    Hi Willem,

    Geweldig product heb je. Inmiddels heb ik mijn V3 werkend en heb ik je nieuwste firmware erop draaien.
    Verder heb ik je nieuwe Firmware aangepast zodat het ook MQTT messages verstuurd om de X seconden (of mins). Alles werkt naar behoren en been zeer tevreden.

    Echter heb ik een vraag, ik heb zelf niet zoveel verstand van JS en kan dus niet helemaal alles reverse lezen/begrijpen.

    De data die ik heel graag wil staan in de files.
    – Energy Delivery Gisteren
    – Energy Delivery Afgelopen Maand
    – Energy Delivery Afgelopen year
    – Energy Delivery Vandaag
    – Energy Delivery Huidige Maand
    – Energy Delivery Huidig Jaar

    Kan jij mij wellicht vertellen hoe ik de files goed kan uitlezen zodat ik de juiste data mee kan sturen in mijn MQTT messages?

    Ik hoor graag van je,
    Wytse

    • Willem Aandewiel says:

      Beste Wytse,

      Dank voor het compliment.

      De gegevens die jij naar je MQTT broker wilt sturen zijn niet standaard voorhanden in de Slimme Meter.
      Maar je kunt ze natuurlijk wel berekenen. Daarvoor moet je (voor het verbruik huidige jaar) het record in PRDmonths.csv van december 2018 lezen. De key is “1812”. In dat record staan de eindwaarden van einde 2018 als “EDT1” en “EDT2”. Vervolgens lees je in hetzelfde bestand record 1 (dat is altijd de actuele periode) en daarvan trek je de waarden die je per december hebt opgeslagen af om het jaarverbruik tot nu toe te bepalen.

      In pseudo code:

      
      recNr  = fileLabel2Rec(MONTHS, 1812);    // bepaal recNr van eind december 2018
                                               // recNr < 1 is 'niet gevonden'!
      decDat = fileReadData(MONTHS, recNr);    // lees december 2018
      meterStand1_Dec = decDat.EDT1;           // Sla de gegevens van december 2018
      meterstand2_Dec = decDat.EDT2;           // op in tijdelijke variabelen
      actDat = fileReadData(MONTHS, 1);        // lees actuele periode
      meterStand1_Act = actDat.EDT1;           // Sla de gelezen gegevens op
      meterStand2_Act = actDat.EDT2;           // in tijdelijke variabelen
      verbruik1_Tot_Nu = meterStand1_Act - meterStand1_Dec; // bereken verbruik Tarief 1
      verbruik2_Tot_Nu = meterStand2_Act - meterStand2_Dec; // Bereken verbruik Tarief 2
      
      

      Voor de gegevens per dag werkt het hetzelfde. Voor PRDdays.csv is de key YYMMDD (190528 is 28 mei 2019) en ook in dit bestand is record 1 (niet record 0!!) de actuele dag (vandaag dus). In het uren bestand (PRDhours.csv) is de opbouw van de key YYMMDDHH (woensdag 17 juli 2019 00:00/24:00) heeft als key "19071700".

      Ik hoor graag of het lukt en wellicht kun je je MQTT aanpassingen delen.

      • Wytse Bezemer says:

        Hi Willem,

        Thanks voor je reply, ik ga hier zeker naar kijken en hopelijk dit weekend al.

        Natuurlijk kan ik mijn MQTT aanpassing delen. Je kan mij het beste een email sturen waarop ik kan reageren met de txt file.

        Groeten,
        Wytse

        • Jos says:

          Dag Wytse

          Ik ben op zoek naar een MQTT koppeling tussen de logger en mijn Node-RED toepassingen. Ik begrijp dat jij dat al min of meer aan de praat hebt. Ben je genegen deze informatie met mij te delen?

          Met vriendelijke groet
          Jos

  131. Wouter Iliohan says:

    Beste Willem,

    Wat een ontzettend gaaf project.
    Kun je dit project ook gebouwd en geprogrammeerd kopen? bouwen lukt wel maar op het gebied van programmeren schiet mijn kennis echt te kort.
    Verder wil ik weten hoe eenvoudig/lastig het is om met andere applicaties de logger uit te lezen. Ik wil hiervoor de applicatie DSRM-reader gebruiken, een project van Dennis Siemensma (https://github.com/dennissiemensma/dsmr-reader).
    Verder kan ik niet 1,2,3 vinden hoe je de wifi module aan je eigen netwerk kan koppelen.
    Moet je dit hardcoded inbrengen?
    Andere vraag mbt veiligheid, plannen om telnet te vervangen door ssh?

    Groet,

    Wouter Iliohan

  132. Jos says:

    Dag Willem, ik vind dit een geweldig project en ik wil graag zelf een DSMR-logger bouwen. Echter, ik woon in België en in Vlaanderen wordt een meter van Sagemcom toegepast. Deze meter beschikt over twee user poorten P1 en P2. Voor zover ik kan beoordelen komt de informatie sterk overeen met de meters zoals die in Nederland toegepast worden. Weet je of de logger met de Sagemcom meters werken zal?
    In mijn huis gebruik ik een Raspberry Pi met Node-RED en MQTT. Kan ik de DSMR-Logger voor mijn MQTT broker configureren?

    • Willem Aandewiel says:

      Beste Jos,

      Ik heb geen ervaring met Slimme Meters in België. Wat ik over de Sagemcom meter gelezen heb is dat hij óók in Nederland gebruikt wordt en dán zou het, door de P1 poort, gebruikte protocol overeen moeten komen. Eventueel navraag doen bij de Energie/Slimme Meter leverancier over het gebruikte protocol en of de Slimme Meter 5Volt bij 250mA kan leveren.

      Alleen door het echt te proberen kunnen we zekerheid krijgen 🙁

      Integratie met MQTT is zeker mogelijk (op meer dan één manier). Lees bijvoorbeeld dit artikel.

      Ik hoor graag van je wat je bevindingen zijn!

      [29-07-2019]
      MQTT is gepland voor firmware V0.4.6

      • Jos Oude Vrielink says:

        Dank je wel Willem! Ik heb zojuist de kit besteld en ik zal je op de hoogte houden van mijn bevindingen.

  133. Bas says:

    Beste Willem,
    Mooi project, zou het graag gaan proberen (en er 1 bestellen)
    Heb eerst gekeken of mijn smart-meter het zou kunnen ondersteunen. Daar loop ik tegen een probleem aan. De rj12 connector is in gebruik, en verzegeld. Er hangt een M bus RF module aan.
    Is er dan een andere manier om aan de gegevens te komen?

    Alvast bedankt,
    Bas

    • Willem Aandewiel says:

      Bas,

      Heeft er vóór jou iemand anders in je huis gewoond?
      Het zou een RF module kunnen zijn die de telegrammen op de band van o.a. Klik Aan Klik Uit verstuurd. Daar heb je dan weer een ontvanger bij nodig die je op een computer kunt aansluiten en waarmee je vervolgens de gegevens naar een domotica systeem kunt sturen.

      ==============================================
      Ik heb even wat DSMR documentatie doorgelezen en dénk dat die M bus RF unit in P2 of P3 zit.
      ==============================================

      Er moet ook nog ergens, onder een kapje een P1 poort zijn…

      Anders eerst even contact opnemen met je energie leverancier.

      • Bas says:

        Dank voor je snelle reactie!

        Jazeker – Maar weet niet of die dat daar heeft neergezet.
        Weet wel dat het uitlezen van de meters remote gebeurd. Dus ging er eigenlijk vanuit dat het hiervoor is.

        Zag ook de optie om een rj12 splitter te gebruiken. Dat zou alleen werken als het idd een P1 is. Ik ga nog eens goed kijken, en evt een fototje maken.

        • Willem Aandewiel says:

          Bas,

          Een RJ12 splitter kun je niet gebruiken!
          Ik wéét niet of dat kan …

  134. ed says:

    Hallo Willem,
    Een zeer gedegen stuk werk.
    Tot mijn verbazing echter kreeg ik massas fouten in de compilatie, hoofdzakelijk van het type: “was not declared in this scope”, en het lijkt voornamelijk met de datum en tijd te maken te hebben.
    Heb daarom de Time library opnieuw geinstalleer en ook maar, maar geen verschil.
    Ik gebruik de 2.5.2 core voorde ESP
    Enig idee waar ik de fout moet zoeken?
    Hartelijk dank

    IK hecht de foutmelding aan, sorry, het is best lang
    ==================================

    Arduino: 1.9.0-beta (Windows 10), Board: "Generic ESP8266 Module, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), ck, 26 MHz, 40MHz, DOUT (compatible), 4M (1M SPIFFS), 2, nonos-sdk 2.2.2-190313 (testing), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
    
    C:\Users\xx\Documents\Arduino\DSMRloggerWS\DSMRloggerWS.ino: In function 'void printData()':
    DSMRloggerWS:441: error: 'buildDateTimeString' was not declared in this scope
    C:\Users\xx\Documents\Arduino\DSMRloggerWS\DSMRloggerWS.ino: In function 'void processData(MyData)':
    DSMRloggerWS:713: error: 'epoch' was not declared in this scope
    DSMRloggerWS:753: error: 'HourFromTimestamp' was not declared in this scope
    DSMRloggerWS:753: error: 'MinuteFromTimestamp' was not declared in this scope
    DSMRloggerWS:761: error: 'HourFromTimestamp' was not declared in this scope
    . (ingekort)
    C:\Users\xx\Documents\Arduino\DSMRloggerWS\webSocketEvent.ino: In function 'void webSocketEvent(uint8_t, WStype_t, uint8_t*, size_t)':
    webSocketEvent:146: error: 'updateActual' was not declared in this scope
    webSocketEvent:156: error: 'updateLastHours' was not declared in this scope
    webSocketEvent:164: error: 'doLastHoursRow' was not declared in this scope
     //===========================================================================================
    webSocketEvent:306: error: 'doSaveSettings' was not declared in this scope
    Using library Time at version 1.5 in folder: C:\Users\xx\Documents\Arduino\libraries\Time 
    Using library arduino-dsmr at version 0.1 in folder: C:\Users\xx\Documents\Arduino\libraries\arduino-dsmr 
    Using library ESP8266WiFi at version 1.0 in folder: 
    . (ingekort)
    C:\Users\xx\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\libraries\Hash 
    exit status 1
    'buildDateTimeString' was not declared in this scope
    
    • Willem Aandewiel says:

      Ed,

      Het lijkt erop dat je niet de hele map met sources hebt over gezet.
      Heb je dit helemaal gelezen en uitgevoerd?

      Anders zou ik het zo snel niet weten.

      • ed says:

        Dank voor je snelle antwoord.
        Dat heb ik inderdaad gedaan, de Zip gedownload van de link die jij aangaf en dat uitgepakt. Zelfs nog eens opnieuw geprobeerd, maar zelfde resultaat.
        Ik zal het allemaal nog eens goed nalopen en kijken of ik inderdaad alle files heb, maar aan downloaden en uitpakken kan toch niet zoveel verkeerd gaan. Ik hou je op de hoogte

      • ed says:

        OK, goed nieuws. Doet het. Wat was er mis?? weet het niet:
        Andere computer, verse installatie van Arduino IDE, opnieuw libraries en programma gedownload en geinstalleerd. Deze keer gecompileerd zonder de beeldscherm optie -> gaat goed.
        Wat nu het probleem was, ik weet het niet. Misschien dat mijn ‘oude’ IDE omgeving toch een beetje in de war was (Miljoen programmas, miljard libraries)
        Afijn, ik kan weer verder, en nogmaals complimenten over je gedegen werk

      • ed says:

        OK, feedback, ik denk dat ik het probleem gevonden heb: De IDE. Op mijn standaardcomputer gebruik ik versie 1.9.0, een ‘Nightly build’. De ‘maagdelijke’ computer waar het uiteindelijk wel op lukte had IDE 1.8.9

        Terug naar mijn standaardcomputer en daar IDE 1.8.4 en IDE 1.8.9 geprobeerd -> succes.
        Me dunkt dat de bouwers van de ‘nighly build’ toch een paar steken hebben laten vallen ‘s nachts.
        Verklaart misschien ook wat compilatie problemen in andere programmas.

        Nogmaals: fantastische software, echt uit de kunst, maar ik ga misschien nog een koppeling naar GoogleSheet toevoegen

        • Willem says:

          Ed,

          Als je zo’n koppeling naar GoogleSheets werkend heb ben ik geïnteresseerd hoe je dat gedaan hebt. Misschien kunnen we het standaard in de firmware integreren..

  135. Theo Wissman says:

    Hoi Willem,

    Enig idee wat er hier fout gaat? Ik krijg de Schets niet geupload. Het lijkt eerst goed te gaan.
    Dit zijn de laatste regels van de foutmeldingen:

    TRACE +0.006 Read 1 bytes: c0
    TRACE +0.002 Read 11 bytes: 0108020000000000ff00c0
    TRACE +0.000 Received full packet: 0108020000000000ff00
    TRACE +3.008 Timed out waiting for packet header
    _TRACE +0.057 command op=0x08 data len=36 wait_response=1 timeout=0.100 data=
        0707122055555555 5555555555555555 | ... UUUUUUUUUUUU
        5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
        55555555                          | UUUU
    TRACE +0.000 Write 46 bytes: 
        c000082400000000 0007071220555555 | ...$........ UUU
        5555555555555555 5555555555555555 | UUUUUUUUUUUUUUUU
        5555555555555555 5555555555c0     | UUUUUUUUUUUUU.
    TRACE +0.007 Read 1 bytes: c0
    TRACE +0.001 Read 11 bytes: 0108020000000000ff00c0
    TRACE +0.000 Received full packet: 0108020000000000ff00
    TRACE +3.008 Timed out waiting for packet header
    _
    Traceback (most recent call last):
      File "C:\Users\Theo\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2/tools/upload.py", line 25, in 
        esptool.main(fakeargs)
      File "C:/Users/Theo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 2653, in main
        esp.connect(args.before)
      File "C:/Users/Theo/AppData/Local/Arduino15/packages/esp8266/hardware/esp8266/2.5.2/tools/esptool\esptool.py", line 468, in connect
        raise FatalError('Failed to connect to %s: %s' % (self.CHIP_NAME, last_error))
    esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
    esptool.FatalError: Failed to connect to ESP8266: Timed out waiting for packet header
    
    • Willem Aandewiel says:

      Theo,

      Werkt het uploaden van bijvoorbeeld ‘blink’ wel naar een ‘gewone’ Arduino (UNO)?
      Kun je de blink sketch naar een ESP8266 uploaden?

      Zou het kunnen dat je niet de laatste versie(s) van de esptool.py en upload.py gebruikt?
      Heb je de goede versie van python geïnstalleerd (ik heb geen Windows en heb ook geen idee of je dat handmatig moet doen of dat python al standaard geïnstalleerd is).

      • T. Wissman says:

        Sorry voor mijn late reactie, maar de laatste tijd nog al druk gehad. Nu eindelijk weer wat tijd om met de logger te testen.
        Heb het probleem kunnen oplossen. Zodra de arduino tool echt begint met wegschrijven opnieuw de flashmode activeren en dan gaat het wel goed!!
        Hij heeft nu een weekje goed gedraaid, maar heb nu een ander probleem. Ik zie in de webinterface bij het tabblad ‘charts’ geen grafiek meer. En als ik in de webbrowser ‘http://ip-adres logger/getActual.json’ ingeef, krijg ik alleen maar een melding: FileNotFound
        Enig idee wat dit kan zijn?

        Mvg Theo.

        • Willem Aandewiel says:

          Hi Theo,

          Ik heb geen idee waarom je charts niet meer werkt. Je kunt proberen de data map opnieuw te flashen (esp8266 data upload tool) maar dan raak je wel je opgebouwde historie kwijt (behalve als je die eerst met de FSexplorer op je computer bewaard en later weer terug zet.
          Je kunt ook met de FSexplorer de .js files opnieuw uit de data map naar de DSMR-logger uploaden. Let er dan op dat de grootte ongeveer gelijk is met die op je computer.

          Als dat ook allemaal niet werkt dan de firmware opnieuw flashen maar dan eerst met de optie “erase all flash”. Daarna de data uploaden en bij het opstarten je WiFi credentials weer invoeren.

          Ik weet niet zo goed wat ja wilt doen met dat json file.

          Misschien moet je de documentatie van de restAPI even lezen.

          Succes

          • T. Wissman says:

            Goedemiddag,

            Na het uploaden van de nieuwste firmware (v1.0.3) zijn de grafieken weer terug!

            En wat betreft de restAPI, hier had ik de verkeerde link gebruikt. Het moet natuurlijk ‘http://x.x.x.x/restAPI?get=Actueel’ zijn.

            Bedankt voor de snelle reacties!!

            Mvg. Theo

  136. Hans Scholten says:

    Hoi Willem,

    Dank voor het vlotte antwoord. Jawel, de opwek van mijn zonnepanelen wordt doorgegeven aan mijn slimme meter, maar die trekt de opwek meteen af van het eigen gebruik en rapporteert alleen het netto resultaat. Om inzicht te krijgen in wat de zonnepanelen daadwerkelijk hebben opgewekt en wat daarvan meteen achter de meter is opgebruikt aan eigen verbruik heb ik een aparte kWh meter die alleen mijn zonnepanelen uitleest.
    Dit is een B+G e-tech drs155dc meter met een puls uitgang (S0) die 1000 pulsen afgeeft per gemeten kWh, zie https://bg-etech.de/download/manual/DRS155DCV3.pdf
    Volgens mij zijn die pulsen 5V en die lees ik nu in met mijn Arduino Mega. Omdat ik een nieuwe slimme meter heb gekregen (Sagemcom T210-D), kan mijn Arduino Mega die nu het programma Solarmeter van WijHebbenZon draait de baudrate van 115200 niet meer bijsloffen en moet ik dus naar een nieuwe oplossing zoeken.

  137. Hans Scholten says:

    Hallo Willem,

    Wat een mooi ontwerp en wat een hoop functionaliteit op zo’n klein bordje. Ik overweeg er een te bestellen, maar ik heb toch nog een vraag. Ik heb een S0 (kWh puls)meter in mijn meterkast voor het opmeten van de opgewekte energie van mijn zonnepanelen. Dat doe ik dus niet met een AC Stroom Sensor zoals jij dat hierboven voorstelt. Is het toch mogelijk om de S0 pulsen ergens op jouw DSMR logger V4 in te lezen? En de pulsen van mijn watermeter?

    Vriendelijke groeten,

    Hans

    • Willem Aandewiel says:

      Hoi Hans,

      Ik denk wel dat dat mogelijk is. De ESP8266 heeft tijd (cycles) genoeg over om extra functionaliteit toe te voegen. Zo’n puls zou via een interrupt eenvoudig te realiseren zijn.
      Begrijp ik goed dat jouw zonnepannelen niet via de Slimme Meter hun energie doorgeven?
      Ik ben benieuwd naar hoe die SO pulsen “werken”.

  138. Hallo Willem,
    Ik heb al heel leuk de box 3d geprint(als beginnend printer al leuk gedaan).
    Maar ik heb eigenlijk Versie2 bordje gekocht.
    Mijn vraag is dan ook is daar ook een .stl bestandje van gemaakt?
    En mag ik dat dan? graag

    Met vriendelijke groet, Ruud

  139. Mark says:

    Goedemorgen Willem,

    Waar kan ik de v4 printplaat of het bouwpakket bestellen?

    Mvg,

    Mark

  140. Michel says:

    Beste Willem,

    Ik zag op Github dat er een updates zijn van bestanden. Moet ik nu voor de V3 hardware alles op dezelfde manier flashen zoals de eerste keer en mijn meterstand eerst veilig stellen of is het toch ook OTA mogelijk. Via de instelling is de knop namelijk grijs en niet klikbaar om de firmware bij te werken.

    Dit stuk is mij niet echt duidelijk.

    • Willem Aandewiel says:

      Hoi Michel,

      Heb je de documentatie gelezen?

      Je moet de nieuwe firmware inderdaad bedraad flashen en óók de data map moet je bedraad flashen (nadat je de aanwezige bestanden eerst handmatig veilig hebt gesteld).

      Als je de DSMRloggerWS firmware op de V3 hardware wilt gebruiken zijn er een paar zaken waar je op moet letten.

      1)
      OTA flashen kan niet omdat de nieuwe firmware te groot is voor de overgebleven ruimte.

      2)
      Voor SPIFFS moet je meer ruimte reserveren dan bij de DSMRlogger2HTTP firmware nodig was omdat de bestanden groter worden en er meer bestanden op SPIFFS worden opgeslagen.

      3)
      De lay-out van de bestanden is helemaal anders geworden. Je kunt de oude bestanden dus niet gebruiken. Het is wél mogelijk om de gegevens uit de oude bestanden in de “nieuwe” te stoppen (handmatig) maar dat is best wel veel werk omdat voorheen de meterstanden voor tarief 1 en 2 bij elkaar opgeteld werden terwijl ze nu apart worden opgeslagen. Je kunt de gegevens die je nu al hebt natuurlijk allemaal als tarief 1 opslaan en dan de huidige meterstand voor tarief 2 overnemen in de hele historie. Je kunt ook met de ingebouwde editor de gegevens in de maanden tabel (handmatig) invoeren.

      Eén van de bouwers (Pim) heeft intensief onderzoek gedaan naar de werking van de logger firmware in combinatie met een PUYA flash chip en de uitkomst daarvan is dat, hoewel de PUYA patch in combinatie met de DSMRlogger2HTTP firmware prima werkt, dit niet het geval is met de DSMRloggerWS firmware!

      Als je eenmaal de DSMRloggerWS firmware op je DSMR-logger hebt geflashed en er komt een update van deze firmware, dan hoef je de data niet opnieuw te flashen (behalve als dat in de documentatie expliciet gemeld wordt).

      Ik hoop dat je er met deze uitleg uitkomt!

      • Michel says:

        Had ik inderdaad gelezen maar was mij toch niet helemaal duidelijk. Nu wel dank hiervoor

  141. Michel says:

    Willem,

    Ik heb een script gemaakt voor Domoticz die zowel voor firmware V3 als V4 zou moeten werken.

  142. Tony Seesing says:

    Hallo Willem,
    Dank voor de software. Ik ben erg tevreden met het resultaat van de V4 tot nu toe. Ik ben geen software man, dus blijf verdere ontwikkelingen gewoon volgen.
    Aansturen van de DTR heb ik opgelost met 2 transistoren: BC550 (npn) en BC557 (pnp).
    Helaas is hier geen plaatje mogelijk, maar BC550/b wordt aangestuurd uit Arduino middels 4k7/10k weerstands deling naar aarde. BC550/e ligt aan aarde. BC557/b wordt aangestuurd vanuit BC550/c via weerstandsdeling 4k7/10k naar +5V. BC557/e ligt aan +5V. BC557/c gaat naar pin2 van slimme meter.
    Werkt perfect! Doe er je voordeel mee.
    Verder heb ik twijfels of alles goed gaat werken met het voorgestelde circuit voor het meten van de stroom geleverd door panelen. Heb je daar al ervaringen mee?

    Groetjes,

    Tony Seesing

    • Willem Aandewiel says:

      Tony,

      Nog geen ervaring met de ADC, maar het is erg standaard. Met de goeie ring module moet het werken. Wel moet je zelf de firmware aanpassen zodat hij ook iets met de meting doet.

  143. Pim says:

    Hallo Willem,

    Ik heb ondertussen een aantal stappen gemaakt. Ik wil dit graag aan je uitleggen maar ik heb het idee dat dat hier niet de juiste plek is. Kan je mij een mail sturen waar ik op kan reageren met mijn bevonden punten.

    De logger start ondertussen op met de V4 software en de PUYA flash chip. alleen het schrijven naar de chip werkt nog niet goed.

    Hoor het graag!

    Pim

  144. Michel says:

    Sinds vandaag ook een slimme meter gekregen en jouw project al tijdje geleden gebouwd, versie V3. Aangesloten en vol spanning kijken of het werk en draait perfect.

    Nu zag ik dat je bezig bent met alweer V4. Kan ik de nieuwe software ook gebruiken op een V3? Volgens ESP-DSMR info heb ik 1Mb flash chip.

    Mij is dat niet geheel duidelijk welke ik dan kan gebruiken en kan dat ook OTA of moet ik hem daar weer voor verbinden en via Arduino flashen.

    Tevens de vraag of er info is hoe ik deze kan koppelen aan Domoticz. Via HA is een mooi stappenplan maar voor Domoticz niet. Misschien heb je daar ook iets over.

    Alvast dank voor je reactie en dank voor dit mooie project.

    • Willem Aandewiel says:

      Michel,

      Mooi dat de DSMR-logger meteen werkt!
      De DSMRloggerWS firmware kan, met een paar beperkingen, ook op een Versie 3 bordje gebruikt worden. Wat niet kan is de RTS hardware, de I2C poort en Data/Firmware Over The Air uploaden. Het flashen zul je dus weer bedraad met de ArduinoIDE moeten doen!
      Ik heb geen ervaring met Domoticz maar als je hebt uitgezocht hoe je de logger daaraan kunt koppelen dan hoor ik graag hoe je dat gedaan hebt zodat ik het in de documentatie kan opnemen!

      • Michel says:

        Willem,

        Dank voor je reactie. Kun je aangeven wat ik nodig heb om DSMRloggerWS erop te zetten. Ik raak een beetje de weg kwijt met alle bestanden.

        Ik had via https://github.com/mrWheel/DSMRloggerWS deze proberen te compileren maar dat ging niet en dacht dan zet ik alleen de DATA bestanden over. Maar dit eindige in een totale puinhoop en toen werkte niets meer. Daarna kon ik nergens meer bij en ook opnieuw de oude DATA bestanden overzetten deed hij wel maar werkte niet meer.

        Alles opnieuw geflasht en nu werkt hij weer als V3.
        Misschien een kleine handleiding om van V3 naar V4 een upgrade te kunnen doen.

        p.s met Domoticz ben ik een stapje verder en mocht dit een werkend script opleveren dan zal ik dit zeker delen met je zodat je ook dit op de site kunt plaatsen.

        Dus

        • Michel says:

          Als ik de nieuwe firmware ga compileren krijg ik foutmeldingen en waar kom ik helaas niet achter hoe deze op te lossen.

          In file included from C:\Users\miche\Documents\Arduino\project\DSMRloggerWS\DSMRloggerWS.ino:95:0:
          
          C:\Users\miche\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/pgmspace.h:16:51: error: __c causes a section type conflict with __c
          
           #define PSTR(s) (__extension__({static const char __c[] PROGMEM = (s); &__c[0];}))
                                                             ^
          sketch\Debug.h:24:48: note: in definition of macro 'Debug'
                                       TelnetStream.print(__VA_ARGS__);    \
                                                          ^
          C:\Users\miche\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266/WString.h:39:28: note: in expansion of macro 'FPSTR'
          
           #define F(string_literal) (FPSTR(PSTR(string_literal)))
          .                           ^
          .
          .
          
          C:\Users\miche\Documents\Arduino\project\DSMRloggerWS\menuStuff.ino:120:9: note: in expansion of macro 'F'
             Debug(F("]\r\n   Free Sketch Space (kB) ["));  Debug( ESP.getFreeSketchSpace() / 1024.0 );
                   ^
          Multiple libraries were found for "Hash.h"
           Used: C:\Users\miche\Documents\Arduino\libraries\Hash
           Not used: C:\Users\miche\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\libraries\Hash
          exit status 1
          Error compiling for board Generic ESP8266 Module.
          
          
          • Willem Aandewiel says:

            Michel,
            Je gebruikt de esp8266 core versie 2.4.1. De firmware heeft 2.5.0 nodig.
            Via boards manager kun je dit updaten.

            Verder zijn de meeste meldingen zgn. “Note”s en dus onbelangrijk!

        • Willem Aandewiel says:

          Michel,
          Je kunt niet upgraden van DSMRlogger2HTTP naar DSMRloggerWS.
          Je moet de hele instructie volgen.

          Let er op dat SPIFFS 256kb moet zijn voor deze firmware.
          Als je een PUYA flash chip hebt moet je dit lezen!

          • Michel says:

            Willem,

            Dat deed het hem. Upgraden naar 2.5.0.
            Ik had dit ook gedaan maar omdat het niet lukte met V3 weer teruggegaan naar 2.4.1 en toen kon ik V3 weer flashen.

            Nu ging alles in 1x soepel en draait het weer.

            Ik mis nu alleen getActual.json en hierdoor kan ik de waardes niet meer uitlezen / testen in Domoticz.

          • Willem Aandewiel says:

            Hi Michel,

            Gegevens vraag je nu op met /restAPI

            Zal hier in de documentatie!

  145. Pim says:

    Hallo Willem,

    Ik ben echt razend enthousiast van de logger en heb hem zelf ook al een tijdje in gebruik. Ik gebruik de V3 hardware.

    Eerst met de originele V3 software en nu met de nieuwe WebSocket software heb ik succes op mijn ESP01.

    Echter heeft een collega een probleem met zijn ESP01. zodra we op zijn ESP01(geen ESP01S) de websocket binary installeren zoals ik die ook heb geïnstalleerd doet de logger het niet, instellingen in de IDE staan correct en het inloggen van de logger op het lokale wifi netwerk gaat ook goed. Echter daarna wil de logger niet meer goed werken. De logger heeft wel verbinding met de router en ik kan zien welk IP-adres de logger heeft gekregen maar hij weigert de verbinding als ik hem benader via een webbrowser. “de host heeft de verbinding geweigerd”. Als ik daarna weer de V3 software installeer doet alles het weer.
    Library versies zijn gelijk aan de gespecificeerde.
    Het enige verschil wat ik opmerk is dat mijn collega een PUYA flash chip heeft en de mijne niet.

    Herken jij dit probleem ook met de websocket software in combinatie met een PUYA ESP01?

    • Willem Aandewiel says:

      Pim,
      Ik heb nog niet zoveel ervaring met de DSMRloggerWS firmware in combinatie met de ESP-01. Je schrijft “geen ESP01S”, maar is het er wel een met 1MB flash?

      Heb je ook de Flash instelling goed staan [1MB (256KB SPIFFS)]???

      Misschien toch een keer de firmware flashen met de optie “All Flash Content” en dan de data er opnieuw opzetten.
      Ik raad je aan ook hier te kijken.

      • Pim says:

        Hallo Willem,

        Dank je wel voor je antwoorden.

        Als ik de oude V3 software installeer dan krijg ik via de “device info” pagina te zien dat het een 1 Mb flash chip is. Ik ga ervan uit dat deze info uit de chip zelf wordt gelezen en dus klopt :).

        Verder zijn de SIFFS instellingen zoals jij aangeeft op 256kb gezet(V3 weer terug naar 128kb).

        Ik zal vanavond ook nog even de “clear all flash” optie proberen.

        Ik zal jouw io pagina ook nog eens goed doornemen. Mocht ik de fout binnenkort vinden dan zal ik het je even melden zodat je hier rekening mee kunt houden.

        Nog even het gedrag van mijn fout wat duidelijker in kaart gebracht:
        -De blauwe led brand continu.
        -De ESP01 heeft verbinding met wifi maar weigert http verbinding
        -Ook browsen naar http://FSexplorer weigert de verbinding.

        En nogmaals, een klasse stukje techniek wat je hebt gemaakt.

        Groet,

        Pim

        • Willem Aandewiel says:

          Pim,
          Wat een obscure probleem.
          Test je beide loggers op dezelfde Slimme Meter? Met dezelfde kabel?
          Knippert de blauwe led zoals beschreven vóórdat hij continue gaat branden (dan ontvangt hij geen telegrammen)?
          Als je de “niet werkende” ESP-01 in het “wel werkende” bordje prikt, wat gebeurd er dan?
          Kun je de logger via telnet benaderen? Als je één of twee keer op “v” drukt krijg je meer/minder “Verbose” output. Wellicht dat er dan meldingen verschijnen die je verder helpen.
          Keep me Posted!

          [Ondertussen de PUYA chip oplossing in de documentatie opgenomen]

          • Erik says:

            Hi Willem,

            > [Ondertussen de PUYA chip oplossing in de documentatie opgenomen]

            Ik neem aan dat je bedoelt https://mrwheel.github.io/DSMRloggerWS/PUYA_patch/ ?

            Ik zie de oplossing daar niet.

            De oplossing is namelijk om in het “platform.txt” bestand ” -DPUYA_SUPPORT” toe te voegen aan de regel die begint met:

            compiler.cpp.flags

            En daarna alles opnieuw compileren.

            “platform.txt” vind je normaliter in:

            c:\Users\\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.2\platform.txt

            Zie ook https://github.com/esp8266/Arduino/issues/4061 .

            Mvg,

          • Willem Aandewiel says:

            Erik,

            Helaas werkt de door jou aangehaalde “oplossing” niet (betrouwbaar). Dit is waarschijnlijk een gevolg van het gebruik van “seek” bij het schrijven naar SPIFFS, hoewel ik dat niet zeker weet. In ieder geval lijkt of blijkt de DSMRloggerWS firmware niet goed op een ESP-01 met Puya chip te werken. Heb je toch zo’n Puya chip dan zou ik die vervangen door een 4MB flash chip. Dan kun je ook OTA updaten met een rev.3 bordje.

  146. Ed says:

    Ziet er erg goed uit

  147. Sjors says:

    Complimenten Willem, het ziet er allemaal perfect uit.
    Wacht met spanning op de upgrade en dan solderen maar.

    Groet
    Sjors

    • Willem Aandewiel says:

      Dank je.
      Binnenkort als kitje bij opencircuit.nl te bestellen.

  148. Sjors says:

    Beste Willem,

    Complimenten het ziet er allemaal netjes uit.
    Heb ook interesse in het artikel dus wacht toch maar even op versie 4.
    Hoop dat die gauw te leveren.

    Met vriendelijke groet
    Sjors

    • Willem Aandewiel says:

      Thanks!

      Kitjes zijn één dezer dagen bij opencircuit.nl te bestellen!

  149. Klaas says:

    Beste Willem,

    Met veel interesse heb ik je artikel gelezen. Mijn complimenten hoe goed alles er uit zien.
    Ik ben zelf ook bezig met het maken van een schema in KiCAD om mijn meter te koppelen via een ESP-12F aan domoticz. De ESP-12F wordt dan gebuikt als P1 Wifi Gateway.

    Twee kleine opmerkingen:

    1. Data Request Circuit
    De weerstand R4 150 ohm, lijkt mij aan de lage kant. Een GPIO pin kan maximaal 12mA leveren. 3,3v – 0,6v = 2,7v -> 2,7v / 150 ohm = 18mA. Mijn tip is 270 ohm te gebruiken. Ik ga zelf deze optocoupler gebruiken: PC817.
    R5 is strikt genomen niet nodig denk ik.

    2. Level-Shift inverter
    Helaas wordt de Data_GND gedeeld door de twee optocouplers in de meter. Anders was het helemaal simpel geweest.
    Ik denk zelf dat R7 kan komen te vervallen en ik zou R6 verhogen naar 5K6.

    Ik ben erg benieuwd naar je reactie! Mogelijk zie ik met mijn opmerkingen hierboven iets over het hoofd. Ik heb nog geen proef opstelling gemaakt.

    Groet, Klaas

    • Willem Aandewiel says:

      Hoi Klaas,

      Dank voor het compliment!

      In de uiteindelijke versie zijn R1 en R4 220R
      R5 en R7 zijn een poging tot ‘current limiter’. R6 heb ik 4k7 gemaakt.

      Aanpassingen aangebracht in het totaal schema, nog niet in de sub-plaatjes.

  150. Eric says:

    Bedenken doe ik dit allemaal niet, MAAR soldeer het graag in elkaar als er een officiële versie beschikbaar komt 🙂

    Laat de upgrade van de huidige versie maar komen. Het ziet er veelbelovend uit!

    • Hoi Eric,

      De upgrade van de Firmware komt eraan. Nog even geduld 😉

      Vandaag ontvang ik de PCB’s en ga ik kijken of er geen fouten in zitten.
      Kitjes komen ook, maar dat zal nog wel een maand to zes weken duren.

  151. Pingback: Slimme Meter uitlezer | Willem's Website

Comments are closed.