DSMR Binding

The openHAB DSMR binding is targeted for Dutch users having a smart meter ('Slimme meter' in Dutch). Data of Dutch smart meters can be obtained via the P1-port. When connecting this port from a serial port the data can be read out.

This binding reads the P1-port of the Dutch Smart Meters that comply to NTA8130, DSMR v2.1, DSMR v2.2, DSMR v3.0, DSMR v4.0 or DSMR v4.04.

Users not living in the Netherlands that want to read a meter should review the IEC-62056-21 Meter Binding.

Binding Configuration

The binding can be configured in the file services/dsmr.cfg.

PropertyDefaultRequiredDescription
portYesPort of the DSMR
gas.channel1NoChannel for the gas meter
water.channel2NoChannel for the water meter
heating.channel3NoChannel for the heating meter
cooling.channel4NoChannel for the cooling meter
generic.channel5NoChannel for the generic meter
slaveelectricity.channel6NoChannel for the slave electricity meter

The channels of the additional meters correspond to the M-Bus channel of the smart meter that the additional meter is connected to. The main electricity meter is always at channel 0; configuration of this meter is not necessary and not supported.

Differences between DSMR versions

The serial port settings for DSMR v4 and up (115200 8n1) differ from NTA8130, v2.1, v2.2 and v3.0 (9600 7e1). The DSMR binding will automatically detect the applicable serial port settings.

Item Configuration

The syntax for the DSMR binding configuration string is:

dsmr="[dsmr item id]"

The following table shows the full list of available dsmr values:

DSMR item idDescriptionAvailable for DSMR versionUnit
General values
P1VersionOutputVersion information for P1 outputv4.0 and up
P1TimestampTimestamp of the P1 outputv4.0 and up
Electricity meter values
eEquipmentIdEquipment identifierAll versions
eDeliveryTariff0Total meter delivery tariff 01kWh
eDeliveryTariff1Total meter delivery tariff 1All versionskWh
eDeliveryTariff2Total meter delivery tariff 2All versionskWh
eProductionTariff0Total meter production tariff 01kWh
eProductionTariff1Total meter production tariff 1All versionskWh
eProductionTariff2Total meter production tariff 2All versionskWh
eTariffIndicatorTariff indicatorAll versions
eActualDeliveryActual power deliveryAll versionskW
eActualProductionActual power productionAll versionskW
eTresholdThe actual threshold ElectricityAll versionsA for v2.1, v2.2, v3.0
kW for v4.0 and v4.04
eSwitchPositionActual switch positionAll versions
ePowerFailuresNumber of power failuresv4.0 and up
eLongPowerFailuresNumber of long power failuresv4.0 and up
eNumberOfLogEntriesNumber of power failure entries in the event logv4.0 and up
eDatePowerFailureXDate of power failure (entry X)v4.0 and up
X is a value [1-10]
eDurationPowerFailureXDuration of power failure (entry X)v4.0 and up
X is a value [1-10]
seconds
eVoltageSagsL1Number of voltage sags L1v4.0 and up
eVoltageSagsL2Number of voltage sags L2v4.0 and up
eVoltageSagsL3Number of voltage sags L3v4.0 and up
eVoltageSwellsL1Number of voltage swells L1v4.0 and up
eVoltageSwellsL2Number of voltage swells L2v4.0 and up
eVoltageSwellsL3Number of voltage swells L3v4.0 and up
eTextCodeVersion information for P1 outputAll versions
eTextMessageVersion information for P1 outputAll versions
eInstantCurrentL1Instantenous current L1v4.04 and upA
eInstantCurrentL2Instantenous current L2v4.04 and upA
eInstantCurrentL3Instantenous current L3v4.04 and upA
eInstantPowerDeliveryL1Instantenous active power delivery L1v4.04 and upkW
eInstantPowerDeliveryL2Instantenous active power delivery L2v4.04 and upkW
eInstantPowerDeliveryL3Instantenous active power delivery L3v4.04 and upkW
eInstantPowerProductionL1Instantenous active power production L1v4.04 and upkW
eInstantPowerProductionL2Instantenous active power production L2v4.04 and upkW
eInstantPowerProductionL3Instantenous active power production L3v4.04 and upkW
Gas meter values
gDeviceTypeDevice Typev3.0 and up
gEquipmentIdEquipment identifierAll versions
gValueTSTimestamp of the last measurement (local time)v4.0 and upDate & time
gNumberOfValuesNumber of values available for gValue en gValueXv3.0
gUnitUnit of the valuesv3.0
gValueDelivery of:
-Last hour (v3.0 / v4.0 and up)
-Last 24 hours (v2.1 / v2.2)
All versions2m3
gValueXMeter reading X of the buffer (hourly period)v3.02
X is a value [2-10]
Higher values are older
m3
gProfileStatusUnknownv3.0
gRecordingPeriodDuration of a value recordingv3.0minutes
gValueCompensatedTemperature compensated delivery of the last 24 hoursv2.1 and v2.2m3
gValvePositionValve positionAll versions
Heating meter values
hDeviceTypeDevice Typev3.0 and up
hEquipmentIdEquipment identifierAll versions
hValueTSTimestamp of the last measurement (local time)v4.0 and upDate & time
hValueLast hour deliveryAll versionsGJ
hValvePositionValve positionv3.0 and up
Cooling meter values
cDeviceTypeDevice Typev3.0 and up
cEquipmentIdEquipment identifierAll versions
cValueTSTimestamp of the last measurement (local time)v4.0 and upDate & time
cValueLast hour deliveryAll versionsGJ
cValvePositionValve positionv3.0 and up
Cooling meter values
wDeviceTypeDevice Typev3.0 and up
wEquipmentIdEquipment identifierAll versions
wValueTSTimestamp of the last measurement (local time)v4.0 and upDate & time
wValueLast hour deliveryAll versionsm3
wValvePositionValve positionv3.0 and up
Generic meter values
genericDeviceTypeDevice Typev3.0
genericEquipmentIdEquipment identifierv3.0
genericValueLast hour deliveryv3.0
genericValvePositionValve/Switch positionv3.0
Slave electricity meter values
seDeviceTypeDevice Typev4.0 and up
seEquipmentIdEquipment identifierv4.0 and up
seValueTSTimestamp of the last measurement (local time)v4.0 and upDate & time
seValueLast hour deliveryv4.0 and upkWh
seSwitchPositionSwitch positionv4.0 and up

1 This item isn't part of any specification, but the ITRON ACE4000 GTMM Mk3 does use this value.
2 Gas values for DSMR v3.0 are available in a list of max. 10 entries. The binding assumes the first value is the most recent (and thus available in gValue)

Examples

Item configuration examples

Number P1_Actual_Delivery "Actual usage [%.3f kW]" {dsmr="eActualDelivery"}
Number P1_Meter_DeliveryLow "Meterstand reading low tariff [%.3f kWh]" {dsmr="eDeliveryTariff1"}
Number P1_Meter_DeliveryNormal "Meter reading normal tariff[%.3f kWh]" {dsmr="eDeliveryTariff2"}

Notes

Logging

To increase verbosity of the logging for debugging purposes, set the org.openhab.binding.dsmr log level to DEBUG. Reduce back to INFO or DEFAULT after capturing the desired logs.

Test results

MeterDSMR versionElectricityGasWaterHeatingCoolingGeneralSlave electricity
ISKRA MT3823.0OKOKNot testedNot testedNot testedNot testedN/A
ISKRA AM5505.0OKOKNot testedNot testedNot testedNot testedUnknown
Itron ACE4000 GTMM Mk3NTA8130OKNot testedNot testedNot testedNot testedN/AN/A
Kaifa E00034.04OKOKNot testedNot testedNot testedN/ANot tested
Kaifa MA3044.04OKNot testedNot testedNot testedNot testedN/ANot tested
Kamstrup 162JxC3.0OKOKNot testedNot testedNot testedNot testedN/A
Landys + Gyr E3503.0OKNot testedNot testedNot testedNot testedNot testedN/A

CRC

A meter that conforms to DSMR v4 or higher includes a CRC on the complete message. The binding does not check the CRC yet.