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

200,237 keer bekeken / 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.

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 kijk, voor een volledig beeld, ook hier, hier, hier en hier!

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).

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

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. 

Als je dit project leuk vindt overweeg dan om een kleine donatie te geven

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, DSMR-logger, ESP8266, Firmware, WiFi and tagged , , , , , . Bookmark the permalink.

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

  1. Sam says:

    Systeem: Kaifa ma304c. Deze info is belangrijk voor mijn vraag: Heeft iemand dit werkend gekregen met de 5V voeding van deze meter? Ik heb het programma geinstalleerd op een Nodemcu. Ik heb contact met een externe voeding 5V, echter zodra ik het aansluit op de Kaifa die 5V geeft op pin 1-6 werkt het niet. De spanning duikt naar 3.4V. Nog weer s aangesloten op een externe voeding: geen probleem. Ik dacht dat de Kaifa 304C 100mA kon leveren? Ik heb de stroom gemeten: ca 75mA. Grote condensator over de 5V gesoldeerd, nog steeds te lage spanning. Hebben anderen dezelfde ervaring?

    • Willem Aandewiel says:

      Beste Sam,

      Met een stroommeter meten hoeveel stroom een MCU nodig heeft ‘werkt niet’. Je meet daar n.l. niet de piekstromen mee die af-en-toe voorkomen. Om te beginnen: tijdens het verbinden met je WiFi netwerk heeft de esp8266, kortstondig, ruim 200mA nodig. Als de spanning van de voeding uit de Slimme Meter terug loopt komt dit omdat er méér stroom gevraagd wordt dan de meter kan leveren. Het is een beveiliging mechanisme van de Slimme Meter (SM).
      Om alle verwarring uit te sluiten: sluit een externe 5volt (USB) voeding aan en kijk of je alles werkend krijgt en ga daarná kijken of je het met de voeding van de SM ook lukt. Pas wel op: sommige SM’ers vinden het niet prettig als er een externe spanning op pin 6 wordt gezet.

      Oh ja, een ‘grote’ condensator over de voeding heen zetten werkt contra productief. Bij het aansluiten op de SM zal de condensator in korte tijd opgeladen willen worden naar 5volt. Daar is een grote stroom voor nodig die de voeding van de SM doet afschakelen.

  2. Geert Steyaert says:

    Hoi,

    ik heb in België, sinds vorige week, een ‘slimme’ watermeter (https://www.sagemcom.com/it/node/558) en de default configuratie in de firmware past niet 100%.
    Ik zie -in de firmware tools pagina- dat ie als mbus type 7 binnenkomt, op het MBus-2 kanaal.
    Waarschijnlijk dat ie daardoor de UoM ‘GJ’ meekrijgt, terwijl ik voor deze meter m3 verwacht. Is er een manier om dit manueel (in het Tools scherm) op te lossen, eventueel het zonder een recompile van de firmware? Eventueel een override van het type? Wat zou het dan moeten worden?

    Dank je.

    • Geert Steyaert says:

      Ik heb net in de OMS Sec.2 M-bus specs gekeken en ik zie dat 7 inderdaad ‘cold water’ meter is. Terwijl Electricity 3 is en Gas 4. Misschien dat je FW alles hoger dan 4 maar gelijk stelt aan Energy, met UoM (GJ), zoals een aantal types wel zo zijn. En aangezien er bij mijn weten in NL geen publieke smart watermeters in gebruik zijn, is deze bug nog niet gezien.
      Maar zoals gezegd, ik ben nog niet in de code gedoken. ik wou toch even deze extra info geven

      • Willem Aandewiel says:

        Geert,

        Excuses voor de late reply. Ik ben nogal druk de laatste tijd.

        Ik dénk dat je dit in de library (dsmr2Lib) moet oplossen. En wel in het “fields2.h” file. Ergens in de regels vanaf 398, 418, 438 en 456. Ik heb de library niet geschreven maar, met trail and error, aangepast.
        Overigens begrijp ik niet (helemaal) waar je precies een probleem mee hebt. De restAPI geeft alleen de meterstanden van wat er op de Mbus is aangesloten terug. Geen (verkeerde) eenheden.

  3. Bert Vrieling says:

    Beste Willem,
    Ik heb een dsmr reader besteld bij opencircuit omdat ik enorm enthousiast werd na het lezen van jouw artikelen. Bij het aansluiten aan mijn slimmemeter een Landis+Gyr SMR doet hij helemaal niets, geen respons, geen netwerk wat ontstaat en waar ik in kan loggen. Ik veronderstel dat hij kapot is. Ik heb contact gezocht met Opencircuit, maar daar zeggen ze, dat ik eerst contact met jou op moet nemen. Kun jij mij verder helpen.

    kun je een replay geven op mijn mail

    • Willem Aandewiel says:

      Beste Bert,

      Ik heb wat meer informatie nodig om hier iets over te kunnen antwoorden.

      Heb je een DSMR-logger mét of zonder OLED schermpje?

      Brand de rode led?
      Als er helemaal niets gebeurd als je de DSMR-logger op de Slimme Meter aansluit is de kabel waarmee je dat doet waarschijnlijk niet goed.
      Is het een RJ12 kabel met zes(!) aansluitingen?
      Heb je de kabel ver genoeg in de Slimme Meter en in de DSMR-logger gestopt (je moet een ‘klik’ horen).

      • Bert Vrieling says:

        Beste Willem,

        Het is een DSMR-logger zonder OLED schermpje.

        De rode led brand ook niet, de kabel waarmee ik hem aansluit is meegeleverd. Een kabeltje van 30 cm. Hij heeft idd zes aansluitingen en elke aansluiting heeft ook een kleur draad op de aansluiting. De kabel zit ver genoeg in de Slimme Meter en in de DSMR-logger. Ik heb nog een andere kabel geprobeerd, maar ook geen reactie. De rode Led doet helemaal niets.

        • Willem Aandewiel says:

          Ok, als de RJ12 kabel goed is (en met twee lijkt me dat wel in orde).
          Zit de jumper op de goede plaats (moet over de middelste pin en de pin met label “SM” geplaatst zijn).

          • bert Vrieling says:

            Beste Willem,

            Dat was het probleem. Ik heb hem verzet en bij aansluiting ging de rode led branden en het blauwe lampje van de wifi. Ik heb hem aan mijn huis wifi verbonden en nu ga ik er verder mee aan de slag.

            Dank voor je aandacht en speurtocht naar dit probleem. Ik zal Opencircuit informeren.

          • Willem Aandewiel says:

            Fijn dat het is opgelost!

  4. Peter says:

    Sinds 2 weken maak ik ook gebruik van versie 4.5 hardware. Bij mij regelmatig dagelijkse onverwachte crashes. Ik vermoed de minder goede wifi in de meterkast als oorzaak.

    Na wat nadenken heb ik de firmware geheel vervangen door esphome.

    Moest wel het e.a. aanpassen m.b.t. de juiste pins etc. Maar werkt perfect sindsdien, 5 dagen zonder crashes zover. Je moet dan wel een esphome instantie hebben en een tool om het in te verwerken, zoals homeassitant. Dat draaide al hier.

    Het esphome script:

    substitutions:
    | name: dsrm
    | friendly_name: dsrm

    esphome:
    | name: ${name}
    | platform: ESP8266
    | board: esp12e

    wifi:
    | ssid: !secret wifi_ssid
    | password: !secret wifi_password

    # Enable fallback hotspot (captive portal) in case wifi connection fails
    ap:
    | ssid: "${friendly_name} Fallback Hotspot"
    | password: !secret fallback_password

    captive_portal:

    # Enable logging
    logger:
    | # ESP8266 only - disable serial port logging, as the solar component
    | # needs the sole hardware UART on the ESP8266
    | baud_rate: 0
    | level: VERBOSE

    # Enable Home Assistant API
    api:

    ota:

    # Enable Web server.
    web_server:
    | port: 80

    # Reboot button
    switch:
    | - platform: restart
    | name: "restart"

    # Sync time with Home Assistant.
    time:
    | - platform: homeassistant
    | id: homeassistant_time

    uart:
    rx_pin: GPIO13
    baud_rate: 115200
    rx_buffer_size: 1500

    dsmr:
    | request_pin: GPIO12
    | request_interval: 10s

    sensor:
    # Sensors with general information.
    | # Uptime sensor.
    | - platform: uptime
    | name: ${name} Uptime
    | # WiFi Signal sensor.
    | - platform: wifi_signal
    | name: ${name} WiFi Signal
    | update_interval: 60s
    | #DSMR
    | - platform: dsmr
    | energy_delivered_tariff1:
    | name: ${friendly_name} Energy Delivered Tariff 1
    | state_class: total_increasing
    | energy_delivered_tariff2:
    | name: ${friendly_name} Energy Delivered Tariff 2
    | state_class: total_increasing
    | energy_returned_tariff1:
    | name: ${friendly_name} Energy Returned Tariff 1
    | energy_returned_tariff2:
    | name: ${friendly_name} Energy Returned Tariff 2
    | power_delivered:
    | name: ${friendly_name} Power Consumed
    | power_returned:
    | name: ${friendly_name} Power Returned
    | electricity_failures:
    | name: ${friendly_name} Electricity Failures
    | electricity_long_failures:
    | name: ${friendly_name} Electricity Long Failures
    | voltage_l1:
    | name: ${friendly_name} Voltage L1
    | voltage_l2:
    | name: ${friendly_name} Voltage L2
    | voltage_l3:
    | name: ${friendly_name} Voltage L3
    | current_l1:
    | name: ${friendly_name} Current L1
    | current_l2:
    | name: ${friendly_name} Current L2
    | current_l3:
    | name: ${friendly_name} Current L3
    | power_delivered_l1:
    | name: ${friendly_name} Power Delivered L1
    | power_delivered_l2:
    | name: ${friendly_name} Power Delivered L2
    | power_delivered_l3:
    | name: ${friendly_name} Power Delivered L3
    | power_returned_l1:
    | name: ${friendly_name} Power Returned L1
    | power_returned_l2:
    | name: ${friendly_name} Power Returned L2
    | power_returned_l3:
    | name: ${friendly_name} Power Returned L3
    | gas_delivered:
    | name: ${friendly_name} Gas Delivered

    | # Belgium
    | #gas_delivered_be:
    | # name: ${friendly_name} Gas Delivered BE

    | # Luxembourg
    | #energy_delivered_lux:
    | # name: ${friendly_name} Energy Delivered Lux
    | #energy_returned_lux:
    | # name: ${friendly_name} Energy Returned Lux

    text_sensor:
    | # Text sensors with general information.
    | # Expose ESPHome version as sensor.
    | - platform: version
    | name: ${name} ESPHome Version
    | # Expose WiFi information as sensors.
    | - platform: wifi_info
    | ip_address:
    | name: ${name} IP
    | ssid:
    | name: ${name} SSID
    | bssid:
    | name: ${name} BSSID
    | #DSMR
    | - platform: dsmr
    | identification:
    | name: ${friendly_name} Identification
    | p1_version:
    | name: ${friendly_name} Version

    | # Belgium
    | #p1_version_be:
    | # name: ${friendly_name} Version BE

    • Willem Aandewiel says:

      Peter,

      Ik denk dat je hier een heleboel gebruikers gelukkig mee maakt.
      Zelf heb ik geen espHome en heb ik ook geen idee wat je ermee moet, maar ik zie wel dat espHome een grote community heeft dus er is vast vraag naar!

      (ik heb voor iedere geïntendeerde regel een ‘|’ gezet omdat de opmaak om de één-of-andere manier door WordPress weg gehaald wordt)

    • Johan says:

      Dag Peter, Ik ben ook geinterreseerd in jou project met ESP-Home. Zou je mij wat meer kunnen uitleggen hoe je dit hard-en softwarematig hebt gedaan. Ben een gepensioneerde hobbyist maar weet wel het e.e.a van deze materie. Zie graag je reactie tegemoet. Gr. Johan

      • Peter Nuijten says:

        Hoi Johan,

        Het ESPHOME is meestal iets in combinatie met Homeassitant. Dat is de ´makkelijste’ weg. –> https://www.home-assistant.io/
        Meervoudige opties daar op het aan de praat te krijgen. Ik zou daar het e.a. lezen.

        ESPHOME is daar dan een onderdeel van. Het apparaat dat Willem heeft ontwikkeld werkt er iig prima met de ESPHOME firmware. Dat scheelt je zelf het e.a. aan solderen en uitzoeken aan hardware voor het meterkast deel. De yaml hoe het bij mij thuis draait heb ik al gepost. Die heb je in een van de laatste stappen nodig om dat Willem device aan de praat te krijgen in esphome.

  5. jur van der burg says:

    ik draai v3.0.4 (14-10-2022) en dat werkt over het algemeen prima. Ik had alleen recent een internet storing, en een paar dagen later was internet down voor onderhoud. Op zich geen issue maar deze versie kan dan niet meer restarten omdat hij blijft hangen op een ntp request tijdens startup wat logisch is. Alleen is ntp niet noodzakelijk waardoor ik een aantal uren logging gemist heb. Is er een aanpassing mogelijk om toch op te starten als de ntp server na een aantal reries niet bereikbaar is?

    • Willem Aandewiel says:

      Jur,

      Het kan zijn dat hij tijdelijk geen NTP tijd kan ophalen.
      Over het algemeen lost dit zich vanzelf op.

      • Jur van der Burg says:

        Willem,

        Ja precies, het lost zich op als internet weer terug is.

        Maar in de tussentijd raak ik data kwijt. En bovendien gebruik ik deze data om mijn laadpaal aan te sturen zodat deze eventueel vermogen kan terugregelen indien er te veel wordt gebruikt, maar dat lukt in zo’n geval niet meer.

        Het lijkt mij dat een exacte timestamp in dsmr niet nodig is (het staat immers ook in het verkregen datagram). En als de tijd niet verkregen wordt hangt het systeem compleet, waardoor er geen data kan worden opgevraagd en dat is mijn issue.

        Jur.

        • Willem Aandewiel says:

          Ik snap je probleem.
          Waarschijnlijk is het al opgelost als dit stukje code:

          if (!startNTP())
          {
          DebugTln(F("ERROR!!! No NTP server reached!\r\n\r"));
          if (settingOledType > 0)
          {
          oled_Print_Msg(0, " ", 0);
          oled_Print_Msg(2, "geen reactie van", 100);
          oled_Print_Msg(2, "NTP server's", 100);
          oled_Print_Msg(3, "Reboot DSMR-logger", 2000);
          }
          delay(2000);
          ESP.restart();
          delay(3000);
          }

          … regel 332 weg-be-commentarieerd. Eventueel 336 t/m 341 ook.
          Kijken of dat werkt. Zo niet dan langzaam alle call’s naar het ophalen van de NTP weghalen. Zoals misschien regel 683 t/m 688.
          Beetje trial and error.

  6. Dick Wismeijer says:

    Aangezien de DSMR logger zonder problemen draaide, heb ik weining aandacht besteed aan enige upgrade die sinds hebben plaatsgevonden. Uiteindelijk heb ik de stoute schoenen aangetrokken om de DSMRloggerAPI firmware van versie 2 naar versie 3 te upgraden daarbij gebruik makende van DSMRloggerAPI.ino.bin en DSMRloggerAPI.mklittlefs.bin files. Het uiteindelijke resultaat is niet wat ik gehoopt had en weergegeven in de bijlage. Kan geidentificeerd worden wat ik fout heb gedaan of nog meer moet uitvoeren?

    • Willem Aandewiel says:

      Dick,

      Het lijkt erop dat je het LittleFS niet (goed) ge-flashed/ge-upload hebt.

      Je kunt dat opnieuw doen door als URL “http://dsmr-api.local/update” of “http:///update” in te toetsen.
      Je krijgt dan weer het scherm van de update-server te zien waar je op de tweede regel het DSMRloggerAPI.mklittlefs.bin bestand kunt selecteren en op de knop [Update FileSystem] te klikken.

      Zie ook de documentatie!

      • Dick Wismeijer says:

        Je recommendatie uitgevoerd en heb nu weer verbinding. Wat ik echter helaas mis is de gasmeter data. Deze blijft nul. Bovendien had ik aanvullende mqtt data n.a.v. een eerdere coorespondentie met je hierover. Ook deze mis ik. Is e.e.a. via Filesystem manager te corrigeren of sta ik voor een compleet nieuwe flashing exercitie.

        • Willem Aandewiel says:

          Dick,

          Alles wat je kunt doen en moet weten staat in de documentatie.

          Op welk MBus wordt je gasmeter gegevens doorgegeven? Wat laat een telegram daarover zien?
          Heb je de instellingen daarop aangepast?

          • Dick Wismeijer says:

            Aangezien ik niet al m’n problemen opgelost kreeg na upgrade van DSMRloggerAPI v2 naar v3, ben ik overgegaan op naar een volledige Firmware reflash. Hierbij heb ik gebruik gemaakt van de https://github.com/mrWheel/DSMRloggerAPI ZIP file. Uitgepakt en renamed folder in DSMRloggerAPI. Na COMPILE and UPLOAD kom ik helaas niet verder vanwege een foutmelding. Ik volg exact de omschrijving zoals vermeld in de DSMRloggerAPI gitbook doc. Enige suggestie waar ik naar moet kijken om deze foutmelding op te lossen?

            compilation_error

          • Willem Aandewiel says:

            Hi Dick,

            Ik zie dit: “1MB (FS:64KB OTA:~470KB)” … lijkt me niet goed!

            En dit is een hint die wellicht ook extra zinvolle informatie geeft:

            This report would have more information with
            "Show verbose output during compilation"
            option enabled in File -> Preferences.

            Maar de drie fouten zijn functies die als “bool” gedefinieerd zijn, maar “void” moeten zijn!

            Op github staat nu de aangepaste versie.

          • Dick Wismeijer says:

            Hi Wim,
            Je opmerkingen:
            Ik zie dit: “1MB (FS:64KB OTA:~470KB)” … lijkt me niet goed! – Well spotted, gecorrigeerd!

            Maar de drie fouten zijn functies die als “bool” gedefinieerd zijn, maar “void” moeten zijn!

            Op github staat nu de aangepaste versie.
            Met aangepaste versie werkt weer als vanouds inclusief de additionele MQTT parameters. Waarvoor dank!
            Ik maak gebruik van een OLED1306 display. Op dit moment wordt statisch weergegeven +/- Power. Daarnaast middels scroll – upTime, RSSI, Heap, IP en Telegramcount.
            Ik zou graag zien dat ik de huidige Meter1, 2 en Gasmeter stand meeneem voor snelle aflezing. Is dit haalbaar en welke suggestie heb je hiervoor.

          • Willem Aandewiel says:

            Hi Dick,

            Fijn dat het (weer) werkt. Excuses voor het ongemak.

            Natuurlijk kan wat jij op het display wilt zetten. Ik heb er alleen geen suggesties voor.

          • Dick Wismeijer says:

            Hi Wim, het is me gelukt Meter1/2 en Gas standen te verpakken in de OLED DisplayStatus routine. Aangezien ik geen stroom opwek wil ik tevens +Power in ProcessTelegram doen veranderen in Tariff weergave. Helaas stuit ik hier met de volgende code op onjuiste weergave van de string:
            snprintf(cMsg, sizeof(cMsg), “Tariff%7d”, electricity_tariff ());
            Enige aanwijzing mogelijk waar de fout zit?

          • admin says:

            Dick,

            Ik heb, om te beginnen, deze comments naar de post verplaatst waar ze thuis horen!

            Mooi dat het je gelukt is om de presentatie op het OLED scherm aan te passen.

            om he veld electricity_tariff te benaderen moet je iets van DSMRdata.electricity_tariff gebruiken. Dit veld is gedefinieerd als een type String en dus verwacht ik dat de snprint() regel er ongeveer zo:

                snprintf(cMsg, sizeof(cMsg), “Tariff%7s”, DSMRdata.electricity_tariff);
            

            uit moet zien.
            Helaas maakt de originele en briljante arduino-dmsr library van Matthijs Kooijman (waar mijn dsmr2 library op gebaseerd is) gebruik van templates .. en dáár snap ik dus helemaal niets van.

            Succes!

          • Dick Wismeijer says:

            Hi Wim,
            Allereerst excuses, misschien heb ik dit weer op de verkeerde plaats gepost. Echter dit is de enige plek waar ik een REPLY link vond. Ik wilde nml niet nalaten je enorm te bedanken voor de aanwijzingen. Systeem draait nu op laatste firmware met customized MQTT en OLED scherm. Super functioneel. Zelfs mijn vrouw kan nu makkelijk de meterstand aflezen/doorgeven. Geweldig en nogmaals dank. Dick

  7. henk koorn says:

    hoi Willem,
    alle respect wat je allemaal maakt.
    ik heb het script van Michel Groen bewerkt om de data van DSMRloggerAPI naar domoticz te schrijven, heb je daar belangstelling voor ?
    met vriendelijke groet
    henk

  8. Peter Liebeton says:

    Hallo Willem,

    Ik heb eergisteren een logger versie 4.5 esp12 met 1,3″ oled scherm gekocht bij opencircuit.
    Ik kom alleen niet door de eerste keer opstarten heen.
    Je boek heb ik ook gekocht via de site, mijn ervaring is gelijk aan die je in de tekst beschreef.
    Niet te diepgaand dus op dit moment.

    Gegevens :

    * Merk én Type Slimme Meter : Landis Gyr E350 DSMR 4.2
    * Gebruikte Compiler Opties : logger is nog niet eerste keer opgestart anders Arduino IDE 1.8.19.
    * Externe voeding gebruikt : voeden via de meter ging niet scherm licht weinig op en rode
    lampje brand niet, extern via aansluiten op P1 hub van Homewizard, is hetzelde als op jou site lijkt het.
    De hub heeft ook geen externe voeding maar wordt gevoed door de P1 meter van HW die wel op het net is aangesloten.
    * Energy Leverancier : Oxxio met meter en onderhoud van Stedin.
    * Functioneert de DSMR-logger : Nog niet de volgende stappen heb ik doorlopen :

    Het belangrijke probleem is het op wifi aangesloten krijgen van de unit lijkt het,
    ik krijg de dsmr unit in de wifi lijst te zien kan ook ssid en password invullen maar daarna gebeurd het volgende :

    Het Oled schermpje geeft :

    de juiste SSID naam van mijn router
    IP (IP unset)
    setup NTP server

    AP mode active
    Connect to:
    DSMR-API-AC:OB:….

    Het rode lampje in het eerste geval blijft branden en de blauwe gaat na 3 keer blink
    uit en niet meer aan. Via de browser ( http://DSMR-WS.local/ ) heb ik ook geprobeerd de
    API schermen te benaderen maar dat werkt niet melding is “De site is niet bereikbaar”.

    Het lijkt dat ik dichtbij ben maar nog net niet, hoop dat je me verder kunnen helpen.

    Groeten Peter

    • Willem Aandewiel says:

      Hi Peter,

      Wat een vreemd probleem.
      Twee zaken vallen mij uit je verhaal op:

      1) je modem/WiFi AP lijkt geen IP adres aan de DSMR-logger te geven. Als ik dat goed zie is het een probleem dat je in je modem moet oplossen.
      2) je probeert de DSMR-logger met “DSMR-WS.local” te bereiken. Standaard is de hostnaam van de DSMR-logger “DSMR-API.local”

      Zie vooral ook de documentatie!

      Mocht het toch niet lukken dan hoor ik dat graag van je.

  9. Johan says:

    Dag Willem, allereerst wens ik jou en je naasten een gezond en hobbyrijk 2023 toe. Ik weet niet of ik deze vraag hier kan plaatsen maar doe toch een poging. Ik wil de tarieven ivm met het prijsplafond in de Logger aanpassen per 1-1-2023. Wat gebeurt er met de bestanden van 2022 in dit geval, blijven die staan op de tarieven van 2022 ? Gr. Johan.

    • Willem Aandewiel says:

      @Johan,

      Dat is een goeie vraag.

      Helaas kent de DSMRloggerAPI firmware slechts één tarief per soort energie. Misschien iets om later aan te passen in een tarief per jaar (maar voor variabele contracten is dat natuurlijk ook weer niet toereikend!).

      Verander je dit tarief, dan worden de nieuwe waarden gebruikt voor alle (historische) data.

  10. Johan says:

    Hoi medeloggers. Hierbij mijn bevindingen met het project tot nu toe. Het ging niet zo lekker met de ESP 12E dus (zie mijn eerdere relaas) ben ik over gestapt op de D1 Mini.
    Had even wat problemen met het Flashen van de Firmware met Arduino IDE.
    Uiteindelijk D3 aan GND gelegd en toen ging het zonder problemen.
    Draait nu 1 dag zonder problemen, alles gaat supersnel, geen foutmeldingen meer tot nu toe. Schijnbaar heeft de D1 iets meer vermogen dan de ESP 12 E.

    • Willem says:

      Hi Johan,

      Bedankt voor het “delen”.

      Bij mijn weten zit er op de D1 Mini precies dezelfde esp8266 chip als die je “bare” gebruikt! Dáár zal het verschil dus niet in zitten!

      Dat jouw setup pas werkt als je D3 (GPIO00) aan GND legt is opmerkelijk. De esp8266 start niet op als GPIO00 “low” is!

      Zie ook deze post.

  11. Johan says:

    Ik zit nog steeds te worstelen met de melding “500:interval server error (low heap)” en bij het opstarten van de GUI-pagina krijg ik een blanco blauw scherm. Door een aantal keren de pagina te verversen komt dit uiteindelijke wel in beeld. Zijn er meer Loggers die hier mee worstelen ?
    Groet,
    Johan.

    • Manuel says:

      Sinds de update wat slechts een wijziging van de url van mindergas betrof is de logger meer niet dan wel bereikbaar. De webserver is dan traag, werkt niet, of laad een pagina half. Het laden van de pagina’s gaat niet goed maar ik heb geen idee waarom. Soms lukt een directe link naar de Filemanager maar dan houd het op.
      De dagelijkse reset of zelf resetten middels de knop of de kabel loshalen heeft geen effect. Een telnet sessie wil vaak nog wel lukken. Het probleem zit duidelijk in die webserver.
      Een werkende work-around heb ik nog niet gevonden. Het enige wat mij opvalt is dat bij aanschaf de Logger als accesspoint zichtbaar bleef. Dat is niet meer het geval. Zou daar een oorzaak liggen?

      • Willem Aandewiel says:

        Manuel,

        Vervelend dat je problemen met de nieuwe firmware ondervindt. Inderdaad is het “spook AP” van eerdere versies uitgeschakeld. Het is nooit de bedoeling geweest dat er, na verbinding met je echte Access Point ook nog een AP van de ESP8266 zichtbaar zou zijn. Overigens is er, sinds v3.0.1 wel iets meer aangepast dan alleen de URL voor “mindergas.nl”!

        De slechte bereikbaarheid die jij ervaart komt wel vaker voor bij gebruikers en verdwijnt ook vaak vanzelf -of na een keer opnieuw flashen-.

        Waarom denk je dat het probleem “duidelijk in de webserver” zit?

        De slechte bereikbaarheid heeft waarschijnlijk met een slechte WiFi verbinding te maken. Waarom eerder niet en nu wel? Geen idee!!. Misschien helpt het om je Router/Modem een keer te resetten en de DSMR-logger daarna opnieuw op te starten?

        • Manuel says:

          Halo Willem, mijn conclusie komt voort uit het niet laden van de pagina’s. Een slechte WIFI verbinding zou natuurlijk kunnen maar is niet logisch op 50cm van de router. Ik heb er ook weinig verstand van maar zag wel nav een ander bericht dat de ping erg fluctueerd en vaak veel te hoog is. Maar wonder boven wonder …… de eerste week van januari loopt het prima.

  12. Johan says:

    Hoi mede “Loggers”. Hierbij mijn ervaring met deze Logger. Heb het schema van de Logger een klein beetje aangepast in Kicad. Daarna een printje laten maken (je krijgt er van onze Chinese vrienden 5 voor de prijs van 1). Een beetje soldeerwerk verricht en klaar is kees. Maar dan komt voor mij de moeilijkste fase van dit mooie project , het installeren van de software. Ik ben een Hardware man dus het heeft nog al even geduurd voordat ik zover was dat ik de Wifi-credentials op 192….1.4 kon invullen. De stappen erna waren goed beschreven in de uitgebreide uitleg van Willem. Na nu een week verder te zijn werkt alles (vandaag nog even een update gedaan betreffende de Wifi verbinding waarbij ik alles nog een keer opnieuw heb moeten installeren). Kreeg zojuist nog wel even een melding op de Telegram pagina “500: internal server error (low heap)”, maar na de pagina te hebben ververst was dit opgeheven. De afgelopen week heb ik veel ondersteuning gehad van Willem. Wat heeft deze man een geduld . Blijf ook de ontwikkeling volgen van de opvolger van deze Logger, ziet er ook veel belovend uit. Nogmaals hartelijk dank voor je tomeloze inzet om mij de kunstjes van deze mooie hobby te leren. Groet, Johan.

  13. Leo van der Hoek says:

    Ik heb al heel lang het probleem dat de webserver op de logger niet bereikbaar was zodat ik hem dan opnieuw moest resetten. De logger werkt gewoon door, maar de UI is niet meer bereikbaar. Daarom ben ik blij dat er nu een optie is om de de logger elke dag te rebooten.
    Ik vraag me af of het mogelijk is om regelmatig de webserver te checken of die nog bereikbaar is mbv localhost ping vanaf de logger en afhankelijk daarvan een reboor initieren?

    • Willem Aandewiel says:

      Hey Leo,

      Ik had sporadisch hetzelfde probleem. Met de dagelijkse reset optie heb ik daar geen last meer van (gehad).

      Er zit een stukje code in de loop() die dit tracht te tackelen, maar dat werkt niet (altijd) goed.

      Ik ben bezig met een nieuw project waarin dit probleem goed is opgelost. Maar de daarvoor gebruikte code maakt gebruik van mogelijkheden van de ESP32 en zijn niet eenvoudig naar een ESP8266 te porteren.

      Wat je zou kunnen proberen is om de ping library te gebruiken en om de minuut of zo de gateway te pingen.

      Ik ga het niet meer in de DSMRloggerAPI firmware toevoegen maar als je een werkende versie hebt kan ik het misschien wel in de repo mergen.

  14. Pieter,

    Schrijf je nu dat je DSMR-logger met v3.0.4 nu “normaal” werkt zoals voorheen met v3.0.1?

    • Pieter Duin says:

      Hoi Willem,

      Je laatste antwoord/vraag was niet een reply op mijn laatste antwoord, dus ik kreeg niet automatisch een mail. Vandaar mijn late reactie.

      Na het resetten van de WiFi settings werkte de logger weer als normaal. De GUI werkte ook weer vlot. Echter na ongeveer een week had ik weer dezelfde problemen. De GUI was niet te benaderen. Modem, router en dsmr logger meerdere malen opnieuw opstarten had geen effect. Ik heb toen een WiFi channel check gedaan, er zaten in de buurt meerdere op mijn channel. Toen ik mijn WiFi channel op de router wijzigde naar 11 was de GUI meteen weer bereikbaar en werkte alles perfect. Tot aan gisteren. Ook nu had rebooten van alles geen effect. Op channel 11 was ik nog steeds de enige in de buurt. Channel gewijzigd naar 6 en de GUI is weer bereikbaar. Channel direct weer terug naar 11 en alles werkt nog steeds.

      Deze problemen treden dus op sinds de upgrade naar v3.0.4

  15. Pieter Duin says:

    Beste Willem,

    Ik heb via FSManager firmware v3.0.4 geflashed naar mijn DSMR-logger v4.5. Tevens via de FSManager de bestanden DSMRindex.html, DSMRindex.js en DSMRversion.dat geüpload. Deze bestanden uit de source code zip-file gehaald. Alles leek goed te werken alleen ca. 1,5 dag later was de GUI niet meer benaderbaar. Ook de FSManager is niet via directe url te bereiken. Met Telnet krijg ik alleen verbinding na reboot van de logger. Als ik eerst via de browser de GUI probeer te bereiken, wat dus niet lukt, krijg ik daarna ook geen verbinding meer via Telnet. Enig idee wat er aan de hand kan zijn?

    Groet, Pieter

    P.S. voor het flashen stond firmware v3.0.1 erop. Die draaide vlekkeloos, ik heb geüpdatet vanwege de gewijzigde mindergas url.

    • Willem Aandewiel says:

      Hi Pieter,

      Wat vervelend. Vooral ook omdat je de tweede bent die problemen met de “bereikbaarheid” van de DSMR-logger met firmware 3.0.4 meldt. Bij de andere melder is het vooral de algehele response die slecht is.

      Ik heb werkelijk geen idee wat hier het probleem is omdat mijn eigen DSMR-logger met firmware 3.0.4 probleemloos draait. Wel heb ik de optie “Dagelijkse Reboot” op “1” (Yes) gezet maar qua response en bereikbaarheid van de GUI heb ik geen problemen.

      Wellicht kun je de WiFi credentials resetten (optie “W” in het telnet menu) en opnieuw invoeren (long shot).

      Dus: voor nu heb ik géén oplossing maar ik ga het verder onderzoeken.

      • Pieter Duin says:

        De DSMR-logger geeft overigens wel elke dag de meterstand door aan mindergas.nl, hij logt dus nog wel.
        Momenteel is het ook zo dat als ik via telnet verbinding maak, ik ook maar 1 actie uitvoeren daarna krijg ik ook geen respons meer en moet ik de logger rebooten.

        Als ik via telnet de WiFi credentials reset, moet ik dan, zoals OOTB, via een browser weer de WiFi instellingen instellen. Ik vraag me af of dat dan gaat werken aangezien ik nu al geen verbinding met de GUI krijg.

        • Willem Aandewiel says:

          De DSMR-logger blijft gewoon werken, ook als hij de WiFi connectie “kwijt raakt” of als deze heel slecht is.

          Wat je met “ook maar 1 actie uitvoeren” bedoelt snap ik niet.

          Als je de credentials weg gooit moet je de DSMR-logger resetten en de normale “initiële setup” uitvoeren (dus inloggen op het AP van de DSMR-logger en in het popup window van je browser de credentials van je WiFi netwerk opnieuw invoeren).

          • Pieter Duin says:

            Met 1 actie bedoelde ik dat ik maar 1 keuze in het menu kon uitvoeren. Ik kreeg dan wel output te zien, maar de logger gaf daarna geen respons meer. Er werden ook geen telegrammen meer periodiek weergegeven. Opnieuw telnet verbinding maken lukt dan ook niet. Alleen na reboot van de logger kon ik weer verbinden.

            Echter ik heb zoals je adviseerde de WiFi settings gereset en nu werkt alles weer naar behoren 🙂

  16. Dennis Kuppens says:

    Beste Willem,

    Ik heb de DSMR logger gebruikt om onze oude deurbel ‘slim’ te maken. De logger en de beltrafo zitten nl. heel handig allebij in de meterkast. Zie bijgevoegd schema hoe ik de 8v ac omzet naar een digitaal signaal voor de microprocessor.
    Als er op de deurbel gedrukt wordt stuurt de DSMR logger een bericht naar de telefoons van ons gezin. Ik gebruik hiervoor 2 apps: ‘pushsafer.com’ en ‘alertzy.app’ . De eerste is niet gratis, de 2e is wel gratis maar lijkt iets minder snel te reageren.
    Omdat ik ook nog een draadloze deurbel had liggen heb ik die er ook aangeknoopt zoals je in het schema kan zien. Dat is handig voor als we in de keuken zijn. Want de bel op de gang hoor je niet als je in de keuken bij de afzuigkap staat :).

    Als iemand geinteresseerd is in de code wil ik die graag delen. Maar hoe kan ik die hier het beste posten?

    Groeten,
    Dennis Kuppens.

    • @Dennis,

      Wat een leuke uitbreiding van de hard- en software!

      Je kunt voor beide het beste een repository op github aanmaken. Dan kan iedereen die interesse heeft het daar vinden.

      Je bent net iets te vroeg met deze uitbreiding. De nieuwe, Revision 5 van de DSMR-logger heeft de mogelijkheid om de hardware uit te breiden met een shield (of “hat”). Plus dat die versie een tiental extra GPIO-pinnen heeft.

      • Dennis Kuppens says:

        Het is maar 1 file. Check de inhoud hoe dit in het project geintegreerd moet worden.

        Groeten,
        Dennis

        • Willem Aandewiel says:

          Hoi Dennis,

          Nu je toch een github repo hebt aangemaakt kun je misschien de andere bestanden die voor deze functie nodig zijn daar ook bij zetten?

  17. PPee says:

    Hi Willem,
    Gebruik de DSMR al jaren en ben zeer tevreden. Dank !
    Vraagje: Hoe kan ik de Wifi SSID/PW veranderen. Kan het net vinden in de docs.
    Groeten
    PPee

    • Willem Aandewiel says:

      Hoi PPee,

      Als je inlogt met telnet (Putty voor Windows?) en je drukt op de [Enter] toets, dan krijg je dit menu te zien:

      Commands are:
      
         B - Board Info
        *E - erase file from LittleFS
         L - list Settings
         D - Display Day table from LittleFS
         H - Display Hour table from LittleFS
         M - Display Month table from LittleFS
         I - Identify by blinking LED on GPIO[15]
         P - No Parsing (show RAW data from Smart Meter)
        *W - Force Re-Config WiFi
        *R - Reboot
         S - File info on LittleFS
        *U - Update LittleFS (save Data-files)
        *Z - Zero counters
      
         V - Toggle Verbose 1
      

      Druk je nu op een (hoofdletter) W
      dan worden de WiFi settings weggegooid en moet je deze (nadat je de DSMR-logger hebt ge-reset) opnieuw configureren.

  18. Jan Wolter says:

    Hi Willem,
    De logger loopt hier al jaren naar volledige tevredenheid. Allereerst dus veel dank voor je inzet en inspanningen.
    Mijn vraag betreft de install van de recente versie 3.0.4. Je meldt op github:
    Handmatig moeten:
    DSMRindex.html
    DSMRindex.js
    Op de DSMR-logger worden gezet ([choose file] en [upload] met FSmanager)

    Ik heb die bestanden daarom dus van github opgehaald en met FSmanager geupload. Resultaat na reboot was dat de content – als source – van DMSRindex.html in de browser werd weergegeven. Verder deed niets het meer, en dus was het een wired reinstall die het geheel weer aan de praat kreeg. Wat doe ik hier fout?
    JW

    • Willem Aandewiel says:

      Jan,

      Fijn dat de DSMR-logger al jaren goed werkt!

      Lastig op deze afstand te bedenken wat je fout doet. Ik vermoed dat je bij het ophalen van github iets niet goed hebt gedaan. Waarschijnlijk is het het eenvoudigst als je de hele repository als ZIP bestand op je PC zet. Vervolgens het ZIP bestand uitpakken. Nu kun je met de FSmanager in de zojuist uitgepakte map de twee bestanden uit de data-map uploaden naar de DSMR-logger.

      Ik hoor graag van je of het gelukt is.

      Overigens, je kunt, ook als “niets het meer doet”, met “http://DSMR-API.local/FSmanager” de FSmanager opstarten om zaken te herstellen..

      • Jan Wolter says:

        Willem,
        Dank voor je snelle reactie en tevens ook de oplossing. Met de upload vanuit de zip is het nu WEL gelukt. Kennelijk nogal tricky om dit soort bestanden direct van github af te halen. Overigens ook een waardevolle tip om FSmanager met een directe URL op te kunnen starten. Had ik niet aan gedacht. Thanks again!
        JW

        • Willem Aandewiel says:

          Door jouw probleem nog even naar de Release tekst gekeken en zag dat ik vergeten ben om het bestand DSMRversion.dat ook te noemen om over te zetten naar de DSMR-logger (ondertussen heb ik dat aangepast).

  19. Johan says:

    Dag Willem,
    Heb met hulp van jou (achter de schermen) het schema voor de Logger nu zover dat ik het kan laten draaien op een D1-Mini. Ga e.e.a nog even testen op een board om het vervolgens op een printje te gaan zetten. Waarom een D1-Mini? Heel simpel, omdat ik deze nog had liggen en niet het geduld op kan brengen te wachten op de ESP 12-E, wel besteld inmiddels. Vindt het leuk om, nu ik met pensioen ben, mij met dit soort materie bezig te houden. Van ontwerp tot het solderen/monteren van een project inspireert mij. Via jou site heb ik weer heel veel kennis opgedaan, dank daarvoor. Ga vooral door met deze leuke hobby. Ik blijf je volgen, zoals zovelen met mij.
    Johan.

  20. Roland van Dalen says:

    Hoi Willem,
    Bij het compileren van DSMRloggerAPI krijg ik een error in de tab helperStuff op regel 345; ‘Item’ does not a type – zie screenshot
    Ik gebruik Arduino IDE 1.8.5
    Heb je enig idee?

    • Willem Aandewiel says:

      Te weinig informatie.
      In het log window staat vaak meer informatie.

      In ieder geval zou ik de laatste IDE gebruiken (niet versie 2.0!!) en in settings de verbositeit van het compileren verhogen.

      Controleren of je alle libraries hebt geïnstalleerd en dat ze de goede versie zijn.

      • Roland van Dalen says:

        Hoi Willem, Ik heb de software inmiddels aan de praat! De oplossing in mijn situatie was om funtion template definitie op regels 344 en 345 in tabblad helperStuff op dezelfde regel te zetten; template Item &typecastValue(Item &i).
        Verder klaagde de compiler nog over een redefinition conflict tussen de ESP8266 core v2.7.4 en de WIFIManager library v0.14.0. Door deze laatste op te hogen naar v0.16.0 was ook dat verholpen.

  21. Johan says:

    Goedenavond Willem. Ben heel enthousiast over dit project en zou het zelf ook graag willen toepassen. Maar ik zie door de bomen het bos niet meer.
    Bijv. welke versie op dit moment actueel is om te starten en/of de hardware nog actueel is. Zou graag een stappenplan willen over hoe de software wordt toegepast. De hardware lijkt mij nog niet het moeilijkste. Heb tijd genoeg, mag genieten van mijn pensioen. Dus het heeft geen haast. Of misschien weet jij iemand die mij hiermee verder wil helpen. Ik zie het wel als een uitdaging om alles zelf te doen. Groet, Johan

    • Willem Aandewiel says:

      Goedemorgen Johan,

      Leuk dat je enthousiast bent over dit project!

      Het is verstandig om, als je gaat beginnen, altijd de meest recente versie van github te halen.

      De hardware maakt niet zoveel uit. Ik neem aan dat je iets met een WEMOS of ander ESP8266 bordje gaat knutselen. Dan is het belangrijk dat je bij het compileren tóch opgeeft dat het een “Genuin ESP8266” is, anders krijg je problemen met defenities van GPIO pinnen. Overigens zijn de “kant-en-klaar” bordjes die je kunt kopen altijd “Genuin ESP8266’s” het enige verschil is dat door “Wemos D1” bij “Board” op te geven er macro’s worden geladen die “Dx” vertalen naar een GPIO pin”. Ik heb de charme ervan nooit begrepen.

      Je kunt natuurlijk ook de voor gecompileerde binary van de firmware en van het littleFS downloaden en flashen.

      De laatste versie van het schema is v4.5 en deze kun je ook op github vinden.

      Er is geen echt stappenplan voor de software. Er is wél heel veel documentatie op internet te vinden. Het is dan verstandig om op deze site alle posts (en comments) te lezen vanaf de eerste versie (met een ESP-01) tot de laatste versie. In die posts staan ook verwijzingen naar andere documentatie.

      Als je er écht niet uitkomt dan moet je dat maar aangeven. Ik geniet ook van mijn pensioen (maar was lekker al véél eerder gestopt met werken) dus ik heb meestal wel tijd.

      Succes!

      • Johan says:

        Dag Willem, dank voor je snelle reactie. Inderdaad we hebben tijd genoeg. Wat voor mij nog niet helemaal duidelijk is hoe ik het geheel draaiende krijg in mijn Arduino IDE 2.0. Kan ik daar jou github file in downloaden en dan compileren naar mijn D1 mini ?
        Ik had al veel gelezen in de diverse posts maar kon nog niet een antwoord vinden. Ik heb een Kaifa AM105C DSMR 4.2.2 waar op de P1 poort al een kastje is aangesloten van Eneco , volgens mij. Dus heb ik waarschijnlijk ook nog een splitter nodig.
        Dank voor nu.

        • Willem Aandewiel says:

          Johan,
          Ondanks de aankondiging dat het een stable release is gebruik ik de IDE 2.0 (nog) niet. Er zijn te veel libraries en cores die nog niet werken met deze IDE. Ik kan je daarmee dus niet helpen. Ik gebruik zelf de laatste stable release vóór 2.0 (.19 of zo).

          Zoals eerder al geschreven: NIET COMPILEREN VOOR EEN SPECIFIEK BORDJE ZOALS DE WEMOS D1. Je haalt je daarmee onnodige problemen op de hals. Een Wemos of NodeMCU is gewoon een genuine esp8266! Je moet alleen even uit de documentatie van de Wemos D1 halen hoe de GPIO-pins op dat bordje gelabeld zijn.

          Als je meerdere uitlezers op een slimme meter wilt aansluiten heb je inderdaad een splitter nodig. Gewoon de draadjes aan-elkaar-knopen zal niet werken.

          • Johan says:

            Om problemen te voor komen ben ik inmiddels overgestapt op een oudere versie van IDE. Heb de DSMRloggerAPI-3 gedownload en lees nu de documentatie hierover maar eens rustig door. Krijg alleen het “Genuin ESP8266” bord nog niet in de boardmanager te zien. Je hebt ook een splitter op je site staan. Kan ik die gewoon gebruiken of zijn er andere oplossingen ? Tot zover, fijne dag.

          • Willem Aandewiel says:

            Johan,

            Heb je de ESP8266 core geínstalleerd (versie 2.7.4)? Dan is het bovenste bordje in de lijst de “Generic ESP8266 module”.
            Controleer ook of je de juiste versies van de libraries hebt. In de source staat meestal welke ik gebruikt heb voor het compileren. Nieuwere versies kan soms ook, maar niet altijd(!).

            De splitter kun je inderdaad gewoon gebruiken.

          • Johan says:

            Begin het steeds meer te begrijpen.
            De ESP8266 Core 2.7.4 heb ik geïnstalleerd. Het bovenste bordje heb ik gevonden. Heb op de COM3 poort mijn D1 Mini aangesloten. Het compileren met de Arduino IDE is ook gelukt, maar bij het uploaden gaat er iets mis. Krijg een aantal meldingen: esptool.FatalError: Timed out waiting for packet header.

          • Willem Aandewiel says:

            Geen idee. Ik heb geen Windhoos.

            Kun je andere sketches wel uploaden?
            Heb je misschien een driver nodig (nogmaals: ik heb geen Windhoos)

          • Johan says:

            Nog even een vraagje. Kan ik zonder de DSMR Logger de DSMRloggerAPI software ook testen op de D1 Mini ?

          • Willem Aandewiel says:

            Ja dat kan.
            Bij de #defines moet je dan de “heeft geen slimme meter” actief maken (de twee slashes “//“ ervoor weghalen)

          • Johan says:

            Dag Willem, Ik wilde je nog even laten weten dat de testversie nu draait op mijn D1. Weet alleen niet hoe ik e.e.a op de D1 heb geupload. Wordt dus een kwestie van Erasen en opnieuw uploaden. Ik kwam erachter toen ik de Serieele Monitor opende en 192.168.1.1 zag. Ben vervolgens gaan zoeken in het Wifi netwerk naar iets met DSMR en dat lukte. Ben er blij mee. Bedankt nogmaals voor je hulp en geduld. Fijne avond nog.

  22. Willem Bakker says:

    Hallo ,

    De mindergas koppeling heeft een andere URL.
    Houdt versie 3.0.1 hier al rekening mee? Ik zat zelf op een oude 2.0.1 versie en dacht met het update hieraan te voldoen. Hij lijkt echter nog niet de standen naar mindergas te sturen. Is het wellicht mogelijk de URL handmatig aan te passen?

    details:

    Wijzigingen per 1 januari 2021
    In verband met het toevoegen van ondersteuning voor meterstanden in kWh en GJ zijn de volgende wijzigingen aan de API doorgevoerd:

    De URL is veranderd van http(s)://www.mindergas.nl/api/gas_meter_readings naar http(s)://www.mindergas.nl/api/meter_readings.
    De meterstand in liters (reading_l) wordt niet meer ondersteund.
    Deze wijzigingen zijn op 1 oktober 2022 definitief doorgevoerd.

  23. Manuel Van Amerongen says:

    Vraag van een newbie:
    Kan iemand mij uitleggen hoe het komt dat ik op om de paar minuten een reboot heb. De unit hangt op nog geen meter van de WIFI router dus het signaal is sterk genoeg.
    Wat kan ik zelf controleren of is het board defect?
    Mvg Manuel

    • Willem Aandewiel says:

      Manuel,

      Dat is zéker niet normaal.
      Zelf ervaar ik thuis dat apparaten (bijv. mijn echo dots) die te dicht bij mijn WiFi AP staan regelmatig slechte ontvangst hebben. Verder van het AP ondervinden ze geen problemen.

      Voor de DSMR-logger: kun je met telnet kijken of er problemen met de heap zijn?
      Dat het bordje defect zou zijn als verder alles gewoon werkt is onwaarschijnlijk maar zou nog met spanning te maken kunnen hebben. Gebruik je een externe voeding?

      • Manuel van Amerongen says:

        Hallo Willem,
        De spanning is goed en de heap zag er ook feilloos uit.
        Het onheil moest van buitenaf, de router, komen.
        Ik zag uiteindelijk dat de gebruikte WIFI mode 802.11b is. Mijn router stond op 802.11 g/n gemengd.
        Ik heb de router op 802.11 b/g/n gemengd gezet en inmiddels heeft er 24uur geen reset meer plaats gevonden.
        Mvg Manuel
        PS. Is er ook een harde reset mogelijk zodat alle tellers weer op 0 staan en ik met een schone lei kan beginnen?

        • Willem Aandewiel says:

          Hey Manuel,

          Fijn dat alles nu werkt zoals het hoort!

          Met telnet kun je op de DSMR-logger inloggen. Druk dan 1x op [Enter] en je krijgt een menu te zien.
          Eén van de opties is het “op nul zetten” van de tellers.

          • Manuel says:

            Helaas het tegendeel is waar maar ik heb je er niet mee willen lastig vallen. Het resetten blijft. Opvallend dat hij 1x 5 dagen 1x 7dagen zonder probleem in de lucht bleef. Echter de teller staat inmiddels op 858.

            Ivm de gewijzigde Mindergas URL wilde ik de firmware flashen.
            Helaas geen melding dat het is gelukt. Een tweede keer: “Update error: ERROR[10]: Magic byte is wrong, not 0xE9”
            Ik ben bang dat ik dat niet meer op kan lossen. De logger start overigens wel op zonder foutmelding.
            Suggesties?

          • Willem Aandewiel says:

            Manuel,
            Heel vreemd allemaal.
            Als je de nieuwe firmware flashed maar je krijgt geen melding dat dit goed is gegaan, dan vermoed ik dat je DSMR-logger tijdens het flashen zichzelf gereset heeft…
            Als je met telnet verbindt met de DSMR-logger en je doet dan een firmware update, dan zie je in het telnet window allemaal puntjes en uiteindelijk de melding dat de update goed is gegaan (laten we dat hopen). Stopt hij met het schrijven van puntjes en telnet wordt afgesloten, dan is je esp8266 vroegtijdig gaan rebooten.
            Vanaf een afstand is het voor mij erg moeilijk om een correcte diagnose te stellen.

  24. Eddy says:

    Dat zou raar zijn Willem. webinterface werkte goed met 3.01. Ik doe update 3.03, en webinterface werkt niet goed, doe downgrade naar 3.02 en webinterface werkt direct terug goed. (wifi level op controller is -76dBm, pc is bedraad lan, ipnrs veranderen niet).
    De bedoeling is uiteindelijk de logger via api call elke 10 sec het actueel verbruik uit te lezen en te displayen op een klein lcd scherm in de woonkamer, samen met nog wat andere info. Hopelijk lukt dat 🙂

    • Willem Aandewiel says:

      It’s just my five cents

      • Eddy says:

        V 3.02 kan precies beter tegen het Belgische SM dialect. Geen restarts meer in de laatste +24 uur! Prima!

        • Willem Aandewiel says:

          Hey Eddy,

          Dat is goed om te lezen! Dank voor deze feedback.

          Er zit overigens géén verschil tussen v3.0.2 en v3.0.3 behalve een paar statements in networkStuff.h om een spook AP uit te schakelen. Niets in de main-code is aangepast.

  25. Eddy says:

    Willem,
    Ik heb/had? last van restarten van de controller. Verschillende keren per dag. Vroeger hield hij het verschillende dagen uit zonder restarten, maar nu om de 10 uur ofzo.. Teller stond op 46 restarts met als oorzaak exception. Versie was 3.01. Heb dan versie 3.03 geupload, maar dan werkte de webinterface niet meer naar behoren. Het enige wat ik kreeg was een blauw scherm met rechtsonder 2021 c Willen Aandewiel. Paniek natuurlijk want ik kon de SW ook niet terug flashen. Oled scherm werkte wel goed, en gaf geen fouten bij opstart. Heb dan achter het ip /update? getypt, en kreeg dan met wat moeite het sw update scherm.. 3.02 kunnen opladen, en kreeg terug een normale web interface. phew.. Misschien best dat u 3.03 eens checkt?
    Benieuwd of de controller het nu langer dan 10 uur gaat volhouden.

    • Willem Aandewiel says:

      Hey Eddy,

      Wat vervelend en dat is natuurlijk niet de bedoeling!

      Maar ik heb van anderen geen feedback gekregen dat de web-interface niet meer zou werken met v3.0.3.
      Veel restarts zijn vaak het gevolg van een slechte WiFi verbinding. Dat kan “opeens” het geval zijn als er in de buurt bijvoorbeeld andere Access Points actief worden of als jouw AP andere IP adressen heeft uitgedeeld (ten gevolge van het verstrijken van de lease).

      Dat je moeite moet doen om het update scherm te krijgen is sowieso vreemd en duidt ook op een slechte WiFi verbinding…

      Nu maar hopen dat de DSMR-logger voor een lange(re) tijd blijft werken!

  26. Arie says:

    Aanvulling op historie terug plaatsen en het verminken van de Ring bestanden.

    Willem,
    Dank voor je snelle reactie. Het verminken van mijn bestand was ontstaan door het bewerken in Excel, ondanks het opslaan als csv verminkte Excel e.e.a. Het bewerken met Notepad++ gaat wel goed. Helaas had ik, stom, stom, geen backup van de originele download gemaakt.
    De oplossing was echter simpel. Ik heb nogmaals het mklittlefs bestand geflashed en aldus opnieuw begonnen.
    Misschien dat anderen met deze hikjes te maken krijgen en zijn op deze wijze geholpen. Vooral de tip om eerst de gasstanden te vullen lijkt een goede.

  27. Leo van der Hoek says:

    Hallo Willem,

    Ik heb al een tijdje de software draaien op een zelfgemaakt stukje hardware dat het serieele signaal inverteert en naa r de juiste ingang van de WEMOS D!-mini V2 stuurt. Dat werkt nou al bijna een jaar zonder problemen.
    Nou ja er is een probleem waar ik mee te maken heb. Zo nu en dan, zeg maar 1 keer per maand of zo, gaat de webserver op tilt en kan ik dus niet meer de waarden uitlezen uit mijn meter.
    Ik heb eenz zitten graven in de software en begreep natturlijk wel dat er iets niet goed gaat in ESP8266WebServer. Afijn ik had het al een beetje opgegeven tot ik toevallig een voorbeeldje zag van Rui Santos waarin hij gewoon een websrver maakt zonder uberhaupt een library te includen. Dus OK wat let mij nog en ik heb in netwerkStuff.h de include verwijderd. Compileren is geen probleem. eigenlijk had ik dat al gelezen tijdens mijn omzwervingen in webserver land, de software is tegenwoordig gewoon al aanwezig in de core van de ESP866 package. Voordeel van dit is wel dat je dan echt de laatste versie van de SW hebt(als je de laatste versie van de ESP8266 package gebruikt). Ik heb het nog niet gewaagd om de SW ook daadwerkelijk naar mijn WEMOS te schrijven, dus ik zal er dan niet achter komen of de webserver dan niet wegvalt.
    E.e.a. slechts ter informatie in het geval dat andere mensen hetzelfde fenomeen ervaren of je voelt je geroepen om een nieuwe versie te gaan gebruiken zonder de include in netwerkStuff.h.

    • Willem Aandewiel says:

      Waarom durf je de firmware niet te flashen?
      Als het goed compileerd lijkt het mij geen groot probleem. Anders gewoon naar een ander bordje flashen eventueel met de compileer optie “geen slimme meter”.

      • Leo van der Hoek says:

        Nieuw board gepakt en sketch met WebServer uit ESP8266 package 3.0.2 geladen. Data files ook teruggeschreven. We zullen zien of het nu anders is en de HTTP server nog uitvalt.

  28. René Janssen says:

    Hoi Willem,
    Geweldig stukje software, werkt alleen niet op een Wemos D1. Gelukkig een gewijzigde versie 2 gevonden die geschikt is voor de Wemos.
    Ik maak gebruik van de api call “ip/api/v0/sm/actual” al het andere is eigenlijk overbodig.
    Vraag is, komt er ook nog een light versie??? (wifi instellen en alleen bovengenoemde api)
    Helaas kan ik er geen touw aan vastknopen van deze programmeer taal, hou het liever op php en python.:-)

    • Willem Aandewiel says:

      Hi René,

      De firmware werkt prima en zonder aanpassing op een Wemos D1 of om het even welk ander bordje met een esp8266 (je moet alleen de documentatie lezen en vooral het commentaar blok aan het begin van het programma).

      Het is een open source project dus iedereen kan er mee doen wat hij/zij wil. Eventueel dus ook een Light versie maken.

      Zo’n light versie staat niet op mijn “to-do” lijst.

  29. Arie says:

    Jammer, jammer,

    Deze week is er een slimme meter bij mij thuis geïnstalleerd. Ik heb de installatie redelijk lang kunnen tegen houden omdat de salderende draaischijf meter zo mooi achteruit liep.

    Nu geplaatst een;
    ZLV (5CTA3BCF000AAAD0) ESMR5 (3 fase)

    Eindelijk mijn DSMR logger V2.01 restAPI die al 2 jaar stof lag te happen aangesloten op de P1 poort. Maar helaas. het rode ledje van de logger knippert ietwat maar verder geen tekenen van leven.
    Met of zonder display maakt geen verschil. Externe 5V voeding geplaatst en volop leven. En dat vind ik jammer. Toch maar eens bij Enexis gaan klagen dat mijn P1 poort geen 60 mA kan leveren voor mijn logger.

    Inmiddels update uitgevoerd naar V3.01 en het file system geupdate. Allemaal vlekkeloos OTA verlopen.
    Op een telefoon schaalt de (bootstrap) ADJindex iets beter maar verder niet van belang omdat nu eerst de Home Assistant integratie uitgevoerd gaat worden.

    Werkelijk een prachtige slimme meter uitlezer met bij behorende software.
    Chapeau! (Petje af)

    • Willem Aandewiel says:

      Hi Arie,

      Wat een leuk positief comment (voor mij in ieder geval)!

      Dank daarvoor.

      Veel plezier met de DSMR-logger

      • Arie says:

        Pfff.
        Vandaag is het (eindelijk) gelukt om de DSMR-API gegevens in Home Assistant te tonen.
        HA is niet de meest makkelijke interface voor beginners om e.e.a in te stellen. Vooral omdat er al zoveel IOT apparaten in mijn huis zijn. Ik verzoop als het ware in de entiteiten. En met 3 projectjes tegelijk, nieuwe slimme meter, water meter uitlezen en de dsmr-api van deze website verlies je wel eens het overzicht
        In de HA logboeken werd aangegeven dat dsmr-api.local/api/v1/sm/actual niet te vinden was. Na de configuratie.yaml aangepast te hebben met de eigen interne domeinnaam en dit ook in mijn pfSense router juist vermeld te hebben was het ‘a piece of cake’ en heb ik inmiddels een HA dashbordje gemaakt die wat gegevens toont.
        Volgende project is updates of 2 andere adressen te gaan uit voeren naar de dsmr-api (3.x)

        • Arie says:

          Geweldig!
          Vandaag de eerste update uitgevoerd van één van de andere adressen waar nog versie 1.03 (WS) actief was.
          Instructies gelezen, nergens een aantekening gevonden dat er b.v. eerst naar 2.xx geupdate moest worden. Dus vooruit met de geit en OTA de firmware update ingezet. “Update succesvol” Daarna het filesystem flashen, oeps foutmelding, onvoldoende geheugen. Maar na een powerflip kreeg ik netjes een pagina dat het filesystem ontbrak en kon de actie om mllittlefs.bin erop te zetten ingezet worden en wel met succes.
          Wat een geweldig robuuste software.

          Alleen de historie lukt niet om de hele tabel in 1 keer te vullen, regel voor regel lukt wel aan de hand van de csv bestanden die ik als eerste veilig gesteld had. Gelukkig is het een eenmalige actie.

          • Arie says:

            Help!
            De historie terugzetten lukt niet.
            Ik heb het zelf verprutst door te rommelen in de csv bestanden.
            Is er een manier om e.e.a. te corrigeren?

          • Willem Aandewiel says:

            Ja. Heel nauwkeurig en regel-voor-regel invoeren en opslaan ..

          • Willem Aandewiel says:

            Hi Arie,

            De ring bestanden zijn zeer kritisch voor wat de regellengte betreft.
            Je kunt ze alleen editen met een editor die er geen rare tekens aan toevoegt.
            Alternatief is dat je gewoon de aanwezige editor gebruikt en dan eerst de gas-waarden invoeren zodat de key’s goed staan en bij het invoeren van de andere gegevens niets meer aan de key’s veranderen!

  30. Remco says:

    Hi Willem,
    ik zag dat ik even erg veel gas verbruikt had in 1 dag… 🙁
    is er een mogelijkheid om dit te herstellen? dat ik een dag mis is geen probleem, of fictieve tussenliggende getallen ook niet, maar op deze manier zien de vergelijkingen vorige periode er niet meer uit.

    ik hoop dat je kan helpen

    • Willem Aandewiel says:

      De waarden die ik zie lijken nergens op!
      In principe maakt het niet uit op welke datum het verbruik wordt weergegeven omdat alleen steeds de HUIDIGE METERSTANDEN worden opgeslagen. En als daar een keer iets heel raars in zou komen te staan dan wordt dat vanzelf bij de volgende update weer recht getrokken. Het verbruik is de meterstand van NU minus die van de VORIGE meting.
      Het lijkt ook alsof de DSMR-logger 16 juli niet heeft aan gestaan.
      Over 15 dagen is je staatje weer correct!

  31. Ceriel says:

    In de 3D box DSMRlogger_45.stl zijn 3 losse onderdelen aanwezig. Twee daarvan zijn om de knoppen te bedienen. In het andere onderdeel lijkt iets geklemd te moeten worden. Waar dient hat andere onderdeel voor?
    Wil je terugkoppeling over de behuizing?

    • Willem Aandewiel says:

      Hi Ceriel,

      Het derde “losse onderdeel” is om “om het Oled scherm” te klikken zodat deze aan de onderkant (de “niet connector kant”) ondersteund wordt.
      Let er wel op dat er werkelijk ontelbare 0.96″ Oled schermen zijn die allemaal een andere breedte en lengte hebben. Het vergt wat uitproberen om de juiste breedte te vinden. Je kunt het printen van deze “stand” uitzetten door “printOledStand” op “false” te zetten.

      Uiteraard wil ik terugkoppeling over de behuizing!

      • Ceriel says:

        Jammer dat het “losse onderdeel” niet voor 1,3″ Oled-schermen is. Het scherm zit nu wat scheef en niet goed gepositioneerd in de behuizing. Fijn zijn de knoppen, de ventilatieopening aan de achterzijde en dat het deksel en bodem klikt meerdere keren herhaald goed in en weer uit elkaar. De openingen nabij de LED’s kunnen achterwege blijven. Het witte materiaal is voldoende doorschijnend.

      • Ceriel says:

        De uitsparing voor de P1-connector mag wat nauwer aansluiten.

      • Ceriel says:

        Het scherm zit nogal scheef. Misschien, als er minder ruimte tussen deksel en het scherm is, dat het scherm al iets platter tegen het front wordt gedrukt.

      • Ceriel says:

        Vreemd is dat de tekst links 1px over de rand lijkt te vallen, en dat aan de rechterzijde wat pixelrommel wordt toegevoegd.
        PS De firmware is (flink) aangepast, met name om (heap)geheugen vrij te maken en de seconden te tonen. Dit weergave gebrek was er ook met de oorsprokelijke 3.0.1 firmware.

  32. Ceriel says:

    Niet zo bescheiden. Jouw board met ESP8266 en v.3.0.1 API firmware (2_7_4 core, 2.2.2-dev(38a443e) sdk) loopt zonder herstarts de laatste week met interval op 2 seconde. Er zijn inmiddels 654.465 sec verstreken, 324.805 telegrammen zijn er verwerkt en 13 telegrammen hadden fouten. Met name als de web interface gebruikt wordt, merk ik dat de ” Telegrammen met fouten”-teller oploopt. Free heap space staat op 9200 bytes. Daar ben ik content mee.

  33. Ceriel says:

    Willem,

    * Landis+Gyr E350, DSMR 4.0 + GPRS
    * Opencircuit bord zoals vorige week geleverd, 3.0.1, jumper omgestoken op P1 gevoed
    * Tech4u P1H-005 P1 splitter + Ansmann HC105w (1001-0112)
    * Enexis
    * Er wordt wel een AP aangemaakt

    De eerst keer wordt er geen AP aangemaakt. Steek ik hem bij de buren over op een ESMR5 meter, zonder splitter, dan lukt dat wel. Terug thuis met de Landis komt er wel een AP, maar krijgt de computer geen IP (verwacht 192.168.4.2). Laat hem een nacht rusten (zonder spanning) probeer heb vandaag nog een keer en wel het IP-adres. Dan kan het netwerk gekozen worden (3 van 4 balkjes is dat voldoende?), maar lijkt het wachtwoord niet bewaard te worden of wil niet verbinden. Uiteindelijk gekozen voor een draadloos netwerk met een wachtwoord van 12-tekens, zonder speciale tekens, op een Peplink AP (WiFi RSSI: -72). Mijn eerdere pogingen op een Fritz!Box met een wachtwoord van 12 tekens waarvan één speciaal teken, en een ander netwerk met een wachtwoord van 32 tekens mislukten.

    Lastig vind ik nog om te zien wat de frequentie is waarmee de telegrammen uit de meter komen. Bij “Systeem Info” springt de tijd rechtsboven wel omhoog, met 10s, maar blijft onder “Telegrammen verwerkt” en “Telegrammen met fouten” op hetzelfde aantal staan.
    Bij Lees Interval 10s komen er 5 of 6 telegrammen per verversing bij. Bij 2s gaat de verwerkingsteller in stappen van 27 of 28 telegrammen per verversing omhoog.

    PS Bedankt voor de uitgebreide documentatie en alle versienummers van Arduino t/m bibliotheken. Zelf compileren is gelukt zonder foutmeldingen. Daar experimenteer ik nog mee op een ander (Wemos mini D1) bordje tot stabiel.

    • Willem Aandewiel says:

      Hi Ceriel,
      Je moet initieel connecten met het AP ip 192.168.4.1 (dus niet 4.2).

      Als het “lijkt” alsof het wachtwoord niet bewaard wordt komt dat meestal omdat de DSMRlogger geen verbinding met je modem kan maken waarna hij terug valt op zijn AP.

      Ik heb geloof ik wel eens iets gelezen over het gebruik van speciale tekens in het wachtwoord. Dat zou dan niet iets specifiek voor de DSMRlogger zijn, maar eerder iets van de esp8266 core.

      Te vaak telegrammen opvragen (bijv. iedere 2 of 5 seconden) “belast” de esp8266 behoorlijk terwijl het weinig zinvolle informatie toevoegt. Iedere 20 seconden is vaak meer dan genoeg (tenzij je een “real-time” meet-en-regel-systeem met de informatie voedt).

      Hoe vaak je Slimme Meter “unieke” telegrammen afgeeft kun je het beste onderzoeken door via de API de data uit te lezen. Dan zie je vanzelf of jouw SM iedere seconde of iedere tien seconden een nieuw telegram ophoest (kijk dan niet alleen naar de timestamp, maar juist ook naar de verbruiks-data).

      Ook voor de Wemos bordjes geldt: compileer als “generic esp8266” (dan hoef je niets aan de code aan te passen)!

  34. René Janssen says:

    Hoi Willem,

    Mooi stukje software, alleen werkte het niet op een wemos D1 v3. Gelukkig vond ik een omgeschreven versie 2.0 die Henri de Jong gemaakt had. Nu kan ik via een php file een telegram ophalen en verder in mijn database zetten.
    Vraag is komt er ooit nog een ultralight versie waar je dus alleen gebruik kunt maken van de api’s (hoofdzakelijk telegram ophalen)

    groet René

  35. Mervin says:

    Hi,

    Ik heb een vraagje. Afhankelijk van een capaciteit van de zonne panelen moet er een output worden aangestuurd. Hardwarematig is dit voor elkaar. De software is ook grotendeels klaar. Alleen kan ik er niet achter komen welke variable ik moet aansturen om port GPIO9 aan te schakelen. En welke variable aangeeft wat de hoeveelheid stroom van de zonnepanelen aangeeft. Welke variablen zijn dit?

    Alvast hartelijk bedankt!

    Met vriendelijke groet, Mervin

    • Willem Aandewiel says:

      Hi Marvin,

      Goed bezig!!

      De “stroom” wordt per fase opgegeven in de variabelen “current_l1”, “current_l2” en “current_l3”.
      Helaas wordt de levering door de zonnepanelen in de Slimme Meter gesaldeerd met het verbruikt in de betreffende groep! Er is dus niet te bepalen hoeveel energie je zonnepanelen “netto” leveren!

      Als je, zoals aanbevolen, als “Board” kiest voor “Generic ESP8266 Module” dan is GPIO9 …. gewoon “pin 9”! Wel zo makkelijk.
      Maar… Pas op, GPIO9 is niet vrij te gebruiken!

      GPIO9 en GPIO10 zijn bedoelt voor QIO flashing! Ze zijn verbonden met de pinnen 3 en 7 van de flash-chip!

  36. Michel says:

    Willem,

    Sinds kort een dsmr-logger 4.5 aangeschaft. Ontzettend mooi werk heb je geleverd. De dsmr-logger werd met firmware 3.0.1 geleverd.

    Wat mij opviel, nadat ik de firmware naar 3.0.2 had geupgrade, was dat de menu-optie ‘telegram’ niet meer werkte. Veelal stopte daarna ook de mqtt-updates en ware andere JSON aanvragen niet meer te doen. Meestal kreeg ik dan de ‘low heap’ melding in de browser.

    Na reboot werkt dan alles weer, totdat de ‘telegram’ optie werd geprobeerd. Soms kwam de logger er zelf weer uit na een tijdje. Maar het aantal watchdog-resets liep wel op (66 restes in 3 dagen, waarvan een handvol handmatig door mijzelf).

    zojuist weer firmware 3.0.1 erop gezet. Nu werkt de optie telegram ook weer prima. Geen ‘low heap’ meldingen meer.

    * Merk én Type Slimme Meter:
    ISKRA AM550 (/ISK5\2M550T-1012)

    * Gebruikte Compiler Opties:
    standaard 3.0.1 van github ([USE_UPDATE_SERVER][USE_MQTT][USE_MINDERGAS])

    * Externe voeding gebruikt
    Nee, via SM/p1 poort

    * Energy Leverancier: Liander/Greenchoice

    * Functioneert de DSMR-logger: Ja; behoudens menuoptie ‘telegram’ in firmware 3.0.2. Met firmware 3.0.1 gaat het direct goed

    • Willem Aandewiel says:

      Hm.. dat is “vreemd”

      Ik gebruik zelf 3.0.1 en moet even uitzoeken wat het verschil tussen deze en 3.0.2 is …

  37. Michel Roovers says:

    Gyr e360, stock firmware, ja helaas wel.

    Tnx voor dit toffe project 🙂 en tnx voor de extra pads t.b.v. het display.

    Ik ben een fan van bedraad ethernet v.s. wifi. Wil je een wired versie overwegen?

    • Michel Roovers says:

      Oh excuses 2 velden vergeten, ja hij werkt en easyenergy

    • Willem Aandewiel says:

      Hi Michel,

      Nee, ik heb ondertussen wel zo’n beetje alles uit dit project gehaald wat interessant is.Van wege de extra hardware én dat alles juist richting draadloos schuift zit een ethernet interface er nit in.

  38. Erik Kroneman says:

    Hi Willem,

    Wij hebben de DSMR geupdate naar V3.0.2 en dit lijkt allemaal te werken maar we krijgen geen data uit de Kamstrup 382 meter.
    Als we /api/v1/sm/actual opvragen ontvangen we enkel data van gasdata maar geen elektra.
    Kan dit te maken hebben met de mBus type die bij ons op 3 staat?

    [Comment placed at the wrong post! Moved by Admin!!!]

    • Willem Aandewiel says:

      Hi Erik,

      Het mBus type heeft alleen invloed op de plek waar de gas-meter op is aangesloten. Heeft dus niets te maken met de “normale” SM uitvoer.

      Kun je wel zien dat er Telegrammen binnenkomen (in de GUI)?

  39. Rogier Geukemeijer says:

    Hallo,
    Ik wil graag dmv een output (bijvoorbeeld “GPIO16”) op de ESP12E een elektrisch verwarmingselement laten aanschakelen als er een overcapateit van stroom (van de zonnepanelen) door de DSMR (V4.5) logger wordt aangegeven.
    Is dit mogelijk? En, zo ja, hoe zou ik dit kunnen doen?

    Met vriendelijke groeten,

  40. Marek says:

    Hoi WIllem,

    Topprojectje om maar mee te beginnen.

    Ik heb het dan eindelijk wel geod nu. Ik was float in het value_template vergeten.
    Zoals hieronder werkt het prima !

    – platform: rest
    name: “DSMR_API_Gas gebruik”
    resource: http://192.168.2.98/api/v1/sm/fields/mbus2_delivered
    unit_of_measurement: ‘m³’
    value_template: “{{ (value_json.fields[1].value | float) | round(3) }}”
    device_class: gas
    state_class: total_increasing

    Ik vroeg me nog af ik lees nu de API mbus2_delivered uit.Ik vroeg me nog gas_delivered field om uit te lezen? Deze staan namelijk wel bij [API docs] -> [api/v1/sm/fields]

  41. Guillaume Swennen says:

    OK het is dus een probleem met de sm. Ik heb de informatie via het scherm van de dsmr opgevraagd en inderdaad hij vertoont deze lijn ook niet. Toch bedankt voor Uw hulp

  42. Guillaume Swennen says:

    dit is het resultaat als text gekopieerd van de GUI
    Wat ik heel raar vind is dat hij enkel dit resultaat niet teruggeeft, en het verbruik (1-0:51.7.0(003.94*A)) op die lijn wel.

    /FLU5\253769484_A

    0-0:96.1.4(50216)
    0-0:96.1.1(3153414733313030323638353835)
    0-0:1.0.0(220214145129W)
    1-0:1.8.1(003121.954*kWh)
    1-0:1.8.2(003731.843*kWh)
    1-0:2.8.1(000000.019*kWh)
    1-0:2.8.2(000000.379*kWh)
    0-0:96.14.0(0001)
    1-0:1.7.0(01.067*kW)
    1-0:2.7.0(00.000*kW)
    1-0:21.7.0(00.824*kW)
    1-0:41.7.0(00.000*kW)
    1-0:61.7.0(00.242*kW)
    1-0:22.7.0(00.000*kW)
    1-0:42.7.0(00.000*kW)
    1-0:62.7.0(00.000*kW)
    1-0:32.7.0(231.5*V)
    1-0:52.7.0(000.0*V)
    1-0:72.7.0(227.0*V)
    1-0:31.7.0(003.91*A)
    1-0:51.7.0(003.94*A)
    1-0:71.7.0(001.60*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(37464C4F32313231303931383933)
    0-1:24.4.0(1)
    0-1:24.2.3(220214144958W)(01180.240*m3)
    !358C

  43. Guillaume Swennen says:

    Ha Willem, allereerst; geweldig project! Ik heb recent DSMR-logger v4.5 met voorgeïnstalleerde firmware v3.0.1 (15-06-2021) gekocht. Werkt perfect maar wat me echter opvalt is dat het zowel via device actual (webpagina) als via mqtt de waarde van “voltage_l2” 0.000 blijft. ik heb een paar screenshots meegeleverd als voorbeeld. Enig idee?

    {"actual":[
    {"name": "timestamp", "value": "220214130648W"},
    {"name": "energy_delivered_tariff1", "value": 3120.068, "unit": "kWh"},
    {"name": "energy_delivered_tariff2", "value": 3731.843, "unit": "kWh"},
    {"name": "energy_returned_tariff1", "value": 0.019, "unit": "kWh"},
    {"name": "energy_returned_tariff2", "value": 0.379, "unit": "kWh"},
    {"name": "power_delivered", "value": 0.986, "unit": "kW"},
    {"name": "power_returned", "value": 0.000, "unit": "kW"},
    {"name": "voltage_l1", "value": 228.900, "unit": "V"},
    {"name": "voltage_l2", "value": 0.000, "unit": "V"},
    {"name": "voltage_l3", "value": 226.500, "unit": "V"},
    {"name": "current_l1", "value": 4.070, "unit": "A"},
    {"name": "current_l2", "value": 3.900, "unit": "A"},
    {"name": "current_l3", "value": 1.320, "unit": "A"},
    {"name": "power_delivered_l1", "value": 0.838, "unit": "kW"},
    {"name": "power_delivered_l2", "value": 0.000, "unit": "kW"},
    {"name": "power_delivered_l3", "value": 0.147, "unit": "kW"},
    {"name": "power_returned_l1", "value": 0.000, "unit": "kW"},
    {"name": "power_returned_l2", "value": 0.000, "unit": "kW"},
    {"name": "power_returned_l3", "value": 0.000, "unit": "kW"},
    {"name": "mbus1_delivered", "value": 1179.900, "unit": "m3"},
    {"name": "mbus2_delivered", "value": 0.000, "unit": "GJ"},
    {"name": "mbus3_delivered", "value": 0.000, "unit": "m3"},
    {"name": "mbus4_delivered", "value": 0.000, "unit": "m3"},
    {"name": "gas_delivered", "value": 1179.903, "unit": "m3"}
    ]}
    

    Ik kan maar 1 bestand uploaden als attachement dus heb ik voor de device info gekozen en de actual hierboven gekopieerd

    • Willem Aandewiel says:

      Guillaume,

      Het plaatje is helaas onleesbaar 🙁

      Als je in de GUI op [Telegram] klikt, dan zie je het telegram zoals die door de SM wordt verstuurt. Staat daar wél een waarde bij “voltage_l2” (ik weet zo snel de code niet, maar de drie voltages staan onder elkaar)?

      Zo niet, dan is je SM stuk. Zo ja, dan hebben we een probleem..

  44. R.J. Franke says:

    Hi Willem,
    ik kom even terug op een Heap issue.
    ik moet regelmatig rebooten, want: 500: internal server error (low heap): en alles bevriest.

    Name	Value	Unit
    Auteur	Willem Aandewiel (www.aandewiel.nl)	
    Firmware Versie	v3.0.1 (15-06-2021)	
    Gecompileerd	Jun 15 2021 14:56:20	
    HostName	DSMR-API	
    IP adres	192.168.0.27	
    MAC adres	A4:CF:12:xx:xx:xx	
    Te Gebruiken index.html Pagina	DSMRindex.html	
    Free Heap Space	8208	bytes
    Max. Free Heap Blok	7720	bytes
    Chip ID	c2fcb6	
    ESP8266 Core Versie	2_7_4	
    SDK versie	2.2.2-dev(38a443e)	
    CPU Frequency	80	MHz
    Sketch Size	563.922	kB
    Free Sketch Space	1484	kB
    Flash Chip ID	001640EF	
    Flash Chip Size	4	MB
    Flash Chip Real Size	4	MB
    filesystem_size	2	MB
    Flash Chip Speed	40	MHz
    Flash Chip Mode	DOUT	
    Board Type	ESP8266_GENERIC	
    Compiler Opties	[USE_UPDATE_SERVER][USE_MQTT][USE_MINDERGAS]	
    WiFi SSID	Vivaldi_24	
    WiFi RSSI	-26	
    Up Time [dagen] - [hh:mm]	0(d)-07:17(H:m)	
    Up Time in Seconds	26273	sec
    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	2203	
    Telegrammen met fouten	18	
    MQTT Broker IP/URL	:1883	
    Verzend MQTT Berichten (Sec.)	0	
    MQTT broker connected	no	
    Mindergas Terugkoppeling	NO_AUTHTOKEN	
    Mindergas Status (@dag | tijd)	@08|11:56 -> :0	
    Aantal keer opnieuw opgestart	152	
    Laatste Reset reden	Software/System restart
    

    prima stekkers enzo, kan ik iets veranderen?

    • Willem Aandewiel says:

      Hallo R.J. Franke,

      Alles ziet er goed uit behalve de RSSI waarde. Als ik het goed begrijp is -26 erg laag.

      Het is mij vaker opgevallen dat een slecht WiFi bereik tot onduidelijke problemen leidt.

  45. Paul Renting says:

    @Willem

    Het veranderen van het netwerk (zie hierboven) gelijk gebruikt om de integratie met Home Assistant te verbeteren. Mijn oorspronkelijke configuratie was een door ontwikkelde versie van de instructie uit jouw Gitbook.

    In de oorspronkelijke instructie staat een mengelmoes van MQTT en API integraties en alle waardes worden met een afzonderlijke API call opgehaald. Dit vond de DSMR Reader (V4.5) bij mij niet fijn, als ik alle waardes naar HA bracht, kon die het simpelweg niet meer aan.

    Nu zit alles in 1 API call, m.u.v. timestamp worden de waarde op de JSON value gevonden, i.p.v. de regel in de JSON, de juiste device classes, state classes en unit of measurement zijn aangepast om weer in lijn te zijn met Home Assistant 2022.2; waardoor met deze configuratie ook gelijk Energy Management gebruikt kan worden in HA.

    rest:
      - resource: http://dsmr-api.local/api/v1/sm/actual  
        scan_interval: 10
        sensor:
          - name: DSMR LastUpdate
            value_template: >
             {{ as_local(strptime(value_json.actual[0].value[0:12], "%y%m%d%H%M%S")) }}
            device_class: "Timestamp"
          - name: DSMR Energy Consumption Tariff 1
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'energy_delivered_tariff1') | map(attribute='value') | first | float }}"
            device_class: "energy"
            state_class: "total_increasing"
            unit_of_measurement: "kWh"
          - name: DSMR Energy Consumption Tariff 2
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'energy_delivered_tariff2') | map(attribute='value') | first | float }}"
            device_class: "energy"
            unit_of_measurement: "kWh"
            state_class: "total_increasing"
          - name: DSMR Energy Returned Tariff 1
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'energy_returned_tariff1') | map(attribute='value') | first | float }}"
            device_class: "energy"
            unit_of_measurement: "kWh"
            state_class: "total_increasing"
          - name: DSMR Energy Returned Tariff 2
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'energy_returned_tariff2') | map(attribute='value') | first | float }}"
            device_class: "energy"
            unit_of_measurement: "kWh"
            state_class: "total_increasing"
          - name: DSMR Power Consumption Actual Total
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'power_delivered') | map(attribute='value') | first | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: DSMR Power Returned Actual Total
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'power_returned') | map(attribute='value') | first | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: DSMR Voltage Phase 1
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'voltage_l1') | map(attribute='value') | first | float }}"
            device_class: "voltage"
            unit_of_measurement: "V"
          - name: DSMR Voltage Phase 2
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'voltage_l2') | map(attribute='value') | first | float }}"
            device_class: "voltage"
            unit_of_measurement: "V"
          - name: DSMR Voltage Phase 3
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'voltage_l3') | map(attribute='value') | first | float }}"
            device_class: "voltage"
            unit_of_measurement: "V"
          - name: DSMR Current Phase 1
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'current_l1') | map(attribute='value') | first | float }}"
            device_class: "current"
            unit_of_measurement: "A"
          - name: DSMR Current Phase 2
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'current_l2') | map(attribute='value') | first | float }}"
            device_class: "current"
            unit_of_measurement: "A"
          - name: DSMR Current Phase 3
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'current_l3') | map(attribute='value') | first | float }}"
            device_class: "current"
            unit_of_measurement: "A"
          - name: DSMR Power Consumption Phase 1
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'power_delivered_l1') | map(attribute='value') | first | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: DSMR Power Consumption Phase 2
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'power_delivered_l2') | map(attribute='value') | first | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: DSMR Power Consumption Phase 3
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'power_delivered_l3') | map(attribute='value') | first | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: DSMR Power Returned Phase 1
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'power_returned_l1') | map(attribute='value') | first | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: DSMR Power Returned Phase 2
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'power_returned_l2') | map(attribute='value') | first | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: DSMR Power Returned Phase 3
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'power_returned_l3') | map(attribute='value') | first | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: DSMR Gas Consumption
            value_template: "{{ value_json.actual | selectattr('name', 'eq', 'gas_delivered') | map(attribute='value') | first | float }}"
            device_class: "gas"
            state_class: "total_increasing"
            unit_of_measurement: "m³"
    
  46. Piet says:

    Willem,

    Ik heb dus het laatste gedaan, downloaden naar de computer en dan met Notepad++ alles aangepast en teruggezet en daarna een reboot. Dan lijkt alles goed maar na een paar minuten staat het weer in een andere volgorde. Heb de screenshot van de editor bijgevoegd.

  47. Piet says:

    Hallo Willem,

    Heb de DSMR geupgrade naar versie 3.01
    Daarbij een denkfout gemaakt door de PRD bestanden opnieuw om te laten zetten naar RING bestanden. Dit had echter niet gehoeven omdat ik al op versie 2.01 zat.
    De oude PRD bestanden stonder er nog dus werden de huidige RING bestanden overschreven.
    Ik had echter wel alle getallen nog dus met een editor het RINGmonth bestand aangepast en teruggezet. Dit ging goed zie 1e foto in de bijlage. Echter na een paar minuten staat het dan niet meer in de juiste volgorde zie 2e foto in de bijlage.
    Ook in Webgui krijg ik bij het maand overzicht ook niks zinnigs te zien.
    Heb ook een screenshot van de editor bijgevoegd.
    Heb jij enig idee wat hier misgaat.
    Ik heb dit met de PRD bestanden wel vaker gedaan en dat werkte altijd prima.

    Alvast bedankt voor je reactie.

    • Willem Aandewiel says:

      Piet,

      Ik zie geen plaatje van de editor.

      De editor is een beetje lastig te gebruiken. Vaak is het het handigste om eerst alle regels voor gasverbruik in te voeren waarbij de jaar/maand key oplopend moet zijn en het verbruik óók (voer gewoon 1, 2, 3 enz. in). Ondertussen regelmatig op [Bewaren] klikken. Als de 24 maanden zijn ingevuld de energie gegevens invoeren en niet meer aan de jaar/maand key komen. Belangrijk dat je geen komma’s maar (decimale) punten(!) gebruikt!
      Een andere mogelijkheid is om het bestand naar je computer te uploaden en daar de gegevens in te voeren. Geen text editor als notepad gebruiken maar een “plane text” editor als vim of vi gebruiken. Daarna het bestand terug zetten op de DSMR-logger.

  48. Dennis says:

    Willem,

    Als ik iets wil doen met de gasmeterstand in jouw sketch, op welke regel moet ik dat doen?
    Ik bedoel, de gasmeterstand wordt uitgelezen maar ik snap zo niet waar in de code je dat doet.

    Dennis

    • Willem Aandewiel says:

      Dennis,

      Er zijn verschillende plaatsen waar je “iets” met de ingelezen gasmeter standen kunt doen. Meest voor de hand liggend is direct na het lezen van een telegram.

      Succes!

      • Dennis says:

        Hallo Willem,

        Dankjewel!
        Ik zoek juist net die plek waar je dat doet, heb je geen tip? Want je hebt zoveel tab’s waar ik in vastloop.

        • Willem Aandewiel says:

          Wat dacht je van [handleSlimmeMeter]?

          En dan wellicht in de functie processSlimmemeter()?
          En omdat gasverbruik via de mBus binnen komt zou ik ook even kijken in modifyMbusDelivered() ..

  49. Werkende translatie voor Home Assistant:

    configuration.yaml:

    rest:
      - resource: http://192.168.2.23/api/v1/sm/actual  
        scan_interval: 60
        sensor:
          - name: huidige_elektriciteitsconsumptie
            value_template: "{{ value_json.actual[5].value | float }}"
            device_class: "power"
            unit_of_measurement: "kW"
          - name: totaal_elektriciteitsconsumptie_l1
            value_template: "{{ value_json.actual[1].value | float }}"
            device_class: "energy"
            unit_of_measurement: "kWh"
          - name: totaal_elektriciteitsconsumptie_l2
            value_template: "{{ value_json.actual[2].value | float }}"
            device_class: "energy"
            unit_of_measurement: "kWh"
          - name: totaal_gasconsumptie
            value_template: "{{ value_json.actual[10].value | float }}"
            device_class: "gas"
            unit_of_measurement: "m³"
        
    # Verbruiksgegevens elektriciteit en gas afleiden van totalen
    utility_meter:
      daily_energy_offpeak:
        source: sensor.totaal_elektriciteitsconsumptie_l1
        name: Daily Energy Usage L1
        cycle: daily
      daily_energy_peak:
        source: sensor.totaal_elektriciteitsconsumptie_l2
        name: Daily Energy Usage L2
        cycle: daily
      daily_gas:
        source: sensor.totaal_gasconsumptie
        name: Daily Gas Usage
        cycle: daily
      monthly_energy_offpeak:
        source: sensor.totaal_elektriciteitsconsumptie_l1
        name: Monthly Energy Usage L1
        cycle: monthly
      monthly_energy_peak:
        source: sensor.totaal_elektriciteitsconsumptie_l2
        name: Monthly Energy Usage L2
        cycle: monthly
      monthly_gas:
        source: sensor.totaal_gasconsumptie
        name: Monthly Gas Usage
        cycle: monthly
    
  50. Marinus says:

    Goede tip, thanks!
    Zodra het op github staat komt er wel een linkje van hier.

    • Marinus says:

      Het staat op github!

      • Dennis says:

        Hallo Marinus, Jij leest dus de API’s in met een andere esp?

        Weet jij hoe ik in de bestaande sketch van de logger iets kan doen met de meterstanden?
        Ik weet niet waar ik moet beginnen. Ik zie in de code niet op welke regel bijvoorbeeld de meterstanden worden geschreven.

        Ik wil bv een actie gaan uitvoeren als ik 1m3 gas verbruikt heb.

        • Marinus says:

          Ja, hoe zit het ook alweer.. (tijdje niet mee bezig geweest)..
          Inderdaad wordt de logger van Willem via het wifi-netwerk uitgelezen door de D1-mini met het schermpje. In principe werkt het dacht ik zo: De D1 stuurt een web-adres naar de logger die aan de slimme meter hangt, in mijn code op regel 43 : http.begin(“http://192.168.1.67/api/v1/sm/actual”). Met de volgende regel int httpCode = http.GET() wordt de data opgehaald, en in een pakket gezet (array). Daarna wordt via dat JSON-gebeuren die data in allemaal variabelen gezet(floating point, integers enzo). In mijn sketch is dus bv actual_1_value de actuele meterstand van tarief1 in floating point-type. Met al die variabelen kun je dus gaan rekenen/vergelijken/op een schermpje zetten, of een output-poort hoog of laag maken. Op die manier zou je wel iets kunnen maken wat iets doet als er een kuub gas is verbruikt bv. Wel handig als je iets van programmeren af weet dan natuurlijk.. Om te beginnen is het misschien een idee om eens zo’n d1 mini bv aan te schaffen, kost maar 5 euro. Best leuk dat gepruts ermee(meestal..) Ik hoop dat je hier iets mee kan.

          • Dennis Hendriks says:

            Marinus, Dankjewel voor je reply!

            Ik ben opzich al wel handig met esp8266 en Arduino IDE. Alleen dit soort communicatie is voor mij nieuw en ik snap er niet veel van eerlijk gezegd.
            Ik heb de logger hardwarematig zelf gebouwd en het uitlezen gaat ook goed met de code van Willem.
            Ik zoek alleen de juiste plaats in de code waar de waardes juist binnengehaald wordt en dat ik hem dus kan bewerken.

          • Marinus says:

            Hoi Dennis,
            Aan Willems logger, die aan de slimme meter hangt, heb ik niks veranderd qua hardware of software. Dat zal vast wel kunnen, maar is voor mij ook veuls te ingewikkeld. Dat knutseldingetje van mij leest alleen maar wat data eruit, telt wat bij elkaar op, en zet het op een schermpje. Vanmiddag heb ik nog een foto toegevoegd van de hardware op mn github, zie de link hier iets boven. De code ga ik binnenkort nog wel wat fatsoeneren, iets beter commentaar erbij, en overbodige dingen eruit halen. Staat op de to-do list hier.

  51. Marinus says:

    Code uploaden lukt zo niet zo best zie ik.
    Ik zie dat er bij de include-files al dingen ontbreken.

    Misschien een andere manier handiger ?

  52. Marinus says:

    Hoi, Thanks!
    De hardware die ik heb gebruikt: 1 ESP8266(Wemos D1 Mini), 1 vier-regelig LCD-schermpje met I2C, en natuurlijk de DSMR-logger van Willem(met zijn versie 2.0.1 sofware erop).
    Eerste uitdaging is natuurlijk om iets op het lcd-schermpje te krijgen. Daar zijn wel genoeg tutorials over te vinden. Met de arduino-IDE heb ik de 8266 geprogrammeerd.
    Tweede uitdaging was om via de wifi de benodigde data uit de DSMR-logger te halen.
    Van JSON heb ik dus ook weinig verstand, maar met veel trial en error toch iets voor elkaar gekregen. Op het schermpje worden verbruik en teruglevering al bij elkaar opgeteld, dus als op een dag bv 3 kwh is verbruikt en 5 kwh is teruggeleverd, dan staat er -2 op het schermpje. Hetzelfde geldt voor het jaarverbruik.
    Een actie uitvoeren na bv 1m3 gas zou wel moeten kunnen Dennis, de esp zal nog wel een paar io-pinnen over hebben.
    Ik voeg mijn code voor de D1-Mini hierbij, schrik niet, best wel rommelig, en overbodige code, maar als het werkt, dan werkt het..

  53. Marinus says:

    Hoi Willem,
    Werkt prima hier allemaal.
    Ik heb iets geknutseld met een lcd-display.
    Dus kan ik in een opslag zien het jaarverbruik,
    actuele verbruik, verbruik gisteren, en verbruik eergisteren.
    En gratis nog de tijd en datum erbij.
    Ik ben een belabberde programmeur, dus de code ziet er niet uit..
    Maar het functioneerd.
    Dus ik wil die code wel sharen, als er geinterresseerden zijn.

    Groet van Marinus.

    • Willem Aandewiel says:

      Netjes!

    • Dennis says:

      Dat ziet er erg gaaf uit Marinus!
      Ik wil ook graag iets doen met de meterstanden uit de slimme meter maar ik weet niet waar ik moet beginnen, wellicht kun je mij even helpen daarmee?
      Ik wil bv een actie gaan uitvoeren als ik 1m3 gas verbruikt heb.

  54. Dennis says:

    Hallo Allemaal,

    Zoals hierboven al gevraagd aan Willem.

    Heeft iemand ervaring met deze logger en mqtt naar HomeAssistant?

    Inmiddels heb ik de waardes wel binnen echter lijkt me de regel niet helemaal goed.
    Hij komt ook echt op die manier binnen.
    Moet die [ en ] er wel staan in de Arduino sketch?

  55. Dennis says:

    Hallo Willem,

    Ik gebruik de logeer nu enkele weken met tevredenheid!
    Nu ben ik alleen vandaag al een halve dag bezig om deze via een mqtt broker in homeassistant te krijgen.
    De broker werkt in MQTT explorer.

    Ik maak gebruik van je beschrijving op: https://mrwheel.github.io/DSMRloggerWS/integratieHassio/

    De file: /config/configuration.yaml

    heb ik aangepast naar:
    # Configure a default setup of Home Assistant (frontend, api, etc)
    default_config:

    # Text to speech
    tts:
    – platform: google_translate

    group: !include_dir_merge_named groups/
    automation: !include automations.yaml
    script: !include scripts.yaml
    scene: !include scenes.yaml
    sensor: !include_dir_merge_list sensors/
    switch: !include_dir_merge_list switches/
    light: !include_dir_merge_list lights/
    camera: !include_dir_merge_list cameras/

    mqtt:
    broker: mijn broker ip adres
    port: 1883
    client_id: HassIO
    keepalive: 60
    username: mijn naam
    password: mijn wachtwoord

    Nu heb ik geen submappen gekregen, moet ik deze zelf aanmaken?
    Ik had dat namelijk al geprobeerd maar aan het einde van de beschrijving loop ik ook vast wat nu verder de bedoeling is in HA. Ik neem aan dat de meterstanden er dan niet vanzelf inkomen toch?

    • Willem Aandewiel says:

      Dennis,

      Je doet dingen met HA die mijn pet te boven gaan.

      Ik kan je dan ook niet verder helpen. Hopelijk leest iemand die wel verstand heeft van HA je comment en geeft die je de antwoorden waar je naar zoekt!

  56. Bauke says:

    Yip, de stekker zit erin met klik.
    Ik ga vragen aan de netbeheerder of zij de P1-poort kunnen controleren.
    Bedankt voor het meedenken.
    Mvrgr Bauke

  57. Bauke says:

    Hallo Willem,
    Bij mijn zoon heb ik begin vorig je DSMR software v2.0.1 geinstalleerd. 5v voeding vanuit SM. Hij heeft geen gas aansluiting. Dit heeft goed gedraaid tot sep. 2021. Toen problemen: er kwam geen data meer binnen. Ik zag bij hem wel een te lage heap.
    In december 2021 heb ik hiernaar gekeken. Print meegenomen naar mijn huis.
    DSMR software v3.0.1 geinstalleerd met LittleFS en op mijn eigen SM draait het weer prima.
    Na installatie bij mijn zoon echter draait het wederom niet.
    Wat ik zie is dat het telegram niet volledig binnenkomt en wat binnenkomt wisselt qua lengte. De heap is nu wel ruim voldoende.
    De overzichten kan ik bij hem wel gewoon draaien, alleen zonder actuele data.
    Ik heb verschillende dingen geprobeerd:
    – Externe 5v voeding toegepast i.c.m. met een 4-draads SM-aansluiting
    – SM-voeding toegepast i.c.m. een 6-draads aansluiting
    – MQTT en Mindergas uitgeschakeld via eigen compilatie met Arduino.
    – Lees interval verlaagd naar 20 sec.
    – Verschillende waarden geprobeerd voor MBus-1 Type meter (0,1,2,3).

    Heb jij enig idee waar de fout kan zitten? Ik heb 4 foto’s met info bijgesloten.
    In het uiterste geval kan mijn conclusie zijn dat de P1 software/hardware in de SM niet goed (meer) functioneert (kan dat?).

    Ik hoop van je te horen. Mvrgr, Bauke

    • Bauke says:

      En hier het onvolledige telegram

      • Willem Aandewiel says:

        In ieder geval is het telegram niet compleet.
        Is er nog een ander apparaat dat op de P1 poort is aangesloten?

        • Bauke says:

          Willem,
          Nee, op de SM van mijn zoon (een Landis & Gyr E360) is niets anders op de P1-poort aangesloten behalve de DSMR logger.
          Sterker nog: Als ik de logger bij mijzelf aansluit (waar hij het dus wel doet) dan is dat wel op een P1-splitter.

      • Willem Aandewiel says:

        Bauke,

        Ik heb werkelijk geen idee wat hier aan de hand is.
        Dat de DSMR-logger het op jouw Slimme Meter wel doet doet vermoeden dat er een probleem in de Slimme Meter van je zoon zit.
        Als laatste opmerking: zit de stekker goed en ver genoeg in de P1 poort? Hoor je een duidelijke “klik” als je hem er in stopt?

      • Bauke says:

        Hallo Willem,
        Ik worstel nog steeds met de DSMR-logger die bij mij wel werkt maar op de Landis&Gyr E360 van mijn zoon niet.
        Inmiddels heb ik een andere P1-lezer aangesloten op zijn SM en die werkt gewoon. Conclusie: de SM werkt goed.
        Nu heb ik in je software gekeken en ik zie ‘overal’ staan slimmeMeter(enable), dwz DTR gaat hoog en SM verstuurt een telegram. Nergens echter zie ik een opdracht om DTR laag te zetten na het lezen van een telegram. Kan het zo zijn dat deze SM zo snel is met versturen van telegrammen dat dit het proces verstoort.

  58. hans says:

    Ha Willem, het MAC ID van het spook AP is gelijk aan dat van de DSMR logger. Maw, het is zeker dat de DSMR het SSID uitzendt. In de SSID naam worden overigens de laatste 3 bytes van het MAC ID gebruikt, in mijn geval dus ESP02EE76.

    Maar met jouw laatste aanvulling wordt het alleen maar raadselachtiger. Dan is het niet iets uit de firmware die de AP configuratiegegevens aanlevert.

    • Michael says:

      Hallo Willem en Hans,

      ik heb hetzelfde probleem..
      Wanneer ik mijn DSMR logger reset dan komt er een AP bij namelijk :ESP-77dbd2 met een IP adres 192.168.4.2.

      Om dit (tijdelijk) op te lossen doe ik de ‘Force re-config Wifi’ via telnet.
      Dan krijg ik het AP DSMR-api te zien en vul hier mijn SSID en Key in.
      Daarna verdwijnt het AP ESP-77dbd2 weer (totdat de DSMR logger weer ge-reset wordt.

      Ik gebruik een DSMR logger V4 met externe voeding.
      Sinds een maand geupdated naar de API versie, daarvoor geen problemen gehad.

      • Willem Aandewiel says:

        Michael,

        Dank voor je info.
        Het blijft voor mij een raadsel!

        Ik kan op mijn DSMR-logger niet (eenvoudig) bij de [reset] switch (zal eens op een demo unit proberen) dus ik trek gewoon het stekkertje uit de SM en stop hem er weer in. In die situatie krijg ik géén AP.

        Zou één van jullie dat ook eens willen proberen en terugkoppelen wat het effect dan is?

        • hans says:

          De workaround van Michael werkt bij mij ook. Hij is nog niet ingebouwd dus ik doen wat experimenten.

          Uitgangssituatie is een DSMR zonder externe voeding. Na inpluggen in SM connecteert hij met mijn WLAN, tegelijkertijd heb ik een AP: ESP02EE76

          Telnet naar DSMR, W: (Force Re-Config WiFi). Ik verbind met het config AP: DSMR-API-. Met de browser naar http://192.168.4.1 waarna ik de DSMR weer met de gegevens van mijn WLAN configureer. Na bevestiging is de DSMR na een paar seconden met het WLAN verbonden en is er geen extra AP te zien!

          Vervolgens doe ik een reset met de resetknop op het PCB. Meteen is het AP: ESP02EE76 weer terug, dus vergelijkbaar met los en aankoppelen op de startmeter.

          Groet, Hans

          • Michael says:

            Wat opvalt bij mijn DSMR logger (bij normaal bedrijf) is dat de blauwe led constant aan is en één keer per 10 sec. heel even uitgaat.

      • Willem Aandewiel says:

        @Michael,

        Met v3.0.3 zou dit probleem opgelost moeten zijn.
        Graag feedback!

        • Michael says:

          Hallo Willem,
          ik heb hem gisteren geüpdatet maar mijn blauwe led blijft nog steeds aan.

          DSMR-API v3.0.4 (14-10-2022)

  59. hans says:

    Ha Willem, dank voor je vlotte reactie.
    Ook na nogmaals een reboot komt het AP op exact hetzelfde kanaal (6) weer terug. Ik heb de link bekeken en het lijkt alsof je juist code moet toevoegen om de ESP tegelijkertijd in AP en Client mode te laten werken. Dat was je toch opgevallen zou ik denken 🙂 Ik heb je code gescand en daar komt het commando WiFi.softAP in ieder geval niet in voor. Kennelijk is er ook een configuratie voor het AP want het heeft een vast eigen IP-adres en een DHCP pooltje voor clients (vanaf 192.168.4.2). Zo lukte het me om zelfs 2 clients simultaan te verbinden. En dat terwijl de DSMR op mijn eigen WLAN verbonden bleef. Knap!
    For the record, het is een uit de doos Setup van de DSMR logger die nu door Opencircuit wordt geleverd. Ik heb een Landys E360 meter die de DSMR voedt (jumpertje verzet) en gebruik MQTT.
    De grap is dat ik je code al een tijdje op een WEMOS D1 mini pro in gebruik had. Het lukte destijds in eerste instantie niet om de code te compileren en heb toen het een en ander in aangepast. Met de WEMOS had ik ook een AP maar dacht dat dit door het zelf knoeien met de code kwam, of iets met de WEMOS. Uiteindelijk mezelf de huidige DSMR cadeau gedaan om van het AP af te komen met hetzelfde euvel als resultaat. Kan ik iets doen waarmee jij beter inzicht krijgt wat er aan de hand is?

    • Willem Aandewiel says:

      Hi Hans,
      Om te beginnen: je hoeft niets aan de code aan te passen om hem voor een Wemos bordje geschikt te maken … zolang je maar compileert voor een “general ESP8266”. Immers, het enige wat er gebeurd als je in de compiler opties voor een Wemos (of ander op de ESP8266 gebaseerd bordje) selecteert is dat er allerhande vertalingen van Dx naar GPIO pinnen plaatsvinden. Nergens voor nodig en erg verwarrend.

      Verder is dit erg vreemd. Ik ben momenteel nogal druk met andere projecten maar ik zal het zeker verder onderzoeken.

      Alle informatie die je kunt verzamelen is welkom en ik roep anderen ook op om te kijken of ze ook gelijktijdig een WiFi station en AP hebben!

    • Willem Aandewiel says:

      Hans,

      Wat ik vreemd vind is dat het AP uitzend met de id “ESP-02<macaddress>“..
      De DSMRloggerAPI firmware zend uit (als je dit niet in de settings hebt veranderd) met id “DSMR-API-<macaddress>” …
      Kan het zijn dat je binnen je netwerk een andere ESP8266/32 met de id “ESP-02” hebt draaien en dat deze als “bridge” tussen het 192.168.4.0 en je lokale netwerk fungeert?

      Is het macaddress van de DSMR-logger (zie [Sysinfo] tab) gelijk aan die van het “spook” AP?

      • hans says:

        In aanvulling van mijn vorige reactie. Als ik ben aangemeld op het AP en een nmap scan die is dit het resultaat:
        Nmap scan report for 192.168.4.1
        PORT   STATE SERVICE
        23/tcp open  telnet
        80/tcp open  http
        Naast de webserver wordt er op de telnetport geluisterd. Er draait echter geen server achter want geen response. Helaas want dat had misschien iets opgehelderd. De port 80 geeft zoals gezegd een DSMR pagina. Er is alleen geen default page geregistreerd. Ik moet dus zelf DSMRindex.html aanvullen.
        Alle begrip dat je nu geen tijd hebt, maar dan heb je de info maar alvast.

  60. hans says:

    Ha Willem, allereerst; geweldig project! Ik heb recent DSMR-logger v4.5 met voorgeïnstalleerde firmware v3.0.1 (15-06-2021) gekocht. Werkt perfect maar wat me echter opvalt is dat het Accesspoint (AP) ingeschakeld blijft, ook al is de DSMR aan een WLAN aangemeld. Het AP zend uit met ESP-02xxyy. Het is een onbeveiligd WLAN en als ik ermee verbind kan ik de DSMR zonder meer volledig benaderen via http://192.168.4.1/DSMRindex.html . Dat kunnen mijn nieuwsgierige buren dus ook en ik zou het AP graag uitschakelen. Is ook niet nodig want de DSMR wordt via mijn eigen WLAN benaderd.

    Is dit normaal gedrag? Heb de in de docu gezocht maar vind daar geen uitsluitsel.

    Alvast bedankt!

    • Willem Aandewiel says:

      Dit is héél vreemd.
      Bij mijn weten kan de WiFi chip/processor van de esp8266 alleen óf een AP óf een client zijn .. maar je bent de tweede die dit gedrag meldt. Nu heb ik even geGoogled en vond deze post.

      Het kán dus wél, maar ik moet de code er weer eens bijhalen om te kijken of dit in de DSMRloggerAPI firmware ook kan gebeuren.

      In ieder geval doet mijn DSMR-logger dit niet. Misschien dat het AP na een reset niet meer wordt opgestart?

      • Dave says:

        Is hier al iets over bekend? Dit is een (potentieel) security en privacy issue. Buiten het feit dat het een open netwerk creëert, “schreeuwt” deze ook nog eens over alles heen wat zorgt voor interference in de channel bandbreedte (niet zo netjes in een tegenwoordig al snel drukke AP vertegenwoordiging).
        Ik heb de laatste firmware versies geïnstalleerd (v3.0.2 (16-02-2022)) op een DSMR-logger v4. Een reset helpt niet.

        • Willem Aandewiel says:

          Waarschijnlijk een simpele aanpassing.
          Voor connect WiFi moet iets van wifi.mode(WIFI_STA); komen.

          Als ik eens tijd heb zal ik een aangepaste binary maken

        • Willem Aandewiel says:

          @Dave,

          Met v3.0.3 zou dit opgelost moeten zijn.

          • Dave says:

            Hallo Willem,
            Ik heb zojuist 3.0.3 geïnstalleerd, maar het probleem is nog niet opgelost. Het AP is nog steeds aanwezig …
            Dave

          • Willem Aandewiel says:

            Hi Dave,

            Wat vreemd.

            Misschien moet ik deze code toevoegen:

            softAPdisconnect
            
            Disconnect stations from the network established by the soft-AP.
            
            WiFi.softAPdisconnect(wifioff)
            Function will set currently configured SSID and pre-shared key of the soft-AP to null values. The parameter wifioff is optional. If set to true it will switch the soft-AP mode off.
            
            Function will return true if operation was successful or false if otherwise.
            
          • Willem Aandewiel says:

            Hi Dave,

            Ik heb net een nieuwe versie 3.0.3 (04-09-2022) op github gezet.

            Wil je die weer testen?

            Vast mijn dank!

    • Willem Aandewiel says:

      @Hans,

      Versie 3.0.3 zou het AP uit moeten schakelen.
      Graag feedback!

      • Dave says:

        Hi Willem,

        De AP is gone! Nieuwe firmware lost het probleem van een open AP op in mijn geval.

        Bedankt!
        Dave

        • Willem Aandewiel says:

          Dave,

          Heb je getest met de versie van 4 september?

          Mooi dat het AP nu weg is. Ik blijf het onbegrijpelijk vinden dat ik zo’n “spook AP” op mijn DSMR-logger nooit gehad/gezien heb!

  61. Carel van Leeuwen says:

    Een paar dagen geleden het DSMR bordje ontvangen en geactiveerd.
    A)
    Als ik de uitlezingen raadpleeg dan blijkt er in het overzicht per uur een probleem te zijn:
    Firmware v3.0.1 (15-06-2021)
    (20) [04:00 – 04:59]
    (20) [03:00 – 03:59]
    (20) [02:00 – 02:59]
    (20) [01:00 – 01:59]
    In deze blokken is het gasverbruik steeds 0 terwijl er wel gebruik is.
    Het totaal van de uren komt niet overeen met wat er op de pagina per dag staat.
    De elektra is wel goed.
    Mogelijk zit er een bug in de verwerking.
    B)
    De vaste kosten worden al enige jaren opgegeven per dag en niet per maand.
    Ik kan in jou software alleen maar vaste kosten per maand invullen.

    • Willem Aandewiel says:

      Heb je een vraag?

      • Carel van Leeuwen says:

        Is dit een bug of doe ik iets fout?
        Als dit een bug is, is dit te verhelpen?

        • Willem Aandewiel says:

          Hi Carel,

          Deze blogpost is ruim 80.000 keer bezocht. Stel dat er daar 5% dit ontwerp gebruiken (4.000 gebruikers?) dan zou zo’n bug toch wel opgemerkt zijn.

          Ik denk dus dat je iets fout doet.
          Heb je de documentatie gelezen?

  62. R Kleijn says:

    Hoi Willem,

    Heb vandaag de slimme meter DSMR-API v3.0.1 (15-06-2021) ontvangen. Deze moet ik plaatsen bij een kennis. Via de handleiding heb ik deze om te testen eerst aan mijn eigen meter gehangen. Ik heb veel gelezen, maar zie geen uitleg hoe ik nu de bestaande Wifi ssid en password kaan aanpassen. Of de volledige module resetten zodat ik weer opnieuw kan beginnen. Kun jij me dat uitleggen. Of als ik ergens overheen heb gelezen tonen waar dit staat.

    Alvast dank.

    mvg,
    Raimond

    • Willem Aandewiel says:

      Raimond,

      Als de DSMR-logger buiten je eigen netwerk opstart zal hij automatisch het AP weer opstarten en kun je de credentials van het nieuwe netwerk invoeren, net als bij het “de eerste keer opstarten”.

      Je kunt ook inloggen met telnet (op je eigen netwerk) en de hele DSMR-logger resetten (druk, na aanmelden op [Enter] zodat het menu verschijnt).

  63. Kroon says:

    Hi Willem! Via OpenCircuit heb ik vorig jaar een DSMRv4 gekocht. Deze heeft een tijdje pre v2 gewerkt voordat ik hem begin dit jaar heb geupdate naar v2. Vanaf dat moment broadcast de DSMR zelf ook het Wifi SSID welke er normaal gesproken alleen is bij het configureren (degene met het MAC adres als naam). Ondertussen is de DSMR wel gewoon connected op mijn eigen SSID via waar ik connectie maak (ook met de MQTT broker).

    Dit heb ik een hele tijd zo gelaten omdat het mij niet echt in de weg zat. Sinds vorige week ben ik echter mijn netwerk aan het vervangen en zou ik dit toch wel graag gefixed willen hebben omdat het niet helemaal netjes is en toch weer een extra SSID is wat loopt te broadcasten. Gisteren de update gedaan naar v3, hopende dat dit het wellicht zou oplossen. Dit leek eerst het geval voor een aantal minuten, waarna de DSMR MAC SSID toch weer terug kwam.

    In het menu kon ik geen mogelijkheid vinden om dit uit te zetten, heb jij een idee?

    • Willem Aandewiel says:

      Hi Kroon,

      Dat is wel héél bijzonder! Op de esp8266 zit maar één WiFi chip en die kan óf als AP óf als client werken. Niet beide te gelijk!
      Wat dat betreft heb je dus een hele unieke esp8266!

      Maar ik denk toch eerder dat je netwerk het AP “onthoudt” maar dat het er helemaal niet meer is.

      Kun je, nadat de DSMR-logger gewoon op je netwerk bereikbaar is, connecten met het AP? Dat zou me verbazen.

      • Kroon says:

        Ha Willem,
        Dat meende ik mij ook te herinneren dus vond het al fascinerend. Ik zie het DSMR SSID ook terugkomen op andere devices welke nog nooit met dit SSID hebben geconnecteerd…

        Ik gok dat de DSMR op het randje van bereik zit en wellicht start de DSMR dan weer met broadcasten? Vervolgens cachen de devices waar ik het DSMR netwerk op zie en voila, we hebben de situatie zoals beschreven 🙂

    • Willem Aandewiel says:

      @Kroon,

      Dit probleem is ondertussen door meerdere gebruikers gemeld.

      Met v3.0.3 zou het AP niet meer standaard op moeten komen.
      Ik ontvang graag feedback hierover.

  64. Leo van der Hoek says:

    Ik heb enige hulp nodig.
    Ik heb eens een andere interface ingesteld en nu kom ik niet meer terug naar DSMRindex.html
    Ik heb Postman eens geopend en volgende commando naar mijnIP adres gestuurd:
    http://192.168.0.46/api/v1/settings/{“name”:”index_page”,”value”:”DSMRindex.html”}
    Dit levert een foutmelding op!
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    body {
    background-color: lightgray;
    font-size: 15pt;
    }

    DSMR-logger
    [/api/v1/settings/%7B%22name%22:%22index_page%22,%2 @] is not a valid restAPI call.
    +++++++++++++++++++++++++++++++++++++++++++++++++++

    Er lijkt een vervorming te worden uitgevoerd zodat speciale tekens worden gecodeerd. Daar kan de DSMRLogger niet mee overweg. Ik heb het vanuit de browser en vanuit Postman geprobeerd.
    Hoe kan ik de settings weer terugzetten naar DSMRindex.html zonder de ESP opnieuw te moeten flashen?

    • Willem Aandewiel says:

      Ik meen mij te herinneren dat als je in de FSmanager op DSMRindex.html klikt deze wordt uitgevoerd.

      Je kunt ook het settings.ini bestand naar je computer uploaden, de gewenste aanpassingen doen in een editor (beslist niet in een wordprocessor of iets Windowz dat de opmaak verandert. Het moet platte tekst zijn) en dan dit bestand weer naar de DSMRloggor downloaden.

  65. Jeroen says:

    Beste Willem,

    Zou het ook mogelijk kunnen zijn om een puls opnemer toe te kunnen voegen in het project?
    Zou mooi zijn om de watermeter erbij te voegen.
    Zelf heb ik al in het project wat geprobeerd maar mijn beperkte basis kennis is niet genoeg om dat in dit project toe te kunnen voegen.

    De watermeter zelf op een ESP8266 krijg ik wel werkend alleen niet toegevoegd in jou project.

    Heb jij wat tips om de te doen?

    Gr. Jeroen

  66. Dennis says:

    Beste Willem,

    Ik zou graag wat willen experimenteren met de sketch, echter krijg ik het niet eens voor elkaar om een simpele regel in de loop zichtbaar te maken in de seriele monitor.
    Weet jij waarom dit niet gaat? ik doe het in de Void loop van tabblad: DSMloggerAPI

  67. Bert says:

    Hoi Willem,

    ik wil mijn V3 boardje met ESP01 (1Mb geheugen) updaten naar de DSMRloggerWS firmware. Ik de arduino IDE 1.8.16 en de laatste versie van de libaries in de documentatie geinstalleerd. Bij het compileren krijg ik de error: “cannot bind non-const lvalue reference of type ‘String’ to an rvalue of type ‘String’.
    Enig idee wat er misgaat?
    Groet, Bert

    [admin: this comment is moved from another (wrong) post to here]

    • Willem Aandewiel says:

      Hi Bert,
      Het Arduino Eco systeem is boeiend en leuk om mee te werken. Het wordt nog leuker en leerzamer als je zelf uitzoekt hoe je problemen kunt oplossen. Ik begin altijd met Googelen naar de fout melding en kom dan vaak ook andere dingen tegen die ik nog niet wist!

      “Cannot bind non-const lvalue reference of type ‘String’ to an rvalue of type ‘String’” betekent dat je iets van het type ‘lvalue’ aan iets van het type ‘rvalue’ probeert toe te kennen. En dat mag blijkbaar niet.

      In plaats dat ik dat (via Google) voor jou ga uitzoeken kun je dat beter zelf doen.

  68. Dennis says:

    Beste Willem,

    Ineens zit ik met een probleem dat ik niet meer kan compilen, de laptop even een dag uitgeleend en ik krijg onderstaande meldingen:
    Hoe pak ik dit probleem aan?
    Ik weet dat het niet door het project kom maar wellicht weet jij een simpele oplossing Willem?

    Arduino: 1.8.13 (Windows 10), Board:"Generic ESP8266 Module, 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 1M External 64 MBit PSRAM, Use pgm_read macros for IRAM/PROGMEM, no dtr (aka ck), 40 MHz, 40MHz, DOUT (compatible), 4MB (FS:2MB OTA:~1019KB), 2, nonos-sdk 2.2.1+100 (190703), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
    
    In file included from C:\Users\Documents\Arduino\libraries\arduino-dsmr-master\src/dsmr.h:37,
                     from C:\Users\Documents\Arduino\DSMRloggerWS\DSMRloggerWS.ino:72:
    
    C:\Users\Documents\Arduino\libraries\arduino-dsmr-master\src/dsmr/fields.h:185:56: error: 'reinterpret_cast' is not a constant expression
    
      185 |     static constexpr const __FlashStringHelper *name = reinterpret_cast(&name_progmem); \
    
          |                                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    exit status 1
    
    cannot bind non-const lvalue reference of type 'String&' to an rvalue of type 'String'
    
    Dit rapport zou meer informatie bevatten met
    "Uitgebreide uitvoer weergeven tijden compilatie"
    optie aan in Bestand -> Voorkeuren.
    
    • Willem Aandewiel says:

      In ieder geval nooit meer je klapcomputer uitlenen, maar verder zou ik het zo snel niet weten..

      Ik snap alleen niet waarom hij arduino-dsmr-master gebruikt.

      >> oh, ik zie dat je DSMRloggerWS probeert te compileren. Das wel een héle oude versie van de firmware…

  69. Leo van der Hoek says:

    Ik heb een Telnet sessie gestart in logging mode. Misschien dat je daar een aanwijzing in vind.(jpg=>txt)

    • Leo van der Hoek says:

      Ik was in de veronderstelling dat ik al eerder een comment had gestuurd! Heb je die ontvangen?

      • Willem Aandewiel says:

        Leo,

        Alles wat ge-comment wordt staat in deze thread… ik heb denk ik dus geen eerder comment van je ontvangen.

        • Leo van der Hoek says:

          Dan is er iets mis gegaan!
          Ik krijg de firmware niet aan de gang om telegrammen te lezen.
          Geïnstalleerd op een D1Mini V3.
          Heeft een paar maanden geleden gewerkt op een V2.
          Klachten o.a.:
          Geen telegrammen ontvangen. De pulsen zijn er echt gemeten met scope.
          Crashes tijdens menu keuzes, vooral Terug uit Settings is erg gevoelig hiervoor.
          Datum wordt niet goed overgenomen(CEST en CET zijn OK in Telnet. Staat ook niet goed rechtsboven in html.
          OLED werkt goed, maar inderdaad geen tlgrmn.
          Enig idee wat hier aan de hand is?
          Kun je een kant en klare .bin voor sketch en data sturen of een link om te downloaden.
          Ik denk aan V3 , maar heb niet direct een V2 bij de hand.
          Zie ook de bijgevoegde log, misschien staat daar iets opvallends in.

          • Willem Aandewiel says:

            Leo,
            Ik begrijp dat je zelf de hardware hebt samengesteld uit losse onderdelen. Het is voor mij ondoenlijk om dan aan te kunnen geven waar mogelijk iets fout gaat.
            Bin files staan gewoon op github en kun je daar voor verschillende situaties downloaden.

          • Leo van der Hoek says:

            Ik kijk hier : https://github.com/mrWheel/DSMRloggerAPI , maar vind daar geen .bin.
            S.v.p. link naar .bin ?

          • Leo van der Hoek says:

            A.u.b een bevestiging dat de Github .bin files v3.0.1. inderdaad werken op een willekeurige ESP8266. Hopelijk heb je een testunit liggen.
            De datum wordt niet goed ingelezen! Al mijn berichten op de ser. poort en telnet geven zomertijd aan! Op de GUI zelfs een “2001-01-01 01:01:01” en dat zie ik ook op de ser.poort voorbijkomen in de vorm actTimestamp[010101010101X]. en geen Telegrammen!
            Ik heb de bin geladen via de OTA firmware update met de .bins op GitHub!

          • Leo van der Hoek says:

            Mea culpa.
            De Rx komt op MOSI binnen(D7). Nu werkt de datum wel, want die haalt die dan uit de meter! Ergens in de docu vond ik het schema van het printplaatje.

  70. Doru Stoica says:

    Hello Willem. Was very nice to meet you. Thank you very much for your time to help me out, the unit is working now very well.

  71. Theo says:

    Goede dag Willem,

    Tijdje geleden boardje v4.5 aangeschaft. Nu pas tijd op het te gebruiken. Aangesloten op de home wizard p1 aansluiting multyplier. Scheelt een voeding.
    Blij verrast in de lucht zonder problemen en in no time. Dankzij de goede documentatie.
    Na amper een dag zie ik in de grafiek van de uren slechts een balk. (Het begin) latere uren geen balk. De data sheet geeft wel het verbruik per uur?
    Wat gaat er fout?
    Is het mogelijk .csv files te maken?
    Ik heb nagenoeg geen info/documentatie over gevonden.
    Voor nette installatie ga ik nog een kastje printen.
    Hij is het meer dan waard.
    Mooi project.
    Met vriendelijke groet,
    Theo

  72. Doru Stoica says:

    Hello Willem. Thank you for the smart meter reading, I enjoy the product so far but recently I cannot connect to it anymore. The reset button does not do anything, I cannot find it via wifi and I reboot all my wireless devices in the house because I understand that this can be a problem also. The LED for WiFi is blinking blue when I try to reset the board but after that is staying off. Can you please help me to make it work again? Thank you for your help.

  73. Gilmer says:

    Blijkbaar heeft een nachtje van de stroom geholpen.. kreeg het menu weer en hij draait nu weer 🙂

  74. Gilmer says:

    Hallo Willem,

    Na een kleine stroomstoring komt de dsmr met versie 3.0.1 niet meer voorbij “setup ntp server”. Heb al eerder eens een storing gehad maar toen was dit probleem er niet???

    Via telnet krijg ik het onderstaande te zien:
    mDNS setup as [DSMR-API.local]
    mDNS responder started as [DSMR-API.local]
    Strating UDP
    local port: 888
    Waiting for NTP sync
    Transmit NTP Request
    nl.pool.ntp.org: 10.0.0.1
    No NTP Response 🙁
    Transmit NTP Request
    0.nl.pool.ntp.org: 10.0.0.1
    No NTP Response 🙁
    Transmit NTP Request
    1.nl.pool.ntp.org: 10.0.0.1
    No NTP Response 🙁
    Transmit NTP Request
    3.nl.pool.ntp.org: 10.0.0.1
    No NTP Response 🙁
    Transmit NTP Request
    time.google.com: 10.0.0.1
    No NTP Response 🙁

    ETC….

    • Willem Aandewiel says:

      Gilmer,
      In het telnet menu is een optie om de WiFi credentials te verwijderen. Ik zou dat eens proberen (en daarna natuurlijk de procedure volgen om de DSMR-logger opnieuw op je netwerk aan te sluiten).

      • Gilmer says:

        Kom met geen mogelijkheid in dat telnet menu.. reset en verbind direct met de dsmr en druk op na dat hij verbonden is en ook paar keer op een willekeurig moment erna maar geen menu.
        Beetje vreemd 😐

    • Willem says:

      Volgens mij moet je op [Enter] drukken ..

      • Paul Renting says:

        Ik had hier ook moeite mee (had ik nodig voor WiFi reset) en dat komt omdat de logging functie telkens sneller was dan ik het menu zag. Volgens mij staat de menu structuur nog niet in de documentatie?

        Voor de geinteresseerden:

        Telnet van DSMR API:

        Verbinden met Telnet naar het IP van de DSMR logger, deze verbind direct, geen user/wachtwoord nodig.

        Daarna zie je continue de logging voorbij gaan (ook handig overigens!).

        Op [Enter] drukken zie je inderdaad het menu structuur voorbij komen als volgt:

        B – Board Info
        *E – erase file from FSYS
        L – list Settings
        D – Display Day table from FSYS
        H – Display Hour table from FSYS
        M – Display Month table from FSYS
        I – Identify by blinking LED on GPIO[02]
        P – No Parsing (show RAW data from Smart Meter)
        *W – Force Re-Config WiFi
        *R – Reboot
        S – File info on FSYS
        *U – Update FSYS (save Data-files)
        *Z – Zero counters

        V – Toggle Verbose 1
        T – Force update mindergas.nlw

        Letters/commando’s met een * moeten in hoofdletters (Shift + R bijvoorbeeld), wat ook een handige beveiliging is, gezien de functies die eraan hangen.

  75. Willem Aandewiel says:

    Gert,

    Je hebt inderdaad een “low” heap.
    Ik zie ook dat de restAPI om de vier á vijf seconden wordt aangeroepen. Wat/wie vraagt de restAPI zo vaak aan?

    – Wat zijn de settings die je gebruikt?
    – Heb je de firmware zelf gecompileerd of heb je een standaard binary gebruikt

    • Gert says:

      Hallo Willem,

      Ik heb de standaard bin files gebruikt . beide via de instructie geladen.
      Ik gebruik Nodered voor de MQTT en die vraag ik elke 10 sec aan.
      Heb hem net op 30 sec gezet maar weer na 5 min low heap.
      Geen idee wat er mis gaat.

      Mvg Gert

      • Gert says:

        Sorry verkeerde plaatje

        • Willem Aandewiel says:

          Ik heb écht geen idee …

          Ik zou beginnen met MQTT uit te schakelen en de update interval op 30 zetten en kijken of er dan iets verandert.
          Misschien ook het aantal call’s naar de restAPI verlagen of zelfs even uitschakelen.

          Met telnet kun je het aantal reboots op 0 zetten.

          • Gert says:

            Hallo Willem,

            Het is allemaal gelukt. Inderdaad MQTT uitgeschakeld en nu blijft alles mooi lopen.

            Welk commando heb ik nodig voor reboots op 0 te zetten?

            Nogmaals bedankt voor de info

  76. Gert says:

    Hallo Willem,

    Ik heb met mijn DSMR V4 steeds problemen met Free Heap denk ik.
    Ik gebruik MQTT en na 1uur of korter gaat de DSMR vastlopen. Webpagina loopt nog wel en na een reboot komt ook de MQTT weer in de lucht, Doe ik iets fout of heb ik iets verkeerd ingesteld? Zie mijn bestandje. Alvast bedankt. Ik heb tevens de V3 logger en die loopt wel netjes maar die heeft geen MQTT.

    Mvg Gert

  77. George Nadort says:

    Hoi Willem,
    De DSMR logger V4 software versie 3.0.1 Werkt weer. Dit na het aan en uitzetten van mijn KPN KPN super wifi punten in de woonkamer en in de slaapkamer een verdieping hoger.

    Vriendelijke groeten.
    George Nadort

  78. George Nadort says:

    Mijn Hardware versie is DSMR logger V4

    VG
    George

  79. George Nadort says:

    Hoi Willem,
    Bedankt voor je reactie het blijft vreemd dat met software versie 2.0.1 geen verbindingsproblemen had. Met de nieuwe software wel. Weet jij waar ik de softwareversie 2.0.1 kan vinden in GitHub. Vast bedankt.
    Vg
    George

    • Willem Aandewiel says:

      George,

      Het is ook vreemd en ik vraag me af of er ook echt een probleem is. Dicht bij je computer kun je met telnet inloggen en de WiFi credentials weg halen. Daarna opnieuw opstarten en de documentatie m.b.t. “Eerste Keer Opstarten” (of zoiets) volgen. Eventueel kun je ook je Modem resetten.
      Heb je wel, behalve de firmware, ook het LittleFS ge-flashed?

      Probeer je verbinding te krijgen via het IP-adres van de DSMR-logger of via de HostName (“DSMR-API.local”)?

      Oude(re) versies van de firmware kun je gewoon op github vinden onder “Releases”.

  80. George Nadort says:

    Hoi Willem,
    Ik loop tegen een vreemd probleem aan mijn DSMR Api met software versie 2.0.1 hangt in de meter kast en werkt prima. Vandaag de software geüpdatet naar 3.0.1 als hij uit de meterkast naast mij op mijn bureau ligt maakt hij meteen verbinding. In de meterkast maakt hij geen verbinding. Heb jij of iemand anders een idee wat dit zou kunnen zijn?

    Vast bedankt en met vriendelijke groeten
    George Nadort

  81. Gert848 says:

    Hoi Willem,

    Ik heb problemen met mijn V4 logger. Ik heb de bin bestanden beide geinstaleerd op de logger maar krijg geen telegrammen binnen. De GPIO12 blijft continu hoog vanuit de software die de afroep van de telegrammen verzorgt. Is dit goed en gaat deze uit totdat hij een telegram ontvangen heeft of hoort deze te pulsen met de in te stellen frequentie van 2 tot 10 sec.? Heb nu een wemos geflashed om extern te kijken wat er met de GPIO12 gebeurd middels een ledje en 220 ohms weerstand zoals de optocoupler ook aangestuurt wordt. Heb je enig idee wat er verkeerd gaat?

    • Willem Aandewiel says:

      Gert,
      GPIO12 moet hoog zijn anders verstuurt de Slimme Meter geen telegram(men).
      Afhankelijk van de “settings” of compiler options blijft deze hoog of wordt hij hoog om, direct ná het ontvangen van een telegram weer laag te worden. In ieder geval: als GPIO12 (en daarmee DTR van de Slimme Meter) hoog is zou je gewoon telegrammen moeten ontvangen.

      • Gert says:

        Hallo Willem,

        Heb het eindelijk voor elkaar gekregen. Het destijds meegeleverde kabeltje gaf pin5 gaf niet Dit was het telegramprobleem. Nadat ik een Oledscherm gemonteerd had kon ik gelijk de juiste info zien. Perfekt zo’n schermpje toegevoegd .Bedankt voor je hulp.

        Mvg Gert

  82. Tony Knors says:

    Bij de nieuwe Home Assistant Energy integratie wordt verwacht dat de data bepaalde attributen hebben. Voorbeeld :

    – platform: rest
    name: “DSMR_Energy_Delivered_Tariff_1”
    resource: http://192.168.1.146/api/v1/sm/fields/energy_delivered_tariff1
    unit_of_measurement: “kWh”
    value_template: ‘{{ value_json.fields[1].value | round(1) }}’

    Bijkomend moet je hier minimal 2 attributen toekennen :

    device_class: energy
    state_class: measurement

    In de REST API kan je die 2de niet definieren. Blijkbaar een limitatie van REST in HA.

    Als je gebruik maakt van de MQTT interface kan je dat wel maar … resultaat van een msg in MQTT is bijvoorbeeld :

    {“energy_delivered_tariff1”: [{“value”: 3169.426, “unit”: “kWh”}]}

    Terwijl dit eigenlijk gewoon 3169.426 zou moeten zijn.

    In vorige versie(s) van DSMR werd dit wel “correct” gedaan.

    Ik gebruik nu versie DSMR-API 2.0

    Enige suggestie ?

    Alvast bedankt !!!

    Tony

  83. Marek says:

    Hi Willem,

    Ik gebruik je DSMR al een tijdje en recent ook geupgrade naar de API . (werkt prima!_

    Vraagje: Mijn WiFIAP’s thuis zijn geupgrade en nu moet ik nog de oude SSID in de lucht houden voor mijn DSMR. Ik zocht nog de mogelijkheid om de WiFI-AP SSID aan te passen.

    Ik kan me niet meer herinneren waar je die instelt en hoe ik die achteraf kan wijzigen. kan jij mij wat hints geven?

    • Willem Aandewiel says:

      Als je de oude WiFi uit zet zal de DSMR-logger automatisch als AP opstarten en kun je op de “gewone” manier de WiFi credentials opgeven.

      Je kunt ook inloggen met telnet en dan de menu keuze “reset WiFi” of zo iets selecteren.

  84. 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?

  85. 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.

      • Rom says:

        Hoi Willem,

        Ik heb het vermoeden dat een Wifi repeater de boosdoener was.
        Deze was n.l. tussen de logger en het Wifi accespoint geplaatst.
        Ik heb de logger nu via de Wifi repeater gezet en dat gaat een stuk stabieler. Wel is me nog opgevallen dat er een reset van de logger is geweest door de Software Watchdog.
        Kun je aangeven wanneer dit kan gebeuren?

        • Willem Aandewiel says:

          Hi Rom,
          Een reset door de WDT kan om verschillende redenen voorkomen. Meestal komt het omdat het process dat WiFi “onderhoudt” te lang geen processor tijd krijgt. Het probleem zit dan in de firmware en kan bij de DSMR-logger komen omdat hij te lang bezig is met het ontvangen of wegschrijven van data. Maar vaak komt het juist als er een minder goed WiFi signaal is.

          WiFi repeaters houden vaak het protocol tegen waarmee je lokaal DNS kunt doen. Kun je de DSMR-logger via de hostnaam (met .local daarachter) benaderen?

          Uit je tekst maak ik op dat je voor het WiFi-modem en de WiFi-repeater verschillende SSID’s gebruikt. Het is meer gebruikelijk om dezelfde SSID voor alle WiFi AP’s te gebruiken. Dan zoekt een WiFi client zelf het sterkste signaal op. Just my five cents.

  86. 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…

  87. 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

  88. 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.

  89. 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.

  90. 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.

  91. 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.

  92. 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!

  93. 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

  94. 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 …

  95. 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.

  96. 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!

  97. 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!!

  98. 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..

  99. 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.

  100. 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').
    
  101. 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?

  102. 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

  103. 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

  104. 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

  105. 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

  106. 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

  107. 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.

  108. 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.

  109. 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.

  110. 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.

  111. 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..

  112. 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

  113. 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 🙂

  114. 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!

  115. Dennis says:

    Sorry,

    Helemaal niet gezien. Appeltje eitje inderdaad..

  116. 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.

  117. 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

  118. 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

  119. 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

  120. 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

  121. 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 !

  122. 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 !

  123. 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 !

  124. 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?

  125. 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.

  126. 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).

  127. 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[
        
  128. 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) }}'
          

  129. 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!

  130. 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

  131. 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
    }
    
  132. 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 🙂

  133. 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

  134. 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…

        • Willem Aandewiel says:

          @PPee,
          Dit probleem is door meerdere mensen gemeld.
          In v3.0.3 zou dit niet meer mogen gebeuren.

  135. 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!

  136. 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"
    },
    
  137. 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.

  138. 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.

  139. 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)!

  140. 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..

  141. 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?

  142. 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!

  143. 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.

  144. 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.

  145. 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

  146. 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).

  147. 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)!

  148. 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

  149. 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.

  150. 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.

  151. 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)”]

  152. 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!

  153. 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”.

  154. 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!).

  155. 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

  156. 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.

  157. 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.

  158. 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

  159. 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.

  160. 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..

  161. 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!

  162. 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!

  163. 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 ‘…’

  164. 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…

  165. 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).

  166. 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.

  167. 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