Beschrijving restAPI's
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).
Aanroepen restAPI vanuit verschillende systemen
Een restAPI kan op verschillende manieren worden aangeroepen.
Javascript
fetch("http://dsmr-api.local/api/v1/dev/time")
.then(response => response.json())
.then(json => {
console.log("parsed .., data is ["+ JSON.stringify(json)+"]");
for( let i in json.devtime ){
if (json.devtime[i].name == "time")
{
console.log("Got new time ["+json.devtime[i].value+"]");
document.getElementById('theTime').innerHTML = json.devtime[i].value;
}
}
})
.catch(function(error) {
var p = document.createElement('p');
p.appendChild(
document.createTextNode('Error: ' + error.message)
);
});
Unix command
Geeft dit als output:
Home Assistant
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.
Arduino Mega met Ethernet shield
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!).
Verder moet je de Algemene functies onderaan deze pagina in je sketch opnemen.
ESP8266 (WiFi)
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.
Verder moet je de Algemene functies onderaan deze pagina in je sketch opnemen.
ESP32 (WiFi)
With some help from Random Nerd Tutorials.
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.
Verder moet je de Algemene functies onderaan deze pagina in je sketch opnemen.
Algemene functies
In de main loop() function moet deze code komen:
De source van deze code kun je op github vinden.
Andere systemen
Veel andere systemen hebben hun eigen manier om restAPI's op te vragen. Lees hiervoor de betreffende documentatie.
Last updated
Was this helpful?