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.
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
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!
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)
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.
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
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.
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.
{"info":[
{"name": "identification", "value": "XMX5LABCDB2410065887"},
{"name": "p1_version", "value": "50"},
{"name": "equipment_id", "value": "4530303336303000000000000000000040"},
{"name": "electricity_tariff", "value": "0001"},
{"name": "mbus1_device_type", "value": 3},
{"name": "mbus1_equipment_id_tc", "value": "4730303339303031363532303530323136"},
{"name": "mbus4_device_type", "value": 5},
{"name": "mbus4_equipment_id_tc", "value": "4730303339303031344444444444444444"}
]}
GET
http://dsmr-api.local/api/v1/sm/actual
Geeft de actuele meterstanden van de Slimme Meter terug in een JSON string.
{"actual":[
{"name": "timestamp", "value": "210419050001S"},
{"name": "energy_delivered_tariff1", "value": 2332.511, "unit": "kWh"},
{"name": "energy_delivered_tariff2", "value": 8514.767, "unit": "kWh"},
{"name": "energy_returned_tariff1", "value": 353.841, "unit": "kWh"},
{"name": "energy_returned_tariff2", "value": 196.645, "unit": "kWh"},
{"name": "power_delivered", "value": 1.880, "unit": "kW"},
{"name": "power_returned", "value": 0.000, "unit": "kW"},
{"name": "voltage_l1", "value": 239.000, "unit": "V"},
{"name": "voltage_l2", "value": 236.000, "unit": "V"},
{"name": "voltage_l3", "value": 237.000, "unit": "V"},
{"name": "current_l1", "value": 3, "unit": "A"},
{"name": "current_l2", "value": 0, "unit": "A"},
{"name": "current_l3", "value": 0, "unit": "A"},
{"name": "power_delivered_l1", "value": 0.500, "unit": "kW"},
{"name": "power_delivered_l2", "value": 0.899, "unit": "kW"},
{"name": "power_delivered_l3", "value": 0.480, "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": "gas_delivered", "value": 2963.380, "unit": "m3"}
]}
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.
{
"timestamp": "170102105001S",
"energy_delivered_tariff1": 146.380,
"energy_delivered_tariff2": 70.511,
"energy_returned_tariff1": 111.164,
"energy_returned_tariff2": 75.530,
"power_delivered": 1.750,
"power_returned": 1.270,
"voltage_l1": 242.000,
"voltage_l2": 240.000,
"voltage_l3": 234.000,
"current_l1": 0,
"current_l2": 0,
"current_l3": 0,
"power_delivered_l1": 1.046,
"power_delivered_l2": 0.464,
"power_delivered_l3": 0.243,
"power_returned_l1": 0.669,
"power_returned_l2": 0.521,
"power_returned_l3": 0.078,
"gas_delivered": 100.550
}
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 "-"
.
{"fields":[
{"name": "identification", "value": "XYZ12345678909897654"},
{"name": "p1_version", "value": "50"},
{"name": "p1_version_be", "value": "-"},
{"name": "timestamp", "value": "210610103351S"},
{"name": "equipment_id", "value": "45303033363030333754321098765"},
{"name": "energy_delivered_tariff1", "value": 4491.266, "unit": "kWh"},
{"name": "energy_delivered_tariff2", "value": 6065.275, "unit": "kWh"},
{"name": "energy_returned_tariff1", "value": 788.990, "unit": "kWh"},
{"name": "energy_returned_tariff2", "value": 1809.853, "unit": "kWh"},
{"name": "electricity_tariff", "value": "0002"},
{"name": "power_delivered", "value": 0.000, "unit": "kW"},
{"name": "power_returned", "value": 1.023, "unit": "kW"},
{"name": "electricity_threshold", "value": "-"},
{"name": "electricity_switch_position", "value": "-"},
{"name": "electricity_failures", "value": 11},
{"name": "electricity_long_failures", "value": 1},
{"name": "electricity_failure_log", "value": "(1)(0-0:96.7.19)(200210104719W)(0000014540*s)"},
{"name": "electricity_sags_l1", "value": 10},
{"name": "electricity_sags_l2", "value": 7},
{"name": "electricity_sags_l3", "value": 9},
{"name": "electricity_swells_l1", "value": 0},
{"name": "electricity_swells_l2", "value": 0},
{"name": "electricity_swells_l3", "value": 0},
{"name": "message_short", "value": "-"},
{"name": "message_long", "value": ""},
{"name": "voltage_l1", "value": 235.000, "unit": "V"},
{"name": "voltage_l2", "value": 238.000, "unit": "V"},
{"name": "voltage_l3", "value": 239.000, "unit": "V"},
{"name": "current_l1", "value": 0.000, "unit": "A"},
{"name": "current_l2", "value": 0.000, "unit": "A"},
{"name": "current_l3", "value": 5.000, "unit": "A"},
{"name": "power_delivered_l1", "value": 0.075, "unit": "kW"},
{"name": "power_delivered_l2", "value": 0.106, "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.000, "unit": "kW"},
{"name": "power_returned_l3", "value": 1.205, "unit": "kW"},
{"name": "mbus1_device_type", "value": 3},
{"name": "mbus1_equipment_id_tc", "value": "47303044449303031363532309876543211"},
{"name": "mbus1_equipment_id_ntc", "value": "-"},
{"name": "mbus1_valve_position", "value": "-"},
{"name": "mbus1_delivered", "value": 3845.379, "unit": "m3"},
{"name": "mbus1_delivered_ntc", "value": "-"},
{"name": "mbus1_delivered_dbl", "value": "-"},
{"name": "mbus2_device_type", "value": "-"},
{"name": "mbus2_equipment_id_tc", "value": "-"},
{"name": "mbus2_equipment_id_ntc", "value": "-"},
{"name": "mbus2_valve_position", "value": "-"},
{"name": "mbus2_delivered", "value": 0.000, "unit": "GJ"},
{"name": "mbus2_delivered_ntc", "value": "-"},
{"name": "mbus2_delivered_dbl", "value": "-"},
{"name": "mbus3_device_type", "value": "-"},
{"name": "mbus3_equipment_id_tc", "value": "-"},
{"name": "mbus3_equipment_id_ntc", "value": "-"},
{"name": "mbus3_valve_position", "value": "-"},
{"name": "mbus3_delivered", "value": 0.000, "unit": "m3"},
{"name": "mbus3_delivered_ntc", "value": "-"},
{"name": "mbus3_delivered_dbl", "value": "-"},
{"name": "mbus4_device_type", "value": "-"},
{"name": "mbus4_equipment_id_tc", "value": "-"},
{"name": "mbus4_equipment_id_ntc", "value": "-"},
{"name": "mbus4_valve_position", "value": "-"},
{"name": "mbus4_delivered", "value": 0.000, "unit": "m3"},
{"name": "mbus4_delivered_ntc", "value": "-"},
{"name": "mbus4_delivered_dbl", "value": "-"}
]}
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
{"fields":[
{"name": "timestamp", "value": "210315080001S"},
{"name": "current_l2", "value": 1, "unit": "A"}
]}
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!
/XMX5LABCDE2410065447
1-3:0.2.8(50)
0-0:1.0.0(210610104031S)
0-0:96.1.1(4530304446303033373839312345678906)
1-0:1.8.1(004491.266*kWh)
1-0:1.8.2(006065.310*kWh)
1-0:2.8.1(000788.990*kWh)
1-0:2.8.2(001809.893*kWh)
0-0:96.14.0(0002)
1-0:1.7.0(00.037*kW)
1-0:2.7.0(00.000*kW)
0-0:96.7.21(00011)
0-0:96.7.9(00001)
1-0:99.97.0(1)(0-0:96.7.19)(200210104719W)(0000014540*s)
1-0:32.32.0(00010)
1-0:52.32.0(00007)
1-0:72.32.0(00009)
1-0:32.36.0(00000)
1-0:52.36.0(00000)
1-0:72.36.0(00000)
0-0:96.13.0()
1-0:32.7.0(238.0*V)
1-0:52.7.0(238.0*V)
1-0:72.7.0(238.0*V)
1-0:31.7.0(002*A)
1-0:51.7.0(000*A)
1-0:71.7.0(003*A)
1-0:21.7.0(00.598*kW)
1-0:41.7.0(00.102*kW)
1-0:61.7.0(00.000*kW)
1-0:22.7.0(00.000*kW)
1-0:42.7.0(00.000*kW)
1-0:62.7.0(00.663*kW)
0-1:24.1.0(003)
0-1:96.1.0(4730305559303031363839312345678906)
0-1:24.2.1(210610104007S)(03845.376*m3)
!344A