--- title: DSMR Slimme Meter description: Instructions on how to integrate DSMR Smartmeter within Home Assistant. logo: netbeheernederland.jpg ha_category: - Energy ha_release: 0.34 ha_iot_class: Local Push ha_config_flow: true ha_domain: dsmr ha_codeowners: - '@Robbie1221' - '@frenck' ha_platforms: - sensor ha_integration_type: hub --- A sensor platform for Belgian, Dutch, Luxembourg and Swedish Smart Meters which comply to DSMR (Dutch Smart Meter Requirements), also known as 'Slimme meter' or 'P1 poort'. Swedish meters with a 'HAN port' are not supported by this integration. - Currently support DSMR V2.2, V3, V4, V5, Belgian V5 variant, Luxembourg V5 variant (Smarty), Swedish V5 variant and the EasyMeter Q3D (Germany) through the [dsmr_parser](https://github.com/ndokter/dsmr_parser) module by Nigel Dokter. - For official information about DSMR refer to: [DSMR Document](https://www.netbeheernederland.nl/dossiers/slimme-meter-15) - For official information about the P1 port refer to: [P1 Companion Standard](https://www.netbeheernederland.nl/_upload/Files/Slimme_meter_15_a727fce1f1.pdf) - For unofficial hardware connection examples refer to: [Domoticx](http://domoticx.com/p1-poort-slimme-meter-hardware/) - For official information about the Swedish variant refer to: [Swedish specification](https://www.energiforetagen.se/globalassets/energiforetagen/det-erbjuder-vi/kurser-och-konferenser/elnat/branschrekommendation-lokalt-granssnitt-v2_0-201912.pdf). - Supports [P1 cables](http://www.rfxcom.com/epages/78165469.sf/nl_NL/?ObjectPath=/Shops/78165469/Products/19602) integrated in a [RFXtrx device](http://www.rfxcom.com/epages/78165469.sf/nl_NL/?ObjectPath=/Shops/78165469/Products/18103).

### Configuration - For Belgian meters, choose DSMR version `5B` - For Dutch meters, choose DSMR version `2.2`, `4`, or `5` - For Luxembourg meters, choose DSMR version `5L` - For Swedish meters, choose DSMR version `5S` - For EasyMeter Q3D, choose DSMR version `Q3D` ### Options To configure options for DSMR integration go to **Settings** -> **Devices & Services** and press **Options** on the DSMR card. #### Time between updates Typically the smart meter sends new data every 5-10 seconds. This value defines the minimum time between entity updates in seconds. Setting this value to 0 will update entities each time data is received from the smart meter.
Reducing the default time between updates will increase the amount of events generated and can potentially flood the system with events.
### Supported meters This integration is known to work for: - Iskra ME382 / MT382 (DSMR 2.2) - ISKRA AM550 (DSMR 5.0) - Landis+Gyr E350 (DMSR 4) - Landis+Gyr ZCF110 / ZM F110 (DSMR 4.2) - Kaifa E0026 - Kamstrup 382JxC (DSMR 2.2) - Sagemcom XS210 ESMR5 - Sagemcom T211 - Ziv E0058 ESMR5 - EasyMeter Q3D ### Connecting to the meter Connection can be done directly to the meter via a USB to serial connector, or through a serial to network proxy. It is also possible to connect to a [RFXtrx device](http://www.rfxcom.com/epages/78165469.sf/nl_NL/?ObjectPath=/Shops/78165469/Products/18103) with an integrated [P1 cables](http://www.rfxcom.com/epages/78165469.sf/nl_NL/?ObjectPath=/Shops/78165469/Products/19602). #### USB serial converters: - Cheap (Banggood/ebay) Generic PL2303 - [SOS Solutions](https://www.sossolutions.nl/slimme-meter-kabel) - [AliExpress](https://nl.aliexpress.com/item/32945187155.html) Docker users have to allow Docker access to the USB to serial converter by adding `--device /dev/ttyUSB21:/dev/ttyUSB21` to the run command: ```hass $ docker run --device /dev/ttyUSB0:/dev/ttyUSB0 -d --name="home-assistant" -v /home/USERNAME/hass:/config -v /etc/localtime:/etc/localtime:ro --net=host {{ site.installation.container }} ``` #### Serial to network proxies: - [ser2net](https://ser2net.sourceforge.net) - [Smart Meter bridge](https://github.com/legolasbo/smartmeterBridge) - [WIZnet WIZ110SR](https://www.wiznet.io/product-item/wiz110sr/) DIY solutions (ESP8266 based): - [esp8266_p1meter (daniel-jong)](https://github.com/daniel-jong/esp8266_p1meter) (parse on ESP8266 publish to MQTT) - [DSMR reader for ESPHome (mmakaay)](https://github.com/mmakaay/dsmr-reader-for-esphome) - [p1-esp8266 (DavyLandman)](https://github.com/DavyLandman/p1-esp8266) (turn ESP8266 into a serial forwarder) {% include integrations/config_flow.md %} Optional configuration example for ser2net 3.x.x: ```sh # Example /etc/ser2net.conf for proxying USB/serial connections to DSMRv4 smart meters 2001:raw:600:/dev/ttyUSB0:115200 NONE 1STOPBIT 8DATABITS XONXOFF LOCAL -RTSCTS ``` or ```sh # Example /etc/ser2net.conf for proxying USB/serial connections to DSMRv2.2 smart meters 2001:raw:600:/dev/ttyUSB0:9600 EVEN 1STOPBIT 7DATABITS XONXOFF LOCAL -RTSCTS ``` Optional configuration example for ser2net 4.x.x: ```sh # Example /etc/ser2net.yaml for proxying USB/serial connections to DSMRv4 smart meters connection: &con0096 accepter: tcp,2001 enable: on options: banner: *banner kickolduser: true telnet-brk-on-sync: true connector: serialdev, /dev/ttyUSB0, 115200n81,local ``` Optional configuration example for Smart Meter Bridge: ```yml serial_port: "/dev/ttyUSB0" dsmr_version: "4" server: port: 9988 ``` ### Technical overview DSMR is a standard to which Dutch smartmeters must comply. It specifies that the smartmeter must send out a 'telegram' every 10 seconds (every second for DSMR 5.0 devices) over a serial port. The contents of this telegram differ between version but they generally consist of lines with 'obis' (Object Identification System, a numerical ID for a value) followed with the value and unit. Smart meters in Belgium, Luxembourg and Sweden provided telegrams with largely the same contents. This module sets up an asynchronous reading loop using the `dsmr_parser` module which waits for a complete telegram, parser it and puts it on an async queue as a dictionary of `obis`/object mapping. The numeric value and unit of each value can be read from the objects attributes. Because the `obis` are know for each DSMR version the Entities for this integration are create during bootstrap. Another loop (DSMR class) is setup which reads the telegram queue, stores/caches the latest telegram and notifies the Entities that the telegram has been updated.