restAPI’s zijn hip! (nieuwe firmware voor de DSMR-logger)

69,355 views

Je zult je ongetwijfeld afvragen “waarom weer een nieuw versie van de firmware?

De belangrijkste reden is dat steeds meer devices met internet zijn verbonden en dat steeds meer van deze devices gegevens met elkaar uitwisselen door middel van restAPI’s.

restAPI’s zijn hip!

En daar kan de DSMR-logger natuurlijk niet bij achterblijven.

15 juni 2021
Release v3.0.1 van de DSMRloggerAPI firmware
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.
Zie vooral ook de officiële documentatie!

Maar goed, wat is dan het voordeel van het gebruik van restAPI’s? Daarvoor is het misschien handig om eerst even vast te stellen wat de primaire taak van de DSMR-logger is en hoe de DSMR-logger met de DSMRloggerWS firmware ‘werkt’.

Primair is het de taak van de DSMR-logger om de Slimme Meter uit te lezen. 

Niet meer en niet minder.

Maar de DSMRloggerWS firmware voert niet alleen deze primaire taak uit, maar is ook heel druk met de besturing van de GUI en het reageren op invoer van de gebruiker. Dat maakt het lastig voor ‘makers’ om bijvoorbeeld een GUI te ontwikkelen die specifiek voor een bepaalde situatie geschikt is of die gewoon mooier is dan de GUI die standaard met de DSMRloggerWS firmware wordt meegeleverd (ik ben redelijk goed in het ontwikkelen van robuuste hard- en software, maar als het om grafische zaken gaat ben ik gewoon een onbenul).

Deze integratie tussen primaire taak en presentatie maakt ook dat de DSMR-logger soms drukker bezig is met het presenteren van mooie plaatjes dan met het goed verwerken van de telegrammen uit de Slimme Meter. Daarnaast blijkt dat steeds meer ‘makers’ specifieke wensen hebben om gegevens uit de DSMR-logger te halen. Het is onmogelijk om dit allemaal in de firmware in te bakken.

En dan komt de DSMRloggerAPI firmware als geroepen!

Het restAPI protocol is buitengewoon simpel. Het is gewoon een http request zoals je die ook gebruikt om een web pagina op te vragen. Het verschil is dat het antwoord op het http request geen web-pagina maar (meestal) een JSON string is.

Wil je de home pagina van deze website opvragen, dan toets je in de URL balk van je browser:

https://www.aandewiel.nl

.. waarna de browser de opgevraagde pagina op het scherm zet.

Het opvragen van gegevens uit de DSMR-logger gaat op dezelfde manier. Als URL toets je bijvoorbeeld in:

http://DSMR-API.local/api/v1/sm/actual

In de browser zie je vervolgens het antwoord dat er zo uit ziet:

Het antwoord komt terug als een JSON string die eenvoudig verder verwerkt kan worden.

De firmware kent een aantal restAPI call’s zoals bijvoorbeeld (er zijn er meer):

/api/v1/dev/infoGeeft systeem informatie over de DSMR-logger terug
/api/v1/dev/timeGeeft de systeem (Slimme Meter) tijd terug
/api/v1/dev/settingsGeeft de systeem settings van de DSMR-logger terug
/api/v1/sm/infoGeeft systeem informatie van de Slimme Meter terug (meter id, p1 versie, equipment id enz.)

Voor de andere restAPI’s verwijs ik je naar de officiële documentatie van de DSMRloggerAPI firmware. 

Behalve de gegevens die via de restAPI’s bij de DSMR-logger kunnen worden opgevraagd en in JSON formaat worden terug gegeven is het ook mogelijk om de telegrammen, exact zoals die door de Slimme Meter worden afgegeven op te vragen (dat gaat niet in de browser omdat deze het resultaat wil opslaan op je computer). De restAPI hiervoor is:

http://dsmr-api.local/api/v1/sm/telegram

De DSMR-logger geeft dan het volgende terug:

Dit is het volledige telegram zoals die door de Slimme Meter wordt verstuurd, inclusief “\r\n” line endings en CRC Checksum.

De DSMRloggerAPI firmware zorgt er dus voor dat de DSMR-logger zich alleen nog met zijn primaire taak hoeft bezig te houden en af-en-toe een restAPI request moet beantwoorden. Ook dit is simpeler gemaakt dan in de vorige firmware omdat alles terug wordt gegeven zoals de Slimme Meter het aanlevert (met de benaming zoals de  arduino-dsmr bibliotheek van Matthijs Kooijman ze afgeeft). 

De hiervoor beschreven situatie is de “ideale situatie”. In de uiteindelijke implementatie heeft de DSMRloggerAPI firmware nog een paar andere taken en wel:

  • hij maakt historische bestanden aan per uur, dag en maand
  • hij stuurt de actuele gegevens vanuit de Slimme Meter naar een MQTT broker (indien dat is ingesteld)
  • hij stuurt 1x per dag de gas-meter stand door naar Mindergas.nl (indien dat is ingesteld)

De historische gegevens worden in zogenaamde “RING files” opgeslagen. Deze manier van opslaan is aanzienlijk sneller en robuster dan de sequentiële opslag die in de DSMRloggerWS firmware wordt gebruikt. Hij is ook geoptimaliseerd om wear tegen te gaan. Tevens is het SPIFFS file systeem nu standaard 2MB wat de wear leveling ook ten goede komt. Grofweg duurt het gemiddeld zo’n 300 jaar voordat het filesystem fouten gaat maken.

Je zult je misschien afvragen: “kan ik de gegevens nog wel met mijn browser bekijken?

Natuurlijk kan dat! Daarvoor is een hele eenvoudige index.html pagina toegevoegd die, eenmaal in de browser ingeladen de uiteindelijke presentatie opbouwt en weergeeft. Standaard zullen de benodigde .js (Javascript) en .css bestanden door de browser uit mijn github repository worden opgehaald. Daar hoeft de DSMR-logger zich dus ook niet mee bezig te houden en een bijkomend voordeel is dat eventuele nieuwe versies van deze bestanden óók automatisch door jouw DSMR-logger gebruikt zullen worden!

De browser vraag periodiek via een restAPI call gegevens op uit de DSMR-logger en gaat daar vervolgens weer mee aan de slag zonder de DSMR-logger daarmee te belasten.

Omdat de presentatie via de GUI niets meer met de DSMR-logger zélf te maken heeft is het voor ‘anderen‘ vrij eenvoudig een mooiere GUI te ontwikkelen. Arjen de Jong heeft daar al een aanzet voor gegeven (hij is nog wel met de ontwikkeling bezig):

Ook Erik heeft, voor een specifieke toepassing (n.l. alleen het meten van trends in het verbruik), een GUI gemaakt:

Maar het grootste voordeel van de nieuwe DSMRloggerAPI firmware is dat andere systemen (bijvoorbeeld Home Assistant) en devices via een gestandaardiseerd protocol gegevens uit de DSMR-logger kunnen ophalen! Alles wat de Slimme Meter aan gegevens levert wordt zo, draadloos, ontsloten voor wat je er ook maar mee wilt doen!

Slimme Meter Info bij eerste comment!

Als je een comment of reply wilt achterlaten of als je een vraag hebt, geef dan áltijd op:

* Merk én Type Slimme Meter
* Gebruikte Compiler Opties
* Externe voeding gebruikt
* Energy Leverancier
* Functioneert de DSMR-logger

This entry was posted in Arduino, ESP8266, Firmware, WiFi and tagged , , , , . Bookmark the permalink.

365 Responses to restAPI’s zijn hip! (nieuwe firmware voor de DSMR-logger)

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

  2. Vincent Nijhuis says:

    Mooi werk. Super om te lezen dat ik vrij snel de upgrade naar de DSMRloggerAPI kan doen. Ik vraag me af of de mooie interface van Arjan de Jong omarmt gaat worden of moeten we deze straks zelf toe gaan voegen als we dat willen?

    Nu zie ik daar niet zo heel veel toevoeging aangezien ik nu een week de DSMRloggerWS draai en 2 keer in de interface heb gekeken. De rest staat op onze smartscreen via Home Assistant en Grafana.

    Keep up te good work allemaal

    • Willem Aandewiel says:

      Hi Vincent,

      Bedankt voor het compliment.

      Waarschijnlijk hoef je voor de GUI van Arjen helemaal niets te doen, behalve in de settings (via FSexplorer -> Editor) bij index page “ADJindex.html” invoeren (dit file staat al op het SPIFFS).

      De hele opzet en de mogelijkheden van de nieuwe firmware is verbetert plus dat verdere ontwikkeling op deze versie verder gaat.

      Kun je een plaatje van je Home Assistant integratie uploaden?

      • Vincent Nijhuis says:

        Geen dank uiteraard.

        Ow dus de interface zit er al in ik zag dat dit allemaal via externe URL ingeladen wordt in je eigen browser super gedaan en over nagedacht.

        Upgraden naar de API versie is dus een pré als je nieuwe functies wilt gebruiken de oude ws versie is zeg maar end of life?

        Heb ik nog een vraag (ik ben een beetje bekend met ontwikkelen maar niet met dit soort dingen). Ik heb dus net de dsmr logger met ws versie 1.0.3c kan ik zonder nadenken upgraden naar de API versie 0.3.5 of mis ik dan de ESP core 2.6.x? Of zit dit mee gecompiled in de zip files?

        Als ik straks in de gelegenheid kom zal ik eens kijken of ik vanavond nog een screenshot kan posten👍.

        • Willem Aandewiel says:

          De GUI van Arjen staat op github. Het enige wat je nodig hebt is een héél simpele index.html (die heet in dit geval ADJindex.html) die niet veel meer doet dan een javascript van github op halen en uit voeren (welk index file gebruikt moet worden kun je bij settings opgeven).

          Upgraden van DSMRloggerWS naar deze nieuwe firmware is een beetje tricky. Doe je het verkeerd dan kun je alleen nog bedraad upgraden.

          Ik probeer steeds een up-to-date zip file van de firmware en van het spiffs op github te zetten (bij releases). Het upgrade process staat hier beschreven.

          De DSMRloggerWS is inderdaad “end of life” (alleen nog storende bug fixes).

    • Willem Aandewiel says:

      Vincent,

      Op wat voor merk/type Slimme Meter ga je de DSMR-logger gebruiken?

      • Vincent Nijhuis says:

        Hallo Willem,

        Ik ben weer boven water. Even spannend om ziek te worden in deze tijd. Maar gelukkig leek het een gewone griep.

        Zojuist heb ik het een en ander bij elkaar gepakt en tevens ‘vingers crossed’ de logger geupgrade naar de v1.1.0 API firmware (altijd eng de eerste keer). Het is goed te doen gelukkig thumbs up daarvoor.
        Om nog even op je vraag terug te komen. We hebben helaas de KAIFA MA105C Dus ik moet gebruik maken van een externe spanningsbron. Ik heb erg blij met de KPN router die voorzien is van USB die er naast hangt. Ik heb nu stroom van dichtbij.

        Tevens heb ik zojuist ook nog even gekeken naar de frontend van Arjan. Deze kan bij mij de grafieken niet laden ik krijg allemaal Javascript error’s over de value property die niet geladen lan worden zie ook toegevoegd plaatje. Kan te maken hebben met mDNS wat ik mijn netwerk geblocked wordt. Maar deze interface was ik niet van plan te gaan gebruiken. Ik moet nog werken aan wat mooie overzichten in Home Assitant nu heb ik de overzichtjes uit de documentatie ook gebruikt.

        Is het mogelijk om overal waar dsmr-api.local gebuikt wordt automatisch te vullen met het IP adres van de logger? Dan zijn volgens mij voor mij een aantal mDNS gerelateerde issue verholpen. Ik kan dit uiteraard ook zelf testen. Maar kan ik de software ook dynamisch op mijn computer testen zonder de logger aan te sluiten en of up te daten met software die ervoor zorgt dat ik iets stuk maak 😉 ?

        • Willem Aandewiel says:

          Hi Vincent,

          Mooi dat de upgrade gelukt is.

          Als je in je browser het IP adres van de DSMR-logger gebruikt, in plaats van DSMR-API.local wordt er geen gebruik gemaakt van mDNS. Je hoeft er niets voor te doen of te veranderen.

          Als je problemen met de GUI van Arjan hebt kun je op zijn github repo een “issue” aanmaken!

          • Vincent Nijhuis says:

            Ik heb alleen toegang via het ip adres lokaal en als ik dan op API Docs klik in het menu en dan een optie kies kom ik uit op DSMR-API.local/API/V1/******.
            Hierbij moet ik dan telkens switchen in de adresbalk ik heb de code van Arjan nog niet bekeken maar ik heb het idee dat deze ook gebruikt maakt van de urls op de docs pagina. Maar dat ga ik nog eens bekijken en uitzoeken. Aan waar ik vragen heb Arjan eens lastig proberen te vallen ;).

            Dank nogmaals voor dit super product. Ik ga elders deze week eens proberen een mooi home assistant scherm te knutselen.

        • Willem Aandewiel says:

          Ik denk dat als je bij de settings als hostname het IP adres invult alles werkt zoals in jouw situatie gewenst is.
          Never mind that! Ik zal morgen een aanpassing in DSMRindex.js maken waardoor het wel goed zal gaan (hoop ik).

          • Vincent Nijhuis says:

            Ik heb een ander probleem met de firmware dan dat ik last heb van mDNS denk ik. Ik zit nu voor het eerst weer achter mijn goede laptop te debuggen en vindt in de log van de frontend van Arjan dat ik alleen maar l1 gevuld heb.

            Dit heb ik eerder in de interface van de logger ook gezien maar wist niet dat dit een probleem kon zijn. Zie ook mijn afbeelding.
            Is daar een oplossing voor?

            Of zit ik hier volledig verkeerd?

      • Vincent Nijhuis says:

        Tevens heb ik de downloads van de gitrepo gepakt. Ik heb een versie 4.5 van de logger met een schermpje aangeschaft. Dus dit was voor mij voldoende.

        • Willem Aandewiel says:

          Wat bedoel je met “Tevens heb ik de downloads van de gitrepo gepakt“?
          Heb je de binaries van de releases pagina gebruikt?

          • Vincent Nijhuis says:

            Inderdaad ik kon met mijn setup de binaries van de releases pagina pakken. Voor nu is dat bij mij volgens mij voldoende.

  3. Dick says:

    Hallo Willem, Mijn indruk was dat DSMRloggerWS 1.0.5 de de nieuwe API versie was, ook omdat daar ook al met API’s wordt gewerkt.
    Nu dus de DSMRloggerAPI firmware geïnstalleerd en daarin loopt de MQTT dus ook in de test modus. Die dubbele naam haal ik er in nodered wel uit.
    Ziet er weer prima uit en keurig gestuctureerd opgebouwd. Een van mijn wensen, de gas grafieken zit er nu ook in. Grafieken zien er ook goed uit, ook die van Arjen.
    Mijn test systeem loopt op een WEMOS D1 en die geeft nog een fout bij compileren. Zit in het niet bekend zijn van het board. Welke naam de compiler voor mijn boardje genereerd kon ik niet vinden, daarom in restAPI.ino bij ca regelnr 357 een #else ingevoerd met mijn board naam.
    Nu kan ik mij weer met andere zaken gaan bezig houden.
    Bedankt,
    Groet Dick

    • Willem Aandewiel says:

      Dick,

      Je kunt de Wemos gewoon als ESP8266 compileren. Het is gewoon een Generic ESP8266.

      Wat voor merk/type Slimme Meter heb je?

      • Dick Spork says:

        Hi Willem,
        De Wemos is nu inderdaad gewoon als ESP8266 te compileren, in het verleden was dat niet zo(oudere IDE?) en moest ik het steeds om zetten.

        Mijn Slimme meter is een Iskra AM550. Deze leverd genoeg stroom om ook een display mogelijk te maken. Wel heb ik C3 moeten vervangen voor een 100muF exemplaar.

        Gr Dick Spork

  4. D. Wismeijer says:

    Hi Wim,
    1) het navolgende is een terugkerende foutmelding met de Home Assistant 0.106.6 en Mosquitto broker v5.1 (Add-On) waarbij de volgende additionele gegevens zijn opgenomen in de broker config file: client_id: HassIO, keepalive: 60. Dit is nog een overblijfsel van de aanbevelingen in de DSMRLoggerWS HA instructies.

    1584259230: New connection from 192.168.2.180 on port 1883.
    1584259230: New client connected from 192.168.2.180 as DSMR-APIA4:CF:12:C2:FD:76 (p2, c1, k15, u'mqtt').
    1584259253: Client DSMR-APIA4:CF:12:C2:FD:76 has exceeded timeout, disconnecting.
    

    Enig idee wat de reden hiervan is.
    2) Heb ik het juist dat het OLED scherm alleen werkt met externe voeding en niet gevoed kan worden vanuit de slimme meter (PWR Source jumper staat op SM, OLED is dead)

    Indien dit blog tevens al gebruikers forum dient dan nodig ik graag andere succesvolle gebruikers hun ervaringen te delen mbt de juiste value templates nodig om de variabelen uit te lezen.
    Grtjs
    Dick

    • Willem Aandewiel says:

      Dick,

      Ik denk dat je de hassio vragen beter op een Home Assistant forum kunt stellen.

      Het OLED scherm kan gewoon vanuit de Slimme Meter gevoed worden (mits goed aangesloten).
      Ik heb geen idee wat voor merk/type Slimme Meter je hebt dus ik kan je vraag ook niet met zekerheid beantwoorden.

      • D. Wismeijer says:

        Hi Wim,
        V.w.b de opmerking aangaande de HASSIO vragen betwijfel ik of de vraag betrekking hebbende op Client DSMR-APIA4:CF:12:C2:FD:76 has exceeded timeout, disconnecting, op het HASSIO forum thuis horen. Dit is duidelijk een interface probleem tussen DSMR en HA waarvoor je claimed dat deze met elkaar moeten werken. Zoals eerder gezegd, de logger werkt NIET met de laatste HASSIO versies, de API versie evenmin. Als de support en verdere analyse hier stopt dan is het einde verhaal en in tegenspraak met je documentatie, die, je eigen woorden, gebaseerd zijn op oudere (dus depricated) HASSIO versies.
        De Slimme Meter is een KAIFA E0026. Het OLED scherm is dead en de rode LED flikkert dus heb een stout vermoeden dat het board meer vereist dan gegeven kan worden. Enfin, het werkt niet.
        Geen probleem, het was leuk geprobeerd te hebben als alternatief voor een directe verbinding met HA.
        Grtjs
        Dick
        Grtjs Dick

        • Willem Aandewiel says:

          Beste Dick,

          Ik denk dat je gebrek aan kennis over de producten die je gebruikt niet op dit project moet afschuiven. De DSMRloggerWS en DSMRloggerAPI firmware werken prima samen met verschillende MQTTbrokers (de meest gebruikte is Mosquitto). Je moet je realiseren dat er letterlijk honderden van deze loggers in gebruik zijn. Als er dan daadwerkelijk iets niet (goed) zou werken dan zou je dat in de reacties op deze post en de DSMRloggerWS post terug moeten vinden.

          Verder moet je je ook realiseren dat dit “open source” en “open hardware” projecten zijn. Key is toch wel dat je zelf ook tijd investeert in het oplossen van (kleine) problemen.

    • Maarten says:

      Beste Willem, Dick,

      Het probleem met betrekking tot het disconnecten en reconnecten in MQTT heb ik ook. Precies dezelfde 3 regels (m.u.v. het IP en MAC adres) krijg ik ook in mijn Mosquitto broker log te zien. Ik weet niet of het ermee te maken kan hebben dat de DSMRloggerAPI geen terugkoppeling geeft naar de Mosquitto broker als hij om bevestiging vraagt of dat deze zich heeft aangemeld. Data wordt wel trouwens afgegeven en kan ik ook uitlezen in mijn Home Assistant. Ik twijfel wel of de HASSIO logging met de DSMRlogger te maken heeft maar deze meldingen kwamen pas in de loggings tevoorschijn toen ik de DSMRlogger in mijn MQTT pool ben gaan laten meedraaien. Van mijn andere devices heb ik deze meldingen verder niet. Mijn home assistant versie is 0.107.4 en HASSIO versie 3.12. Mosquitto broker versie is 5.1. De versie van de DSMRloggerAPI is v1.0.1 en draait op een Wemos D1 Mini V3.00. Misschien dat je ons hiermee verder kunt helpen?

      Verder vind ik dat je top werk met deze oplossing hebt geleverd. Deze oplossing is een ultieme uitkomst voor mijn smart home setup. Keep up the good work!!!

      Met vriendelijke groeten,
      Maarten

      Ps. ik heb een log van de Mosquitto broker toegevoegd en wat ik in de HASSIO log zie gebeuren.

      Logging Mosquitto:

      1584788632: New connection from 192.168.102.7 on port 1883.
      1584788632: New client connected from 192.168.102.7 as DSMR-APICC:50:E3:5D:D2:3A (p2, c1, k15, u'MQTT').
      1584788655: Client DSMR-APICC:50:E3:5D:D2:3A has exceeded timeout, disconnecting.
      1584788692: New connection from 192.168.102.7 on port 1883.
      1584788692: New client connected from 192.168.102.7 as DSMR-APICC:50:E3:5D:D2:3A (p2, c1, k15, u'MQTT').
      1584788715: Client DSMR-APICC:50:E3:5D:D2:3A has exceeded timeout, disconnecting.
      1584788752: New connection from 192.168.102.7 on port 1883.
      1584788752: New client connected from 192.168.102.7 as DSMR-APICC:50:E3:5D:D2:3A (p2, c1, k15, u'MQTT').
      1584788775: Client DSMR-APICC:50:E3:5D:D2:3A has exceeded timeout, disconnecting.
      

      Logging HASSIO:

      20-03-21 10:49:52 INFO (MainThread) [supervisor.auth] Auth request from core_mosquitto for MQTT
      20-03-21 10:49:53 INFO (MainThread) [supervisor.auth] Success login from MQTT
      20-03-21 10:55:52 INFO (MainThread) [supervisor.auth] Auth request from core_mosquitto for MQTT
      20-03-21 10:55:53 INFO (MainThread) [supervisor.auth] Success login from MQTT
      20-03-21 11:01:52 INFO (MainThread) [supervisor.auth] Auth request from core_mosquitto for MQTT
      20-03-21 11:01:53 INFO (MainThread) [supervisor.auth] Success login from MQTT
      

      • Willem Aandewiel says:

        Maarten,

        Bedankt voor de informatie. Ik heb even geGoogled op “Client DSMR-APICC:50:E3:5D:D2:3A has exceeded timeout, disconnecting” en vind dan toch wel een hoop hits. Ik gebruik op mijn hassio RPi mosquitto version 1.4.10 en ondervind geen problemen. Suggesties in de hits van Google zijn o.a. het aanpassen van het config file van mosquitto.

        Omdat ik een nogal gedateerde versie van hassio gebruik (als ik een keer echt tijd heb zal ik een nieuwe versie installeren) is het voor mij ook moeilijk jullie hier verder mee te helpen.

        • Maarten says:

          Hoi Willem,

          Als je inderdaad ook graag eens zou willen proberen met een van de laatste versie van Hassio en Home Assistant als je tijd hebt zou dat fijn zijn. Dan ben ik benieuwd of je hetzelfde ziet gebeuren.

          Mvg,
          Maarten

          • Willem Aandewiel says:

            Maarten,

            Ondertussen heb ik de laatste versie van Home Assistant op een RPi gezet.

            Integratie heb ik beschreven in de documentatie.

            Configuratie zowel om gegevens met MQTT alsook met restAPI’s In te lezen. Alles redelijk “recht toe recht aan”.

  5. Rob says:

    hallo Willem,

    volgens mij zitten en nog een paar schoonheidsfoutjes in DSMRloggerAPI.ino
    ik kom een paar keer “#ifndef” tegen, dat is volgens mij niet juist.

    met vriendelijke groeten
    Rob

  6. Manuël says:

    Hoi Willem,

    Leuk project, ben zelf ook geïnteresseerd om de meter uit te lezen en kwam aldoende hierop uit. Maar goed, eerst even een aantal vragen. Ik wil dan sowieso de nieuwe DSMRloggerAPI variant gebruiken.

    – Ik zou graag DSMR reader willen gebruiken. Ik heb al een losse Raspberry Pi hiervoor. Is dit compatible met elkaar? Kan ik dus je apparaatje hier rechtstreeks voor inzetten?
    – Ik heb ‘s nachts het modem uit staan, en dus geen Wi-Fi. Verbind de logger dan weer automatisch? En net zo belangrijk, stuurt ie dan de ontbrekende data ook nog door? Voor zover ik op je screenshots kan zien slaat het apparaat wel e.e.a. zelf op dus dat zou mogelijk moeten zijn?

    • Willem Aandewiel says:

      Manuël,

      Ik heb geen kennis van of ervaring met DSMR reader dus daar kan ik je niet over adviseren. Misschien leest iemand anders, die er wel verstand van heeft, je vraag.

      Waarom je een RPi wilt gebruiken voor iets dat de DSMR-logger in zijn eentje kan is mij overigens een raadsel.
      Of hij zichzelf weer aanmeld op je WiFi netwerk zou ik niet weten.
      De DSMRloggerAPI firmware slaat de meterstanden over de afgelopen 24 uur, 14 dagen en 24 maanden op. Die kun je met een restAPI draadloos weer uitlezen.

      • Manuël says:

        Ik wil graag DSMR reader gebruiken omdat ik het een duidelijk overzicht vind en je daar ook kosten en energiecontracten e.d. in kwijt kan.
        Ik bedoel of de logger zelf weer opnieuw verbind met WiFi als deze uitstaat, niet de RPi (die doet dat keurig).

        • Willem Aandewiel says:

          Manuël,

          Ik weet niet of de DSMR-logger weer connect met je WiFi AP nadat deze uit is geweest. Waarschijnlijk zul je de DSMR-logger opnieuw moeten opstarten.

          20-03-2020: vanaf v1.1.0 probeert de DSMRloggerAPI firmware bij een verloren WiFi verbinding om het kwartier opnieuw een verbinding met het laatst bekende AP te maken. In de tussentijd blijft de logger gewoon telegrammen processen en worden de historische bestanden bijgewerkt.

          • Manuël says:

            OK, dat is niet praktisch. En andersom dan: blijft de access point van de DSMR-logger constant aan? Zolang ik er zelf maar mee kan verbinden dan is dat ook geen probleem.

        • Willem Aandewiel says:

          Manuël,

          Ik heb geen ervaring met de situatie waarbij het WiFi AP regelmatig “uit” staat.
          Je zult het dus zelf moeten ervaren. Zolang het AP hetzelfde IP adres aan de DSMR-logger geeft (dat zou hij kunnen doen op basis van het MAC adres en waarschijnlijk kun je dat op je modem instellen) dan kun je zeer waarschijnlijk opnieuw verbinding met de DSMR-logger maken.
          Het AP van de DSMR-logger staat tijdens normaal gebruik “uit”.
          Overigens zal de DSMR-logger wel gewoon de Slimme Meter blijven uitlezen en de gegevens in de historische bestanden opslaan.

          • Manuël says:

            Maar kan de AP van de DSMR-logger wel op één of andere manier permanent aangezet worden? Desnoods iets aanpassen aan de code, al heb ik geen ervaring met Arduino. Dat lijkt mij in mijn situatie veel handiger namelijk, dan kan ik de data gewoon van de DSMR-logger afhalen.

    • Willem Aandewiel says:

      Ja, je kunt WiFi op de esp8266 permanent als Access Point configureren

      • Manuël says:

        Zit die mogelijkheid standaard in je firmware of moet ik dat dan aanpassen? Bedankt voor al je antwoorden!

        • Willem Aandewiel says:

          Manuël, misschien is het toch wel handig als je de uitvoerige en diepgaande documentatie gaat lezen. Alles wat over de hardware en firmware te weten valt staat daar in beschreven (soms moet je een beetje zoeken). Ook alles wat de firmware doet. Als je bepaalde zaken anders wilt dan staat het je vrij om dat aan te passen (Open Source!) maar je zult dan toch wel zelf die aanpassingen moeten bedenken en aanbrengen.

          Overigens is de enige vraag die ik gesteld heb: “informatie over je Slimme Meter” maar daar heb ík nog geen antwoord op gehad…

          • Manuël says:

            Volgens mij werkt je link niet helemaal goed, ik ga terug het begin van deze pagina. Ik zie zo ook even geen vraag van je, maar misschien heb ik het gemist. Ik heb de documentatie al gelezen (de ‘beta’ variant van de API versie) en kon het daarin niet vinden, maar als ik de code bekijk dan lijkt mij dat het er niet standaard inzit. Dit aanpassen lijkt het mij wel te doen.

            Wat voor wifi bereik kan ik van de logger verwachten? Heb mijn Raspberry op een meter of 10 afstand staan met twee muurtjes er tussen (niet van beton).

          • Willem Aandewiel says:

            Volgens mij werkt de link prima!
            Een groot blauw blok waarin staat: “bij vragen altijd het merk en type van je Slimme Meter opgeven

            Het idee is dat we dan een database kunnen opbouwen van Slimme Meters waar de DSMR-logger mee werkt (of niet).

  7. Manuël says:

    Aah, daar keek ik helemaal overheen. Ik heb een Landis+Gyr E360 geleverd gekregen.

  8. Wesley says:

    Hoi Willem,

    Ik gebruik al een tijdje de meter.
    Ik heb een oude slimme meter met dsmr 2.2 en daardoor de aangepaste software.
    Ik draai nu v1.0.2 nog.
    Als ik de update doe zoals op jouw pagina, ben ik dan alle settings kwijt om de oude meter uit te lezen?

    • Willem Aandewiel says:

      Wesley,

      Ik begrijp niet goed welke settings je bedoelt. Bedoel je de compile opties?
      Wat je in ieder geval kunt doen is het DSMRsettings.ini file naar je computer uploaden. Met een text editor kun je zien wat daarin staat en de relevante gegevens kun je dan vervolgens in de nieuwe settings overnemen.
      Hou er wel rekening mee dat bepaalde zaken drastisch zijn veranderd (MQTT berichten en de restAPI call’s).

      Wil je zo vriendelijk zijn het merk en type van je Slimme Meter, de compileer opties, of je een externe voeding gebruikt enz. met ons te delen? Dat is voor veel andere (potentiele) makers/gebruikers zinvolle informatie.

      • Wesley says:

        Ik heb een Landis meter, type ZCF120ABd. Dsmr 2.2+
        Gebruik de voeding van de meter

        Ik bedoel de settings die het mogelijk maken om de dsmr 2.2 meter uit te kunnen lezen. Daar was toen een aparte upload voor gemaakt. (sorry ben niet zo goed in de juiste term denk ik)
        Ik vraag me dus af als ik een firmware update doe, dit dan nog werkt.

        • Willem Aandewiel says:

          Wesley,
          Bedankt voor de info over je meter.

          Ik dénk dat je kun volstaan met de compiler optie USE_PRE40_PROTOCOL Daarmee wordt de dsmr30 library gebruikt.

          Wat voor DSMR-logger (welke versie) gebruik je? De nieuwe firmware is alleen nog getest met versie 4 en 4.5.

          • Wesley says:

            Ik gebruik versie 4.
            Ik ga er eens mee aan de slag, kijken of ik er uit kom. Is alweer even geleden (ik kwam toen bij je langs en je ontdekte een soldeer probleem)

  9. robby says:

    Ter aanvulling op de documentatie

    Landis E360, opties=1,2,3,9, externe voeding=JA, SMR 5.0, Werkt=OK!

    • Willem Aandewiel says:

      Thanks!

    • robby says:

      Er lijkt iets niet helemaal goed te gaan met het bijhouden van het verbruik in de RINGhours. Zie afbeelding.
      Je ziet dat er op (24) [11:00 – 11:59] de waarde 0 staat, dat klopt niet. Ook de 39 op (24) [08:00 – 08:59] is niet juist en de 2349 op (23) [18:00 – 18:59] is niet correct, er had veel meer bij een uur eerder moeten staan (inductie koken).
      De data die ik via MQTT ontvang klopt wel, daarom denk ik dat er in de RINGhours iets niet OK is.

      • Willem Aandewiel says:

        Robby,

        Kan het zijn dat je DSMR-logger “uit” heeft gestaan tussen 10:59 en 12:00? Dat is n.l. de enige manier waarop er geen data in de RING bestanden wordt geschreven. In de Systeem Info pagina kun je zien hoe vaak de DSMR-logger gereboot is (daarmee kun je dus ook in de gaten houden of dat vaak gebeurd, wat niet hoort!) en wat de reden van de laatste reboot is geweest.

        • robby says:

          Nee, die heeft niet uitgestaan, de uptime is nu 2(d):22(h):19.
          4 reboots, Software/System restart, maar dat klopt wel, ik heb oa de PRD files omgezet en daarna gereboot.
          Ik heb wel MQTT messages binnen gekregen in die periode. Grafiekjes in Home Assistant en Grafana zien er prima uit.

          • Willem Aandewiel says:

            Heb je in die periode de PRD files geconverteerd? Want dan komt de informatie dus uit een “verouderd” PRD-hours bestand. Als er over 24 uur nog steeds verkeerde waarden worden uitgelezen moet je maar weer aan de bel trekken.

  10. robby says:

    Nee die conversie is voor de laatste downtime, dus drie dagen geleden, geweest. Daarna heb ik netjes gereboot, ook binnen het uur zoals in de instructie staat. Sindsdien niets meer veranderd.
    Alle data uit de oude files kan ik gewoon inzien, de dagen en maanden bestanden zien er goed uit.
    Ik zal kijken of ik er een patroon in kan ontdekken, dan hoor je meer.

    • dennis says:

      Hallo Willem,

      Ik zie ook af en toe vreemde waarden in de logger. Zie sreenshot.
      Zojuist upgrade gedaan van DSMRloggerAPI 1.1.0 naar 1.2.1
      —-
      DSMRloggerAPI-BE.ino.bin werkt met Fluvius in Vlaanderen meter T211 van merk Seconia. Geen externe voeding.

  11. Willem Aandewiel says:

    Ik heb in de documentatie twee nieuwe pagina’s opgenomen.
    De eerste laat zien hoe je de data uit de DSMRloggerAPI firmware met Home Assistant kunt gebruiken, de twee over het bedraad flashen van de firmware met het Flash Download Tool van Espressif.

  12. Harrie Bouwens says:

    Willem,
    Overstappen DSMRloggerWS naar de DSMRloggerAPI firmware versie is gelukt,
    Ziet er allemaal gelikt uit, bewondering !!

  13. Harrie Bouwens says:

    Willem, omdat bij mij de logger aan de wand bevestigd is, en het dan beter is dat de kabel aan de onderkant eruit komt, heb ik een regel aan de oled_init toegevoegd:
    oled.displayRemap(true);
    waardoor het display 180graden gedraaid is, zie foto

    • Willem Aandewiel says:

      Harrie,
      Goeie aanpassing!
      Wáár heb je die regel toegevoegd? Ik ga daar een #define van maken of misschien beter: een setting! Kun je het naar wens instellen!

      v1.1.2 (29-03-2020) via DSMR-editor in te stellen of je het display “normaal” of “geFlipt” wilt hebben.

      Thanks!

  14. Harrie Bouwens says:

    willem zie foto:

  15. Jurgen Imbrechts says:

    Beste Willem,

    Ik heb deze week de 4.5 versie aangekocht via Opencircuit en deze middag aangesloten. Ik krijg echter geen berichten binnen van de meter op de P1 poort. Ik heb reeds een nieuwe kabel gemaakt, RJ11 connectoren, 4 draadjes 1-1 doorverbonden. Ik maak gebruik van een externe 5V voeding. Het is een Belgische meter “Siconia T211” met 3fasen. Ik heb reeds een upgrade gedaan naar de nieuwe API versie van de firmware, dat is allemaal goed gelukt, maar het lijkt er op dat er toch nog iets mis is met de verbinding. Heb je toevallig nog een suggestie waar ik het probleem zou kunnen vinden?

    • Willem Aandewiel says:

      Jurgen,
      Hm.. ik heb zo gouw even geen idee ….
      Wat doen de ledjes (blauwe en rode). Heb je een oled schermpje aangesloten? Wat laat die zien?

      Kun je laten zien wat voor meldingen je met telnet voorbij ziet komen (opvangen als tekst file en hier copy-pasten)?

      • Jurgen Imbrechts says:

        Rode LED is permanent aan.
        Blauwe LED: 11s aan; 11s uit; 11s aan; 11s uit; enzovoort.

        Geen OLED scherm gekocht.

        Ik vermoed dat hij gewoon helemaal niets ontvangt. Ik heb ook op de site van de netbeheerder de “poort P1” opengezet. Zou dus moeten werken..

        Telnet sessie, verbose aangezet alsook “no parsing”.

        next: processAPI(/api/v1/dev/time)
        [01:04:52][  18528| 18048] processAPI  (  48): incomming URI is [/api/v1/dev/time] method[GET]
        [01:04:53][  20120| 19344] doTaskTelegr( 504): doTaskTelegram
        [01:04:53][  18776| 18048] processSlimm(  34): handleSlimmerMeter RawCount=[   0]
        [01:05:03][  19152| 18496] processSlimm(  64): RawMode: Timerout - no telegram received within 5 seconds
        next: processAPI(/api/v1/dev/time)
        [01:05:03][  18216| 17200] processAPI  (  48): incomming URI is [/api/v1/dev/time] method[GET]
        [01:05:03][  16872| 16552] doTaskTelegr( 504): doTaskTelegram
        [01:05:03][  16872| 16552] processSlimm(  34): handleSlimmerMeter RawCount=[   1]
        [01:05:13][  17920| 16360] processSlimm(  64): RawMode: Timerout - no telegram received within 5 seconds
        [01:05:13][  16632| 15712] doTaskTelegr( 504): doTaskTelegram
        [01:05:13][  16632| 15712] processSlimm(  34): handleSlimmerMeter RawCount=[   2]
        [01:05:23][  17344| 16360] processSlimm(  64): RawMode: Timerout - no telegram received within 5 seconds
        next: processAPI(/api/v1/dev/time)
        [01:05:23][  16408| 15064] processAPI  (  48): incomming URI is [/api/v1/dev/time] method[GET]
        [01:05:23][  15064| 13768] doTaskTelegr( 504): doTaskTelegram
        [01:05:23][  15064| 13768] processSlimm(  34): handleSlimmerMeter RawCount=[   3]
        /api/v1/sm/telegram[01:05:33][  15816| 15472] processSlimm(  64): RawMode: Timerout - no telegram received within 5 seconds
        [01:05:33][  14528| 14176] doTaskTelegr( 504): doTaskTelegram
        [01:05:33][  14528| 14176] processSlimm(  34): handleSlimmerMeter RawCount=[   4]
        
        • Willem Aandewiel says:

          Jurgen,
          We kunnen wel concluderen dat je geen telegrammen ontvangt.
          Ik heb alleen geen idee waarom niet. Meest voor de hand liggend is toch de kabel of de aansluiting van de kabel. Weet je zéker dat de stekkertjes diep genoeg in de connector zit (bij de meter en bij de logger).
          Is het ook zeker dat je Slimme Meter telegrammen verstuurt?

    • Willem Aandewiel says:

      Jurgen,

      Deed de DSMR-logger het wel met de originele firmware (zoals geleverd door opencircuit)?

      Waarom gebruik je een externe voeding? Volgens informatie die ik van andere T211 gebruikers heb gekregen kun je de DSMR-logger gewoon vanuit de Slimme Meter voeden..

      • Jurgen Imbrechts says:

        Hi Willem, het probleem lag dus bij mij.
        Op de website van de netbeheerder moet je dus de poorten activeren. Dit had ik dus gedaan. Er stond een groen bolletje bij. Echter moest ik blijkbaar nog eens op het groene bolletje tikken en daar specifiek zeggen dat de poort open moet. Het lag dus aan mij. Ondertussen komen de gegevens vlotjes binnen.

        Wel opmerkelijk, zie screenshot. “Voltage l2” staat op “0” en “Current l1” staat ook op 0. Toevallig een idee waar dit aan kan liggen? (er komen 3 fases binnen)

        Ik heb er misschien ergens over gelezen maar kan ik de waardes ergens aanpassen? Bij de opstart heeft hij gigantisch hoge waardes binnen gekregen. (huidige meterstand vermoed ik) en daardoor is mijn grafiek wel wat onduidelijk.

        Ik gebruik momenteel een externe voeding omdat ik dacht dat ik nog RJ12 kabel genoeg had. Achteraf gezien bleek dat allemaal RJ11 te zijn. Dus ik heb even een externe voeding gebruikt. Dat ga ik ook nog oplossen.

        Allesinds bedankt voor dit mooie project, zowel de hardware als de software!

        • Willem Aandewiel says:

          Jurgen,

          De waardes bij voltage en current verbazen mij … volgens de informatie van Fluvius worden deze via de S1 poort doorgegeven ..
          Omdat je nu geen vermogen per fase hebt is de actuele grafiek niet compleet. Daarvoor zou je met de optie SM_HAS_NO_FASE_INFO moeten compileren (in de volgende release is dit in de settings in te stellen. Misschien daar even op wachten.
          De hoge waardes zijn inderdaad de meterstanden bij de eerste meting. Dat loopt na verloop van tijd uit de bestanden weg. Geduld 😉

  16. Vandenbosch Patrick says:

    Hallo Willem,

    Uw slimme meter 0.4.5 (1.0.3c) is zaterdag geleverd. Ik had het zonder problemen direct aan de praat gekregen op de Belgische meters S211 & G4SRTv zonder extra 5V voeding . Gas stand was niet te zien op webserver, wel via Telnet.
    De update naar naar DSMRLoggerAPI v1.1.0 (DSMRloggerAPI-BE.ino.bin.zip) is ook tamelijk vlotjes verlopen.
    Na de file conversie bleken er paar kleine data’s niet 100% te kloppen, maar dit ik zelf in die ring files kunnen corrigeren.
    De gas stand komt nu wel vlotjes door.
    Mijn volgende stap is de data proberen binnen te lezen via openHAB (dewelke ik nog aan het leren ben).
    Enfin, een héél dikke proficiat met je DSMR project. Het geeft mij met beperkte IT/programeer kennis toch de mogelijk om met zulke toffe zakens bezig te zijn.

    Groeten,
    Patrick

    • Willem Aandewiel says:

      Patrick,
      Dank voor het compliment en de informatie over je Slimme Meters. Neem ik op in het overzicht.

      Heel veel plezier met de DSMR-logger!

  17. Jurgen Imbrechts says:

    Hi Willem, bedankt voor je antwoord. Ik ga toch even wachten op de volgende release. Ik verkies toch pre-compiled ipv zelf te moeten builden. Bedankt voor al je hulp.

    Ik heb de DSMR-logger ondertussen gelinked met de loxone installatie (van mijn broer). En dat werkt nu ook perfect. Omdat er heel wat mensen zijn met Loxone installaties die hetzelfde willen bereiken heb ik er ook even een handleiding voor geschreven. (En gepost in de Loxone BE/NL groep op facebook).
    Misschien kan jij er ook even door lopen, ik overloop ook even kort hoe ze alles moeten aansluiten en opzetten.
    Zie hier.

    Je mag me altijd mailen als er opmerkingen zijn.

    Bedankt voor je hulp! Ik kijk uit naar de volgende versie.

  18. G. van Meeuwen says:

    Beste Willem, TOP project met de ESP12E.
    Meter Iskra Am550. Lolin printjes van ALiexpress. Heb de Arduino versie gecompileerd en geladen. Met de info uit diverse reply’s en wat soldeer werk functioneert het goed.Wat ik nog mis is een modbus koppeling. Waar zou ik deze het beste kunnen verwerken in de software? Ben op zoek naar dezelfde waarden als de MQTT wegschrijft(actuele waarden vermogen, spanning, stroom, gas m3 etc) alleen dan niet in string maar de waarden in integers of float. De update frequentie hoeft niet hoog te zijn (1 x per 30sec). Modbus-esp8266 functioneert goed genoeg, heb er al wat ervaring mee met weersvoorspelling ESP8266 projectjes.
    Wellicht kun je me helpen of weet je iemand, alvast dank.

  19. Mathieu says:

    Hallo,
    Zou u eventueel ook een gecompileerde versie van de recenste firmware willen op je git of website plaatsen?
    Ik zie het niet zitten om alles nodige tools en dergelijke te installen om gewoon een over the air firmware update uit te voeren. Graag gewoon de juiste file.
    Is dit mogelijk?

  20. Remco says:

    * Merk én Type Slimme Meter – Kaifa MA340c
    * Gebruikte Compiler Opties – Request_pin; Update_server; Mqtt; Mindergas
    * Externe voeding gebruikt – Ja, helaas wel.
    * Energy Leverancier – Stedin / Welkom Energie
    * Functioneert de DSMR-logger – JA! 🙂 DSMR-API v1.2.2 (01-04-2020)

    Willem, You’re the man!
    wat een leuk project, en het werkt prima. Heb alleen een vraag mbt de “eerste metingen”: Natuurlijk leest de SM de tellerstand, en bij een volgende meting weer, het verschil is het ge/verbruik. nu zal de “piek na een paar maanden wel uit beeld verdwenen zijn, maar kan je aangeven wat “na verloop van tijd” inhoudt? Mogelijk een optie om de startgetallen van de meetgetallen af te trekken. (zeg maar, je dagteller in de auto op nul zetten) Verder ga ik een poging wagen om dit te koppelen met Domoticz, veel werkende info heb ik hiervan nog niet gezien. Eentje, maar die heeft “PI” in de scripttekst staan, en mijn Domoticz staat op een Synology NAS. maar goed dat gaat niet over de data van jouw DSMR-logger. Top project, ik ben er erg blij mee, en ga verder puzzelen.
    groet, Remco

    • Willem Aandewiel says:

      Remco,

      Bedankt voor het compliment!
      Je bent één van de (zo niet de) eerste(n) die de gegevens van zijn opstelling doorgeeft bij een eerste comment! Wordt (door mij in ieder geval) gewaardeerd!

      Voor de maanden kun je via de editor (rechtsboven in het scherm) de meterstanden van de voorgaande 24 maanden invoeren. Is een beetje een gedoe, maar gewoon vaak op [Opslaan] klikken (het beste kun je eerst de gasmeterstanden invoeren). De dagen en uren trekken resp. binnen 14 dagen en twee dagen recht.

      17 april 2020
      Versie 2.0.1 van de DSMRloggerAPI firmware kan de actuele data exact zo opsturen als de DSMRloggerWS firmware dat deed! Alleen de aanroep is iets anders (zie de documentatie)!

      • Remco says:

        Hoi Willem,
        dat was een K-klusje, ben ongeduldig met opslaan, dus vaak “pakte” hij het niet, en kon weer een regel overnieuw doen. Maar goed, alle maanden zitten erin, met dank aan de history van Slimmemeter.nl. Heb steeds meer vragen… Kan ik de kleuren van de stroomlevering wijzigen/ meer contrastrijk maken? Ik heb 3 fases, en het verschil is best klein. Dan het API – systeem en Domoticz, als ik bij een andere ESP8266 lees (Wemos D1) kan kan je in de interface Domoticz aangeven.
        Ik ben geen programmeur, maar is zoiets ook mogelijk bij DSMR-logger(API) ?

    • Willem Aandewiel says:

      Remco,

      Toch mooi dat het kán 😉

      Je kunt de kleuren zoveel aanpassen als je wilt. Dit wordt helemaal in de gui geregeld en je kunt dus deze aanpassen of zelf een gui maken.

      Het lijkt dat de Domoticx code waar je naar verwijst zaken autonoom ópstuurt naar Domoticx. De DSMRloggerAPI firmware gaat ervan uit dat de gegevens opgevráágd worden. Dat is wezenlijk anders. Toch ben ik comments tegen gekomen van mensen die de DSMR-logger gebruiken in combinatie met Domoticx. Het kan dus vast wel, maar ik weet niet hoe.

      • Remco says:

        top, dan moet ik daar nog even verder naar zoeken… maar: HOE kan ik de kleuren aanpassen in de Gui? waar staat de code?

        • Willem Aandewiel says:

          Remco,

          De gui bestaat uit de DSMRindex.html, DSMRindex.css, DSMRindex.js, DSMRindex.html.inc en DSMRgrapics.js bestanden.
          De grafieken worden met DSMRgrapics.js opgebouwd en daar kun je de kleuren aanpassen.

  21. RJ says:

    Hoi Willem,

    Wat een leuk project! Ik heb kant-en-klaar dsmr logger gekocht bij opencircuit en daarna OTA geflashed met DSMRLoggerAPI. Werkte al een tierelier.
    Maar toen.. Na een eerste exploratie van de code gedaan te hebben, heb ik een stukje aangepast (mqtt user en pass settings wat groter gemaakt omdat ik wil proberen de telegrams naar Azure IOT Hub te sturen), gecompileerd en OTA geflashed. Alleen nu werkt de logger niet meer. De blauwe LED knippert 1x kort en direct erna 1x lang. Kan ik hier nu nog iets aan doen? Of betekent dit ik opnieuw moet flashen (ik heb nog geen programmer.. ik zal deze bestellen); ben daar nog niet in thuis maar gaat vast lukken..
    Alvast bedankt voor je reactie!

    • Willem Aandewiel says:

      RJ,

      Ik weet niet waar je de aanpassing(en) hebt gemaakt en ook niet waarom. De MQTTusername is 40 posities groot en het wachtwoord 30. Heb je echt nog grotere velden nodig?

      Kun je de DSMR-logger helemaal niet meer benaderen? Ook niet via telnet? Het zou kunnen dat de logger crashed en dan steeds opnieuw opstart, maar dan zou ik verwachten dat de ledjes steeds weer opnieuw knipperen..

      Als je de DSMR-logger kunt benaderen met “http://<ipadres-logger>/update” kun je gewoon nieuwe firmware flashen, anders moet je het bedraad doen. Zelf vind ik deze het prettigst werken. Wel opletten dat je de 5volt draad met de 5volt test pin van de logger verbindt.

      • RJ says:

        Hoi Willem,

        Bedankt voor je reactie!
        De Azure IOT hub verwacht dat je username in bepaald formaat opstuurt; wachtwoord is standaard een base64 encoded gegenereerde passphrase die langer is dan 30 posities. Zie https://docs.microsoft.com/nl-nl/azure/iot-hub/iot-hub-mqtt-support#using-the-mqtt-protocol-directly-as-a-device
        Vandaar mijn aanpassing.

        Ik krijg inderdaad helemaal geen verbinding meer. Ping en telnet werken niet meer. Http geeft ook geen respons.

        Hij lijkt inderdaad in een loop te zitten: blauwe led heel kort dan, lang (1s) en dan 5 niets. En dat weer telkens opnieuw.

        Had ik misschien voor het flashen weer de settings file moeten verwijderen?

        Ik ga een programmer bestellen; ik houd je op de hoogte. bedankt!

  22. Bergerie says:

    Op het ogenblik heb ik de slimme meter aangesloten op mijn Vera Smart Home Controller middels de SmartMeter Reader plugin. Het betreft hier een KFM5KAIFA-METER met DSMR version: 42. Deze plug in geeft mij naast de gegevens omtrent electrische verbruik tevens het gas verbruik weer in l/h en m3.
    Ik probeer de overgang te maken naar de DSMRLoggerAPI en merk op dat:
    1) de electrische metingen kloppen;
    2) van het gas verbruik slechts het totaal m3 is vermeld echter onder “water_delivered” en dat het verbruik in l/h niet is terug te vinden;
    3) het “(gas_)equipment_id” niet overeenkomt met de respectievelijk electrische/gas meter ID.
    Voor mijn vergelijk gebruik ik de uitlezingen verkregen middels http://localIP/api/v1/sm/fields.
    Heb ik een instelling over het hoofd gezien om dit recht te trekken?

    • Willem Aandewiel says:

      Bergerie,

      Het lijkt erop dat jouw gasmeter niet op Mbus 1 maar op Mbus 2 is aangesloten.

      Door deze link te lezen kun je dit waarschijnlijk oplossen.

      De gasmeter geeft alleen de meterstand door. Het gebruik per periode moet je dus zelf uitrekenen. Afhankelijk van je installatie en gasmeter vindt een update om de tien minuten, om het uur of zelfs slechts 1x per dag plaats.

  23. Juno says:

    Prettige k/woningsdag!

    [comment verplaatst naar restAPI’s zijn hip!]

    Ik heb gisteren een update uitgevoerd van 1.0.3 naar 2.0.1. Ik hoopte dat hiermee de spontane reboots zouden zijn opgelost.
    Ik zie nog steeds reboots: de uptime blijft in minuten, laaste reset: External System. Alleen het aantal reboots blijft staan op 18.
    Ik heb een Landis Gyr+ E360 SMR 5.0.
    Kan de meter niet genoeg stroom leveren?
    Heeft het afkoppelen van de Oled display nog zin? Mijn test met de v1.0.3 liet zien dat hier ook nog reboots bij optraden.
    Aangezien de DSRM logger het doet geeft mijn meter (meestal) genoeg stroom.
    Wat is het verbruik van de DSRMlogger met display? Ik weet dat als er WiFi communicatie is het verbuik van de ESP12 omhoog gaat.
    Volgens de specificatie mag er max 250 mA worden verbruikt via de P1 poort
    [https://www.netbeheernederland.nl/_upload/Files/Slimme_meter_15_a727fce1f1.pdf]

    Het toevoegen van een (grotere) condensator of supercap zou een stroom piek van de ESP moeten kunnen opvangen.
    Heeft iemand hierover al nagedacht?
    Of heeft iemand ervaring met het gebruik van een supercap en een stroom limiter?

    Paralel ben ik een projectje gestart om met een 3.3V arduino Hall sensor en een losse magneet, mijn water meter te meten. Dit zou ik willen aansluiten op esp12 met een software uitbreiding om de pulsen (liters) te tellen en om te zetten naar kubieke meter.
    Het arduino bordje verbruikt ongeveer 7.7mA.

    Wie kan meedenken naar een oplossing zonder externe voeding, of is dit toch de enigste oplossing?

    Met vriendelijke groeten,
    Juno.
    Graag

    • Willem Aandewiel says:

      Juno,

      Je plaatst je vraag bij de post over de DSMRloggerWS firmware, maar je schrijft ook dat je een “update” van v1.0.3 naar v2.0.1 hebt gedaan… alleen, van de DSMRloggerWS firmware is nooit een versie 2.0.1 gereleased.
      Ik ga er vanuit dat je een upgrade hebt uitgevoerd van de DSMRloggerWS naar de DSMRloggerAPI firmware.

      Ik heb één melding van een gebruiker met een Landys E360 Slimme Meter en die geeft inderdaad aan dat je een externe voeding nodig hebt. Volgens mijn metingen gebruikt de ESP-12 tijdens het verbinden met het WiFi netwerk de meeste stroom (zo’n 250mA) maar tijdens normale werking niet meer dan 80mA. Het OLED scherm voegt daar een paar mA aan toe.

      Het toevoegen van een grotere elco kán werken, maar ook tégen werken. Iemand heeft daar een comment over geschreven (moet je even opzoeken). Punt is dat éénmaal opgestart de grotere elco als buffer werkt maar bij het opstarten juist éxtra stroom trekt waardoor de Slimme Meter de voeding juist uitschakelt. Your milage may vary.

      Zéker als je ook nog een hall sensor schakeling wilt voeden lijkt een externe voeding verstandig.

      • robby says:

        Die E360 melding is van mij. Dat ik met een externe voeding werk heeft ermee te maken dat ik een RJ11 (4 aderige) kabel, die had ik nog liggen, gebruik. Deze kabel geeft de 5 volt uit de SM niet door.

        Ik heb niet getest of de voeding van de SM voldoende is voor de DSMR-logger.

        • robby says:

          Ja, de SM geeft voldoende prik voor de E360 via een RJ12 kabel. Externe voeding is nu niet meer in gebruik.

  24. Bergerie says:

    Het ziet er naar uit dat m’n PCB “gone burst” is. Rode LED brandt, Flash-Reset button sequence levert geen enkele “blue” flash op, LED “dead”, geen flash communicatie. FTDI separaat getest en werkt perfect. Een “recovery” methode, if any, voor handen?

    • Bergerie says:

      LED moet zijn OLED!

    • Willem Aandewiel says:

      Bergerie,

      Wat vervelend. Heeft het OLED scherm eerder wel gewerkt? Heb je “iets” gedaan tussen het moment dat de DSMR-logger werkte en het moment waarop hij niet meer werkt?
      Wat bedoel je met “flash-reset button sequence”? Bedoel je het “in flash mode zetten” van de DSMR-logger? Wat verwacht je dat er gebeurd als je hem in flash-mode zet?
      Heb je de Tx en Rx lijnen van de FTDI goed (gekruist) aangesloten? Is het een 3v3 FTDI bordje (ze zijn vaak 5volt en/of via een jumper omschakelbaar).

  25. Bergerie says:

    Dank voor snelle reactie.
    1) OLED heeft eerder gewerkt;
    2)”iets” alleen geprobeerd OTA te flashen voor Mbus 2/1 swap;
    3) “FLASH-RESET-Release RESET, Release FLASH” gaf voorheen een flash blauwe led
    4) Tx(FTDI) naar Rx DSMR, Rx(FTDI) naar Tx DSMR
    5) FTDI stond op 5v heb jumper nu op 3.3V gezet
    6) Na USB connector verbonden aan PC (OM4), alleen RED LED (FTDI) en DSMR branden.
    7) procedure 3) levert geen blauwe flash nog een OLED display op
    8) Tools/ESP8266 Sketch upload resulteert in: esptool.py v2.8, Serial port COM4,
    Connecting…….._____….._____….._____., the selected serial port _ does not exist or your board is not connected
    9) Reverse (tijdelijke puls connectie) Tx/Rx connection, i.e. Tx – Tx en Rx-Rx, resets het bordje en OLED screen is terug, Blue LED is intermittend ON, System komt niet verder dan “Verbinden met WiFi” en start-up sequence herhaalt zich.
    10) Herhaal 3) en blauwe LED flashes en gaat uit. OLED holds, blijft staan op “verbinden met WiFi”
    11) reconnect volgens 4) resulteerd in gelijke error 8)
    12) Disconnect power, sluit power weer aan resulteert in 6) hierboven.

    Ik vrees “ter zielle”

    • Willem Aandewiel says:

      1) OLED heeft eerder gewerkt;
      -> Ok, dat is goed om te weten

      2)”iets” alleen geprobeerd OTA te flashen voor Mbus 2/1 swap;
      -> Waar heb je die swap gemaakt (welk bestand). Ik meen mij te herinneren dat je een pré 4.0 draait, dan moet je de aanpassing ook in de dsmr30 library aanbrengen. Heb je dat gedaan?

      3) “FLASH-RESET-Release RESET, Release FLASH” gaf voorheen een flash blauwe led
      -> Ok, zo zet je hem in flash-mode

      4) Tx(FTDI) naar Rx DSMR, Rx(FTDI) naar Tx DSMR
      -> Dat is ook goed!

      5) FTDI stond op 5v heb jumper nu op 3.3V gezet
      -> Hm.. dat is niet goed. Er bestaat een kans dat je daarmee de esp-12 hebt kapot gemaakt….

      6) Na USB connector verbonden aan PC (COM4), alleen RED LED (FTDI) en DSMR branden.
      -> Hm…

      7) procedure 3) levert geen blauwe flash nog een OLED display op
      -> Hm…

      8) Tools/ESP8266 Sketch upload resulteert in: esptool.py v2.8, Serial port COM4,
      Connecting…….._____….._____….._____., the selected serial port _ does not exist or your board is not connected
      -> Goed, soms moet je, zodra de melding “Connecting…” verschijnt nóg een keer de esp-12 in flash-mode zetten. Daar is voldoende tijd voor.

      9) Reverse (tijdelijke puls connectie) Tx/Rx connection, i.e. Tx – Tx en Rx-Rx, resets het bordje en OLED screen is terug, Blue LED is intermittend ON, System komt niet verder dan “Verbinden met WiFi” en start-up sequence herhaalt zich.
      10) Herhaal 3) en blauwe LED flashes en gaat uit. OLED holds, blijft staan op “verbinden met WiFi”
      -> Deze hele cycles ontgaat mij. Na flashen of om de esp-12 uit flash-mode te halen is het voldoende om 1x op de [reset] knop te drukken..
      -> Maar .. het lijkt toch wel dat de esp-12 nog steeds werkt, anders zou er niets op het OLED scherm staan!

      11) reconnect volgens 4) resulteerd in gelijke error 8)
      -> Nogmaals in flash-mode zetten!

      12) Disconnect power, sluit power weer aan resulteert in 6) hierboven.

      Ik vrees “ter zielle”

      Kort door de bocht: misschien niet!
      Wat voor meldingen krijg je als je FTDI aangesloten laat en de serial monitor opent? Kun je de meldingen als tekst in een reply zetten (liever geen plaatje want daar is de resolutie vaak te slecht van)?

      • Bergerie says:

        Slechts alleen de tijd melding: 14:49:26.156 ->
        Ik wil met alle plezier het boardje naar je toesturen. Ik heb het afgeschreven maar misschien kan jij er nog iets van leren voor later.

  26. Henk W. says:

    [reply verplaatst]

    Dank voor al het fraais Willem. Sedert nov 2019 volop genieten van mijn meter/logger.
    Nu de upgrade naar API gedaan, vlekkeloos verlopen. Nu wil ik de PRD bestandjes terug zetten maar…. Upload vervolgens een bestand met de exacte naam !PRDconvert
    Die is er dus niet, hele schijf doorzocht. Zal ik ergens op moeten halen maar waar? Heeft u een aanwijzing?
    Dank hoor

    • admin says:

      Henk,

      Je moet zélf een bestandje met die naam maken op je computer. Mag een leeg bestand zijn als de naam maar klopt.

  27. Leo says:

    Willem,
    DSMRloggerWS v1.0.3c aangeschaft bij OC incl Kabel en display.

    Alles geïnstalleerd en het display gemonteerd en alles werkt prima.
    Kan er prima bij via de WiFi.
    Echter hij ontvangt geen telegrammen.
    Mijn meter is een Isra AM550-TD2 CDMA 3F SW ESMR 5.0
    Ik gebruik de voeding uit de meter
    Heb jij tips waar ik dit moet zoeken?

    • Willem Aandewiel says:

      Leo,

      Dat is vreemd. Aan de Slimme Meter zal het niet liggen (zie hier).

      De meest voor de hand liggende oorzaak is het kabeltje of hoe hij in de meter zit. Heb je hem echt goed in de meter aangedrukt? Blijkt toch dat het daar nogal eens mis gaat. Heb je de mogelijkheid de kabel door te meten? De buitenste pinnen zijn goed, anders zou je geen tekst op het display krijgen maar één van de vier binnenste contacten zou slecht kunnen zijn.

  28. leo says:

    Willem,

    Ik ga op onderzoek uit en de kabel doormeten.
    ook wil ik de update van WS naar API uitvoeren.
    Als ik meer weet dan meld ik mij weer.

    Bedankt vast.

  29. Leo says:

    Hoi Willem,

    Nou heel wat geprobeerd en zelfs ge-update naar de API versie.
    Bijgeleverde kabel doorgemeten en deze lijkt in orde. de blauwe led knippert keurig om de 10s maar de telegrammen bijven op 0/0 staan.
    Ook nog een externe voeding geprobeerd en een RJ 11 kabel maar helaas geen berichten.
    Het display geeft geen fouten aan.

    Nog suggesties wat verder te doen?

    Groet,
    Leo

    • Willem Aandewiel says:

      Leo,

      Het “om de tien seconden knipperen” van de blauwe led is een teken dat hij op een telegram wacht (dat blijkbaar niet binnen komt).

      Kun je mij een telnet log toesturen (bijvoorbeeld met putty)?
      Dan graag even op “b” (board info) klikken op “s” (settings) en ook op “r” (raw telegram) klikken.
      Ik stuur je zo een PM met mijn eMail adres.

      Mocht daar niets zinnigs uitkomen dan kunnen We twee dingen doen:

      – je kunt de DSMR-logger naar mij toesturen, dan kan ik hem na meten en proberen te repareren (als dat nodig is)

      – bij opencircuit.nl het probleem aankaarten en om een vervangende unit vragen

  30. A.P. Schniedewind says:

    Beste Willem,

    Weet niet of ik hier op de goede plek ben maar na het upgraden van WS versie naar API versie (ging zonder problemen) heb ik een probleem met de GUI, deze laat maar 1 waarde zien in de uur en dag presentatie. De Actuele waardes komen wel goed op het scherm. en de tabellen bevatten wel waardes.

    Dag presentatie bevat nog geen 2e dag maar toch.

    kan jij me een hint geven waar ik de oorzaak kan vinden ?

    mvg
    Tom

    gebruik mozilla
    DSMR-API v2.0.1 (17-04-2020)

    • Willem Aandewiel says:

      Tom,

      Je comment staat bij de goede post!

      Ik snap niet helemaal wat je bedoeld. Kun je tekst-copy van het tabel-scherm over de foutieve periode geven?

      • A.P. Schniedewind says:

        Willem bedankt voor je response.
        hierbij de text copy’s

        hier de Uren tabel

        Afgelopen Uren

        (07) [12:00 - 12:59]	0	946	0.000
        (07) [11:00 - 11:59]	15	1003	0.000
        (07) [10:00 - 10:59]	13	253	0.788
        (07) [09:00 - 09:59]	267	0	0.129
        (07) [08:00 - 08:59]	89	25	0.387
        (07) [07:00 - 07:59]	48	4	0.242
        (07) [06:00 - 06:59]	141	0	0.000
        (07) [05:00 - 05:59]	124	0	0.000
        (07) [04:00 - 04:59]	126	0	0.000
        (07) [03:00 - 03:59]	227	0	0.000
        (07) [02:00 - 02:59]	210	0	0.000
        (07) [01:00 - 01:59]	125	0	0.000
        (07) [00:00 - 00:59]	908	0	0.000
        (06) [23:00 - 23:59]	827	0	0.000
        (06) [22:00 - 22:59]	374	0	0.139
        (06) [21:00 - 21:59]	302	0	0.389
        (06) [20:00 - 20:59]	114	83	0.097
        (06) [19:00 - 19:59]	0	1000	0.015
        (06) [18:00 - 18:59]	34	928	0.000
        (06) [17:00 - 17:59]	145	1896	0.003
        (06) [16:00 - 16:59]	0	2329	0.007
        (06) [15:00 - 15:59]	0	2074	0.072
        (06) [14:00 - 14:59]	0	1509	0.012
        (06) [13:00 - 13:59]	3	1842	0.065
        (06) [12:00 - 12:59]	0	1783	0.008
        (06) [11:00 - 11:59]	2	1156	0.003
        (06) [10:00 - 10:59]	20	194	0.000
        (06) [09:00 - 09:59]	206	0	0.278
        (06) [08:00 - 08:59]	75	23	0.479
        (06) [07:00 - 07:59]	43	5	0.000
        (06) [06:00 - 06:59]	97	0	0.000
        (06) [05:00 - 05:59]	169	0	0.000
        (06) [04:00 - 04:59]	125	0	0.000
        (06) [03:00 - 03:59]	186	0	0.000
        (06) [02:00 - 02:59]	256	0	0.000
        (06) [01:00 - 01:59]	123	0	0.000
        (06) [00:00 - 00:59]	145	0	0.000
        (05) [23:00 - 23:59]	229	0	0.000
        (05) [22:00 - 22:59]	290	0	0.197
        (05) [21:00 - 21:59]	315	0	0.220
        (05) [20:00 - 20:59]	116	72	0.162
        (05) [19:00 - 19:59]	0	1008	0.041
        (05) [18:00 - 18:59]	0	1728	0.000
        (05) [17:00 - 17:59]	4	2029	0.004
        (05) [16:00 - 16:59]	11	1798	0.004
        (05) [15:00 - 15:59]	1	2105	0.000
        (05) [14:00 - 14:59]	6493255	316933	2965.889
        (00) [00:00 - 00:59]	0	0	0.000
        

        en de dag tabel

        donderdag 07-05-2020	2293	2260	1.546	1.55
        woensdag 06-05-2020	3246	14822	1.567	-0.75
        dinsdag 05-05-2020	6494221	325673	2966.517	4200.23
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        dinsdag 00-00-2000	0	0	0.000	0.00
        

        is dit wat je bedoeld ?

        • A.P. Schniedewind says:

          scherm ziet er zo uit

          Uren scherm

        • Willem Aandewiel says:

          Dat is wat ik bedoel.

          Wat is nu precies je vraag?

          De uren tabel is bijna helemaal gevuld (alleen de laatste waarde (nog) niet). en dat ziet er goed uit.
          Echter, in de grafiek neemt (05)[14:00-14:59] zoveel ruimte in dat het LIJKT alsof de eerdere uren nul zijn. Dat zijn ze niet (hoover erover met je muis).

          De dagen tabel zitten drie dagen in. 05-05-2020 geeft de meterstand van dat moment aan. Als je dit in een grafiek zet, dan vallen de twee andere dagen in het niet en lijkt het alsof er geen waarden zijn.
          Over twee weken zijn is de dag grafiek netjes leesbaar en informatief!

          Alles ziet er volgens mij goed uit.

          • A.P. Schniedewind says:

            Willem ik weet niet wat er gebeurt is maar NU zie ik wel alle uren in de grafiek. Het spijt me dat ik je lastig heb gevallen. Ieder geval hartelijk bedankt voor de reactie’s

            mvg Tom

  31. Melvin says:

    Hi Willem,

    Mooi product heb je gemaakt!
    Ik heb echter een stomme fout gemaakt bij het upgraden.

    Heb per ongeluk bij het uploaden van het Ino.bin bestand een versie met een andere naam geüpload (had hem 2x gedownload 🙁 dus er stond een 2 achter de naam). Nu krijg ik geen verbinding meer. Kun je mij hierbij helpen? Valt er überhaupt nog mee te verbinden via WiFi?

    Met vriendelijke groet,
    Melvin

    • Willem Aandewiel says:

      Melvin,

      Was het een kopie van de DSMRloggerAPI firmware? Het maakt n.l. niet uit hoe dat bestand heet dus daar zou geen probleem door moeten ontstaan.
      Als het een geheel ander binary is zonder updateserver dan kun je hem alleen nog bedraad flashen.

      Hou je er rekening mee dat de hostname veranderd met de upgrade? DSMR-WS.local werkt dus niet meer. Is nu “DSMR-API.local”. Heb je geprobeerd hem via het IP-adres te benaderen?

      • Melvin says:

        Goedemorgen Willem,

        Ik heb via DSMR-API.local weer verbinding 🙂 Thanks!
        Heb nu v2.0.1 (17-04-2020) erop staan. Wel is telegram en de rest nog leeg. Mogelijk gaat hier nog wat tijd over?!

        [Willem: omdat dit comment over de DSMRloggerAPI firmware gaat heb ik hem naar deze post verplaatst]

        • Willem Aandewiel says:

          Melvin,

          Mooi dat je weer verbinding hebt!

          Hm.. kun je een text-copy (een plaatje is niet goed te lezen) van de [Systeem Info] tab posten?

          Anders ook output van telnet kopieëren als je “b”, “s” en “l” intoetst.

  32. Jan says:

    Dag Willem,

    Ik heb net een dsmrlogger V4 aangeschaft en met de laatste API firmware geladen. Na 2 uur loopt het systeem vast en zie ik bij de telegram een heap error staan…. Ik heb alles uitgeschakeld en gebruik alleen mqtt en de update server. Heb je nog tips ?

    Dank voor je geweldig project!!

    Groetjes,

    Jan

    • Willem Aandewiel says:

      Jan,

      Dat is vreemd.
      Kun je een text-copy (plaatjes zijn niet goed leesbaar) van de [Systeem Info] tab posten?

      • Jan van Keulen says:

        Dag Willem,

        Dank voor je snelle reactie 🙂 Het is inderdaad vreemd dat het geheugen volloopt, zeker omdat er niemand anders last van heeft 😉 Misschien iets aan de HW kant, zou dat kunnen?

        Hier de Device Tab in tekst format:

        Device Info /api/v1/dev/info

        Name	Value	Unit
        Auteur	Willem Aandewiel (www.aandewiel.nl)	
        Firmware Versie	v2.0.1 (17-04-2020)	
        Gecompileerd	May 12 2020 18:49:57	
        HostName	DSMR-API	
        IP adres	192.168.2.226	
        MAC adres	DC:4F:22:60:A1:D8	
        Te Gebruiken index.html Pagina	DSMRindex.html	
        Free Heap Space	12192	bytes
        Max. Free Heap Blok	11960	bytes
        Chip ID	60a1d8	
        ESP8266 Core Versie	2_7_1	
        SDK versie	2.2.2-dev(38a443e)	
        CPU Frequency	80	MHz
        Sketch Size	504.891	kB
        Free Sketch Space	1540	kB
        Flash Chip ID	0016400E	
        Flash Chip Size	4	MB
        Flash Chip Real Size	4	MB
        SPIFFS Size	2	MB
        Flash Chip Speed	40	MHz
        Flash Chip Mode	DOUT	
        Board Type	ESP8266_GENERIC	
        Compiler Opties	[USE_DUTCH_PROTOCOL][USE_UPDATE_SERVER][USE_MQTT]	
        WiFi SSID	JaKe-2.4-Linksys	
        WiFi RSSI	-72	
        Up Time [dagen] - [hh:mm]	0(d)-00:12(H:m)	
        OLED type (0=None, 1=SDD1306, 2=SH1106)	0	
        Flip OLED scherm (0=No, 1=Yes)	0	
        SM Has Fase Info (0=No, 1=Yes)	1	
        Telegram Lees Interval (Sec.)	10	
        Telegrammen verwerkt	59	
        Telegrammen met fouten	0	
        MQTT Broker IP/URL	192.168.2.12:1883	
        Verzend MQTT Berichten (Sec.)	10	
        MQTT broker connected	yes	
        Aantal keer opnieuw opgestart	50	
        Laatste Reset reden	External System	
        Data uit de DSMR-logger
        
      • Jan van Keulen says:

        Willem,

        Dit is de melding die ik krijg:

        raw Telegram /api/v1/sm/telegram
        500: internal server error (low heap)

        • Willem Aandewiel says:

          Jan,

          Is er een reden waarom je niet gewoon een pré-compiled binary van github gebruikt?

          Je hebt in ieder geval de USE_REQUEST_PIN niet geactiveerd. Dat moet wel (maar ik betwijfel of daar jouw probleem door ontstaat).

  33. Melvin says:

    Hi Willem,

    Bijgaand een kopie van de system info pagina:

    Name	Value	Unit
    Auteur	Willem Aandewiel (www.aandewiel.nl)	
    Firmware Versie	v2.0.1 (17-04-2020)	
    Gecompileerd	Apr 17 2020 11:48:16	
    HostName	DSMR-API	
    IP adres	192.168.68.113	
    MAC adres	A4:CF:12:C2:FD:20	
    Te Gebruiken index.html Pagina	DSMRindex.html	
    Free Heap Space	17144	bytes
    Max. Free Heap Blok	10616	bytes
    Chip ID	c2fd20	
    ESP8266 Core Versie	2_6_3	
    SDK versie	2.2.2-dev(38a443e)	
    CPU Frequency	80	MHz
    Sketch Size	542.703	kB
    Free Sketch Space	1504	kB
    Flash Chip ID	001640EF	
    Flash Chip Size	4	MB
    Flash Chip Real Size	4	MB
    SPIFFS Size	2	MB
    Flash Chip Speed	40	MHz
    Flash Chip Mode	DOUT	
    Board Type	ESP8266_GENERIC	
    Compiler Opties	[USE_REQUEST_PIN][USE_DUTCH_PROTOCOL][USE_UPDATE_S
    ERVER][USE_MQTT][USE_MINDERGAS]	
    WiFi SSID	B&M	
    WiFi RSSI	-47	
    Up Time [dagen] - [hh:mm]	0(d)-01:45(H:m)	
    OLED type (0=None, 1=SDD1306, 2=SH1106)	1	
    Flip OLED scherm (0=No, 1=Yes)	0	
    SM Has Fase Info (0=No, 1=Yes)	1	
    Telegram Lees Interval (Sec.)	10	
    Telegrammen verwerkt	0	
    Telegrammen met fouten	0	
    MQTT Broker IP/URL	:1883	
    Verzend MQTT Berichten (Sec.)	0	
    MQTT broker connected	no	
    Mindergas Terugkoppeling	NO_AUTHTOKEN	
    Mindergas Status (@dag | tijd)	@01|01:01 -> :0	
    Aantal keer opnieuw opgestart	4	
    Laatste Reset reden	Software/System restart	
    Data uit de DSMR-logger
    
    • Willem Aandewiel says:

      Melvin,

      Ik zie hier niets vreemds aan. Lijkt allemaal zoals het moet zijn!

      Blijft over:

      • De kabel zit niet goed (diep genoeg) in de DSMR-logger en/of Slimme Meter
      • De kabel is niet goed
      • Je Slimme Meter is geen DSMR 4+ meter

      Kun je de kabel doormeten (blijkbaar zijn de buitenste twee draadjes goed anders zou de DSMR-logger geen spanning krijgen – ik neem tenminste aan dat je geen externe voeding gebruikt)?

      Wat voor SM heb je (merk/type)?

      • Melvin says:

        Hi Willem,

        Vandaag een nieuwe kabel erin gedaan RJ-12. Ik twijfelde aan de oude dus een nieuwe besteld.
        Ik heb een Stedin SM: Landis Gyr E350
        DSMR 2.2+ Heb ik nu gewoon niet op zitten letten…

  34. Bergerie says:

    Is there a way I can get the:
    WiFi.SSID();
    WiFi.localIP() &
    WiFi.gatewayIP
    across via MQTT?

    • Willem Aandewiel says:

      Hi Bergerie,

      Ja dat kan (natuurlijk).

      Ik zou dat in void sendMQTTData() nå het statement DSMRdata.applyEach(buildJsonMQTT()); doen.

      Iets van:

      createMQTTjsonMessage(mqttBuff, "SSID", WiFi.SSID());
      if (!MQTTclient.publish(topicId, mqttBuff) )
      {
        DebugTf("Error publish(%s) [%s] [%d bytes]\r\n", topicId, mqttBuff, (strlen(topicId) + strlen(mqttBuff)));
      }
      

      Hou me op dehoogte of het lukt!

      • Bergerie says:

        Excuses voor late response. Helaas is het niet gelukt. De navolgende error message is van toepassing op het if statement:

           if (!MQTTclient.publish(topicId, mqttBuff) )
                                                    ^
        MQTTstuff:262:44: error: no matching function for call to 'PubSubClient::publish(String&, char [100])'
        
        • Willem Aandewiel says:
          createMQTTjsonMessage(mqttBuff, "SSID", WiFi.SSID());
          if (!MQTTclient.publish("SSID", mqttBuff) )
          {
            DebugTf("Error publish(SSID) [%s] [%d bytes]\r\n", mqttBuff, (strlen("SSID") + strlen(mqttBuff)));
          }
          

          Zo iets?

          • Bergerie says:

            Helaas, dit geeft dezelfde error message:
            DebugTf(“Error publish(%s) [%s] [%d bytes]\r\n”, topicId, mqttBuff, (strlen(topicId) + strlen(mqttBuff)));

            ^

            exit status 1
            no matching function for call to ‘PubSubClient::publish(String&, char [100])’
            In eerste instantie kreeg ik een error message stray \342. Ik heb derhalve eerst de have Unicode quotation marks veranderd naar ASCII quotation marks.
            Met dezelfde correctie heb ik je eerste code nog een keer gebruikt en die geeft nu een totaal andere error:
            In Debug.h regel 21-22:
            #define Debugf(…) ({ Serial.printf(__VA_ARGS__); \
            TelnetStream.printf(__VA_ARGS__); \
            stopt het compileren en geeft aan:
            DebugTf(“Error publish(%s) [%s] [%d bytes]\r\n”, topicId, mqttBuff, (strlen(“SSID”) + strlen(mqttBuff)));

            ^

            exit status 1
            cannot pass objects of non-trivially-copyable type ‘class String’ through ‘…’

  35. Willem Aandewiel says:

    Bergerie,
    Je hebt de DebugTf() niet correct overgenomen.

    • Bergerie says:

      Whaaauw, compiled goed nu met code:
      createMQTTjsonMessage(mqttBuff, “SSID”, WiFi.SSID());
      if (!MQTTclient.publish(“SSID”, mqttBuff) )
      {
      DebugTf(“Error publish(SSID) [%s] [%d bytes]\r\n”, mqttBuff, (strlen(“SSID”) + strlen(mqttBuff)));
      }
      Probleem ontstaan met copy/paste, sorry!
      Voordat ik verder ga met een OTA update, kan ik voorgaande code simpelweg herhalen voor o.a. WiFi.localIP() maar dan met:
      createMQTTjsonMessage(mqttBuff, “SSID”, WiFi.SSID());

      • Bergerie says:

        sorry:
        createMQTTjsonMessage(mqttBuff, “LocalIP”, WiFi.localIP());

        • Willem Aandewiel says:

          Yip!!

          • Bergerie says:

            SSID en LocalIP komen goed door via MQTT. Om de error:

            call of overloaded 'createMQTTjsonMessage(char [100], const char [8], IPAddress)' is ambiguous
            

            in:

            createMQTTjsonMessage(mqttBuff, “LocalIP”, WiFi.localIP()); 
            

            op te lossen heb ik deze gewijzigd in:

            WiFi.localIP().toString().c_str() 
            

            waarna het zonder errors compileerde. Ik wil alleen graag weten of dit de juiste correctie is of toevalligheid.
            Ondertussen, dank voor de guidance, maakt het wat makkelijker voor diagnostics om te weten op welk localIP het device zit.

          • Willem Aandewiel says:

            Ja, dat is de correcte manier!

  36. Erik says:

    Slimme Meter: Landis Gry+
    P1 version: DSMR 42
    DSMR Firmware Version: v1.0.3c (22-11-2019)

    Helaas levert mijn slimme meter geen genoeg stroom over de P1 poort en heb ik hem via de USB aansluiting van mijn kabel modem moeten aansluiten om de slimme meter van genoeg stroom te voorzien.

    Eigenlijk werkt ‘t gewoon plug&play, dank daarvoor!

  37. Kevin says:

    Beste Willem, aller eerst, wat een geweldig apparaatje voor gebruik in een smart home. Ik zou dit dus graag willen implementeren. Echter loop ik tegen een probleem aan.

    Na de eerste keer opstarten heb ik verbinding kunnen maken met de access point op de ESP8266, waardoor ik dus de pagina kon bereiken om hem te verbinden aan een wifi netwerk. Na de juiste credentials ingevoerd te hebben verbindt de ESP niet met mijn wifi netwerk, dit blijkt uit de verbonden apparaten van het betreffende wifi netwerk. Ook zie ik de acces point van de ESP dus ook niet meer.

    * Gebruikte Compiler Opties
    Zoals beschreven in de documentatie

    * Externe voeding gebruikt
    Arduino als tijdelijke voeding, jumperwires op 5V en GND, zou dit het probleem zijn, heb ik een andere voeding nodig?

    * Energy Leverancier
    Enexis

    * Functioneert de DSMR-logger
    Na instellen AP niet meer

    • Willem Aandewiel says:

      Hi Kevin,

      Wat een vreemd probleem. Met de gegeven informatie kan ik alleen niet zo veel.

      Wil je doorgeven:

      – Merk en Type Slimme Meter
      – Heb je een OLED scherm aangesloten -> wat voor meldingen krijg je hierop?
      – Wat doen de twee ledjes op de DSMR-logger? Is de Rode LED constant “Aan”, hoe knippert de Blauwe LED?
      – Waarom heb je compiler opties gebruikt? De kant-en-klaar, door opencircuit.nl, geleverde DSMR-logger hoef je niet te flashen!
      – Hoe probeer je de DSMR-logger te benaderen (met welke URL?)?
      – Ik weet niet of de Arduino voldoende stroom kan leveren voor de DSMR-logger. Je hebt tijdelijk max. 250 mA nodig.

      Als ik deze informatie heb kan ik verder nadenken over dit probleem..

  38. Kevin says:

    Na een OLED schermpje besteld en aangesloten te hebben, bleek dat de module gewoon zijn werk deed en weldegelijk verbinding maakt met het wifi netwerk. Nu blijft er alleen constant ‘Startup complete Wait for first’ op het schermpje staan, zie foto.

    Gevraagde informatie:

    – Merk en Type Slimme Meter
    Sagemcom T210-D ESMR5 van Enexis

    – Heb je een OLED scherm aangesloten -> wat voor meldingen krijg je hierop?
    Na een OLED schermpje besteld en aangesloten te hebben kreeg ik een IP-adres te zien. Op de modem is hij nog steeds niet zichtbaar. Op de foto is te zien wat het schermpje aangeeft.

    – Wat doen de twee ledjes op de DSMR-logger? Is de Rode LED constant “Aan”, hoe knippert de Blauwe LED?
    De rode led is constant aan en de blauwe led knippert 1x, ongeveer om de 10 seconden

    – Waarom heb je compiler opties gebruikt? De kant-en-klaar, door opencircuit.nl, geleverde DSMR-logger hoef je niet te flashen!
    Het was inderdaad niet nodig de module opnieuw te flashen.

    – Hoe probeer je de DSMR-logger te benaderen (met welke URL?)?
    Nu het IP-adres bekend is benader ik de module met zijn IP-adres.

    • Kevin says:

      Nu ik een andere slimme meter tot mijn beschikking heb dan die bekend zijn volgens de documentatie wil ik graag het volgende doorgeven op basis van mijn ervaring:

      Merk: Sagemcom
      Type: T210-D
      Compiler Opties:
      Externe Voeding: P1 poort levert voldoende voeding
      DSMR: ESMR5 -> dus DSMR 5?
      Opmerking: ESMR5
      Werkt: tot op heden nog niet bekend

    • Willem Aandewiel says:

      Het lijkt erop dat de DSMR-logger geen telegrammen ontvangt. Dáárom blijft de melding “Wait for first telegram” op het display staan.
      Omdat de rest lijkt te werken is de RJ12 kabel mogelijk een probleem. Zit de kabel ver genoeg in de SM? Zit hij ver genoeg in de DSMR-logger (je moet een duidelijke “klik” horen)?
      Of … woon je in België en heb je een Belgische SM?

      Uit je antwoord “het was inderdaad niet nodig opnieuw te flashen” kan ik niet opmaken of je het ook niet gedaan hebt … anders raad ik je aan de update procedure te volgen en de originele firmware opnieuw te flashen via de Update Server (SPIFFS hoef je niet opnieuw te flashen).

      Het lijkt erop dat je het grote Oled scherm gebruikt. Dit moet je in de webinterface nog even goed configureren (bij de settings).

      • Kevin says:

        Hoi Willem,

        Bedankt voor je reactie. De RJ12 connector ging makkelijk in de P1 poort en je hoorde inderdaad een duidelijke klik. Bij de SM echter niet, deze ging er wat stroever in, maar uiteindelijk hoorde je wel een klik. Ik heb de kabel omgedraaid en nu lijkt alles feilloos te werken.

        In eerste instantie dacht ik dat ik zelf de software moest aanpassen om de juiste WiFi credentials te gebruiken. Na de documentatie te lezen kwam ik erachter dat dit op een andere manier moest. Pogingen om de software te uploaden mislukten, dus er was eigenlijk ook niks veranderd op de SM.

        Als OLED scherm gebruik ik de opencircuit versie met SH1106 chip.

        Ik heb eigenlijk nog een vraag omtrent de data die wordt weergegeven in de tabellen van de SM logger. De SM neemt nu in de tabellen en grafieken het totale verbruik mee (dus vanaf het moment dat de slimme meter gemonteerd is in de meterkast). Is het mogelijk om deze tabellen en grafieken te vullen met data vanaf het moment dat de SM aan de energiemeter gekoppeld is, dus dat hij vanaf dan begint met tellen van het energieverbruik?

        • Willem Aandewiel says:

          Kevin,

          Fijn dat alles nu gewoon werkt. Dat probleem met de RJ12 kabel is al meerdere keren als oplossing op dit probleem gemeld (en opgelost).

          In alle bestanden worden de meterstanden opgeslagen. Na verloop van tijd zie je alleen nog het verschil tussen de meterstand en die van de meterstand ervoor.

          Voor het maanden bestand kun je de meterstand van het moment waarop je de SM op de DSMR-logger aansluit met behulp van de ingebouwde editor invoeren.

  39. Arjan says:

    Hallo Willem,

    Dank voor je de DSMRloggerAPI, de software werkt wederom als een trein.
    Ik gebruik Domoticz als platform waar ik de lua file van Michel Groen gebruik om de data te importeren. Omdat het bericht vanuit de DSMR nu anders is zijn heb ik een aantal wijzigingen gemaakt de lua file ‘script_time_esp-dsmr-logger.lua’ de data te kunnen gebruiken in Domoticz.

    De waarden voor Energy_Delivered, Voltage_l en Current_l staan niet meer in bericht en heb ik dus uit sectie na local jsonCPM = json:decode(jsondevices) gehaald.
    De parameter namen zijn nu volledig in kleine letters dus daar heb ik het script ook voor aangepast; bv jsonCPM.Gas_Delivered vervangen door jsonCPM.gas_delivered.
    Puntje van aandacht is dat de waarde voor totaal verbruik (Power_Delivered) is nu in kW waar het voorheen in Watts was. Dit is een cosmetische wijziging in Debug sectie maar is wel van belang als je de gegevens aan de ontvangende kant gebruikt in berekeningen.

    • Willem Aandewiel says:

      Arjan,
      Het gaat mij boven de pet maar voor gebruikers van Dometicz zal het een welkome aanvulling zijn.

    • Casper says:

      Hoi Arjan,

      Zou jij deze lua kunnen delen, en een kleine howtoo kunnen geven.
      Kan weinig vinden van de nieuwe API ism Domoticz.

      Ben ook niet echt een programmeur om dit even snel te maken

  40. Kevin says:

    Dus zoals ik het goed begrijp kan ik onderstaande waardes allemaal op 0,000 zetten voor alle 3 de categorieën (energie geleverd/teruggekeerd en gas geleverd)?

    • Willem Aandewiel says:

      Nee, je moet de correcte jaar/maand en meterstanden invullen. Voor maanden waarvan je het niet weet steeds dezelfde meterstand invullen. Iedere vorige maand moet kleiner of gelijk zijn.

  41. Patrick says:

    Hallo Willem,

    Hier een blije bezitter van de DSMR logger V4.5. Nou zou ik graag willen weten wat de beste weerstands verhouding is voor de ADC aansluiting met gebruik van een SCT-013-030. 4k7-4K7 of 12K-3K verhouding.

    Alvast bedankt.

    • Willem Aandewiel says:

      Patric,

      De SCT-013-030 geeft een spanning af van 0-1 volt bij 0-30 ampère. 0-1 volt is ook het bereik van de analoge poort van de esp8266.

      ADC circuit

      In deze situatie kun je voor R12 een weerstand van 0 of 1 ohm gebruiken en voor R13 een paar mega ohm. Eventueel kun je in plaats van R13 ter beveiliging van de analoge poort een zenerdiode van 1 volt gebruiken (ik weet zo snel niet of zeners met zo’n lage spanning bestaan).

      Denk je er wel aan dat je zelf code moet schrijven om de waarde van de stroom sensor uit te lezen en te vertalen van de gelezen spanning naar de bijbehorende stroom. Dat kun je bijvoorbeeld ergens na het lezen van een telegram doen.

      Succes en laat ons weten wat je bevindingen zijn.

  42. Gerrit says:

    Hallo Willem,

    Ik krijg de conversie van de PRD bestanden naar de Ring bestanden niet voor elkaar.

    Ik heb het geprobeerd met !PRDconvert.txt en een hernoemd ini bestand.

    Wat doe ik verkeerd

    • Willem Aandewiel says:

      Gerrit,

      Je hebt de documentatie niet (goed) gelezen!

      Er staat niet dat je een “!PRDconvert.txt” bestand moet aanmaken!!! De naam van het sleutelbestand moet zijn: “!PRDconvert

  43. John van Hoof says:

    [dit comment is verplaatst van ‘Recent Projects’]

    Drie weken geleden is bij ons een Sagecom meter geinstalleerd. En dan wil je natuurlijk ook bij de data. Aangezien ik erg onder de indruk was van je DSMR-logger heb ik gisteren een geassembleerde versie ontvangen. Vanmorgen geleverd en meteen de opstart procedure doorlopen. Contact gezocht met het AP, wifi netwerk geselecteerd en password opgegeven. En nu….blijft de blauwe LED branden en knippert om de 10 seconden. Ik zie de logger niet op het netwerk. Ook zie ik het AP niet meer. Heb al op de reset knop gedrukt maar dat helpt ook niet. Enig idee?

    • Willem Aandewiel says:

      John,

      Ik wil je graag helpen maar een beetje onderzoek van jouw kant is ook wel prettig.
      In de comments hier en bij deze post wordt dit probleem meermalen beschreven (en opgelost).
      Een kwestie van de comments lezen die er natuurlijk ook niet voor niets zijn.

      Mocht het je dan nóg niet lukken dan wil ik je graag verder helpen als jij de nodige informatie doorgeeft (in verschillende comments vraag ik daar om, diezelfde informatie heb ik bijna altijd nodig!).

  44. Staf Van Gestel says:

    Heb de Belgische API versie geïnstalleerd, de poort actief laten maken (via Fluvius portaal) en de data komt binnen! Top!!
    Ik heb dus de recenste versie van de DSMR-logger aangekocht en die werkt zonder probleem. Zelfs de gaswaarde wordt getoond.
    Geweldig is dit!
    Wel vraag ik me af, en ik heb al heel wat uren in de documentatie en op deze pagina aan het zoeken geweest, kan het zijn dat het ‘Grafisch’ gedeelte van de Actuele waardes niet werkt?
    Ik zie het gasverbruik in lijnvorm verschijnen maar de daarboven verschijnen er geen waardes in grafisch vorm (Gebruikt L1-Gebruikt L2- Gebruikt L3…..).
    Ik zag ergens in de documentatie, een mooie grafiek van de actuele waardes, dus lijkt me dat dit zou moeten werken, maar moet ik daar dan toch ergens een extra bewerking voor doen?
    Alvast dank voor enig antwoord.

    • Willem Aandewiel says:

      Hi Staf,

      Fijn dat alles uiteindelijk toch werkt.

      Dat de actuele grafiek soms niet werkt heb ik ook wel eens gemerkt.
      De pagina “refreshen” helpt bij mij dan altijd…

      Niet echt een “oplossing” maar meer een “work around”.

  45. Staf Van Gestel says:

    Dag Willem,
    Dank voor uw snelle respons!
    Op dit moment heb ik dan toch ook de actuele info grafisch zichtbaar.
    Ik heb hiervoor instelling ‘SM Has Fase Info’ op 0 gezet. Ik had de indruk dat je dan zegt dat de SM geen fase info verstuurd. Maar wat er dan gebeurt is dat net de fase info wel zichtbaar wordt en dan ook het verbruik van L1 zichtbaar wordt.
    Of interpreteer ik die ‘fase info’ verkeerd?
    Want je staart je in begin blind aan die info maar bij nader inzicht zag ik dat in de tabel met data dan toch geen fase info zichtbaar was.

    • Willem Aandewiel says:

      Staf,

      Als je SM geen fase-info afgeeft ontbreken de rubrieken “power-delivered-l1/l2/l3”. Door de optie “has-no-fase-info” op “0” te zetten wordt in plaats van de bovenstaande rubrieken de rubriek “power-delivered” gebruikt.

      Zie de code:

            if (!settingSmHasFaseInfo)
            {
              if (DSMRdata.power_delivered_present && !DSMRdata.power_delivered_l1_present)
              {
                DSMRdata.power_delivered_l1 = DSMRdata.power_delivered;
                DSMRdata.power_delivered_l1_present = true;
                DSMRdata.power_delivered_l2_present = true;
                DSMRdata.power_delivered_l3_present = true;
              }
              if (DSMRdata.power_returned_present && !DSMRdata.power_returned_l1_present)
              {
                DSMRdata.power_returned_l1 = DSMRdata.power_returned;
                DSMRdata.power_returned_l1_present = true;
                DSMRdata.power_returned_l2_present = true;
                DSMRdata.power_returned_l3_present = true;
              }
            } // No Fase Info
      
      • Staf Van Gestel says:

        OK,
        Hartelijk dank!!

      • Staf Van Gestel says:

        [Comment is verplaatst van “DSMR-logger V4 (Slimme Meter uitlezer)” naar “restAPI’s zijn hip!”]

        Willem,
        het is hier al meer gezegd geweest maar ik wil dit toch nog eens herhalen, jullie (ook dus die anderen die de software mee hebben ontwikkeld) hebben een prachtig ontwerp gemaakt! Ik ben al een tijdje met een brede glimlach naar de cijfers van de SM aan het kijken.
        Is die slimme meter toch nog voor iets nuttig!

  46. Bert Diepeveen says:

    Beste Willem,
    Ik heb al een half jaar de DSMR-logger in gebruik. Nu heb ik 3 warmtepompboilers en ook een warmtepomp voor de verwarming.
    Momenteel heb ik voor de warmtepompboilers een uitbreiding gemaakt waarbij ik de boilers in wil schakelen zodra er energie van de zonnepanelen ‘over’ is. Ik maak gebruik van een arduino-mega met een ethernet shield waarmee ik de DSMR-logger wil uitlezen. Nu lukt het mij niet om het Json bericht uit te lezen. Heeft u dit al eens opgelost en kunt u mij ermee verder helpen?
    Alvast bedankt, Bert

    [Comment verplaatst van “DSMR-logger V4 (Slimme Meter uitlezer)” naar “restAPI’s zijn hip! (nieuwe firmware voor de DSMR-logger)”]

    • Willem Aandewiel says:

      Hi Bert,

      Dit voert te ver om hier te behandelen, vooral ook omdat ik niet genoeg informatie heb.

      Ik stuur je een PM

      [Comment is verplaatst van “Recent Projects” naar “restAPI’s zijn hip! (nieuwe firmware voor de DSMR-logger)”]

  47. Bert Groothuis says:

    Dank Willem,
    In de andere post ‘DSMR-logger V4 (Slimme Meter uitlezer)’ kan niet meer antwoorden. Vandaar hier.

    Helaas kan ik hem niet benaderen via WIFI. Op ‘https://mrwheel.github.io/DSMRloggerWS/Opstarten/’ volg ik de handleiding maar zoals genoemd komt er geen AP in beeld.
    Op 192.168.2.2 waar hij normaal ook zat word hij niet herkend. Met de WIFI guard zie ik hem ook niet. Ook niet op mijn smartphone.
    Als het blauwe ledje knippert is dat toch dat het in principe werkt, toch? Op het OLED scherm verschijnt ook niets. Ik heb hem gekocht via opencircuit.nl
    Als hem helemaal opnieuw bekabeld wil installeren heb ik een adapter nodig. De ‘USB to TTL Serial adaptor kabel’ is niet leverbaar op het moment bij opencircuit.nl. Het alternatief op opencircuit.nl is deze: https://opencircuit.nl/Product/ESP-01-USB-Adapter. Ook zie ik alternatieven met een schakelaartje, wat heeft de voorkeur?
    ArduinoIDE heb ik al eerder geïnstalleerd voor wat proefjes.

    Graag wat hulp.

  48. Bert Diepeveen says:

    Hallo Willem,
    Bedankt voor jouw inspanning de afgelopen week.
    Op jouw suggestie heb ik de firmware van de DSMR-logger geupdate van DSMRloggerWS naar DSMRloggerAPI en hebben we samen het uitlezen van de JSON berichten met een Arduino MEGA opgelost. Ik ben met deze oplossing erg geholpen om mijn energieverbruik beter af te gaan stemmen op de energiebeschikbaarheid van mijn zonnepanelen.
    Erg bedankt voor jouw hulp en ik ben erg onder de indruk van het geleverde resultaat.

    Documentatie van deze oplossing is hier te vinden.

    Op github vind je een programma voor een Arduino MEGA (met Ethernet Shield), ESP8266 of ESP32 waarmee je de DSMR-logger kunt uitlezen.

  49. PPee says:

    Hoi Willem,
    DSMR-Logger ziet er mooi uit. Complimenten.
    Ik heb alleen een probleem. Het lijkt alsof ik geen contact heb met de slimme meter (Landis en GYr E350). Ik ontvang geen data en de tijd staat bijv. gewoon nog op 2001. Ik heb de uitlezer 4.5 aangeschaft bij opencircuit, een externe voeding aangesloten, alles ingeplugd, wifi geinstalleerd… allemaal goed tot zover. Als ik de webpage open, krijg ik het API scherm zonder data. Op de uitlezer brandt het blauwe lampje om de plm 10 seconden; het rode lampje brandt permanent. Heb kabeltje verwisseld, gereset, stekker eruit gehad, maar geen resultaat. Is dit een hardware probleem, of een instelling? Any ideas?
    Gr PPee

    • Willem Aandewiel says:

      Hi PPee,

      De Landys GYr E350 bestaat uit minimaal 3 varianten. Eén die aan de DSMR 5 standaard voldoet. Deze moet je zonder meer kunnen aansluiten op de DSMR-logger (works out-of-the-box).
      Dan is er een versie die aan de DSMR 4.0+ standaard voldoet. Ook met deze Slimme Meter moet de DSMR-logger zonder meer werken, maar misschien heb je een externe voeding nodig (nog geen feedback over gehad van makers/gebruikers).
      Tenslotte bestaat er ook nog een versie die aan de DSMR2.0+ standaard voldoet. Deze Slimme meter valt buiten de specs van de DSMR-logger maar hier voor kun je de PRE40 versie van de firmware flashen. Heb je zo’n Slimme Meter dan heb je zéér waarschijnlijk ook een externe (USB) voeding nodig.

      Omdat het instellen van de WiFi Credentials gelukt is en de blauwe led om de tien seconden even knippert (ten teken dat hij op een telegram wacht) lijkt de DSMR-logger gewoon te werken.

      Welke slimme meters geschikt zijn en hoe je andere firmware moet flashen kun je in de documentatie lezen.

      Succes

  50. PPee says:

    Hoi Willem,
    Dank voor de snelle reactie.
    Denk dat ik de oude 2.0 variant heb.
    Krijg ik met de PRE40 versie wel dezelfde functionaliteit.
    GrPPee

    • Willem@Aandewiel.nl says:

      PPee,

      Je krijgt nooit meer functionaliteit dan de Slimme Meter door geeft.

      Maar via instellingen kun je wel het één en ander instellen als je Slimme Meter bijvoorbeeld geen Fase Informatie levert of geen Timestamp met het telegram meegeeft.

      Dit staat allemaal uitvoerig in de documentatie beschreven (je moet er even voor gaan zitten, maar dan heb je ook wat)!

  51. Pieter says:

    Beste Willem,

    Ik heb vanmiddag de firmaware geupdate van ws 1.0.3b naar api 2.0.1 volgens je handleiding.
    Alles lijkt gewoon goed te werken (er wordt gewoon gelogd om de 10 sec) echter het blauwe ledje brand continu. Ook via telnet zie ik geen errorcounts.
    Wat kan er aan de hand zijn?

    Groet, Pieter

    • Willem Aandewiel says:

      Pieter,

      Wat deed de blauwe led met de DSMRloggerWS firmware? Brandde hij toen ook constant?
      Als dat het geval is zou ik me geen zorgen maken. Op de één of andere manier zit je blauwe led niet op een standaard GPIO-02..

      Heb je de upgrade naar de DSMRloggerAPI firmware uitgevoerd door deze zelf te compileren of heb je een binary van github gebruikt?
      Dan moet je de instellingen van het board aanpassen (in de source staat precies welke instellingen je moet gebruiken).

      Anyway: als hij het goed doet zou ik me geen zorgen over het ledje maken.

      • Pieter says:

        Met de DSMRloggerWS firmware lichtte het blauwe ledje eenmaal in de 10 seconden op.

        Ik heb de upgrade gedaan met de binaries van github, zoals beschreven in je handleiding en video.

        Het betreft overigens een DSML-logger v4.5 die ik begin dit jaar heb gekocht via opencircuit (geassembleerd en voorgeprogrameerd).

  52. Roel says:

    Hoi Willem,

    ook ik ben een Belgische koper van je projectje. De module plug and play aangesloten aan mijn Siconia T211 en op het Fluvius-portaal (netbeheerder) de communicatie poorten geopend. De module start op, gevoed vanuit de Siconia, maar er komen geen telegrammen binnen.

    Enige tip(s)?

    Alvast bedankt

  53. Tony says:

    Ik gebruik al een tijdje je schitterende DSMR software. Ik heb echter een vraagje. Is het mogelijk om een onderscheid te maken tussen verbruik en levering ? Vandaag (dacht ik toch) is het zo dat (zie bijlage)

    Actueel verbruik : 254 W in het voorbeeld hierboven is eigenlijk niet het actuele verbruik maar eerder het verschil tussen levering door zonnepanelen – verbruik toch ? (Wat natuurlijk ook het resulterende echte verbruik is)

    Ik wil het desnoods zelf aanpassen in de code maar zou liever jouw originele code laten ivm toekomstige updates ..

    [comment verplaatst van “Recent Projects” naar “restAPI’s zijn hip!“]

    • Willem Aandewiel says:

      Tony,

      Helaas. De Slimme Meter saldeert verbruik en levering en geeft het saldo (óf verbruik, óf levering) terug.
      Alleen als je drie fasen hebt en de mogelijkheid hebt om één fase alléén voor de zonnepanelen te gebruiken, kun je beide scheiden (maar dan kun je nooit je opgewekte energie zelf gebruiken). Verstandig is dat trouwens niet want als straks de regels veranderen (en dat gaat gebeuren) waardoor je minder terug krijgt voor wat je levert dan dat je moet betalen voor wat je gebruikt word je dief van je eigen portemonnee.

      Moderne zonnepanelen hebben een mogelijkheid om de daadwerkelijke opgewekte energie uit te lezen. Ik heb daar geen ervaring mee, maar dan zou je er een “soort DSMR-logger” voor kunnen maken en de gegevens combineren. Leuk idee voor een volgend project.

  54. Tony says:

    – Ik wil de DSMR enkel gebruiken om mijn verbruik te meten, de data van de opgewekte stroom van mijn zonnepanelen betrek ik rechtstreeks uit de SMA.(MODBUS integratie) Beiden gaan in Home Assistant.
    – Dus herhaal ik even, kan ik uit de DSMR het reele actuele verbruik halen ?

    Alvast bedankt !

    • Willem Aandewiel says:

      Tony,

      De Slimme Meter saldeert de opgewekte en verbruikte energie.
      De DSMR-logger kan dat niet re-engeneren omdat de gegevens gewoon niet beschikbaar zijn.
      Dus zoals hiervoor al gemeld: Nee, het kan niet.

  55. Hennie says:

    Hallo Willem,

    Ik heb zo’n usb adapter gemodificeerd en daarmee de DSMR firmware geupload naar een ESP-01.
    Tot en met het openen van de wifi manager gaat alles goed, maar er wordt geen verbinding gemaakt met mijn wifi netwerk.
    Ik heb geprobeerd e.e.a. uitvoerig te beschrijven, maar kan het pdf bestandje hier niet bijvoegen. Daarom heb een screenshot van de laatste pagina bijgevoegd.
    Ik hoop dat jij me kunt (en wilt… 😉 vertellen wat ik fout doe.

    Bij voorbaat dank!

    Met vriendelijke groet,

    Hennie

    [comment gekopieerd van “Eenvoudige Programmer voor de ESP-01 (ESP8266)”]

    • Hennie says:

      Ondertussen ben ik zelf ook wat verder gekomen.
      Ik heb jouw DSMRlogger2HTTP geupload.
      Uit de tekst had ik begrepen dat er iets fout was als de LED continu bleef branden.
      Al zoekend kwam ik //#define HAS_NO_METER tegen.
      Omdat ik nog geen meter heb aangesloten, heb ik nu de commentaar slashes verwijderd.
      Na uploaden, netwerk kiezen en wachtwoord invoeren, blijft nu de LED knipperen ( 1s ritme).
      De verbinding met mijn wifi netwerk is nu ook ok!
      Maar als ik http://www.esp01-dsmr.local/ in mijn browser invoer krijg ik als melding: ‘Server niet gevonden’.
      En als ik het IP adres van TEST-DSMR (192.168.0.168) invul, dan is de melding: ‘FileNotFound’.
      Ik had hier iets van een dummy pagina verwacht:
      afbeelding.png
      Maar waarschijnlijk is dat niet zo.
      Kortom, tot zover lijkt het te werken en hoef ik alleen nog maar de meter aan te sluiten?
      Of heb ik toch nog iets over het hoofd gezien?

      • Willem Aandewiel says:

        Hennie,

        Ik denk dat je vergeten bent SPIFFS te flashen. Daarin komt dan een “index.html” file met de presentatie pagina. Nu zoekt de firmware hiernaar maar kan hem niet vinden …

        Je kunt de DSMR-logger daarna benaderen door “http://esp01-dsmr.local/“ in je browser in te toetsen.

        Overigens gebruik je nu wel een hele oude versie van de firmware … kijk hier eens naar.

        • Hennie says:

          Dank je, Willem.

          Dat was ik dus inderdaad vergeten.
          Ik heb bewust voor deze oude versie gekozen.
          Ik zocht n.l. een uitlezer met zo weinig mogelijk externe componenten.

          Nogmaals dank voor je hulp!

  56. Hans van Ulden says:

    Slimme meter met uitlezer V3-bouwpakket met ESP-01 in elkaar gezet.
    Aangesloten op slimme meter
    Blauwe led knippert 1 x
    Geen verbinding met WiFi
    Geen techneut (nog)
    graag advies hoe nu verder

    [comment verplaatst naar deze post]

    • Willem Aandewiel says:

      Hans,
      Ik heb geen idee!
      Hoe heb je de firmware gecompileerd?
      Heb je SPIFFS ook geflashed?
      Wat voor Slimme Meter heb je?

  57. Remco says:

    Hi Willem, je DSM draait nog steeds prima!
    vraagje,
    als ik een 2e P1 poort voor mn raspberry/domoitcz nodig heb, zitten er op de DSM logger aansluitingen die ik kan aftakken? ik heb een externe voeding.?

    ik hoor weer graag van je
    gr. Remco

    • Willem Aandewiel says:

      Remco,

      Ik weet niet of het kan. Het “bare P1 signaal” staat op de print tussen R6 en R7. Je kunt proberen of het storing geeft op de DSMR-logger als je daar het signaal aftapt. Het zelfde kun je waarschijnlijk bereiken met Ethernet Splitter (gewoon zo’n plugje met één ingang en twee uitgangen).
      Als dat niet betrouwbaar werkt zou je het signaal uit de P1 poort naar twee optocouplers kunnen sturen en dan op de éne de DSMR-logger en op de andere je andere device zetten…

      Denk eraan dat als beide devices de DTR pin hoog en laag maken dat niet lekker gaat werken. Waarschijnlijk maak je de meeste kans op succes door de DTR-pin niet te gebruiken (gewoon laten zweven).

      Maar ik heb dit niet getest en geef geen enkele garantie..

  58. Remco says:

    geen garantie, of course.. 🙂 Ik vroeg me af of je na het omhoog trekken van het kale signaal een IC induikt, waar meerdere outputs op zitten, zodat het tappen wat eenvoudiger wordt. Wat ik her en der lees is dat de P1 last kan hebben van een splitter, en dat men de request pin van de 2e los moet halen… (?)

    • Willem Aandewiel says:

      Remco,

      Ik denk dat je DTR van beide devices niet moet gebruiken. De Slimme Meter stuurt dan zo-vaak-als-hij-kan een telegram en als één van de devices dat telegram wil verwerken dan kan dat zonder dat het andere device halverwege “zegt” ik ben klaar, stop maar met zenden.

      Ik ken geen IC’s met één ingang die gelijktijdig meerdere uitgangen aan stuurt.
      Maar zoals gezegd: een optocoupler belast de Slimme Meter zoals hij dat verwacht en aan de uitgang kun je waarschijnlijk wel twee devices “plakken”. Kijk voor een voorbeeld naar het DTR-circuit. In plaats van GPIO12 zet je de data lijn van de Slimme Meter. Tussen DSR_SM en de 10 ohm weerstand zet je een 10k weerstand naar GND. Tussen de 10R en 10k weerstanden heb je een sterk P1 signaal… (denk ik).

      Ik hoor graag hoe je het oplost (daar zullen meer gebruikers iets aan hebben)!

  59. Bert Groothuis says:

    Ik wilde mijn logger zelf vernieuwen met de nieuwe firmware. Dat ging helemaal mis en na communicatie met Willem heb ik de logger naar hem opgestuurd. Paar dagen later kwam hij weer up to date terug. Het configureren van WiFi ging ook niet lekker maar na telefonisch contact is het supersnel opgelost.
    Chapeau! Willem.

  60. Jal says:

    Hallo Willem

    Ik probeer met een ESP-01 (ESP8266) de slimme meter uit te lezen.
    Is dit nu wel mogelijk of ben ik een WEMOS D mini pro nodig

    [dit comment is verplaatst van “Eenvoudige Programmer voor de ESP-01”]

    • Willem Aandewiel says:

      Jal,

      Ja dat kan, maar ik denk dat je meer succes hebt met een complete unit. Eventueel heb ik nog wel een printje over.

  61. Alexander says:

    Hi Willem,

    Op de een of andere manier staat mijn gasmeterstand als ‘watermeterstand’ in de JSON output. Dit was bij de vorige versie die ik had (je WS uitvoering) wel goed. Enig idee of ik hier wat aan kan doen?

    /api/v1/sm/fields :
    
    {
       "name": "water_equipment_id",
       "value": "XXXXXXXXXXXXXXXXXXXXXXXXX"
    },
    {
       "name": "water_valve_position",
       "value": "-"
    },
    {
       "name": "water_delivered",
       "value": 5402.399,
       "unit": "m3"
    },
    
  62. Roel says:

    Hoi Willem,

    Een absolute noobie vraag, dus alvast excuses hiervoor.

    Ik heb de DSMR logger aangeschaft en kan de Stroomwaarden prima uitlezen via HA.
    Echter zie ik dat mijn gasmeter op een ander kanaal aangesloten is, waardoor ik deze niet uit kan lezen. Hiervoor heb ik de post over het aanpassen van het kanaal reeds doorgenomen, echter blijf ik als absolute arduino noob steken bij het benaderen van het fields.h bestand.

    Hoe maak ik connectie met DSMR om deze systeembestanden te bewerken?

    MVG, Roel

    • Willem Aandewiel says:

      Hi Roel,

      Je moet het, voor jouw situatie, juiste bus-id in het “fields.h” bestand invullen en dan de firmware opnieuw compileren. Het binary file wat dan ontstaat kun je via de update server “over the air” op de DSMR-logger flashen.
      Let wel: doe je dit niet goed of gebruik je verkeerde instellingen voor het compileren dan kán het zijn dat de DSMR-logger niet meer (goed) werkt en kun je hem alleen nog “bedraad” flashen!

  63. PPee says:

    Hi Willem,
    Is het mogelijk om de SSID vd DSMR-AP te verbergen.
    Ik heb nu een onbeveiligde DSMR SSID in mijn WiFi netwerken.
    GrPPee

    • Willem Aandewiel says:

      Hi PPee,

      Eerlijk gezegd zou ik dat zo even niet weten …

      Maar ik snap niet zo goed wat voor SSID je bedoelt. De DSMR-logger is een “client” die van zich zelf geen SSID heeft …

      • PPee says:

        Hoi Willem,
        Vreemd, ik krijg in de lijst van de te kiezen wifi netwerken een netwerk met de naam “DSMR-API-xx:xx:xx:xx:xx:xx” waarbij de x-rij staat voor het mac adres vd logger. Netwerk is niet beveiligd. Ik kan er gewoon aan koppelen, maar heb geen internet
        De logger doet het verder prima, maar lijkt op een beveiligingsissue?
        GrPPee

        • Willem Aandewiel says:

          PPee, dat is raar. Het AP wordt alleen opgestart als je de credentials van je netwerk niet (goed) hebt opgegeven. Het AP is inderdaad niet beveiligt, maar dat is niet écht gevaarlijk want je kunt niets op de DSMR-logger doen wat je netwerk in gevaar brengt.
          Benader je de DSMR-logger met IP adres 192.168.4.1 ?
          Dat kán wel, maar is niet de bedoeling. Zodra je de credentials van je WiFi netwerk hebt ingevoerd verdwijnt het AP uit je lijst.

          • PPee says:

            Ik heb aan de logger een static IP toegewezen. Via dat IP adres kan ik de logger ook gewoon benaderen en uitlezen, dus de credentials zijn goed ingevoerd van het mijn IP netwerk zijn goed ingevoerd

          • Willem Aandewiel says:

            PPee,
            Ik dénk (vrijwel zeker te weten) dat het AP wel in je WiFi lijst staat, maar dat die er helemaal niet is..
            Om dit te testen zou je de DSMR-logger helemaal uit kunnen zetten en kijken of het AP er dan nog steeds in staat.
            Een screenshot van de Systeem Info zou nog wat meer inzicht kunnen geven.

        • Willem Aandewiel says:

          Hi PPee,

          Dus je hebt de firmware zélf aangepast en vervolgens geflashed?

          Ik denk dat je daarbij iets wat goed werkte “kapot” hebt gemaakt. Omdat ik niet weet wat je hebt aangepast kan ik je ook niet helpen

          • PPee says:

            Ik snap je reactie niet helemaal. Heb static ip in de router ingesteld. Niks aangepast en geflashed

        • Willem Aandewiel says:

          Hi PPee,
          Had ik verkeerd begrepen.
          Maar dat laat onverlet dat ik serieus niet begrijp waarom het AP van de DSMR-logger actief is als je logger gewoon als client op het netwerk is aangesloten. Weet je zéker dat het AP ook echt actief is? Wat gebeurd er als je met de browser naar 192.168.4.1 gaat (ik neem aan dat je niet “ergens” nog een DSMR-logger hebt draaien)?

          • PPee says:

            Heb maar even screenshot bijgesloten. Paar stukken geblurred. Static IP, mijn WiFi en de ‘DSMR-Wifi” rood omcirkeld. 192.168.4.1 geeft geen response, en ik heb maar een logger…

  64. Bauke says:

    Hallo Willem,
    Sinds 2019-07 ben ik een zeer tevreden gebruiker van de DSMR logger v4. Alles werkt perfect en ik wil je daarover complimenteren! Petje af!
    Maar… ik maak nog steeds gebruik van WS firmware v.0.4.4 en ik denk dat het tijd is om over te stappen naar de API firmware.
    Echter mijn logger hangt in een Domoticz ‘produktie’ systeem en ik wil natuurlijk zo naadloos / foutloos mogelijk overstappen. Het moet wel in 1x goed zijn. De migratie beschrijving op zich is zeer duidelijk beschreven, dus dat zal geen probleem zijn.
    Mijn HTTP request in Domoticz is als nu volgt:
    domoticz.openURL({
    url = ‘http://’..DSMR_IP..’/restAPI?get=Actueel’,
    method = ‘GET’,
    callback = ‘DSMR’
    en ik begrijp dat er een api is om op de oude wijze gegevens binnen te krijgen (v2.0.1), als volgt: http://dsmr-api.local/api/v0/sm/actual
    Is het dan ook zo dat mijn software in Domoticz ongewijzigd blijft werken, zoals bijvoorbeeld (onderdeel van mijn script):
    local Gas_Delivered = json.Gas_Delivered * 1000

    Je snapt, ik wil zo goed mogelijk voorbereid zijn.
    Alvast bedankt voor je reactie.

    • Willem Aandewiel says:

      Hallo Bauke,

      Inderdaad is de API die je gevonden hebt (v0/sm/actual) gelijk aan de “actual” API van de DSMRloggerWS firmware.
      In de beschrijving van de restAPI’s staat precies wat je kunt verwachten en als dat aansluit op wat je in Domoticz nodig hebt, dan zal het naadloos werken.

      Ik heb alleen géén ervaring met Domoticz dus ik kan je géén garantie geven.
      Aan de andere kant, het moet in het ergste geval toch niet zó moeilijk zijn om de Domoticz configuratie aan te passen?!

      • Bauke says:

        Hallo Willem,
        Inmiddels de conversie uitgevoerd van WS naar API firmware.
        Is allemaal uitstekend gelukt. Exact de beschrijving volgen en dan is het prima te doen!! Bedankt hiervoor!!
        Ook Domoticz script werkt weer prima.
        2 aandachtspunten:
        – Nieuwe API velden zijn undercast
        – Bij de energie waarden even tarief1 en tarief2 optellen.
        Ik wilde je dat even laten weten.
        Mvrgr, Bauke

  65. Arjan says:

    Hoi Willem, via zijn er nog bouwpakketjes te koop van een DSMR logger. via opencircuit kan je ze wel kopen maar zijn ze al in elkaar gezet…. solderen doe ik graag zelf 🙂

  66. Bauke says:

    @Remco,
    Ik maak gebruik van dzVents en gebruik het volgende LUA-script:

    local DSMR_IP = "xxx.xxx.xxx.xxx"
    
    local Gas_Delivered_IDX     = 77    -- Dummy = Type = General, Counter Incremental --> Gas , divided by 1000
    local Energy_Delivered_IDX  = 81    -- Dummy - Type = General, Counter Incremental --> Energie Verbruik
    local Energy_Returned_IDX   = 82    -- Dummy - Type = General, Counter Incremental --> Energie Retour
    local Power_Delivered_IDX   = 79    -- Dummy - Type = General, Custom sensor --> Actueel Verbruik
    local Power_Returned_IDX    = 80    -- Dummy - Type = General, Custom sensor --> Actueel Retour
    local Solar_Delivered_IDX   = 78
    local Energy_Jaarnota_IDX   = 112   -- Dummy - Type = General, Custom sensor --> Jaarnota Electra
    local Gas_Jaarnota_IDX      = 113   -- Dummy - Type = General, Custom sensor --> Jaarnota Gas
    --
    
    -- Beginstanden voor berekening komende jaarnota o.b.v eindstanden oude jaarnota
    local Gas_Start = 718000            -- Beginstand gas in liters
    local Energy_Delivered_Start= 1739  -- Beginstand energie geleverd (som normaal + dal) in kWh 
    local Energy_Returned_Start = 1253  -- Beginstand energie retour (som normaal + dal) in kWh 
    --
    
    
    return {
    	on = {
    		timer = { 'every minute' },
    		httpResponses = { 'DSMR' }      -- must match callback string below
    	},
    	
    	execute = function(domoticz, triggerItem)
    
    		if (triggerItem.isTimer) then
    		
    -- get data from DSMR logger
    			domoticz.openURL({
    --				url = 'http://'..DSMR_IP..'/restAPI?get=Actueel',   -- tbv WS firmware
    				url = 'http://'..DSMR_IP..'/api/v0/sm/actual',      -- tbv API firmware
    				method = 'GET',
    				callback = 'DSMR'
    			})
    
    	    elseif (triggerItem.isHTTPResponse and triggerItem.ok) then
    			
    -- data received from DSMR , now update the virtual devices
    -- explicit json conversion
                local json = domoticz.utils.fromJSON(triggerItem.data)			      
    
    -- tbv WS firmware
    --            local Gas_Delivered     = json.Gas_Delivered * 1000     -- multiply by 1000 to get liters resolution    
    --            local Energy_Delivered  = json.Energy_Delivered * 1000  -- multiply by 1000 to get Wh resolution
    --            local Energy_Returned   = json.Energy_Returned * 1000   -- multiply by 1000 to get Wh resolution
    --            local Power_Delivered   = json.Power_Delivered          -- in KWh resolution
    --            local Power_Returned    = json.Power_Returned           -- in KWh resolution
                
    -- tbv API firmware let op  = undercast en optellen tarief1 en tarief2
                local Gas_Delivered     = json.gas_delivered * 1000             -- multiply by 1000 to get liters resolution    
                local Energy_Delivered  = json.energy_delivered_tariff1 * 1000 + 
                                          json.energy_delivered_tariff2 * 1000  -- multiply by 1000 to get Wh resolution
                local Energy_Returned   = json.energy_returned_tariff1 * 1000 +
                                          json.energy_returned_tariff2 * 1000   -- multiply by 1000 to get Wh resolution
                local Power_Delivered   = json.power_delivered                  -- in KWh resolution
                local Power_Returned    = json.power_returned                   -- in KWh resolution
    
    -- map values to virtual sensors in Domoticz
                domoticz.devices(Gas_Delivered_IDX).update(0, Gas_Delivered)
                domoticz.devices(Energy_Delivered_IDX).update(0, Energy_Delivered)
                domoticz.devices(Energy_Returned_IDX).update(0, Energy_Returned)
                domoticz.devices(Power_Delivered_IDX).update(0, Power_Delivered)
                domoticz.devices(Power_Returned_IDX).update(0, Power_Returned)
    
    -- optioneel tonen van de gelezen waarden in de log
    --            domoticz.log('Gas_Delivered : ' ..Gas_Delivered)
    --            domoticz.log('Energy_Delivered : ' ..Energy_Delivered)
    --            domoticz.log('Energy_Returned : ' ..Energy_Returned)
    --            domoticz.log('Power_Delivered : ' ..Power_Delivered)
    --            domoticz.log('Power_Returned : ' ..Power_Returned)
               
    -- berekening t.b.v. Jaarnota
                local Gas_Jaarnota = Gas_Delivered - Gas_Start
                local Energy_Jaarnota = (Energy_Delivered - Energy_Returned) / 1000
                                        - (Energy_Delivered_Start - Energy_Returned_Start)
                domoticz.devices(Gas_Jaarnota_IDX).update(0, Gas_Jaarnota / 1000)
                domoticz.devices(Energy_Jaarnota_IDX).update(0, Energy_Jaarnota)
                
                
    
    	        else    domoticz.log('Error fetching DSMR data')
            end
        end
    }
    
  67. Bob Cuyt says:

    Hoi Willem (of andere lezers),

    Is er nog niemand die voor het het opencircuit V.4 bordje een 3D geprint doosje heeft gemaakt (en dus: een .stl file aangemaakt heeft)? Indien niet, zal ik zelf eens aan de slag gaan met Tinkercad; als dat lukt deel ik nadien de .stl file graag.

    Mvg,

    Bob

  68. Bob Cuyt says:

    Hierbij. Het ontwerp is gebaseerd op een eerder model voor de vorige PC board. Daarbij is de “base plate” hetzelfde gebleven, daar de print gaatjes nog overeen kwamen. Het OLED schermpje (“OLED display 128 x 64 – blauw – 1.3″ – I2C”) was echter groter en op andere plaats, evenals de RST en FLASH buttons, dus het “doosje” is anders. Indien geprint op een nauwkeurige 3D printer (< 0,2 mm resolutie) dan klikt het doosje mooi op de basis plaat. Indien grotere speling, dan misschien best de basis plaat op iets groter dan 100% printen. Schroefjes 2mm, met schuine kop.

    De .stl bestanden kun je hier vinden.








      • arnold says:

        Hoi Bob geweldig werk!.
        Jammer dat er niet ook een versie van het 0.96inch display is.
        Uitbreekbaar stukje of zo 😉

        • Bob says:

          De positionering van het display was redelijk tricky om juist opgemeten te krijgen (dus niet het ontwerpen in 3D zelf, maar eerst de afmetingen in 3 dimensies juist te krijgen). Als jij deze gegevens kan aanleveren, wil ik wel een tweede ontwerp maken; maar zonder praktisch voorbeeld voorhanden wordt dat een moeilijk trial-and error proces vrees ik. Alternatief: ik wil ook wel eens kijken of ik het 3D ontwerp kan delen, als je zelf de aanpassingen wil doen?

          • arnold says:

            Dag Bob, Ik wil je met liefde een display sturen.
            Je mag ook het ontwerp delen misschien handig om het bij de stl te plaatsen.
            Ik heb een bestandje toegevoegd met de maten..
            Alvast bedankt.

          • Bob Cuyt says:

            Hoi Arnold. Mooi, duidelijke tekening. Echter, het zijn niet enkel de afmetingen van het bordje zelf, maar ook de plaats t.o.v. het moederbordje.Als ik echter dit OLED schermpje vergelijk met het mijne (iets groter model), dan lijkt het wel alsof de aansluitpinnetjes op dezelfde plaats staan, en dat ik die als referentie kan nemen om de andere maten aan te passen. Ik doe dus alvast een poging.

          • Bob Cuyt says:

            Het is heel wat puzzelen geworden, maar heb toch alvast een eerste poging klaar. Kan je me misschien op Messenger een PM sturen, zodanig dat we makkelijk bestanden kunnen uitwisselen zonder dat ik telkens Willem moet lastig vallen? Alvast tot we zeker weten dat het ontwerp OK is.

        • Bob Cuyt says:

          Arnold?

          • arnold says:

            Hoi Bob,

            Ik ben aan het zoeken hoe ik een PM stuur. 🙁

            moet dan zeker een account hebben of zo..

          • Bob Cuyt says:

            🙂 🙂
            Enkel een Facebook account, en dan even mijn naam opzoeken in Messenger, en mij een berichtje sturen. Maar misschien heb je gewoon geen FB. Laten we het op een gewoon mailtje houden: bobpuntcuytatpandoradotbe

          • arnold says:

            Bob ben jij dit.
            Brussels Area, Belgium500+ connections

          • Bob Cuyt says:

            Dan bedoel je LinkedIn? Ja, dat is mijn profiel.

    • Bas says:

      Ik heb geen display en zou graag een dicht doosje willen hebben om de printplaat netjes weg te werken. Heb je deze misschien ook een versie zonder uitsparing voor het display? Ik heb geprobeerd om het stl bestand te editen, maar dat lukt mij vooralsnog niet.

      • Bob says:

        .stl bestanden editen, dat lukte mij ook niet, dus heb het ook “from scratch” moeten doen. Wat je vraagt zou makkelijk moeten zijn, zal eens kijken. Keep you posted…

      • Bob Cuyt says:

        OK, dat was 3 seconden werk 🙂 Maar ik kan het hier niet zelf uploaden (wordpress houdt niet van deze bestanden), dus zal eens kijken of ik het op github bij kan zetten waar de andere staan – of roep ik Willem’s hulp in 🙂

      • Bob Cuyt says:

        Nee, uploads zijn daar disabled (logisch). Ik stuur het onwterp naar Willem, en vraag of hij het bij op Github kan zetten. B.t.w., Willem zei me dat er ook een vraga was naar een doosje met extra gaatje voor externe voedings stekker – had jij dat nodig?

      • Bob Cuyt says:

        Willem heeft net ook het bestandje toegevoegd op github; zie link hier hoger!

  69. PCR says:

    Ik gebruik Open Circuit versie V4.5 i.c.m. Home Assistant. Voorheen (ongeveer een jaar) werkte dit perfect, maar heb hem nu geupgrade naar DSMR-API v2.0.1 (17-04-2020), en merk dat hij vaak vastloopt (om de 2-3 weken) de webinterface is dan ook niet bereikbaar.

    Voor het koppelen van de nieuwe versie met Home assistant heb ik de instructies op gitbook gebruikt, maar HA vind op geen enkele sensor een waarde. Vanuit de DSMR zie ik wel een succesvolle verbinding naar de MQTT broker, maar als ik kijk zie ik geen enkele waarde op de sensor komen. De API sensoren worden zelfs helemaal niet zichtbaar.

    • Willem Aandewiel says:

      Hi PCR,
      Ik begrijp je vraag niet.
      Werkt de DSMR-logger goed?
      Op welke “sensor” zie je geen waarde komen?

      In het script waar je naar verwijst wordt op twee manieren informatie uitgewisseld. Een deel via restAPI’s (dan vraagt HA om informatie aan de DSMR-logger) en een deel via een MQTT broker (de DSMR-logger publiceert de gegevens en HA heeft een subscription op deze gegevens).

      • PCR says:

        Hoi Willem,

        1) Als de DSMR logger online blijft, werkt hij zelf goed. Alleen eens in de zoveel tijd valt hij weg, d.w.z. de webserver reageert niet, en als ik hem reset, zit er een gat in de logging.

        2) m.b.t. HA integratie. Zowel de MQTT messages, als de restAPI lijken niet door te komen.

        Als ik vanaf de DSMR logger kijk:

        MQTT Broker IP/URL 192.168.1.40:1883
        Verzend MQTT Berichten (Sec.) 10
        MQTT broker connected yes

        Als ik vanaf de Mosquitto Broker kijk:

        1607604727: New connection from 192.168.1.50 on port 1883.
        [INFO] found mqtt-DSMR on local database
        1607604727: New client connected from 192.168.1.50 as DSMR-API-2C:F4:32:58:70:AA (p2, c1, k15, u’mqtt-DSMR’).

        Als ik dat bij de states kijk in developer tools van HA, komen er geen waarden binnen. (De API sensoren zijn toch wel zichtbaar, die had ik eerst over het hoofd gezien).

        (zie attachement)

        Als ik de URL van de restAPI kopieer uit de config file, naar de browser, zie ik netjes de waarden in JSON formaat…

        • PCR says:

          Update op mijzelf… (Als je iets uitlegt zie je zelf altijd meer…)

          Doordat ik de restAPI sensoren nu wel zie, heb ik een MQTT sensor vervangen in de config file met de restAPI, dit werkt prima!

            - platform: rest
              name: "DSMR-Gebruik"
              resource: http://192.168.1.50/api/v1/sm/fields/power_delivered
              unit_of_measurement: "Watt"
              value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
          
            - platform: rest
              name: "DSMR-Gebruik l1"
              resource: http://192.168.1.50/api/v1/sm/fields/power_delivered_l1
              unit_of_measurement: "Watt"
              value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
          
            - platform: rest
              name: "DSMR-Gebruik l2"
              resource: http://192.168.1.50/api/v1/sm/fields/power_delivered_l2
              unit_of_measurement: "Watt"
              value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
          
            - platform: rest
              name: "DSMR-Gebruik l3"
              resource: http://192.168.1.50/api/v1/sm/fields/power_delivered_l3
              unit_of_measurement: "Watt"
              value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
          
            - platform: rest
              name: "DSMR-Levering"
              resource: http://192.168.1.50/api/v1/sm/fields/power_returned
              unit_of_measurement: "kWh"
              value_template: '{{ value_json.fields[1].value | round(3) }}'
          
            - platform: rest
              name: "DSMR-Laatste Update restAPI"
              resource: http://192.168.1.50/api/v1/sm/fields/timestamp
          #   value_template: '{{ value_json.fields[0].value }}'
              value_template: >
                {{      value_json.fields[0].value[4:6] + "-" + 
                        value_json.fields[0].value[2:4] + "-" + 
                   "20"+value_json.fields[0].value[0:2] + "   " + 
                        value_json.fields[0].value[6:8] + ":" + 
                        value_json.fields[0].value[8:10] + ":" + 
                        value_json.fields[0].value[10:13] }}
          
            - platform: rest
              name: "DSMR-Levering l1"
              resource: http://192.168.1.50/api/v1/sm/fields/power_returned_l1
              unit_of_measurement: "Watt"
              value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
          
            - platform: rest
              name: "DSMR-Levering l2"
              resource: http://192.168.1.50/api/v1/sm/fields/power_returned_l2
              unit_of_measurement: 'Watt'
              value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
          
            - platform: rest
              name: "DSMR-Levering l3"
              resource: http://192.168.1.50/api/v1/sm/fields/power_returned_l3
              unit_of_measurement: 'Watt'
              value_template: '{{ (value_json.fields[1].value | float * 1000.0) | round(1) }}'
          

  70. Pieter says:

    Hi Willem
    ik heb een complete logger besteld en aangesloten
    alles lijkt het goed te doen, heb wifi IP mqqt ingesteld.
    Echter het oled scherm zegt dat de logger op het eerste bericht zit te wachten en dat blijft zo. al allerlei settings geprobeerd, geen geluk tot nu.
    Ik heb ook een rasp die de smartmeter kan loggen via USB en die werkt prima
    Ik gebruik de iskra MT382 smartmeter.
    Kun je een tip geven dank!
    Groet Pieter

    • Willem Aandewiel says:

      Pieter,
      Het probleem zoals je hier beschrijft is ook al meerdere keren door andere gebruikers beschreven .. en altijd ook opgelost.
      Het is even zoeken en je moet er wat tijd in stoppen, maar ik ben er van overtuigt dat de oplossing al een keer gegeven is.

      • Pieter Knuvers says:

        Hi Willem
        Niet bij mij helaas, ik heb alles al 3 maal doorgelzen 🙁
        van alles al geprobeerd
        -kabel Klikt er goed in
        -P1 kabel omgedraaid
        -ik heb een verloopje waar ik 2 p1 kabels op kan zetten en de rasp doet het maar deze niet. Ook los zonder de rasp geprobeerd natuurlijk

        mijn iskra MT382 is 3 fase
        maar moet niet uitmaken, Op mijn raspberry krijg ik het telegram netjes binnen. ik heb een 5volt op het bordje en een display

        zie hieronder de log
        heb jij voor mij de pin aanlsuitingen van de p1 kabel?
        dan kan ik een nieuwe maken. zal toch niet zo zijn dat deze stuk is?

        Dank!!!

        [01:10:40][  18728| 17944] doTaskTelegr( 515): doTaskTelegram
        [01:10:42][  18480| 17944] operator()  (  65): next: processAPI(/api/v1/dev/time)
        [01:10:42][  17136| 16648] processAPI  (  50): from[10.0.0.251] URI[/api/v1/dev/time] method[GET]
        [01:10:50][  18296| 17944] doTaskTelegr( 515): doTaskTelegram
        [01:10:52][  18048| 17752] operator()  (  65): next: processAPI(/api/v1/dev/time)
        [01:10:52][  16704| 16456] processAPI  (  50): from[10.0.0.251] URI[/api/v1/dev/time] method[GET]
        [01:11:00][  18296| 17328] doTaskTelegr( 515): doTaskTelegram
        [01:11:03][  18048| 17328] operator()  (  65): next: processAPI(/api/v1/dev/time)
        [01:11:03][  16704| 16032] processAPI  (  50): from[10.0.0.251] URI[/api/v1/dev/time] method[GET]
        [01:11:10][  18520| 17552] doTaskTelegr( 515): doTaskTelegram
        [01:11:13][  18272| 17552] operator()  (  65): next: processAPI(/api/v1/dev/time)
        [01:11:13][  16928| 16256] processAPI  (  50): from[10.0.0.251] URI[/api/v1/dev/time] method[GET]
        [01:11:20][  18520| 17552] doTaskTelegr( 515): doTaskTelegram
        [01:11:23][  18368| 17944] operator()  (  65): next: processAPI(/api/v1/dev/time)
        [01:11:23][  17024| 16648] processAPI  (  50): from[10.0.0.251] URI[/api/v1/dev/time] method[GET]
        [01:11:30][  18616| 17944] doTaskTelegr( 515): doTaskTelegram
        [01:11:33][  18368| 17944] operator()  (  65): next: processAPI(/api/v1/dev/time)
        [01:11:33][  17024| 16648] processAPI  (  50): from[10.0.0.251] URI[/api/v1/dev/time] method[GET]
        [01:11:35][  18368| 17944] operator()  (  65): next: processAPI(/api/v1/sm/actual)
        [01:11:35][  17024| 16648] processAPI  (  50): from[10.0.0.251] URI[/api/v1/sm/actual] method[GET]
        [01:11:40][  18616| 17944] doTaskTelegr( 515): doTaskTelegram
        [01:11:43][  18368| 17944] operator()  (  65): next: processAPI(/api/v1/dev/time)
        [01:11:43][  17024| 16648] processAPI  (  50): from[
        
  71. Patrick Groen says:

    Hallo Willem,
    Allereerst ernorm bedankt voor al je harde werk wat je verricht om ons met je projecten te verblijden. Ik denk dat mensen wel eens vergeten dat dit allemaal ‘goodwill” is.

    Ik ben net pas in het konijnenhol gedoken vwb ESP bordjes etc, en dacht eens even mijn logger te updaten naar de DMSR-API firmware, echter lijkt het bord nu in een loop te zitten, hij lijkt normaal op te starten maar er is geen wifi AP zichtbaar. hierna gaat de blauw led uit en knippert hij 3 keer en blijft de led weer 10 seconden branden etc etc.

    nu al een paar x opnieuw proberen te flasen en de data bestanden ge-upload, maar inmiddels behoorlijk ten einde raad.

    • Willem Aandewiel says:

      Hoi Patric,

      Wat vervelend. Heb je de update exact zo uitgevoerd als beschreven? De volgorde en alle instellingen zijn van belang…
      Het knipperen van de ledjes zoals je beschrijft lijkt er inderdaad op dat hij geen verbinding tot stand kan brengen. Kun je hem ook niet bereiken via telnet of een browser? Zo niet, dan ben ik bang dat er niet veel anders op zit dan nog een keer de firmware en SPIFFS te flashen, maar nu “bedraad”. Hoe dat moet staat uitvoerig beschreven in de documentatie van de DSMRloggerWS- en DSMRloggerAPI-documentatie (ik heb mijn best gedaan alles zo duidelijk mogelijk te documenteren, maar sommige dingen staan beter bij de ene en ander dingen staan beter bij de andere beschreven..).

      • Patrick Groen says:

        De documentatie is inderdaad erg uitgebreid, ik heb hem inmiddels al een paar x geprobeerd bedraad te flashen. dit voltooid altijd succesvol maar helaas lost het niet het probleem op. Om verbinding te maken via Telnet zal de logger toch eerst verbonden moeten zijn met het netwerk? (overigens net nogmaals geflashed en nu wel een stabiele blauwe led maar geen AP zichtbaar op geen enkel apparaat in huis)

        • Willem Aandewiel says:

          Kun je de instellingen die je gebruikt “delen”?
          Je ziet beslist iets over het hoofd.
          Soms is het handig om te flashen met de optie “Erase all content”, dan worden de WiFi credentials in ieder geval weggegooid en creëer je voor wat dat betreft een zekere situatie. Hou je er rekening mee dat SPIFFS 2MB moet zijn (was voor DSMRloggerWS 1MB).

  72. Patrick Groen says:

    waar kan ik de optie erase all content vinden?
    bijgevoegd de instellingen, erg fijn dat je zo snel reageert (daar kunnen sommige zakelijke dienstverleners nog iets van leren:-)

    • Willem Aandewiel says:

      Je “Flash Size” staat verkeerd. Moet zijn “4MB (FS: 2MB OTA:~1019KB)”.
      Om Flash helemaal leeg te maken moet je “Erase Flash: “All Flash Contents” selecteren.

  73. Patrick Groen says:

    Helaas, Hij start nu op met stabiele blauwe led voor ca 5-10 minuten maar geen AP te vinden.daarna knippert hij een paar x en lijkt zich om de zoveel tijd te herstarten. Is er nog een manier om bedraad ea uit te lezen?

  74. Patrick Groen says:

    Willem, het is inmiddels gelukt! een Windows VM geinstalleerd en daar vanaf 0 begonnen en in 1x succesvol!! erg bedankt voor je tijd en moeite. ik ga hem u eens even mooi in Homeassistant/Graphana prakken nu !

  75. Freddy Geens says:

    Dag Willem,

    Een probleempje met de Belgische software v/d digitale meters (Fluvius versie 50214 )?
    Sinds 7 dec continue telegramerrors
    De digitale meter is een Sagemon S211

    [07:39:43][  16920| 13704] processSlimm(  97): telegramCount=[2344] telegramErrors=[2344]
    
    [Time----][FreeHeap/mBlck][Function----(line):
    [07:39:43][  16848| 13704] processSlimm( 166): Parse error
    1-0:31.7.0(001.73*A)
                  ^
    Missing unit
    
    /FLU5\253770234_A
    
    0-0:96.1.4(50214)						[ was voorheen 50214 ]
    0-0:96.1.1(3153414731313030303233313932)
    0-0:1.0.0(201216154608W)
    1-0:1.8.1(000893.016*kWh)
    1-0:1.8.2(001100.226*kWh)
    1-0:2.8.1(002197.752*kWh)
    1-0:2.8.2(000774.305*kWh)
    0-0:96.14.0(0001)
    1-0:1.7.0(00.433*kW)
    1-0:2.7.0(00.000*kW)
    1-0:32.7.0(237.7*V)
    1-0:31.7.0(002.25*A)					[ 1-0:31.7.0(008*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(37464C4F32313139303133313433)
    0-1:24.4.0(1)
    0-1:24.2.3(201216154516W)(01080.163*m3)
    !90C4
    
    (c)2019 by [Willem Aandewiel]
    Firmware Version [v2.0.1 (17-04-2020)]
    Compiled [Apr 17 2020  11:50:04]
    compiled with [dsmr.h]
    #defines [USE_REQUEST_PIN][USE_UPDATE_SERVER][USE_MQTT][USE_BELGIUM_PROTOCOL]
    Telegrams Processed [2365]
    With Errors [2365]
    FreeHeap [16904]
    max.Block [13704]
    Chip ID [785398]
    Core Version [2_6_3]
    SDK Version [2.2.2-dev(38a443e)]
    CPU Freq (MHz) [80]
    Sketch Size (kB) [536.19]
    Free Sketch Space (kB) [1508.00]
    Flash Chip ID [00164020]
    Flash Chip Size (kB) [4096]
    Chip Real Size (kB) [4096]
    SPIFFS Size (kB) [1907]
    Flash Chip Speed [40]
    Flash Chip Mode [DOUT]
    

    Aanpassing gedaan in dsmr-be / fields-be..h

    /* Instantaneous current L1 in A resolution */
    DEFINE_FIELD(current_l1, FixedValue, ObisId(1, 0, 31, 7, 0), FixedField, units::A, units::mA);
    

    Hiermede werkt alles weer vlekkeloos, Is dit een upgrade van Fluvius voor de digitale meters geweest?
    Mvrgr, Freddy

    • Willem Aandewiel says:

      Hi Freddy,

      Het lijkt er inderdaad op dat de firmware van de Slimme Meter is aangepast. Ik heb dat in België eerder gezien maar toen werd de aanpassing na enkele dagen weer terug gedraaid!

      Wat me opvalt in je system overzicht:

      compiled with [dsmr.h]
      

      Ik zou verwachten dat daar dsmr-be.h zou staan

      Mooi dat je de aanpassing hebt gedaan en gedeeld. Als jij het probleem hebt gehad zullen andere daar ook tegenaan lopen.

      Bedankt!

    • Tony says:

      Freddy, waar heb je dat precies aangepast ? Ik heb ook nde nieuwe versie van Fluvius “gekregen” … En compileer jij met PRE40 PROTOCOL of niet ? Thanks man !

  76. Tony Knors says:

    Beste, ook ik heb problemen met de telegrammen. Die kwamen steeds probleemloos toe maar sedert 17/18 December niet meer. Heb intussen ook de upgrade gedaan naar de laatste versie van DSMR (DSMR-API v2.0.1 (17-04-2020)) en hier heb ik meerdere problemen :

    – Datum rechtsboven is niet correct (staat op 2001-01-01 01:01:01)
    – Ik krijg bgeen berichhten meer binnen van MQTT. In System Info zie ik deze zwel degelijke connected : MQTT broker connected yes

    Enig idee wat er fout gaat ?

    Met vriendelijke groet en hartelik dank !

  77. Freddy geens says:

    Dag Tony,
    Ik heb het bestand fields-be.h aangepast op regel 276 (uit de librarie arduino-dsmr-be-master)

    IntField, units::A); wijzigen in -> FixedField, units::A, units::mA);

    dan wordt dat:

    /* Fuse supervision treshold L1 in A resolution */
    DEFINE_FIELD(fuse_treshold_l1, uint16_t, ObisId(1, 0, 31, 4, 0), FixedField, units::A, units::mA);

    compiler options
    #define USE_REQUEST_PIN
    #define USE_UPDATE_SERVER
    #define USE_BELGIUM_PROTOCOL
    // #define USE_PRE40_PROTOCOL
    // #define USE_NTP_TIME
    // #define HAS_NO_SLIMMEMETER
    #define USE_MQTT
    #define USE_MINDERGAS
    // #define USE_SYSLOGGER
    // #define SHOW_PASSWRDS

    Hiermede waren de telegramerrors en de foutieve datum opgelost bij mij.
    ( het data type voor (1, 0, 31, 4, 0) is gewijzigd, ik ken zeer weinig hierover misschien kan een andere dit beter uitleggen )

    m.v.g. Freddy

  78. Freddy Geens says:

    Dag,
    Een beetje rap geweest de juiste regel is: 283

    DEFINE_FIELD(current_l1, FixedValue, ObisId(1, 0, 31, 7, 0), FixedField, units::A, units::mA);
    compiler options
    #define USE_BELGIUM_PROTOCOL

    Hiermede werkt het bij mij naar de echte oplossing moet van iemand komen met kennis van programmeren. ( sorry voor de mis info van vorige keer de fout zit in het lezen of verwerken van 1,0,31,7,0 )
    M.v.g. Freddy

    • Staf Van Gestel says:

      Dag Freddy, vandaag om 15:59:59 stopte te klok van de DSMR en werd al het elektriciteitsverbruik op het zelfde moment gezet.
      Ook het gasverbruik was niet meer te zien.
      Ik heb uw aanpassing ook toegepast en alles werkt nu terug.

      Dank voor het delen van uw oplossing!
      gr,
      Staf

      • marc says:

        hallo,

        vandaag is mij logger er ook mee gestopt en dit ook om 15:59:59
        ik zie dat je iets van een aanpassing hebt gedaan, maar ik heb totaal geen idee wat je waar en hoe moet aanpassen.
        Kan je hier wat verduidelijking bij geven.

        groeten
        Marc

        • Staf Van Gestel says:

          Eigenlijk doen wat Freddy heeft beschreven.
          Als je je logger aan een Belgische meter hebt hangen, heb je normaal de Arduino-dsmr-be-master library in gebruik.
          Ga naar de je directory waar deze is geïnstalleerd.
          Onder de SRC map van die library folder vind je het bestand fields-be.h
          Ik heb dus ook regel 283 gewijzigd. Hier stond het volgende in:
          DEFINE_FIELD(current_l1, uint16_t, ObisId(1, 0, 31, 7, 0), IntField, units::A);
          Ik heb dat ook gewijzigd naar het volgende:
          DEFINE_FIELD(current_l1, FixedValue, ObisId(1, 0, 31, 7, 0), FixedField, units::A, units::mA);
          Dan de code opnieuw gecompileerd en naar de logger gestuurd.
          En logger werkte opnieuw. Wat er dan aan het telegram, dat de slimme meter dan opstuurt is veranderd, dat weet ik nog niet.
          Ben eigenlijk ook benieuwd of de ‘commerciële’ loggers hier ook last van hebben.

          • marc says:

            Hoi,

            het grote probleem is dat ik het toestel zo heb gekocht met de software erop!
            Dus heb nog nooit iets gedownload, gecompileerd, enz..
            Zal dus even een zoektocht worden.
            wat eigenlijk met de reeds gelogde gegevens, blijven die behouden?

          • marc says:

            hoi Staf,

            zou je eventueel jou bin file kunnen doorsturen naar mij?
            dan kan ik deze gewoon over the air uploaden naar mijn powermeter zoals Willem in het laatste bericht antwoord.
            mijn email : supermarcie@telenet.be

            groeten
            Marc

  79. Jan-Martin Krikken says:

    Goedenavond,
    Hopelijk weet je een oplossing. IK heb al een tijdje geleden de dsrm-logger 4.5 aangekocht en deze werkte naar tevredenheid. Tot een aantal dagen geleden. Ik kon niet meer op de webpagina van de logger komen. En het bleek dat, ook na een reset, de logger in AP-mode blijft staan. Ik kom dan wel op de 192.168.4.1 wifi pagina en kan ssid en wachtwoord opgeven maar de logger reset niet om op het wifi netwerk in te loggen.
    Is er een andere mogelijkheid om dit voor elkaar te krijgen……

    Met vriendelijke groet
    Jan-Martin

    • Willem Aandewiel says:

      Jan-Martin,

      Dit is een hele vreemde!
      De enige reden voor de DSMR-logger om in AP mode op te starten is als hij geen verbinding kan maken met het WiFi netwerk dat je hebt opgegeven óf misschien wel als je router geen vrije IP adressen heeft om uit te delen (nooit getest en lijkt me ook onwaarschijnlijk).

      Weet je zéker dat je het goeie wachtwoord hebt ingevoerd? Accepteert je router geen http protocol (meer) maar alleen nog https?

      If all else fails moet je misschien de firmware opnieuw (bedraad met de Arduino IDE) flashen met de optie “flash all contents” en daarna SPIFFS opnieuw flashen.

      Succes!

      • Jan-Martin Krikken says:

        En plotseling deed alles het weer. Gewoon een reset, terwijl ik die reeds vele malen gedaan had om hem weer als ‘AP’ in te stellen.

        Maar bedankt voor de steun.
        Jan-Martin

  80. arnold says:

    Hallo Willem,

    Allereerst super project had al een versie uit 2018. die ik aan homeassistant had gekoppeld via GetActual.
    Omzetten naar de nieuwe 4.5 was ff zoeken maar is wel gelukt.
    Nu gebruik ik MQTT want dat had ik ook voor de Action switches in gebruik.
    Echter ik heb mij Kostal Solar inverter gehacked en lees ook daar de data van uit.
    Maak van binair een json file en heb ook die info.
    Allemaal leuk natuurlijk maar wat wil ik nu vertellen 😉

    Wel vroeger deed in een optelling van power_delivered l1/2/3 en returned.
    Nu zag ik in deze dat ik “power_delivered” en “power_returned” krijg.
    Dus dacht o das handig gebruik die.

    Maar ze zijn niet de optelling van delivered resp. returned maar een summary total.
    Zie dit voorbeeld. van vandaag.

    {“actual”:[
    {“name”: “timestamp”, “value”: “210125123117W”},
    {“name”: “energy_delivered_tariff1”, “value”: 2066.662, “unit”: “kWh”},
    {“name”: “energy_delivered_tariff2”, “value”: 1372.316, “unit”: “kWh”},
    {“name”: “energy_returned_tariff1”, “value”: 1103.960, “unit”: “kWh”},
    {“name”: “energy_returned_tariff2”, “value”: 2598.708, “unit”: “kWh”},
    {“name”: “power_delivered”, “value”: 0.000, “unit”: “kW”},
    {“name”: “power_returned”, “value”: 1.157, “unit”: “kW”},
    {“name”: “voltage_l1”, “value”: 227.000, “unit”: “V”},
    {“name”: “voltage_l2”, “value”: 228.600, “unit”: “V”},
    {“name”: “voltage_l3”, “value”: 236.000, “unit”: “V”},
    {“name”: “current_l1”, “value”: 1, “unit”: “A”},
    {“name”: “current_l2”, “value”: 3, “unit”: “A”},
    {“name”: “current_l3”, “value”: 2, “unit”: “A”},
    {“name”: “power_delivered_l1”, “value”: 0.301, “unit”: “kW”},
    {“name”: “power_delivered_l2”, “value”: 0.000, “unit”: “kW”},
    {“name”: “power_delivered_l3”, “value”: 0.000, “unit”: “kW”},
    {“name”: “power_returned_l1”, “value”: 0.000, “unit”: “kW”},
    {“name”: “power_returned_l2”, “value”: 0.792, “unit”: “kW”},
    {“name”: “power_returned_l3”, “value”: 0.666, “unit”: “kW”},
    {“name”: “gas_delivered”, “value”: 1549.300, “unit”: “m3”}
    ]}
    Als ik power returned optel L2=792 = L3= 666 kom je op 1458
    dat had ik dus verwacht op power_returned
    en zo ook voor deliverd_l1 =301 dus power_deliverd = 301 ipv o
    En nu de Som 1458 -301 = 1157 dat staat er bij returned, maar eigenlijk
    Verbuik ik op dat moment 301 Watt
    en Lever ik 1458 Watt
    Misschien een extra veld “power_balance” = 1157.
    Die waarden komen ook niet overeen met de grafiek want die laat wel zien dat je nog wat gebruikt terwijl de “meters” in mijn homeassistant op 0 staan..
    Verder zijn de current waarden altijd positief 😉 misschien min waarde bij terugleveren..
    Nu pas ik het wel aan in HA maar dacht misshien toch goed om te melden..

    Alnog hartelijk dank voor je super werk.
    Groet
    Arnold

  81. Dennis says:

    Beste Willem,

    Kan ik die software ook op een andere esp flashen? Zo ja welke file’s heb ik daar voor nodig en staat dit ook beschreven?

    • Willem Aandewiel says:

      Dennis,

      Je kunt de DSMRlogger firmware op ieder ESP8266 bordje flashen.

      Er veranderd niets aan wat je ervoor nodig hebt. Je hoeft er ook niets voor in de code aan te passen, immers: álle bordjes met een ESP8266 hebben … een ESP8266! Daarom is het ook het handigste om als board de “Generic ESP8266 Module” te selecteren. Hooguit “de manier” waarop (de meeste ESP8266 bordjes hebben een USB poort die je kunt gebruiken om te flashen) veranderd.
      Succes!

      • Dennis says:

        Bedankt voor je snelle reactie, Echter hoe flash ik al die bestanden naar mijn ESP?

        Heb je daar een simpel voorbeeld voor?
        Ik ben bekend met arduino IDE en met 1 INO file. Echter het bestand wat ik hier gedownload heb:
        https://github.com/mrWheel/DSMRloggerWS

        Zou ik niet weten welk bestand ik nu naar mijn ESP moet compileren.

  82. Dennis says:

    Sorry,

    Helemaal niet gezien. Appeltje eitje inderdaad..

  83. Wim says:

    DSRM Logger met POE

    Dag Willem, is het moeilijk om de print aan te passen zodanig dat hij wired via POE op het netwerk kan zitten ? Voeding via netwerkkabel en internetverbinding via netwerkkabel ? WIFI in soms heel moeilijk in de kelder

    • Willem Aandewiel says:

      Hi Wim,
      Of het “moeilijk” is hangt natuurlijk af van je ervaring.
      Mogelijk is álles!
      Maar in plaats van de print “aan te passen” is het waarschijnlijk eenvoudiger om een nieuwe print te ontwerpen!
      Succes!

  84. Wim says:

    Dag Willem, ik heb spijtig genoeg geen enkele electronica ervaring. Ben een software ontwikkelaar en schrijf soms software voor embedded systems maar ontwerpen van pcb’s etc is niet mijn vakdomein. Had gehoopt dat jij het zou zien zitten 🙂

  85. Marc says:

    Hallo,

    vandaag is mijn powermeter plots gestopt, heeft enkele maanden goed gewerkt.
    Het lijkt of hij de waarden nog wel binnenkrijgt maar er zijn toch wel wat dingen die niet meer werken.
    Bv
    -Op het oled display staat steeds de melding “wait for first”
    maar daaronder staat wel dat hij al een hoop telegram meldingen heeft gekregen.
    -Had MQTT ingesteld, werkt niet meer
    -Rechtsboven op de website staat volgens mij het tijdstip dat hij ermee is gestopt
    de timestamp die ik zie bij ACTUEEL die is wel correct.

    Dus geen idee wat er verkeerd kan gelopen zijn.
    De firmware die erop staat is de originele versie zoals ik hem gekocht heb : v2.0.1 (17-04-2020)
    en het bordje is de laatste versie, aangeschaft eind october.
    Hopelijk is dit genoeg info om me verder te helpen

    • Willem Aandewiel says:

      Marc,

      Er is niets verandert aan de firmware.

      Woon je in België?
      De Belgische energie leveranciers hebben er een handje van de telegrammen “over the air” aan te passen.
      Soms draaien ze dat na enige tijd weer terug en werkt alles weer als vanouds. Soms ook niet.
      Lees alle comments van deze post. Er zijn makers die eenzelfde soort probleem hadden en dat zelf hebben opgelost.

      Succes

  86. marc says:

    hallo,

    heb inderdaad een post terug gevonden waar het precies dezelfde issue is.
    Nu heel duidelijk is de beschrijving hiervoor niet.
    Waarschijnlijk is dit het opnieuw compileren, flashen, enz….
    Wat gebeurd er met dan met de logs die al gedaan zijn? hopelijk niet allemaal kwijt?

    grtz
    Marc

    • Willem Aandewiel says:

      Hoi Marc,

      Als je alles goed doet (de selectie van een “Generic ESP8266 Module” en vooral SPIFFS op 3Mb) dan blijven je logbestanden gewoon intact. Voor de zekerheid kun je de ring bestanden naar je computer uploaden en als er toch iets mis gaat ze later weer terug zetten.
      Je kunt ook aan Freddy of Staf vragen of ze een binary naar je toe willen sturen. Die kun je dan met de update server functionaliteit “over the air” uploaden..

  87. Leo van der Hoek says:

    Kan niet compileren. Er ontstaat een fout in restAPI op regel 398:
    expected primary-expression before ‘)’ token

    • Willem Aandewiel says:

      Need more information

      • Leo van der Hoek says:

        Ik heb een verse kopie gemaakt uit Github en in Arduino IDE geopend. Hetzelfde had ik gisteren gedaan met de WS versie en die compileerde met dezelfde instellingen van de IDE perfect!
        Afgezien van de waarschuwingen over SPIFFS, binnenkort deprecated, gaat de compilatie van API goed totdat de vermelde fout optreed. Overigens komt dezelfde foutmelding in VSCode ook!
        Als ik naar de declaration van de functie sendNestedJsonObj kijk is er een mismatch w.b. type van de 2e parameter die deze fout zou kunnen veroorzaken float*char. De foutmelding is niet zo duidelijk.

        • Willem Aandewiel says:

          Wat voor instellingen gebruik je?

          • Leo van der Hoek says:

            Ik gebruikte niet Generic 8266 en dan gaat het om een of andere reden fout bij compileren! Ik heb er een WEMOS D1 mini R2 aan hangen. Compileert nu wel. Ga na het eten verder kijken of ik hem op mijn WEMOS kan gebruiken! Bedankt zover voor het meedenken!

          • Willem Aandewiel says:

            De meeste problemen ontstaan omdat iedereen denkt dat een Wemos of NodeMCU iets speciaals is. Het zijn gewoon “Generic ESP8266 Modules”.
            Als je dat, zoals ook in de code en alle documentatie staat, selecteert dan werkt het gewoon. Het enige speciale aan die bordjes is dat de compiler allerlei macro’s gaat gebruiken om D2 en D8 enz. te vertalen naar wat ze gewoon zijn (GPIO-pinnen).

          • Leo van der Hoek says:

            Ik heb toch gekozen voor 2MB SPIFFS omdat daar een ~1MB OTA bij zit. Wanneer je 3MB SPIFFS kiest is de OTA maar 512kB en de firmware is 542kB. Dat werkt prima op NO_METER. Volgende stap is de seriële pulsen aansluiten van mijn bestaande SlimmeMeter unit. Laat ik er twee parallel draaien, zou moeten lukken. Werkt als een trein!!! We gaan het eens verder besnuffelen.

  88. Berten De Wael says:

    Beste Willem,

    Als beginnend hobby elektronicus ben ik een grote fan van deze website. De artikels zijn duidelijk om te bouwen en volgen. Ondertussen zit ik wel met een vraag waar ik nergens antwoord op vind. Ik heb een jaar geleden de DSMR-logger v3 gebouwd en deze heeft deze een jaar succesvol gemeten. Sinds afgelopen weekend werkt hij spijtig genoeg niet meer. Ik ben opzoek naar tips&tricks om uit te zoeken waar het is misgelopen. Het inlezen van de telegrammen loopt niet meer zoals het hoort. Kan dit een hardware probleem zijn? Is er iets dat ik kan nameten op het bordje?

    Met vriendelijke groeten,
    Berten De Wael

    • Willem Aandewiel says:

      Hoi Berten,
      Bedankt voor het compliment!
      Ik schat in dat je in België woont? De Belgische energie leveranciers wijzigen soms het format van de telegrammen die de Slimme Meter verstuurt. Als dat gebeurd geeft dat problemen met de verwerking.
      Er zijn verschillende Belgische Makers die dit probleem hebben opgelost. Kwestie van de comments lezen.

      Dit comment staat helaas op een verkeerde plaats (bij “recent Projects”). Ik verplaats het naar deze post.

  89. bortek says:

    Hi Willem

    I am still struggling with the CRC issues which you somehow solved discussed in this thread https://willem.aandewiel.nl/index.php/2019/04/09/dsmr-logger-v4-slimme-meter-uitlezer/ and you mentioned that you added extra \ in the header to get crc correctly.

    I am using code from this project https://github.com/psvanstrom/esphome-p1reader/blob/main/p1reader.h

    I wonder what should be changed to get it parse the \ correctly? Can you give me some clue? Thanks!

    • Willem Aandewiel says:

      Hi Bortek,

      Somehow some brilliant mind thought it was a good idea to use backslashes in the Smart Meter Telegram’s. It was/is not!
      If your meter sends a backslash (which is for most computer’s an “escape char”) you have to “escape the escape char”. In other words: Place a backslash in from of every backslash in the telegram (so “\” becomes “\\” and if there is something like this “\\\” place a backslash in front of ever backslash in the telegram so it becomes “\\\\\\”).

      Have fun!

      • bortek says:

        Yes that is correct and I am aware of that.

        So I will need to implement an extra logic in the code in the form of a check, that parses the data and append a backslash(es) where needed. Thanks for the tip.

  90. Leo van der Hoek says:

    I successfully switched to LittleFS by making some amendments to your code.
    in DSMRloggerAPI.h :

    #include "safeTimers.h"
    
    #ifdef USE_LITTLEFS
      #include "LittleFS.h"
      #define SPIFFS LittleFS
    #endif
    
    #ifdef USE_SYSLOGGER
    

    I added an extra Macro to DSMRloggerAPI.ino

    //#define SHOW_PASSWRDS             // well .. show the PSK key and MQTT password, what else?
    #define USE_LITTLEFS              // Use new Flash Filesystem instead of SPIFFS(reload of files mandotory with LittleFS upload tool)
    /******************** don't change anything below this comment **********************/
    

    Instead of running SPIFFS it has been redirected to LittleFS

    There is a difference in the naming in LITTLEFS as there is no ‘/’ in the name. In FSexplorer.ino there is a test in the name for ‘/’ if not we take all characters instead of ignoring the first character.

     while (dir.next())
      {
        dirMap[fileNr].Name[0] = '\0';
        if (dir.fileName()[0] != '/')
        {
          strncat(dirMap[fileNr].Name, dir.fileName().substring(0).c_str(),30); // In LITTLEFS no leading "/"
        }
        else
        {
          strncat(dirMap[fileNr].Name, dir.fileName().substring(1).c_str(), 29); // remove leading '/'
        }
        dirMap[fileNr].Size = dir.fileSize();
        fileNr++;
      }
    

    This is just to be ready if SPIFFS really has been deprecated.

    I do not use ESP_SysLogger and there need to be done some changes to let it work with LITTLEFS. I tried that and it works OK. Only the way to switch between SPIFFS and LITTLEFS I have not investigated, Probably one can get some sysinfo from the ESP8266.
    See this version on Github.

  91. Bart Michiels says:

    Hallo Willem

    Is er ook een versie van de logger die de data overzet naar het Modbus TCP protocol.

    Mvg

    Bart Michiels

  92. Bauke says:

    Hallo Willem,
    Ben al een geruime tijd een tevreden gebruiker van de api-firmware.
    Mijn zoon wil ook zo een apparaat wat ik graag voor hem wil doen.
    Alleen … hij heeft een warmtepomp en geen gasaansluiting.
    Enig idee of dit zal gaan werken bij hem.
    Mvrgr, Bauke

    • Willem Aandewiel says:

      Hi Bauke,
      Mooi dat je tevreden bent.
      Als de Slimme Meter de gegevens van de warmte pomp ook doorgeeft zou dat kunnen werken (of in ieder geval “werkend gemaakt kunnen worden”). Maar ik heb er geen ervaring mee.
      Succes

      • Bauke says:

        Hallo Willem,
        Niet helemaal wat ik bedoelde.
        Het gaat hier om een huis wat ‘van het gas af is’.
        Dus de slimme meter registreert uitsluitend stroom.
        In het telegram zal dus helemaal geen gas data aanwezig zijn.

        De vraag die bedoelde te stellen is, kan de software ermee omgaan als het telegram geen gas data bevat.
        Mvrgr, Bauke

  93. Hans says:

    Hallo Willem,

    Ik heb sinds vorige week de DSMR-logger v4.5 in mijn bezit, maar krijg hem niet goed werkend in Home Assistant op mijn Pi4.
    Heb mijn HA geconfigureerd conform de instructie op https://mrwheel.github.io/DSMRloggerWS/integratieHassio/

    De logger connect goed met mijn netwerk en haalt ook de data van mijn slimme meter goed binnen.
    Ik heb de Mosquitto broker op mijn Pi geïnstalleerd en geconfigureerd, maar de data komt niet Home Assistant binnen. Alle sensoren hebben te status “unknown”!!
    Ik heb wat screen-shot toegevoegd zodat je evt kunt beoordelen wat er niet goed staat.

    Ik heb zo’n beetje alle parameters een keert gewijzigd, maar zonder succes.
    Kun je mij helpen?

    Groet
    Hans Zant

    • Willem Aandewiel says:

      Hans,

      Voordat je de diepte in duikt met HA kun je het beste eerst kijken of je berichten goed aankomen bij de MQTT broker.
      Op deze man page kun je lezen hoe dat moet.

      Op je RPi moet je in een terminal window iets intoetsen als:

      mosquitto_sub -h localhost -t *

      Misschien moet je ook een username en password invoeren.

      Succes

  94. Hans says:

    Willem,

    Dank voor je suggestie.
    Ik heb het geprobeerd, maar kom hier niet verder mee.
    Als localhost heb ik mijn ip-adres van mijn Pi4 ingevuld incl user en pw. Een”*” wordt niet geaccepteerd, maar weet ook niet wat er wel moet staan.

    Uit de in tab Systeem info van de logger blijkt dat er een verbinding is met de MQTT broker. (Zie bijlage)
    Sensoren in mijn HA hebben de “unknown” status..

    Heb je nog andere suggesties?
    Groet,
    Hans

  95. Hans says:

    Willem,

    Op het HA forum las ik het volgende topic:

    Found the problem:

    It seems it does not work when using the MQTT of HA itselves with the DSMR Reader installed next to it. I installed an MQTT broker on my desktop, and within seconds it’s sending telegrams to it. Works like a charm. I will try install MQTT broker in Docker on my Brix computer next to HA in Docker. Hope that works, otherwise i’ll install MQTT Broker on my Raspberry Pi and let HA read that device.

    Is dat wellicht het probleem??

    • Willem Aandewiel says:

      Nee hoor.
      Ik draai gewoon Mosquitto op mijn RPi en dat werkt prima. Als je met het ene terminal window een mosquito_pub doet en in een andere terminal window een mosquitto_sub dan moet je, als je geen foutmeldingen krijgt gewoon in het “sub” window kunnen zien wat je in het “pub” window publiceert.
      Lukt het om te subscriben? Wat voor meldingen krijg je?

      In window1 tik je in:
      mosquitto_sub -h localhost -t /topic

      In window2:
      mosquitto_pub -h localhost -t /topic -m "test"

      In window1 verschijnt nu:
      test

      In window2 tik je nu:
      mosquitto_pub -h localhost -t /topic -m "nog een test"

      In window1 verschijnt nu:
      nog een test

  96. Hans says:

    Willem,

    Ik gebruik de terminal van mijn HA.
    Bij het intikken van : “mosquitto_sub -h localhost -t /topic” krijg ik een foutmelding.
    Zie bijlage.

    • Willem Aandewiel says:

      Misschien moet je het IP adres van je RPi intoetsen of anders 127.0.0.1 óf je moet in mosquitto.conf kijken of je daar iets kunt invoeren. Ik heb geen idee hoe je mosquitto geïnstalleerd en geconfigureerd heb. Maar als simpele commando’s niet werken is er iets mis met je configuratie.
      Je kunt ook de mosquitto sub en pub clients op een andere computer installeren (zéker als je op een Apple computer werkt) en kijken of je dan wél bij je mqtt-broker kunt komen.

      • Hans says:

        Willam,

        Het is een standaard installatie van de add-on store van HA, dus dat zou toch gewoon moeten werken.
        Ik heb Mosquitto 5.1.1 geïnstalleerd en heb topics in forum gelezen dat e.e.a. te maken heeft met deze versie. Mosquitto 5.1 zou wel goed werken.
        Welke versie heb jij?

  97. Hans says:

    Willem,

    Hier onder nog even de log van de broken.
    Er staat een error in:

    s6-init] making user provided files available at /var/run/s6/etc...exited 0.
    [s6-init] ensuring user provided files have correct perms...exited 0.
    [fix-attrs.d] applying ownership & permissions fixes...
    [fix-attrs.d] done.
    [cont-init.d] executing container initialization scripts...
    [cont-init.d] done.
    [services.d] starting services
    [services.d] done.
    [15:54:57] INFO: Setup mosquitto configuration
    [15:54:57] INFO: Found local users inside config
    [15:54:58] INFO: Initialize Home Assistant Add-on services
    [15:54:58] ERROR: Can't setup Home Assistant service mqtt
    [15:54:58] INFO: Initialize Home Assistant discovery
    [15:54:58] INFO: Start Mosquitto daemon
    1615733698: mosquitto version 1.6.3 starting
    1615733698: Config loaded from /etc/mosquitto.conf.
    1615733698: Loading plugin: /usr/share/mosquitto/auth-plug.so
    1615733698: |-- *** auth-plug: startup
    1615733698:  ├── Username/password checking enabled.
    1615733698:  ├── TLS-PSK checking enabled.
    1615733698:  └── Extended authentication not enabled.
    1615733698: Opening ipv4 listen socket on port 1883.
    1615733698: Opening ipv6 listen socket on port 1883.
    1615733698: Opening websockets listen socket on port 1884.
    1615733698: Opening ipv4 listen socket on port 8883.
    1615733698: Opening ipv6 listen socket on port 8883.
    1615733698: Opening websockets listen socket on port 8884.
    1615733698: Warning: Mosquitto should not be run as root/administrator.
    1615733698: New connection from 192.168.107.15 on port 1883.
    [15:54:59] INFO: [INFO] found mqttuser on local database
    1615733699: New client connected from 192.168.107.15 as HassIO (p2, c1, k60, u'mqttuser').
    1615733714: New connection from 192.168.107.40 on port 1883.
    1615733714: New client connected from 192.168.107.40 as DSMR-API-XX:XX:XX:XX (p2, c1, k15, u'mqttuser').
    
  98. Beste Willem, ik ben op zoek naar een oplossing om de slimme meter uit te lezen via MODBUS RTU, kan jij mij verder helpen ?

    [comment verplaatst van [Recent Projects]]

    • Willem Aandewiel says:

      André,
      Ik heb er geen ervaring mee.

      Je stelt deze vraag ook bij een verkeerde post [Recent Projects] terwijl het bij een post over de DSMR-logger thuis hoort!

    • Rob van den Wittenboer says:

      Hoi andre, ik heb evt code die ik tot nu toe gebruikte in een arduino-nano met ethernet shield maar dat is modbus tcp. (Redelijk eenvoudig aan te passen naar rtu) evt heb ik ook het schema/pcb ontwerp.

      Stap nu over naar dsmlogger ivm aankomende mqtt ondersteuning van mijn huidige regelfabrikaat.

  99. Eliott H says:

    Dag Willem,

    Een paar dagen geleden de DSMR v4.5 aangesloten op een Sagemcom CS 50001. Initieel bleef de datum op 2001-01-01 01:01:01 dus ging het niet praktisch. Na aanpassingen in de arduino-dsmr-be firmware is dit opgelost en kan ik alsook de stromen (current l1,l2,l3) uitlezen.

    Helaas zit ik met het probleem dat de ESP regelmatig verbinding verliest met het access point. Heb je hier eerder van gehoord?

    Met vriendelijke groet,
    Eliott

    • Willem Aandewiel says:

      Eliott,

      Het hoort niet te gebeuren. Heb je de firmware zelf gecompileerd of heb je de binary van github afgehaald?

      Waar maak je uit op dat hij de verbinding met je AP verliest? Staat de DSMR-logger erg ver van of juist heel dichtbij je AP? Beide situaties kunnen voor verbindings problemen zorgen.
      Op het OLED schermpje staat hoe “sterk” het WiFi signaal is (dat staat overigens ook bij het [Systeem Info] tabblad). Bij mij zegt’ie “-54” en ik heb nooit problemen..

  100. Bauke says:

    Hallo Willem,
    Zoals al eerder gemeld: api firmware werkt als een tierelier.
    Mooie overzichten. Maar…. ik heb ook zonnepanelen die stroom opwekken. Van SolarEdge. En ik zou het zo mooi vinden als die opbrengst ook geintegreerd kon worden in de SM-0verzichten. Dat moet mogelijk zijn omdat de resultaten van SolarEdge zonnepanelen vanuit je omvormer naar een SolarEdge server gaan. Op die server kan je dan je opbrengst bekijkenvia een client app, maar.. en dat is het mooie, je kunt ook een http request doen naar de server waarbij je de opbrengst in json krijgt.
    Hoe kan ik dat nu het beste combineren in jouw software?
    Mvrgr, Bauke

    • Willem Aandewiel says:

      Bauke,

      Als je “Mindergas” niet gebruikt zou je daar de code kunnen aanpassen voor de call naar SolarEdge. Wel moet je dan natuurlijk de data in de reply opvangen en deze verwerken. Voorwaarde is wel dat je de restAPI call met http kunt doen want https is te veel van het goede voor de ESP8266.

      Succes en hou ons op de hoogte van je vorderingen!!

  101. Bauke says:

    Hallo Willem,

    Natuurlijk bedankt voor je snelle antwoord. Ik gebruik inderdaad geen “Mindergas”.
    De call naar SolarEdge is echter wel een https call. Maar sowieso is het de vraag of de “Mindergas”-optie voor mij de oplossing was, want mijn bedoeling/idee was om de opbrengst uit SolarEdge te kunnen opslaan in het SPIFFS cq Ring bestand. Ik had de gedachte om dit 1x per dag aan het einde van de dag te doen. Zodat ik in de mooie DSMR-dag/maandoverzichten het volledige stroomverbruik en -opbrengst zou zien.

    Een optie is – denk ik – ook om dit in het presentatiedeel (javascript) te coderen, maar ook daar is de beperking tot ik de SolarEdge opbrengst niet persistent kan maken.(?)

    Je weet waarschijnlijk dat ik ook Domoticz gebruik en daar zou dit waarschijnlijk ook geregeld kunnen worden, maar ik vind je getabuleerde DSMR overzichten zo fraai.
    en daarbij komt ook dat ik je DSMR-logger installeer bij een aantal mensen die geen Domoticz hebben.

    Als je toch nog een aanwijzing mocht hebben, hoor ik dat graag.

    Mvrgr, Bauke

    • Bauke says:

      Hallo Willem,
      Inmiddels wat geexperimenteerd met de https call naar SolarEdge.
      In een ‘aparte’ applicatie is zo’n https call geen probleem en ik krijg keurig een json antwoord terug. Maar inderdaad als onderdeel van de dsmr-api software is dat teveel van het goede voor de esp8266. Of dat nu aan de (te kleine) stack of aan de heap ligt weet ik nog niet zeker. ik vermoed de stack.
      Ook weet ik (nog) niet of er wat aan te doen valt; heb jij een idee??
      Overigens zou de mindergas FSM software prima zijn te gebruiken voor mijn eigen idee.

    • Willem Aandewiel says:

      Hi Bauke,

      Je kunt bij een https call meen ik opgeven dat je géén certificaat (of ieder certificaat) accepteert. Dan wordt de data niet ge-encrypt maar kun je toch https doen.

      • Bauke says:

        Hallo Willem,
        Het was me inderdaad al gelukt om met https data van SolarEdge op te halen.
        Om certificaten te negeren gebruik je:

          client.setInsecure(); // Suppress the use of certificates
        

        In een stand-alone ino kan ik idd data ophalen en json verwerken.
        Echter als ik de SolarEdge.ino opneem bij de DSMRloggerAPI gaat
        het fout zodra er een GET wordt gedaan.

        Ik heb de volgende code-snippet ingepast (die dus stand-alone wel werkt):

        FYI Ik werk met Arduino 1.8.13 en de DSMRsoftware draait op een NodeMCUv3.
        Ik heb alle “defines” uitgezet alleen HAS-NO-SLIMMEMETER staat aan.
        Ik heb een call naar SolarEdge geplaatst als volgt:

        void loop () 
        {
        
          //--- do the tasks that has to be done 
          //--- as often as possible
          doSystemTasks();
          SolarEdge();
          loopCount++;
        .....
        /**
           HTTPSClient for getting information from SolarEdge
           Created on: 10.04.2021
        */
        
        #include ?
        #include ?
        
        const char* host = "https://monitoringapi.solaredge.com/site/XXXXXX/overview.json?api_key=XXXXXXXXX";
        
        void SolarEdge()
        { 
          WiFiClientSecure client;
          gende <--??
          HTTPClient https;
        
          Serial.print("[HTTPS] begin...\n"); // <- waarom gebruik je niet DebugT()?
          if (https.begin(client, host))
          { 
            printStackSize();
            Serial.print("[HTTPS] GET...\n"); // <- DebugT() geeft heap totaal en max block
            // start connection and send HTTP header
            int httpCode = https.GET();
            printStackSize();
          
            // httpCode will be negative on error
            if (httpCode > 0)
            { 
              // HTTP header has been send and Server response header has been handled
              Serial.printf("[HTTPS] GET... code: %d\n", httpCode); // <- DebugTf()?
              // data found on server
              if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY)
              { 
                String payload = https.getString();
                Serial.println(payload);
                // Deserialise json here
              }
            } else
            { 
              Serial.printf("[HTTPS] GET... failed, error: %s\n", https.errorToString(httpCode).c_str());
            }
          } else
          { 
            Serial.printf("[HTTPS} Unable to connect\n");
          }
          https.end();
          printStackSize();
          delay(10000); // <-- nooit delay gebruiken 
        }
        

        Ik weet niet goed wat ik u fout doe.
        ????

        • Bauke says:

          Sorry ik zie dat de code snippet niet helemaal goed doorkomt.
          nog een keer:

          /**
             HTTPSClient for getting information from SolarEdge
             Created on: 10.04.2021
          */
          
          #include <Arduino.ht>
          #include <ESP8266HTTPClient.h>
          
          const char* host = "https://monitoringapi.solaredge.com/site/XXXXXX/overview.json?api_key=XXXXXXXXX";
          
          void SolarEdge()
          { 
            WiFiClientSecure client;
            HTTPClient https;
          
            Serial.print("[HTTPS] begin...\n");
            if (https.begin(client, host))
            { 
              printStackSize();
              Serial.print("[HTTPS] GET...\n");
              // start connection and send HTTP header
              int httpCode = https.GET();
              printStackSize();
            
              // httpCode will be negative on error
              if (httpCode > 0)
              { 
                // HTTP header has been send and Server response header has been handled
                Serial.printf("[HTTPS] GET... code: %d\n", httpCode);
                // data found on server
                if (httpCode == HTTP_CODE_OK || httpCode == HTTP_CODE_MOVED_PERMANENTLY)
                { 
                  String payload = https.getString();
                  Serial.println(payload);
                  // Deserialise json here
                }
              } else
              {
                Serial.printf("[HTTPS] GET... failed, error: %s\n", https.errorToString(httpCode).c_str());
              }
            } else
            { 
              Serial.printf("[HTTPS} Unable to connect\n");
            }
            https.end();
            printStackSize();
            delay(10000); // <== NOOIT delay() gebruiken. Set een timer en check die
                          //     of beter nog: Gebruik saveTimers macro!
          }
          • Bauke says:

            wat een rommeltje maak ik er van, sorry:
            het begin is dus als volgt:

            void SolarEdge()
            {
            WiFiClientSecure client;
            client.setInsecure;
            HTTPClient https;

            Maar goed, uiteindelijk resulteert dit dus in een
            (stack?) dump , zodra de GET wordt uitgevoerd.

          • Willem Aandewiel says:

            Die delay(10000) zit mij niet lekker. Hij houdt in ieder geval alle overige processing op en dat is nooit goed!

            In DSMRloggerAPI.h dit opnemen:

            DECLARE_TIMER_SEC(updateSolarEdge,   10);

            Dan in

            void SolarEdge()

            als éérste:

                if !DUE(updateSolarEdge) return;
            

            En kijken of dat verbetering geeft.

            Ook zou ik alle

            Serial.print/ln/f

            statements vervangen door

            DebugT/ln/f

            omdat je dan niet alleen de beschikbare heap ziet maar ook het grootste aan één gesloten blok plus()! dat je, als je inlogt met telnet, de uitvoer ziet!

            Je lost het probleem er waarschijnlijk niet mee op, maar het geeft een hoop inzicht!

  102. Ceriel says:

    Complimenten voor de Erik interface.

    Die webinterface met de drie fases, is bijna precies wat ik zoek ten behoeve van live monitoring. Om te zien hoe een laadcontroller met kabel naar de P1-poort (van een e-auto), de netaansluiting gebruikt/belast.

    Als de verversingsfrequentie bij een nieuwere firmware van 2 naar 1 seconde gaat, dan wil ik daar alle logging mogelijkheden (RING bestanden, MQTT, mindergas, etcetera) voor inleveren.

    Ik begrijp dat de ESP8266 een limiterende factor is.

    • Willem Aandewiel says:

      Hi Ceriel,

      De ESP8266 is géén limiterende factor hoor. Zeker als je de firmware met de optie “160MHz” (in plaats van 80MHz) compileert.
      Waarom ik in de GUI de minimale interval op 2 seconden heb gezet heeft ermee te maken dat de Slimme Meter wel eens waar iedere seconden een telegram stuurt, maar veel Slimme Meters de data veel minder vaak updaten. Je krijgt dan dus wél iedere seconde een telegram binnen maar daarvan zijn er soms tien met dezelfde waarde.
      Maar goed, met een kleine aanpassing in de gui (JavaScript) kun je die limiet van 2 er simpel uithalen.

      • Ceriel says:

        Eigenlijk zou je dus moeten starten met een interval van 10 seconden, en als DSMR>=5.0 het interval verkorten. Of niet?

        Ik heb een pull request #38 gemaakt voor de Erik interface, zodat die ook met geretourneerde energie (zonnepanelen) iets zinnigers weergeeft dan 0.0. Nog testen of die het met verbruik ook nog goed doet.

  103. Bauke says:

    Hallo Willem,
    Ik heb je aanbeveling natuurlijk overgenomen. Helaas is het resultaat niet anders.
    Ik krijg in de serial monitor de volgende (deel) uitvoer:

    16:08:33.337 -> [13:33:11][  25464| 25368] setup       ( 383): SPIFFS correct populated -> normal operation!
    16:08:36.094 -> [13:33:14][  23464| 23264] setup       ( 427): HTTP server gestart
    16:08:38.657 -> [13:33:17][  23464| 23264] setup       ( 449): Startup complete! actTimestamp[010113133300S]
    16:08:38.657 -> [13:33:17][  23464| 23264] setup       ( 458): Last reset reason: [External System]
    16:08:39.206 -> [13:33:17][  23464| 23264] setup       ( 470): Enable slimmeMeter..
    16:08:39.360 -> [13:33:17][  17184| 17056] SolarEdge   (  19): [HTTPS] begin...
    16:08:39.360 -> stack size 436
    16:08:39.360 -> [13:33:17][  17088| 16832] SolarEdge   (  22): [HTTPS] GET...
    16:08:39.407 -> 
    16:08:39.407 -> User exception (panic/abort/assert)
    16:08:39.407 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
    16:08:39.407 -> 
    16:08:39.407 -> Abort called
    16:08:39.407 -> 
    16:08:39.407 -> >>>stack>>>
    16:08:39.407 -> 
    16:08:39.407 -> ctx: cont
    16:08:39.407 -> sp: 3ffffc30 end: 3fffffc0 offset: 0000
    16:08:39.407 -> 3ffffc30:  3fff42c0 00000000 00000000 00000000  
    16:08:39.407 -> 3ffffc40:  000000fe 00000000 00000000 00000000  
    16:08:39.407 -> 3ffffc50:  00000000 00000000 00000000 3fff43d8  
    16:08:39.407 -> 3ffffc60:  00000000 00000000 00000008 00000000  
    16:08:39.407 -> 3ffffc70:  3fff7ddc 3fff7efc 00004145 40229a3a  
    16:08:39.460 -> 3ffffc80:  3fff7ddc 3fff7efc 00000020 40229a4c  
    16:08:39.460 -> 3ffffc90:  007a1200 6d6676f4 00004145 4023eed5  
    .
    .
    .
    16:08:39.660 -> 3fffff80:  00000001 feefeffe feefeffe feefeffe  
    16:08:39.660 -> 3fffff90:  feefeffe feefeffe feefeffe 3fff3d38  
    16:08:39.660 -> 3fffffa0:  3fffdad0 00000000 3fff3cf8 402293d4  
    16:08:39.660 -> 3fffffb0:  feefeffe feefeffe 3ffe8914 4010115d  
    16:08:39.660 -> <<<stack<< 
    16:08:39.660 -> --------------- CUT HERE FOR EXCEPTION DECODER ---------------
    16:08:39.707 -> 
    16:08:39.707 ->  ets Jan  8 2013,rst cause:2, boot mode:(3,6)
    16:08:39.707 -> 
    16:08:39.707 -> load 0x4010f000, len 3584, room 16 
    16:08:39.707 -> tail 0
    16:08:39.707 -> chksum 0xb0
    16:08:39.707 -> csum 0xb0
    16:08:39.707 -> v2843a5ac
    16:08:39.707 -> ~ld
    16:08:39.761 -> [00:00:00][  29568| 29376] startTelnet ( 121): 
    16:08:39.761 -> Telnet server started ..
    
    • Willem Aandewiel says:

      Hi Bauke,
      Dit bevreemd mij:

      16:08:39.360 -> [13:33:17][  17184| 17056] SolarEdge   (  19): [HTTPS] begin...
      16:08:39.360 -> stack size 436
      16:08:39.360 -> [13:33:17][  17088| 16832] SolarEdge   (  22): [HTTPS] GET...
      

      stack size 436 is echt véél te weinig om ook maar iets te kunnen doen, zéker als je bijvoorbeeld met String’s werkt.
      Maar tegelijkertijd vraag ik mij af hoe je die stack berekent. Volgens de DebugT macro is er aan één blok 17056 bytes beschikbaar vóórdat regel 19 in de functie SolarEdge() wordt aangeroepen en 16832 bytes vlak voor regel 22 van dezelfde functie wordt aangeroepen. Jouw printStackSize() functie zegt dat er slechts 436 bytes beschikbaar is. Wat gebeurt er als je die functie niet aanroept??

      Anders zit er niets anders op dan code en vooral variabelen weg te halen …

  104. Bauke says:

    Ha Willem,

    De printStackSize is als volgt gedeclareerd:

    char *stack_start;
    void printStackSize()
    {
        char stack;
        Serial.print (F("stack size "));
        Serial.println (stack_start - &stack);
    }
    

    En in de void setup() (van de DSMRloggerAPI) als volgt geinitieerd:

    void setup() 
    {
        // init record of stack
        char stack;
        stack_start = &stack;
    ....
    

    Ik denk daarom dat de vermelde size = 436, de op dat moment extra gebruikte hoeveelheid stack is t.o.v. van programmastart; En dat zou toch hopelijk voldoende moeten zijn.

    Daarbij komt dat in mijn proef-standalone prog (waar de https-call het prima deed) ook gelijkwaardige getallen voor het stack-beslag werden getoond.

    ik heb zelf veel meer het ‘gevoel’ dat de declaratie van wifi client in de SolarEdge.ino conflicteren met de opzet van de WiFi client in DSMRloggerAPI.

    void SolarEdge()
    { if (!DUE(updateSolarEdge)) return;
      
      WiFiClientSecure client;
      client.setInsecure(); // Suppress the use of certificates
      HTTPClient https;
    

    maar ik kan daar geen vinger achter krijgen.

    Stel het zeer op prijs dat je zo mee wil denken.

    Groet, Bauke

    • Willem Aandewiel says:

      Bauke,
      Ik realiseer me nu pas dat het de stack weergeeft (sort of). De stack is een stuk geheugen waar variabelen op gezet worden bij een aanroep van een functie. Eén van de dingen die er op worden gezet is het adres van de opcode die direct ná de aanroep staat.
      Geen idee wat de informatieve waarde ervan is.
      Je zou nog kunnen proberen om “client” en “https” global te declareren (waar ook http wordt gedeclareerd, boven aan “networkStuff.h”) om te zien of het bij de declaratie al fout gaat en wat dit voor invloed heeft op de heap.

      • Bauke says:

        Hallo Willem,
        Het is me gelukt om via https zonnestroom data op te halen van SolarEdge binnen de DSMRloggerAPI software. Het had te maken met het definieren van de buffergrootte voor de TLS verbinding.
        Wat ik nu ga doen is de SolarEdge call netjes integreren in mijn copy van de DSMRloggerAPI software volgens het finite-state-machine principe.
        Mvrgr, Bauke

  105. Martin Beekhuis says:

    Ik hou mijn meterstanden per etmaal bij.
    Gemiddeld gebruik ik 16 kw per etmaal.
    Echter zie ik tot mijn schrik dat ik afgelopen etmaal 45 kw heb verbruikt.
    Door de verbruikswaarden per uur bij elkaar op te tellen zie ik dat ik inderdaad mar 16kw heb verbruikt. Toch wijst mijn actuele stand 45 kw maar aan dan gister.
    Hoe kan dat ?? Wie wijst mij de weg??

    Admin: verplaats van “Recent Projects”

    • Willem Aandewiel says:

      Martin,
      Te weinig informatie om hier iets zinnigs op te kunnen zeggen.
      Hoe ziet je (ring)dagbestand eruit?

      Voortaan graag comments bij de post waar het over gaat plaatsen!

  106. Ceriel says:

    Goedemorgen Willem,

    Voor jouw database: Landys & Gyr E350, ESP8266_GENERIC board [USE_DUTCH_PROTOCOL][USE_MQTT], MSH-TR-219 voeding via Tech4U P1H-005 splitter, Enexis al netbeheerder, Met vaak voorkomende “Exception” herstarts (low heap) functioneert de DSMR-logger. 76 Keren opnieuw opgestart in 4 dagen tijd.

    Extra info:
    Firmware Versie = v2.0.1 (17-04-2020)
    Chip ID = db515b
    ESP8266 Core Versie = 2_7_1
    SDK versie = 2.2.2-dev(38a443e)
    Hardware + flash = https://enri.nl/?page=pcb (omdat die een kant-en-klare behuizing heeft)

    Ik gebruik de aangepaste Erik interface. Die momenteel 4 API calls per 10 seconden doet. Zeker als ik via FS Explorer een nieuw bestand upload, dan gaat het mis met “low heap”. Daartussen door ook. De afgelopen nacht heeft de Erik interface niet eens aangestaan.

    Feedback over de enkelfase/driefase meter detectie in PR #39 is welkom. Om zo niet steeds nutteloos 3 extra api calls te doen.

    De logging functionaliteit gaat hier niet gebruikt worden. Het wordt een “monitoring tool voor (elektro)monteurs” van EV-laadpalen die op de P1-poort worden aangesloten om de laadsnelheid te regelen (vandaar de splitter).

    • Ceriel says:

      Zelfs zonder splitter komen de low heap exceptions. Verbose log output werd toegevoegd aan Issue #40: er komt wel een “doTaskTelegr” maar geen “processSlimm” meer.

      • Willem Aandewiel says:

        Misschien kun je dan beter aan Henri de Jong vragen waarom je systeem steeds crashed..

    • Willem Aandewiel says:

      Hi Ceriel,
      It puzzles me!
      Ik heb écht geen idee wat er aan de hand is.
      Heb je de firmware zelf gecompileerd? Dan zou het kunnen helpen om de nieuwste esp8266 core te installeren (ik meen 2_7_2).
      Bij onduidelijke problemen zie ik op internet vaak het advies om een keer te flashen met de optie “flash all content”. Je moet dan voor gebruik wel eerst weer SPIFFS flashen en de WiFi credentials instellen via het AP.

  107. Tobias Vandenbempt says:

    Goedemorgen,

    Ik gebruik al een tijdje jouw DSRM Logger en alles werkte geweldig goed tot mijn internet er even uit lag. Heb dan de logger moeten resetten om terug connectie te krijgen met WIFI (wat gelukt is) maar nu lijkt de tijd fout te staan?

    Hij geeft aan dat het Februari is => 2021-02-11 17:26:04

    Enig idee wat ik daar aan kan doen?

    Sorry als de vraag als eens beantwoord is hier, maar het is moeilijk zoeken door de comments.

    Alvast bedankt,
    Big Fan!
    Tobias

    • Willem Aandewiel says:

      Thobias,
      De tijd wordt bepaalt aan de hand van het record “timestamp” uit het telegram van de slimme meter.
      Behalve als je de firmware zelf gecompileerd hebt en de optie “USE_NTP” actief hebt gemaakt. Die optie mag je alléén gebruiken in combinatie met de “HAS_DSMR_PRE40”.

      • Tobias Vandenbempt says:

        Hey Willem,

        Ik heb niets veranderd aan de firmware.
        Waar zit de fout dan? Bij de netbeheerder?

        Thanks,
        Tobias

        • Willem Aandewiel says:

          Tobias,
          Ik denk niet dat de Netwerkbeheerder er iets aan kan doen.
          Deze firmware werkt bij 97% van de gebruikers probleemloos. Wat er anders is bij die overige 3% weet ik niet.
          Ik heb wel drie, niet heel wetenschappelijk geconstateerde, observaties die problemen lijken te geven

          • Als er veel fouten optreden bij het inlezen van een telegram (als de parser veel tijd nodig heeft om een begin character [/] en eind character [!] binnen te krijgen)
          • Als je WiFi connectie niet stabiel/goed is
          • Als de voeding voor de esp8266 nét niet altijd toereikend is
          • Tobias Vandenbempt says:

            Ja, hier is het probleem begonnen na een internet outage. Heb dan de logger moet restarten om hem terug online te krijgen.

            Jammer dat er geen oplossing voorhanden is.

  108. Koen says:

    Hallo Willem en Co,

    Eerst mijn complimenten voor Willem voor dit prachtig stukje hard- en software.
    Ik heb het aangekocht om te gebruiken op mijn belgische slimme meter, een Sononia T211.
    Aangesloten en geconfigureerd, homeassistant geconfigureerd.
    Ik had onmiddellijk al wat cijfers.
    Na enkele dagen stelde ik vast dat de datum en het uur niet evolueerden. MQTT kreeg ik ook niet aan de praat en alle telegrammen vielen ook in error.
    Je blog een paar keer doorgelezen en de ontwikkelingsomgeving geconfigureerd om de belgische versie te compileren met de aanpassingen van Staf.
    Uiteindelijke heb ik het hele blok (niet alleen current_l1) aangepast naar FixedValue in het bestandje fields-be.h:

    /* Instantaneous current L1 in A resolution */
    // DEFINE_FIELD(current_l1, uint16_t, ObisId(1, 0, 31, 7, 0), IntField, units::A);
    DEFINE_FIELD(current_l1, FixedValue, ObisId(1, 0, 31, 7, 0), FixedField, units::A, units::mA);
    /* Instantaneous current L2 in A resolution */
    // DEFINE_FIELD(current_l2, uint16_t, ObisId(1, 0, 51, 7, 0), IntField, units::A);
    DEFINE_FIELD(current_l2, FixedValue, ObisId(1, 0, 51, 7, 0), FixedField, units::A, units::mA);
    /* Instantaneous current L3 in A resolution */
    // DEFINE_FIELD(current_l3, uint16_t, ObisId(1, 0, 71, 7, 0), IntField, units::A);
    DEFINE_FIELD(current_l3, FixedValue, ObisId(1, 0, 71, 7, 0), FixedField, units::A, units::mA);
    

    Nu werkt alles naar behoren: datum en tijd, alle parameters van current en MQTT.
    Geen telegrammen met fouten meer.

    Nu kan ik een jaartje het verbruik analyseren, daarna volgen zonnepaneeltjes met een zelfbouw thuisbatterij.

    Nogmaals bedankt voor de goede documentatie en de vele tips van anderen.
    mvg
    Koen

    • Willem Aandewiel says:

      Hoi Koen,

      Ik heb je comment verplaatst (hij stond als reply op een comment van iemand anders).

      Ik ben nieuwsgierig naar de reden waarom je de current_ln velden verandert hebt van IntField naar FixedField en ook wat je gedaan hebt dat je nu opeens wel datum/tijd informatie hebt.

  109. Daniel says:

    Beste Willem,

    Sinds kort in het bezit van de DSMR-logger V4.5 en aangesloten op de Landys
    E360 DSMR 5.0 en complimenten voor wat je hebt ontwikkeld, alles werkt naar behoren.

    Ik ben bezig met een stukje (forum) software zodat je de DSMR-logger via de API kan weergeven op je phpBB forum.

    Ik maak gebruik van de /api/v0/sm/actual en kan lokaal IP of vast IP worden benaderd (Als je port forward in router)

    Ik zal de software link posten als het zover is.

    Groet,

    Daniel

    • Willem Aandewiel says:

      Daniel,

      Klinkt fantastisch!

      Waarom maak je gebruik van /api/v0/sm/actual? Deze is “depreciated” en alleen toegevoegd om backwards compatibel te zijn. Je kunt je software beter baseren op /api/v1/sm/actual.

  110. Daniel says:

    Beste Willem,

    Hierbij de link naar het stukje software mocht je gebruik maken van een phpBB forum en je de gegevens wilt weergeven erop. Link.

    Ik heb er een paar opties ingebouwd die je kan selecteren, zie bijlage.
    Tevens ben ik bezig om een ander stukje software te schrijven om de waardes die worden opgeslagen in de database weer te geven, maar dit volgt later.

    Hopelijk kunnen wat mensen hier wat mee 😉

    Groet,

    Daniel

  111. Staf Van Gestel says:

    Zou het kunnen zijn dat na één of andere Windows10 update de logger niet meer te bereiken is? Logger zelf ontvangt telegrammen, heb hem al eens opnieuw opgestart. Maar ik kan hem niet meer bereiken. Als ik geluk heb krijg ik nog een scherm zoals te zien in bijlage. Nog iemand met dit probleem?

    • Staf Van Gestel says:

      Sorry,
      meer dan een uurtje geprobeerd met resetten en volledig opnieuw opstarten en plots werkt het terug….
      Had al naar het access point gekeken maar de verbinding met wifi was 100% voor de logger, dus hij had verbinding. Maar het is dan precies dat de logger het even niet verwerkt kreeg. Het werkt nu terug op Google Chrome en Microsoft Edge…

  112. Rom says:

    Ik werd door opencircuit doorverwezen naar uw website.

    17-11-2020 heb ik bij opencircuit de dsmr logger V4.5 aangeschaft. Op zich functioneert deze goed en ben ik erg tevreden met wat ik er mee kan.
    Maar er is wel een probleempje mee.
    De logger is regelmatig niet te bereiken.
    Soms heeft deze een ander adres gekregen (dit is dan wel te ontdekken met een tool op de pc) maar het gebeurd ook dat ik hem niet kan bereiken of kan ontdekken.
    Het blauwe ledje knippert dan wel ongeveer om de 10 sec. Lijkt erop dat het normaal functioneert maar is toch niet te bereiken. De enige oplossing is dan uit en weer aanzetten.
    Deze handeling resulteert dan weer wel dat er een hik in de uur registratie zit.

    Gegevens van de DSMR logger:

    Firmware Versie	v2.0.1 (17-04-2020)
    Gecompileerd	Apr 17 2020 11:48:16
    HostName	DSMR-API
    ESP8266 Core Versie  2_6_3
    SDK versie  2.2.2-dev(38a443e)
    Aantal keer opnieuw opgestart 46
    

    Kunt u me daar in helpen in wat de mogelijkheden zijn hiervoor?

    Met vriendelijke groeten

    Rom

    • admin says:

      Bij dit soort problemen is de voeding vaak de oorzaak. In dat geval zal een externe (5volt/USB) voeding het probleem oplossen.
      Een andere oorzaak kan de WiFi verbinding zijn. Als hij een ander (IP)adres krijgt dan is de lease termijn in je modem wellicht te kort. Ook als je modem (on) regelmatig reset kan hij aan de DSMR-logger een ander IP-adres toewijzen.

  113. Olifant1990 says:

    Ha Willem,

    Alweer bijna 1,5 jaar heb ik naar volle tevredenheid je bordje v4.5 met ESP-12 in gebruik.
    Daarop heb ik eigen firmware draaien, die op alle ESPs draait in huis.
    De blauwe ingebouwde LED van de ESP kan ik bedienen via GPIO 2.
    Nu rest me nog 1 ding, is de rode led ook op een GPIO aangesloten en dus aan te sturen?
    En welke pin is dat dan?

Leave a Reply

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

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

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