Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Voor de DSMRloggerAPI firmware zijn de volgende bibliotheken nodig:
Deze library is een uitbreiding op de arduino-dsmr van Matthijs Kooijman. Je kunt de dsmr2Lib library hier vinden.
Deze is door Paul Stoffregen ontwikkeld. Je kunt hem hier downloaden.
Je kunt de, door Tzapu ontwikkelde, bibliotheek hier downloaden.
De DSMR-logger firmware is getest met version 0.14.0
van deze bibliotheek maar nieuwere versies zullen waarschijnlijk ook werken.
Deze bibliotheek is door Juraj Andrassy ontwikkeld. Je kunt deze bibliotheek hier downloaden.
De firmware is getest met version 0.0.2
maar nieuwere versies zullen waarschijnlijk ook werken.
Let op:
De installatie van deze bibliotheek gaat net als de andere bibliotheken. Een update kan echter pas geïnstalleerd worden als éérst de map TelnetStream-master
uit de map Libraries
wordt verwijderd!
William Greiman heeft deze bibliotheek ontwikkeld met in het achterhoofd minimaal gebruik van resources (dus: een bibliotheek die weinig geheugen gebruikt). Je kunt de bibliotheek hier downloaden.
De DSMR-logger Firmware is getest met Version 1.2.x - Commit 97a05cd on 24 Mar 2019
maar nieuwere versies zullen waarschijnlijk ook werken.
Nick O'Leary (knolleary) heeft deze bibliotheek ontwikkeld. Je kunt de bibliotheek hier downloaden.
Deze bibliotheek maakt het mogelijk om firmware en SPIFFS Over The Air te flashen naar de DSMR-logger. Deze bibliotheek is nodig vanaf versie 2.6.2 van de Arduino/ESP8266 core. Je kunt de bibliotheek hier downloaden.
Deze bibliotheek is alleen nodig als je USE_SYSLOGGER defined. Je kunt de bibliotheek hier downloaden (vanaf v1.6.3 commit 43eb15681125442addaf8b697f2b8557d4afa300). Pas op! (nog) Niet geschikt voor het LittleFS!
Onderstaande libraries zijn onderdeel van de ESP8266 Core
en moeten dus niet handmatig geïnstalleerd worden!
LittleFS
ESP8266WiFi
ESP8266WebServer
WiFiUdp
ESP8266mDNS
FS
Om de firmware op de DSMR-logger te krijgen moeten een aantal stappen worden ondernomen. Hieronder staat welke stappen dat zijn.
Met deze #define geef je aan of je wilt dat de PSK Key van je WiFi netwerk, het wachtwoord van de gebruikte MQTT Broker en het Authenticatie Token van Mindergas.nl zichtbaar worden.
Via telnet het opvragen van de Board Info:
en de Settings:
Define
Functie
SHOW_PASSWRDS
In de System Info tab wordt, als deze #define actief is, de PSK Key van het WiFi netwerk getoond. Bij de B - Board Info uitvoer wordt met deze deze #define de PSK Key zichtbaar en bij S - list Settings het wachtwoord van de MQTT Broker en de Authenticatie Token van Mindergas.nl.
Om te testen of de verwerking van de gegevens, die normaal gesproken uit de Slimme Meter komen, goed gaat kun je met deze #define de firmware zó maken dat hij zélf voor (test) data zorgt. Om de tijd te versnellen zal de testdata eerst de maanden versneld laten voorbij gaan, daarna de dagen en tenslotte de uren.
Let op! Alleen om te testen!
#define
Functie
HAS_NO_METER
De DSMRloggerAPI firmware zorgt zelf voor test-data. Als deze functionaliteit actief is moet de DSMR-logger niet op een Slimme Meter worden aangesloten!
Deze functionaliteit is in versie 3 nog niet getest. Deze nieuwe versie maakt geen gebruik meer van SPIFFS maar gebruikt het LittleFS. De SysLogger is hier nog niet voor aangepast!
Als deze optie actief is zal de DSMRloggerAPI firmware debug informatie naar een logfile schrijven. Dit logfile kan mbv.het commando 'Q' in het telnet menu bekeken worden.
Er is ook een restAPI waarmee de log regels uit de DSMR-logger opgehaald kunnen worden.
GET
http://dsmr-api.local/api/v1/dev/debug
Met deze api kun je de gegevens uit het sysLog bestand opvragen
#define
Functie
USE_SYSLOGGER
De ESP_SysLogger is een library waarmee log regels in een RING bestand van 500 regels kunnen worden geschreven. Na 500 regels wordt steeds de oudste regel overschreven door de nieuwste regel.
Versie 4 van de DSMR-logger hardware maakt gebruik van een ESP-12 processor. Deze processor zit op de printplaat van de DSMR-logger gesoldeerd en moet dus, op de printplaat, geflashed worden.
Om de firmware naar de DSMR-logger Versie 4 te kunnen flashen moet deze eerst voor deze versie van de DSMR-logger geschikt worden gemaakt.
Dit doe je door in de ArduinoIDE de #define
's in het eerste tab-blad aan te passen.
Vervolgens moeten de Boards
settings als volgt worden ingevuld:
Instelling
Waarde
Board
"Generic ESP8266 Module"
Upload Speed
"115200"
CPU Frequency
"80MHz" (of 160MHz)
Flash Frequency
"40MHz"
Flash Mode
"DIO" of "DOUT (compatible)"
Flash Size
"4MB (FS: 2MB OAT:~1019KB)" <<== let op! 2MB
Crystal Frequency
"26MHz"
Reset Method
"None"
Debug Port
"Disabled"
Debug Level
"None"
IwIP Variant
"v2 Lower Memory"
VTables
"Flash"
Exeptions
"Disabled"
Builtin Led
"2"
Erase Flash
"Only Sketch" (First Time: "All Flash Contents")
Port
Bedraad: "Serial Port"
Let op! Als je de Flash Mode veranderd t.o.v. wat je gebruikt hebt voor de firmware die nu in de DSMR-logger zit en je doet een OTA update van de firmware, dan zal de Flash Mode pas veranderen na een power cycle!
Pas op! Koppel de DSMR-logger los van de Slimme Meter vóórdat je de DSMR-logger op de programmer aansluit!!
Sluit de USB->ESP12 programmer aan op de Program
-header van de DSMR-logger v4
Druk de FLASH
knop in en houd deze ingedrukt
Druk op de RESET
knop
Laat de RESET
knop los
Laat de FLASH
knop los
De DSMR-logger v4 staat nu in Flash-mode en blijft in die mode tot er gegevens vanaf de programmer naar de DSMR-logger zijn overgebracht óf tot je nog een keer op de RESET
knop drukt.
Vergeet niet in de Arduino IDE de Port
te selecteren waarop je de USB->ESP12 programmer hebt aangesloten en druk op het Compile and Upload icoon.
Bij het Over The Air flashen van de firmware of data
-map kan (moet) de DSMR-logger v4 gewoon op de Slimme Meter aangesloten blijven.
Alle instellingen voor de DSMRloggerAPI firmware blijven gelijk aan de bedrade methode van flashen.
klikken maar in het[Sketch]
drop-down menu de keuze Upload Compiled Binary
selecteren.
De firmware wordt nu gecompileerd en in de Arduino Sketch map waar de DSMRloggerAPI firmware ook staat neergezet. Het bestand heeft de extensie .bin
.
In de FSmanager klik je op de knop [Update Firmware]
Er verschijnt nu een scherm waarin je een firmware bestand (de naam eindigt op .bin
met ergens in de naam ook .ino.
) kunt kiezen door op de bovenste knop [Choose File]
te klikken.
Selecteer uit het popUp scherm
dat nu verschijnt het binary file dat je wilt uploaden ..
.. klik op [Choose]
(of [Open]
) en daarna op de knop [Flash Firmware]
Let op! De firmware heeft áltijd ".ino." in de naam en eindigt áltijd op ".bin"!
Na enige tijd krijg je de melding dat de upload is geslaagd en dat de DSMR-logger opnieuw opstart.
Let op! Het komt soms voor dat het scherm niet automatisch ge-refreshed wordt. Klik in dat geval, na ongeveer 3 minuten, op de tekst "hier" Als het lijkt of er niets gebeurd, wacht dan ongeveer drie minuten en klik daarna hier. Als de verbinding met de server vóór die tijd verbroken wordt klik dan op de [back] knop van de browser waarna de tekst alsnog (weer) verschijnt. Klik nu op hier om de DSMRloggerAPI hoofd pagina opnieuw te laden.
Vervolgens moet je niet op het Compile & Upload
-Icoon
Als de firmware gecompileerd is klik je op de DSMR-logger pagina op het icoontje.
Tijdens het compileren van de firmware kun je bepaalde functionaliteit in- en uit-schakelen door de #defines wél of níet door twee slashes ("//") vooraf te laten gaan.
In onderstaande tabel kun je zien of een bepaalde functionaliteit beschikbaar is voor de DSMR-logger.
#define
Functie
Default
Met de Update Server kun je vanuit de FSexplorer updates van de firmware installeren
JA
Deze optie zorgt ervoor dat de functionaliteit voor het versturen van gegevens naar een MQTT broker wordt ingebouwd
JA
JA
Met de System logger is het mogelijk om debug informatie over de werking van de DSMR-logger op te slaan in een bestand van 500 regels.
NEE
alleen gebruiken om te debuggen.
Of je de gebruikte passwords in het Systeem Info scherm en via telnet wilt tonen
NEE
Als je geen Slimme Meter op de DSMR-logger hebt aangesloten maar toch (dummy) data wilt zien.
NEE
alleen om te testen
Met deze optie wordt het mogelijk om nieuwe Firmware naar de DSMR-logger te flashen door in de FSmanager op de knop [Update Firmware]
te klikken.
en vervolgens in de Flash Utility ..
.. op [Choose file]
te klikken en daarna op [Flash Firmware]
Let op! Deze functionaliteit werkt alleen als je 4MB flash geheugen hebt. Standaard heeft iedere ESP-12 dat en dus ook de DSMR-logger v4 of v4.5. Je kunt een ESP-01 eventueel upgraden naar 4MB door de aanwezige flash chip te vervangen door een W25Q32FVSIG 32Mbit flash chip.
#define
Functie
USE_UPDATE_SERVER
Om gebruik te kunnen maken van zgn. "Over The Air" (OTA) updates van de firmware en het bestand systeem moet je deze optie activeren (default). Dit kan alleen met een ESP-12 of een, met 4MB chip ge-upgrade ESP-01 bordjes! 'Normale' (1MB) ESP-01 bordjes hebben hier niet genoeg flash-geheugen voor.
Met deze optie wordt de functionaliteit om gasverbruik naar mindergas.nl te sturen geactiveerd.
Via FSmanager
-> DSMR Editor
-> Settings
kun je het jouw toegekende authorisatie token invoeren.
Rubriek
Functie
Mindergas Authenticatie Token
Bij aanmelding bij mindergas.nl kun je een zgn. Authenticatie Token opvragen. Dit token heb je nodig om data naar mindergas.nl te kunnen uploaden. Voer dit token hier in.
Lees ook dit.
#define
Functie
USE_MINDERGAS
Deze define zorgt ervoor dat de Firmware één maal per dag het gasverbruik uit de Slimme Meter naar mindergas.nl zal sturen (default).
In de data
-map van de DSMRloggerAPI firmware staan bestanden die nodig zijn voor het functioneren van de firmware.
Deze bestanden moeten dan ook overgezet worden naar de DSMR-logger. Dat 'overzetten' kan op twee manieren: 'Bedraad' en 'Over The Air'
Pas op! Koppel de DSMR-logger los van de Slimme Meter vóórdat je de DSMR-logger op de programmer aansluit!!
Sluit de programmer aan op de DSMR-logger v4.
Druk op de FLASH
knop en houdt deze ingedrukt.
Druk vervolgens de RESET
knop in en laat deze weer los.
Laat nu ook de FLASH
knop los.
De DSMR-logger v4 staat nu in "Flash-mode" en wacht (geduldig) tot de inhoud van de data
map wordt opgestuurd.
Ga in de Arduino IDE naar Tools -> ESP8266 LittleFS Data Upload
Het LittleFS (bestand systeem) wordt nu leeg gemaakt en alle bestanden in de data
map worden als een LittleFS overgezet.
Hierna zal de DSMR-logger normaal opstarten, maar met de nieuw LittleFS inhoud.
Bij het Over The Air uploaden van de bestanden uit de data
-map kan de DSMRlogger v4
gewoon aan de Slimme Meter gekoppeld blijven.
Alle Board
gegevens blijven gelijk alleen selecteer je een Serial Port
die nergens op is aangesloten!
Start vervolgens het ESP8266 LittleFS Data Upload
-tool
Omdat je een Serial Port
hebt geselecteerd waar niets op is aangesloten zal deze opdracht met een foutmelding eindigen.
Ondertussen is er wél een .mklittlefs.bin
bestand in het build-path
neergezet.
In de FSmanager klik je op de knop [Update Firmware]
Er verschijnt nu een scherm waarin je een mklittlefs bestand (de naam eindigt op .mklittlefs.bin
) kunt kiezen door op de onderste knop [Choose File]
te klikken.
Selecteer uit het popUp scherm
dat nu verschijnt het binary file dat je wilt uploaden ..
.. klik op [Open]
en daarna op de knop [Flash FileSystem]
Na enige tijd krijg je de melding dat de upload is geslaagd en dat de DSMR-logger opnieuw opstart.
Let op! Het komt soms voor dat het scherm niet automatisch ge-refreshed wordt (dit lijkt te maken te hebben met de omvang van de firmware die je upload). Klik in dat geval, na ongeveer 3 minuten, op de tekst "hier" Als het lijkt of er niets gebeurd, wacht dan ongeveer drie minuten en klik daarna hier. Als de verbinding met de server vóór die tijd verbroken wordt klik dan op de [back] knop van de browser waarna de tekst alsnog (weer) verschijnt. Klik nu op hier om de DSMRloggerAPI hoofd pagina opnieuw te laden.
Deze optie zorgt voor de functionaliteit voor het versturen van gegevens naar waar je het huidige gasverbruik kunt vergelijken met anderen.
Let op! Het uploaden van de data map mislukt als de Serial Monitor open staat!
Let op! Hou er rekening mee dat eventuele data-bestanden die al op het LittleFS stonden nu weg zijn! Als je ze niet kwijt wil moet je er eerst een kopie van maken op je computer en deze, na het flashen van het LittleFS weer terug zetten (dat kan met de DSMR-logger FSmanager )!
Let op! Hou er rekening mee dat eventuele data-bestanden die al op het bestand systeem stonden nu weg zijn! Als je ze niet kwijt wil moet je er eerst een kopie van maken op je computer en deze, na het flashen van het LittleFS weer terug zetten (dat kan met de DSMR-logger FSmanager )!
Klik nu op de DSMR-logger pagina op het icoontje.
De DSMRloggerAPI firmware staat hier https://github.com/mrWheel/DSMRloggerAPI. Er zijn twee manieren om de firmware te clonen.
download de repository als een .zip
file
gebruik git
Als je niet handig bent met git
raad ik je aan de repository als een .zip
file te downloaden.
Klik op de groene knop [Clone or Download]
..
.. en selecteer [Download ZIP]
Er volgt een scherm als dit:
Bewaar het .zip
bestand op een plek op je computer waar je hem terug kunt vinden.
Unzip het DSMRloggerAPI-master.zip
bestand in de ArduinoIDE Sketchbook Location
.
Rename de map DSMRloggerAPI-master
naar DSMRloggerAPI
(dus zonder -master
)
Ga verder naar DSMRloggerAPI Sketch openen
Om de repository met git
te kunnen clonen moet je er éérst voor zorgen dat je git
op je systeem hebt staan. Hoe je dat moet doen valt buiten de scope van deze documentatie maar hier kun je alles vinden over hoe je dit, voor jouw systeem, moet doen.
Voor nu ga ik ervan uit dat je git
op je systeem hebt staan en dat je weet hoe je ermee moet werken.
Ga naar de Arduino Sketchbook location
(de map waar al je Sketches in staan, kijk hier) en toets het volgende commando in:
That's it!
In Sketchbook location
staat hierna een nieuwe map met de naam DSMRloggerAPI
.
Start de ArduinoIDE opnieuw op en klik op het open
icoon.
Selecteer in het drop-down
menu ..
.. de sketch DSMRloggerAPI
(In jouw situatie staat deze firmware waarschijnlijk niet onder een submap "SlimmeMeter"!)
Er verschijnt een nieuw editor window met de firmware van de DSMRlogger!
Met deze optie wordt de functionaliteit om data naar een MQTT Broker te sturen geactiveerd.
Via FSexplorer
-> Edit instellingen
-> Settings
kun je gegevens over de te gebruiken MQTT Broker invullen:
De DSMR-logger zal iedere MQTT Interval
seconden de volgende berichten naar de MQTT Broker sturen:
Voor de Mosquitto client kun je de berichten volgen met het volgende commando:
mosquitto_sub -h test.mosquitto.org -v -t 'DSMR-API/#'
of, als je een username/password hebt ingesteld met dit commando:
mosquitto_sub -h test.mosquitto.org -u <username> -P <password> -v -t 'DSMR-API/#'
#define
Functie
USE_MQTT
Deze define zorgt ervoor dat de Firmware data uit de Slimme Meter naar een MQTT Broker stuurt (default).
Rubriek
Functie
MQTT broker URL/IP
Vul hier de URL of het IP adres van de MQTT broker in. Voorbeeld: "test.mosquitto.org"
MQTT Poort
Het default poortnummer is 1883.
Hou er wel rekening mee dat de ESP8266 geen encryptie aan kan!
MQTT Username
Vul hier de naam in van de gebruiker van de MQTT broker.
MQTT Password
Als de MQTT broker gebruiker een wachtwoord nodig heeft vul die dan hier in.
MQTT Interval (sec.)
De Interval geeft aan om de hoeveel seconden de DSMR-logger gegevens naar de MQTT broker moet sturen. De DSMRloggerAPI firmware zal nooit vaker een MQTT bericht versturen dan de interval waarmee telegrammen worden gelezen. Voer je een interval in die kleiner is dan de telegram interval dan zal er, na het lezen van een telegram direct een MQTT bericht worden verzonden.
Voer je hier 0 (nul) in dan worden er géén MQTT berichten verzonden.
MQTT TopTopic
Dit is het topic waaronder alle andere gegevens worden gepubliceerd. Standaard is dit "DSMR-API".