Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
In dit gitbook vind je alle informatie over de restAPI firmware voor de DSMR-logger
Mijn !
Je vindt hier de documentatie over de DSMRloggerAPI firmware voor versie 4 van de DSMR-logger.
De DSMR-logger v4.5 die je via opencircuit.nl kunt kopen (na juni 2021) is voorzien van de hier beschreven firmware. Deze DSMR-logger is "Plug-And-Play" en alleen in bijzondere gevallen moet er iets aan de instellingen aangepast worden (bijvoorbeeld als je een hele oude Slimme Meter hebt of als je een zgn. "Enkel Fase" Slimme meter hebt).
Deze documentatie is voor de gebruikers en makers die meer willen dan alleen de DSMR-logger aansluiten op hun Slimme meter. De meeste gebruikers zullen voldoende hebben aan alleen dit hoofdstuk.
Let op! Deze documentatie is "work in progress"! Controleer daarom regelmatig op updates.
De DSMR-logger is een hardware en software systeem waarmee de Slimme Meter kan worden uitgelezen. De uitgelezen data (zgn. telegrammen) worden in de DSMR-logger opgeslagen en kunnen met behulp van gestandaardiseerde restAPI call's worden opgevraagd.
Vanaf versie 3 kan de DSMRloggerAPI firmware overweg met vrijwel alle, mij bekende, Slimme Meters (DSMR 2+, DSMR3+, DSMR4+, DSMR5+ en de Belgische varianten hiervan). Het probleem van sommige installaties met de voor geprogrammeerde aansluiting van de Gas Meter op MBus-1 is vanaf versie 3 via settingen aan te passen.
Deze post beschrijft het eerste idee achter de Slimme Meter uitlezer.
In deze post kun je de ontwikkeling van de hardware en firmware vinden.
Hier staat een introductie van de DSMRloggerAPI firmware
Veel informatie over de hardware en het gebruik wordt hier beschreven.
De DSMRloggerAPI firmware kun je op github vinden
Voor de meeste mensen is het gebruik van de twee binaries het eenvoudigste. je kunt deze binaries hier vinden.
In dit document worden de volgende begrippen gebruikt:
DSMR
DSMR-logger
de Hardware (Let op! Streepje tussen DSMR en logger)
DSMR-logger v4 (of Versie 4)
Versie 4 van de Hardware. Deze hardware is de basis voor dit project.
DSMR-logger v4.5 (of Versie 4.5)
DSMRloggerAPI
De firmware voor de DSMR-logger v4 Deze firmware maakt intensief gebruik van restAPI's. Let op! De firmware heeft geen streepje (-) tussen "DSMR" en "logger"
ESP-12
Een bordje met een ESP8266 processor en 4MB Flash Geheugen Dit bordje wordt gebruikt in de DSMR-logger v4
Een volledige beschrijving van dit project kun je hier vinden.
Hieronder wat afbeeldingen van de standaard meegeleverde GUI
Alle beschikbare gegevens kunnen via restAPI call's bij de DSMR-logger worden opgevraagd. De restAPI's zijn verdeelt in drie groepen. Informatie die met de hardware en firmware te maken heeft (/dev
), informatie die met de Slimme Meter te maken heeft (/sm
) en historische gegevens die, aan de hand van de door de Slimme Meter afgegeven gegevens, door de DSMR-logger in bestanden worden opgeslagen (/hist
).
Een restAPI kan op verschillende manieren worden aangeroepen.
Geeft dit als output:
configuration.yaml:
geeft dit resultaat:
Met hassOS lukt het mij niet om bij resource de hostname (DSMR-API.local) te gebruiken. Met het IP adres lukt het wel.
Ik ben niet erg handig met JSON libraries (liefst parse ik de data helemaal zelf zodat ik ook alles zelf "in de hand" heb). Het zou mij daarom ook niet verbazen als onderstaande code simpeler en beter kan.
Getest door Bert Diepeveen (met dank!).
Ik ben niet erg handig met JSON libraries (liefst parse ik de data helemaal zelf zodat ik ook alles zelf "in de hand" heb). Het zou mij daarom ook niet verbazen als onderstaande code simpeler en beter kan.
Ik ben niet erg handig met JSON libraries (liefst parse ik de data helemaal zelf zodat ik ook alles zelf "in de hand" heb). Het zou mij daarom ook niet verbazen als onderstaande code simpeler en beter kan.
In de main loop() function moet deze code komen:
Veel andere systemen hebben hun eigen manier om restAPI's op te vragen. Lees hiervoor de betreffende documentatie.
De DSMRloggerAPI heeft de mogelijkheid om meterstanden en instellingen via de browser te veranderen.
Je start de DSMR-editor
door in het hoofdscherm op het icoontje te klikken.
Betekenis van de knoppen:
Terug: Terug naar het hoofdscherm van de DSMR-logger
Meterstanden: Hier kunnen, per maand, de meterstanden worden ingevoerd. Er kan gekozen worden tussen de meterstanden van de gebruikte energie, de opgewekte energie en het gas verbruik.
Settings: Hier kunnen bepaalde parameters zoals de energie tarieven, interval voor het lezen van telegrammen, gegevens van de MQTT broker en het autorisatie token van Mindergas.nl worden ingesteld.
Herstel: ingevoerde veranderingen die nog niet zijn opgeslagen worden teniet gedaan.
Opslaan: de ingevoerde gegevens worden opgeslagen
Het muteren van de maanden tabel is nog niet helemaal zoals het zou moeten zijn. Het is vrij lastig omdat de software zeker moet zijn dat de jaar/maand gegevens, van boven naar beneden, aflopen en aansluiten en ook de meterstanden moeten een steeds lagere waarde hebben. Wordt niet aan voorgaande inter-validatie voldaan, dan kleurt het vakje waar de fout is ontdekt rood en worden de gegevens niet opgeslagen.
Klik na iedere verandering op [Opslaan]
(of in ieder geval toch zo vaak mogelijk!
Sommige browser vertalen decimale punten in komma's! Dit is erg verwarrend want de vertaling terug doen ze dan weer niet. Bij het invullen/veranderen van de meterstanden moet een decimale punt (".") gebruikt worden, anders wordt de invoer als ongeldig aangemerkt en niet opgeslagen!
De default Hostname is DSMR-API. De documentatie gaat ook uit van deze default hostname. Mocht je de hostname hier veranderen dan moet je bij het lezen van de documentatie overal "DSMR-API" vervangen door de hier ingevoerde hostname (in bovenstaand plaatje is de hostname veranderd in "DSMR-TST3").
Zet deze rubriek op "1" als je een DSMR 2+ of DSMR 3+ Slimme Meter hebt. Deze instelling wordt pas actief nadat de DSMR-logger opnieuw is opgestart.
Voer hier het Type
in van de meter die op de betreffende MBus is aangesloten. Het Type
van Gas meters is "003". Als in jouw installatie de Gas meter is aangesloten op MBus-ID2 voer je bij de rubriek"MBus-2 Type meter"
een "3" in. Bij MBus-ID's waar niets op is aangesloten voer je het beste een "0" in.
Voer een 1 in als de aangesloten Slimme Meter wél fase informatie afgeeft, voer anders een 0 (nul) in. Of jouw Slimme Meter Fase Informatie af geeft kun je zien door naar een telegram te kijken. Geeft jouw Slimme Meter Fase Informatie dan zie je rubrieken met een naam waar _l1
, _l2
en _l3
achter staat. Je hebt een Slimme meter die géén fase info afgeeft als de grafieken leeg blijven.
Default interval is 10. Dit betekent dat er iedere tien seconden een telegram wordt gelezen en verwerkt. De minimum waarde is 2 seconden.
Een nieuw ingevoerde index pagina wordt pas actief na het opnieuw opstarten van de DSMR-logger ([ReBoot] knop in de FSmanager).
Hier kun je invoeren óf en wat voor OLED schermpje op de DSMR-logger is aangesloten.
Voer een 0 (nul) in als er geen OLED scherm is aangesloten
Voer een 1 in als het scherm van het type SDD1306 is
Voer een 2 in als het scherm van het type SH1106 is
Voer 0 (nul) in om het scherm standaard te gebruiken
Voet 1 in als je het scherm "op zijn kop" gebruikt.
Dit is het topic waarmee de MQTT berichten naar de broker worden verstuurd. Standaard is het Top Topic "DSMR-API". In bovenstaand plaatje is het Top Topic veranderd in "DSMR-TST3".
Hier kun je opgeven hoe vaak de DSMR-logger een bericht naar de MQTT broker moet sturen. Voer je hier '0' (nul) in dan worden er géén berichten naar de MQTT broker verstuurd. Een waarde kleiner dan de Telegram Lees Interval zorgt ervoor dat na ieder gelezen telegram een bericht naar de MQTT broker wordt verstuurd.
De is een afgeleide van de NTA 8130-normering. De DSMR-logger (versie 4) is ontworpen voor de DSMR 4.0 of hoger. DSMR 4.0 geeft aan dat de Slimme Meter op de P1-poort 5 volt bij 100mA moet kunnen leveren (zie pagina 8 en 9 van de specificatie). Vanaf DSMR 5.0+ moet de Slimme Meter 250mA op de P1 poort kunnen leveren. De DSMR-logger gebruikt tijdens het opstarten ~250mA. Heb je een Slimme Meter die volgens een DSMR standaard < 5.0 werkt, dan zul je bijna altijd een externe voeding nodig hebben!
van de Hardware Deze hardware is een verbetering van de v4 hardware. Standaard heeft deze hardware een 5Volt DC Jack-Plug voor gebruik van een externe voeding en een jumper om de voeding te selecteren vanuit de Slimme Meter of de Jack-Plug. Bij gebruik van de Jack-Plug wordt de 5Volt van de Slimme Meter ontkoppelt. De draadbruggen voor de selectie van de signalen naar een OLED display zijn nu standaard [GND,3v3,SCL,SDA] doorverbonden maar deze kunnen, door de verbindingen aan de achterkant van de PCB door te snijden, ook aangepast worden.
Verder moet je de onderaan deze pagina in je sketch opnemen.
Verder moet je de onderaan deze pagina in je sketch opnemen.
With some help from .
Verder moet je de onderaan deze pagina in je sketch opnemen.
De source van deze code kun je op vinden.
De standaard index pagina is "DSMRindex.html". Mocht je zelf een GUI schrijven dan kun je hier de naam van de index pagina van jouw GUI invullen (nadat je jouw .html
pagina naar het bestand systeem hebt ge-upload).
Standaard staat er ook een DSMRindexEDGE.html pagina op het bestand systeem. Deze is gelijk aan de DSMRindex.html pagina maar hij haalt de javascript en css bestanden uit de github repository zodat aanpassingen (uitbreidingen of verbeteringen) automatisch door de DSMR-logger gebruikt worden.
Het ADJindex.html bestand is een bootstrap naar de door gemaakte GUI, het HJMindex.html bestand is een bootstrap naar de door Erik ontwikkelde GUI.
Je kunt deze GUI's eenvoudig uitproberen door in de FSmanager op deze bestanden te klikken.
In de volgende vier hoofdstukken wordt beschreven wat je moet doen om zélf de DSMRloggerAPI firmware te compileren en naar de DSMR-logger te flashen.
GET
http://dsmr-api.local/api/v1/dev/info
Deze restAPI geeft informatie terug van de DSMR-logger
GET
http://dsmr-api.local/api/vi/dev/time
Deze restAPI geeft de systeem tijd van de DSMR-logger
GET
http://dsmr-api.local/api/v1/dev/settings
Deze restAPI geeft alle, door de gebruiker muteerbare, settings terug
POST
http://dsmr-api.local/api/v1/settings/{"name":"<settingVeld>","value":"<nieuweWaarde>"}
type: String
maxlen: 29
Opmerking:
Characters
type: float
min: 0
max: 10
decimalen: 5
type: float
min: 0
max: 10
Decimalen: 5
type: float
min: 0
max: 10
Decimalen: 5
type: float
min: 0
max: 10
Decimalen: 5
type: float
min: 0
max: 10
Decimalen: 5
type: float
min: 0
max: 100
Decimalen: 2
Opmerking:
Euro's per maand
type: float
min: 0
max: 100
Decimalen: 2
Opmerking:
Euro's per maand
type: Integer
min: 1
max: 60
Opmerking:
Seconden
type: String
maxlen: 49
Opmerking:
Characters
Default: DSMRindex.html
type: String
maxlen: 100
Opmerking:
Characters
type: Integer
min: 0
max: 9999
type: String
maxlen: 39
Opmerking:
Characters
type: String
maxlen: 29
Opmerking:
Characters
type: String
maxlen: 20
Opmerking:
Characters
type: Integer
min: 0
max: 600
Opmerking: Seconden
indien '0' worden er géén berichten verstuurd
er wordt nooit vaker een bericht verstuurd dan tlgrm_interval
type: String
maxlen: 20
Opmerking:
Characters
indien korter dan 5 char's worden er geen gegevens naar mindergas.nl
verstuurd
De restAPI's voor het opvragen van historische gegevens hebben dit formaat:
of:
GET
http://dsmr-api.local/api/v1/hist/hours
Geeft een JSON string met de historische gegevens over de afgelopen 24 uur terug.
GET
http://dsmr-api.local/api/v1/hist/days
Geeft een JSON string met alle gegevens over de afgelopen 14 dagen terug.
GET
http://dsmr-api.local/api/v1/hist/months
Geeft een JSON string met alle gegevens van de afgelopen 24 maanden terug.
Download en installeer de meest actuele versie van de Arduino Integrated Development Environment (IDE) voor het Operating Systeem (OS) waar jouw Desktop of Laptop computer (er zijn versies voor Windows, Linux en Mac) mee werkt. Je kunt de Software hier downloaden.
De DSMRloggerAPI firmware is getest met de ArduinoIDE v1.8.13
Let op! De Arduino IDE v1.9.x (Beta) is NIET geschikt om deze firmware mee te compileren. Tot v1.9.x zorgt de IDE ervoor dat alle tab-bladen (.ino files) achter elkaar worden geplakt tot één source file waarna van alle functies in dit gecombineerde file zgn. prototypes worden gemaakt voordat deze aan de compiler (als één file dus) wordt aangeboden. De Arduino IDE is eigenlijk de enige IDE (voor zover ik weet) die dit doet en is als zodanig dus een beetje vreemd. v1.9.x (Beta) doet dit voor AVR processoren wel maar helaas (nog) niet voor de ESP8266 processor familie.
Na het downloaden moet je het ontvangen bestand uitpakken (unzip of untar) en installeren. Dat installeren is per OS anders maar staat duidelijk op de website van Arduino aangegeven. Eenmaal geïnstalleerd kun je direct met de Arduino IDE aan de slag.
Om de IDE met de ESP8266 microprocessor te kunnen gebruiken moeten we nog wat stappen uitvoeren.
Met de FSmanager is het mogelijk bestanden op het bestand systeem (Little File System) van de DSMR-logger te plaatsen of ze ervan te verwijderen. Ook kan de inhoud van bestanden die aanwezig zijn op het bestand systeem worden getoond (dit is niet mogelijk met .html bestanden omdat deze direct door de browser geïnterpreteerd -en dus uitgevoerd- worden).
Daarnaast kent de FSmanager nog de volgende functies:
Starten van de Update Server [Update Firmware]
Rebooten van de DSMR-logger[Reboot]
Formatteren van het LittleFS [Format FileSYS]
Soms blijft het scherm leeg. Klik dan op de knop[List File System]
Met de knop[Exit FSmanager]
keer je terug naar het hoofdscherm.
Er zijn verschillende manieren om de FSmanager te starten:
Vanuit het DSMR-logger hoofdscherm door op het icoon te klikken
Door in de browser de volgende URL in te toetsen
http://dsmr-api.local/FSmanager
of:
http://<ipAdresVanDeLogger>/FSmanager
De FSmanager heeft de mogelijkheid om het bestand systeem te formatteren. Deze functie is alleen nodig als het bestand systeem problemen vertoont. Normaal gesproken is deze functie nooit nodig en daarom is de knop ook uitgeschakeld. Om de knop te activeren moet het bestand met de naam !doNotFormat
(het eerste teken is een uitroep-teken) ge-delete worden. De inhoud van het bestand is niet belangrijk. Zodra dit bestand afwezig is wordt de [Format FileSYS]
knop geactiveerd.
Pas op! Door het bestand systeem te formatteren raak je álle bestanden die op het bestand systeem staan kwijt! Maak zo nodig eerst kopiëren van belangrijke bestanden.
Na iedere herstart zal de DSMRloggerAPI firmware controleren of het bestand systeem correct geformatteerd is. In dat geval plaatst het automatisch een bestand met de naam !doNotFormat
in de root directory.
Eén van de mooie eigenschappen van de ESP8266 is dat er flash geheugen in zit. Flash geheugen is geheugen dat zijn inhoud ook zonder spanning behoud. Vergelijk het met een SD-kaart. Het flash geheugen is, afhankelijk van het bordje, 512kB tot 16MB(!) groot. Een deel van dit flash geheugen wordt gebruikt om jouw programma in op te slaan. Wat er over blijft kan als bestand systeem worden ingericht (het zgn. LittleFS).
Je kunt in je programma dit bestand systeem niet alleen gebruiken om (bijvoorbeeld meet-) gegevens maar ook om de inhoud van een web-pagina (index.html
) of een configuratie-bestand in op te slaan.
Om het LittleFS voor dit soort bestanden te kunnen gebruiken moet je een plug-in
in je Arduino Projecten map installeren.
De plug-in haal je vandaan. Ga naar deze pagina en download het meest recente .zip bestand ..
Download vervolgens het ESP8266LittleFS-x.y.z.zip
bestand door er op te klikken.
En bewaar het bestand op een plek die voor jou handig is.
Ga nu naar je Sketchbook Location
map en maak daarin een nieuwe map tools
aan (als deze nog niet bestaat). Pak het zojuist ge-download-de zip bestand uit in deze tools
map. Er wordt nu een aantal nieuwe mappen aangemaakt waar de plug-in wordt neergezet. Het pad ziet er ongeveer zo uit:
<sketchbook location>/tools/ESP8266FS/tool/esp8266fs.jar
Start de Arduino IDE opnieuw op.
Op de menu-balk zie je nu onder[Tools]
een nieuwe optie: ESP8266 LittleFS Data Upload
.
Als er onder de map van je Sketch óók een map data
staat, dan kun je de bestanden die in deze data
-map staan met het ESP8266 LittleFS Data Upload
tool naar het bestand systeem van de ESP8266 flashen.
De bestands-tree van de DSMRloggerAPI firmware data-map ziet er zo uit:
Het ESP8266 LittleFS Data Upload
tool zal alle bestanden die in de data
-map zitten naar het bestand systeem van de aangesloten ESP8266 uploaden.
Ga naar: [tools
] -> [ESP8266 LittleFS Data Upload
]
Randvoorwaarde is natuurlijk dat het bestand systeem groot genoeg is! In de selectie van je board moet je, behalve het juiste type board ook aangeven hoeveel ruimte van je Flash geheugen je wilt gebruiken voor het bestand-systeem (vóórdat je je programma naar de ESP8266 upload!).
Normaliter zou je dit zo groot mogelijk willen maken, maar als je “Over The Air” programma’s op je ESP8266 wilt zetten (dus zonder fysieke verbinding maar via WiFi) dan moet je er rekening mee houden dat je twee maal de grootte van je programma nodig hebt om dit te kunnen doen. Wat er overblijft kun je als bestand-systeem gebruiken.
In de Arduino IDE moet bij “Instellingen” de volgende URL worden ingevoerd achter “Additional Boards Manager URL’s:” (zie rood omlijnde kader)
https://arduino.esp8266.com/stable/package_esp8266com_index.json
Er kunnen meer additional board manager URL’s worden ingevuld. Je moet ze dan achter elkaar zetten en scheiden door een komma (,).
Eventueel kun je ook het pad waar je projecten staan (de Sketchbook Location
) aanpassen. Standaard verwijst deze naar je Documenten
map:
C:\Users\<YourLoginName>\Documents\arduino\
.. en dat is een prima plek!
De andere instellingen kun je naar behoefte aanpassen. Hierboven staan de instellingen die ik prettig vind.
Na het maken van aanpassingen klik je op [OK]
.
Ga nu via de ArduinoIDE menu-balk naar [tools]
-> [Board]
-> [Boards Manager]
.
Voer bij filter “esp8266” in.
Selecteer de versie die je wilt gaan gebruiken en klik op [Install]
.
Let op! De DSMRloggerAPI firmware is getest met versie 2.7.4 van de Arduino/ESP8266 core. Nieuwere versies zullen zeer waarschijnlijk ook werken, maar bij problemen is het het beste om deze versie te gebruiken.
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 vinden.
Deze is door Paul Stoffregen ontwikkeld. Je kunt hem downloaden.
Je kunt de, door Tzapu ontwikkelde, bibliotheek 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 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 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 downloaden.
Onderstaande libraries zijn onderdeel van de ESP8266 Core
en moeten dus niet handmatig geïnstalleerd worden!
LittleFS
ESP8266WiFi
ESP8266WebServer
WiFiUdp
ESP8266mDNS
FS
Nieuwe DSMRloggerAPI firmware kan via de web-interface van de DSMR-logger "Over the Air" geflashed worden maar mocht dat, om de één of andere reden niet lukken dan kunnen de pré compiled binaries ook bedraad geflashed worden.
Hoe je de firmware moet upgraden van DSMRloggerWS naar DSMRloggerAPI staat beschreven!
Op staan van de major releases binaries van zowel de firmware als van het LittleFS bestand systeem.
Bij een gewone firmware update is het meestal niet nodig ook het bestand system opnieuw te downloaden en te flashen.
Onder iedere release beschrijving staan de bijbehorende "Assets".
Vanaf versie 3 van de firmware zijn er geen compiler opties meer die de firmware voor een bepaald type Slimme Meter geschikt maken. Alleen in het zeer specifieke geval waarbij je wilt testen of debuggen kan het nodig zijn om zelf de binaries te compileren.
Klik nu op de bovenste [Choose File]
knop
Selecteer in het popup-window het zojuist gedownloade DSMRloggerAPI.ino.bin
file:
Klik op [Open]
of [Select]
en klik vervolgens op de knop [Flash Firmware]
.
Na enige tijd verschijnt het volgende scherm:
.. waarna, zodra de teller op nul staat, het hoofdscherm van de DSMR-logger weer verschijnt.
Alleen als in de beschrijving van een release staat dat ook het bestand system opnieuw geflased moet worden moet u dit doen. In veel gevallen zal volstaan om eventueel een bepaald bestand naar de DSMR-logger te uploaden. Ook dit zal dan expliciet in de release beschrijving staan.
Espressif heeft voor zijn ESP-boards een (helaas alleen Windows) tool ontwikkeld dat het bedraad flashen erg eenvoudig maakt.
Pak het .zip file uit (unzip) en start het door op het mapje te klikken:
Klik nu op "flash_download_tools.exe" en selecteer [esp8266 DownloadTool]
in het volgende scherm:
Selecteer de twee bin bestanden. Het DSMRloggerAPI.ino.bin
bestand moet op adres 0x0 starten, het DSMRloggerAPI.mklittlefs.bin
op adres 0x200000. Selecteer de COM poort waar de DSMR-logger op is aangesloten, zet de DSMR-logger in flash mode en klik op [START]
. Na enige tijd krijg je de melding dat alles goed is gegaan.
Nu je een ArduinoIDE hebt waarmee je ESP8266’s kunt programmeren (flashen) zul je ontdekken dat er door briljante mensen software is ontwikkeld die je kunt gebruiken om complexe projecten te realiseren, zonder dat je zelf het wiel hoeft uit te vinden.
Deze software wordt veelal in de vorm van een bibliotheek aangeboden en je hoeft zo’n bibliotheek alleen maar te installeren om er gebruik van te kunnen maken.
vind je de officiële instructies voor het installeren van bibliotheken met de ArduinoIDE.
Stel je wilt je ESP8266 benaderen met een telnet client
zodat je vanaf je Desktop of Laptop op de ESP8266 kunt inloggen. Je hebt op de ESP8266 dan een telnet server
nodig. Met wat Googelen naar "ESP8266 telnet" blijken hier een aantal bibliotheken voor te bestaan.
Als voorbeeld nemen we TelnetStream van Juraj Andrassy. Zijn telnet implementatie kun je vanaf deze pagina als bibliotheek downloaden.
Om de bibliotheek te installeren klik je op de groene [Clone or download]
knop en selecteer je [Download ZIP]
.
Onthou waar je het zip-file bewaard!
Ga nu naar de Arduino IDE en selecteer:
[Sketch]
=>[Include Library]
=>[Add .ZIP Library]
Er verschijnt een selectie window waar je het zojuist ge-download-de bestand selecteert.
Klik op [Choose]
.
De bibliotheek is nu geïnstalleerd en klaar om gebruikt te worden. De meeste bibliotheken komen met een aantal voorbeeld programma’s waarmee je kunt leren hoe je de bibliotheek kunt gebruiken.
Juraj Andrassy is erg summier met zijn uitleg maar gelukkig is er een map met voorbeelden (nou ja, één voorbeeld).
Klik je nu op[TelnetStreamTest]
dan wordt dit voorbeeld programma in de Arduino IDE geladen.
Om de firmware op de DSMR-logger te krijgen moeten een aantal stappen worden ondernomen. Hieronder staat welke stappen dat zijn.
Lees vooral de uitleg in het bestand en de uitgebreide op hun website!
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 downloaden.
Deze bibliotheek is alleen nodig als je USE_SYSLOGGER defined. Je kunt de bibliotheek downloaden (vanaf v1.6.3 commit ). Pas op! (nog) Niet geschikt voor het LittleFS!
Klik op "" en download het meest recente of door jou gewenste DSMRloggerAPI.ino.bin
bestand (deze staan onder iedere release beschrijving bij "Assets").
Ga nu op de DSMR-logger naar de FSmanager (door op het icoon te klikken) en klik vervolgens op de knop [Update Firmware]
.
Het tool kun je downloaden.
(sorry, het plaatje is een beetje verknipt)
Installeer op dezelfde manier de andere bibliotheken die voor de DSMRloggerAPI
firmware nodig zijn (zie het hoofdstuk).
GET
http://dsmr-api.local/api/v1/sm/info
Geeft systeem een JSON string met informatie van de Slimme Meter, zoals ID's en Serie nummers, terug.
GET
http://dsmr-api.local/api/v1/sm/actual
Geeft de actuele meterstanden van de Slimme Meter terug in een JSON string.
GET
http://dsmr-api.local/api/v0/sm/actual
Deze api dient voor backwards compatibility met de DSMRloggerWS firmware. Deze api call geeft de actuele informatie van de Slimme Meter terug in een JSON string.
GET
http://dsmr-api.local/api/v1/sm/fields
Geeft een JSON string met alle velden die door de DSMRloggerAPI firmware kunnen worden terug gegeven.
Let op! Niet iedere Slimme Meter geeft ook al deze velden terug. Als de Slimme meter een veld niet terug geeft heeft "value"
de waarde "-"
.
GET
http://dsmr-api.local/api/v1/sm/fields/<fieldName>
Geeft een JSON string met informatie over één veld terug. Bijvoorbeeld: http://dsmr-api.local/api/v1/sm/fields/current_l2
GET
http://dsmr-api.local/api/v1/sm/telegram
Geeft een telegram terug precies zo als de Slimme Meter die ook afgeeft, dus inclusief "\r\n" line endings en inclusief de CheckSum!
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.
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 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).
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 data naar een MQTT Broker te sturen geactiveerd.
Via FSexplorer
-> Edit instellingen
-> Settings
kun je gegevens over de te gebruiken MQTT Broker invullen:
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".
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).
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.
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!
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.
Merk
Type
Compiler Opties
Externe Voeding
DSMR
Opmerking/ Setting
Werkt
Landys
E350
1, 2, (3)
Nee
5.0
OK!
Landys
E350
JA
2.2+
Pré DSMR 40[Yes]
OK
Landys
E350
?
?
4.0
ok
Landys
E360
1,2
Nee
5.0
OK!
Landys
ZCF110
1,2
JA
4.2
OK
Landys
ZCM110
?
?
4.2
ok
Landys
ZCF120ABd
1
Nee
2.2+
Pré DSMR 40[Yes]
SM Has Fase Info[No]
GUI geeft géén actueel verbruik
OK
ISKRA
AM550
?
Nee
5.0+
OK!
ISKRA
MT382
?
JA
2.2+
Pré DSMR 40[Yes]
OK
ISKRA
ME382
?
?
2.2+
Pré DSMR 40[Yes]
ok
KAIFA
E0026
?
?
?
?
KAIFA
MA304
?
JA
?
OK!
KAIFA
MA105C
?
JA
?
OK!
KAIFA
MA340C
1,2
JA
?
OK!
Kamstrup
162
1
JA
2.2
Pré DSMR 40[Yes]
SM Has Fase Info[No]
OK
Kamstrup
382
?
?
2.2
Pré DSMR 40[Yes]
?
Sagemcom
XS210
?
?
5.0
ESMR5
ok
Sagemcom
T210-D
Standaard
Nee
5.0
ESMR5
OK!
Sagemcom
S211
1
Nee
?
SM Has Fase Info[No]
OK!
Seconia
T211
1
Nee
?
SM Has Fase Info[No]
OK!
#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.
Copyright © 2018 - 2021 Willem Aandewiel
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
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.
Om in Home Assistant de gegevens uit de DSMR-logger (met de DSMRloggerAPI firmware) te gebruiken heb ik het configuration.yaml
bestand als volgt aangepast:
Optioneel: Gas gebruik toevoegen (let op: is totaal gebruik):
in deze voorbeelden worden de power_delivered en gas_delivered velden via MQTT uitgelezen en de power_returned via de restAPI's. Uiteraard kun je voor alle velden de manier van uitlezen gebruiken die voor jou het prettigste werkt.
Dit is het resultaat:
Merk op dat ik voor de resource bij de restAPI's het IP adres van de DSMR-logger gebruik. Ik krijg het in mijn opzet niet voor elkaar hier de hostname (dsmr-api.local) te gebruiken. Controleer ook of het MQTT topic juist is.
De omvang van de DSMTloggerAPI firmware is te groot geworden voor een ESP-01 bordje. Het is wél mogelijk om de 1MB flash chip van de ESP-01 te vervangen door een 4MB flash chip, waarna er wél voldoende ruimte is voor deze firmware!
Het gebruik van de DSMR-logger v2 en v3 wordt niet meer ondersteunt.
Het upgraden vanaf de DSMRloggerAPI v2 firmware naar de DSMRloggerAPI firmware v3 is nodig omdat het SPIFFS bestand systeem binnenkort niet meer ondersteund wordt door de esp8266 core. Versie 3 van de DSMRloggerAPI firmware maakt daarom gebruik van het zgn. LittleFS (little file system) en daarom is het noodzakelijk de volgende stappen uit te voeren:
Gebruik de FSexplorer om de RINGhours.csv
, RINGdays.csv
enRINGmonths.csv
naar je computer te downloaden (dit hoef je alleen te doen als je de opgebouwde historie na de upgrade terug wilt zien in de GUI van de DSMR-logger met de nieuwe firmware).
Download de laatste (nieuwste) versie DSMRloggerAPI.ino.bin
en DSMRloggerAPI.mklittlefs.bin
files van github naar je computer.
Wacht na de boodschap dat de update goed is gegaan tot de teller op 10 staat en klik dan in de browser op [Back]
, tik in de URL-balk het IP-Adres van de DSMR-logger in met daarachter "/update
" of wacht tot de DSMR-logger opnieuw is opgestart. Je komt nu weer in het scherm waar je nieuwe firmware kunt flashen.
Als het flashen goed is gegaan verschijnt na enige tijd het start scherm van de DSMR-logger.
Gebruik vervolgens de FSmanager om de, in stap 1 naar de PC gekopieerde, RINGbestanden terug naar de DSMR-logger te zetten.
Deze video laat zien hoe je de DSMRloggerWS firmware eenvoudig kunt upgraden naar de nieuwe DSMRloggerAPI firmware.
Je kunt deze upgrade maar één maal uitvoeren! Nadat de upgrade is uitgevoerd (en als het is gelukt) kun je nieuwe versies van de DSMRloggerAPI firmware via de normale weg updaten!
Het upgraden vanaf de DSMRloggerWS firmware naar de DSMRloggerAPI firmware bestaat uit de volgende stappen:
Gebruik de FSexplorer om de PRDhours.csv
, PRDdays.csv
en PRDmonths.csv
naar je computer te downloaden (dit hoef je alleen te doen als je de opgebouwde historie na de upgrade terug wilt zien in de GUI van de DSMR-logger met de nieuwe firmware).
Verwijder het bestand DSMRsettings.ini
van de DSMR-logger (gebruik weer de FSexplorer).
Pas op! Sla deze stap niet over!!
Voer nu de stappen uit zoals in Nieuwe DSMRloggerAPI firmware flashen beschreven.
Als de voorgaande stap goed is gegaan verschijnt na enige tijd het start scherm van de DSMR-logger.
De DSMRloggerAPI firmware heeft een mogelijkheid om bestanden van de DSMRloggerWS (zgn. PRD-bestanden
) automatisch te converteren naar het door de DSMRloggerAPI gebruikt (RING) formaat.
Nadat je de DSMRloggerAPI hebt geïnstalleerd en deze 'werkt' kun je met de FSmanager
de drie bewaarde PRD-bestanden
naar het bestand systeem uploaden.
Upload vervolgens een bestand met de exacte naam !PRDconvert
(het eerste teken is een uitroep-teken) naar het File Systeem (de inhoud van dit bestand is niet belangrijk). Start de DSMR-logger nu opnieuw op (klik op de knop [ReBoot]
) en de RING bestanden zullen automatisch gevuld worden met de inhoud van de PRD bestanden.
Let op! Je moet ervoor zorgen dat de PRD bestanden zo actueel mogelijk, maar in ieder geval binnen dezelfde dag en bij voorkeur in hetzelfde uur waarop je de conversie uitvoert, nog ge-update zijn! Missen er uren of dagen dan geeft dit vreemde resultaten (maar dat komt na verloop van tijd vanzelf goed)!
Met de Update Server is het mogelijk om firmware en het bestand systeem naar een DSMR-logger te flashen.
Je kunt de Update Server op twee manieren opstarten:
Door op de knop [Update Firmware]
in de FSmanager te klikken
Door in de browser de volgende URL in te toetsen: http://dsmr-api.local/update of: http://<hetIPadresVanDeDSMRlogger>/update
Om (nieuwe) firmware te flashen moet je op de knop [Choose file]
onder de kop "Selecteer een .ino.bin bestand" klikken.
Er verschijnt nu een drop-down window waar je de gewenste firmware kunt selecteren.
Klik vervolgens op [Flash Firmware]
Om een nieuw bestands systeem op de DSMR-logger te flashen klik je op de knop [Choose file] onder de kop "Selecteer een .mklittlefs.bin bestand".
Er verschijnt nu een drop-down window waar je het gewenste .mklittlefs.bin
bestand systeem kunt selecteren.
Klik vervolgens op de knop [Flash FileSYS]
De DSMRloggerAPI firmware staat hier . 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
)
Voor nu ga ik ervan uit dat je git
op je systeem hebt staan en dat je weet hoe je ermee moet werken.
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!
Vervolgens moet je niet op het Compile & Upload
-Icoon
Als de firmware gecompileerd is klik je op de DSMR-logger pagina op het icoontje.
Klik op de knop [Update Firmware]
, selecteer met [Choose File]
het goede firmware bestand (DSMRloggerAPI.ino.bin) en flash eerst deze nieuwe firmware door op de knop [Flash Firmware]
te klikken.
Klik nu op de knop [Update Firmware]
, selecteer door op [Choose File]
onder de tekst "Selecteer een .mklittlefs.bin bestand" te klikken. Selecteer nu het zojuist gedownloade DSMRloggerAPI.mklittlefs.bin bestand en klik op de knop [Flash FileSystem]
.
Ga verder naar
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 kun je alles vinden over hoe je dit, voor jouw systeem, moet doen.
Ga naar de Arduino Sketchbook location
(de map waar al je Sketches in staan, ) en toets het volgende commando in: