The edl21
integration lets you read German EDL21 smart meters using SML from Home Assistant.
In order to connect to the smart meter, an infrared transceiver is required.
Compatible transceivers:
- DIY
- Weidmann Elektronik Schreib-/Lesekopf USB
- USB IR Lesekopf EHZ Lese-Schreib-Kopf Volkszähler Hichi Smartmeter
Tested smart meters:
- APATOR Norax 3D (enable InF Mode as described in manual to retrieve full data)
- DZG DWS76 (enable InF as described in manual to retrieve full data)
- Iskraemeco MT175 (ISKRA MT175-D2A51-V22-K0t)
- EMH metering eHZ Generation K (enable InF as described in manual to retrieve full data)
- efr SGM-C4 (enable InF as described in manual to retrieve full data)
Many community users need a lot quicker scan interval then the forced 60 seconds of the official edl21
integration. Electical power peaks will not be detected with the standard 60 seconds measurement interval.
Thanx to @jwefers who listened to the community and added an configuration option scan_interval_seconds
that allows to set the scan interval down to 1 second. The smart meter delivers values every second but you can set it to whatever you like. Take care of your disk space when using such small intervalls. Recommendation is 10 seconds what is default of this custom integration.
But configurable intervals are not allowed anymore in the official repo (more info here https://github.com/home-assistant/core/pull/82332/files) so this was the reason for this custom component.
To set it up, follow this procedure:
-
Copy the folder edl21 to your homeasstant/conf/custom_components/
-
Restart homeassistant
In case you alredy configured the edl21 platform you will get measurements every 10 seconds. If you are fine with 10 seconds interval you are finished now.
In case you want to set another scan interval you just have to add the parameter
scan_interval_seconds
to yourconfiguration.yaml
file:sensor: - platform: edl21 serial_port: /dev/ttyUSB0 scan_interval_seconds: 5
name
- The friendly name of the smart meter.
- required: false
- type: string
serial_port
- The device to communicate with. When using ser2net, use socket://host:port.
- required: true
- type: string
scan_interval_seconds
- The interval for measurements.
- required: true
- type: int
To enable InF mode there are different steps needed based on the meter type but most commonly you have to enter the PIN you received from your grid operator. Once you have it, enter it into the meter and switch to the InF menu where you can switch from InF=Off to InF=On. Entering this can be done using a flashlight or (if available) via the physical button on the meter.
For the efr SGM-C4 it is:
- flashing three times to enter pin mode
- entering pin using quicker flashes, wait for 3 seconds for next digit
- pin accepted
- flashing 7 times to get to InF=OFF
- 5-second flash to switch to InF=OFF
You will now get more readings like current Power, Voltage, and phase angle. Some meters don´t have this, in that case only an overall reading is provided.
To use this integration with a remote transceiver you could use ser2net.
Example ser2net.conf
configuration file:
2001:raw:0:/dev/ttyUSB0:9600 8DATABITS NONE 1STOPBIT