Hi,
I am owning an Slimmelezer+ , connected to the (brand new) ISKRA AM550 over P1 port , using the following slimmelezer.yaml:
substitutions:
device_name: slimmelezer
device_description: "DIY P1 module to read your smart meter"
esphome:
name: slimmelezer
name_add_mac_suffix: False
project:
name: zuidwijk.slimmelezer
version: "2.0"
on_boot:
then:
- if:
condition:
lambda: return id(has_key);
then:
- lambda: |-
std::string key(id(stored_decryption_key), 32);
id(dsmr_instance).set_decryption_key(key);
else:
- logger.log:
level: info
format: "Not using decryption key. If you need to set a key use Home Assistant service 'ESPHome: ${device_name}_set_dsmr_key'"
esp8266:
board: d1_mini
wifi:
networks:
- ssid: "*****"
password: "*****"
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${device_name}
# Powersaving for brownout due to 250mA restriction P1
output_power: 14dB
captive_portal:
# Enable logging
logger:
# Serial logging is disabled by setting the logger baud rate to 0.
# Otherwise the logger will occupy the hardware UART, making it unavailable
# for receiving smart meter data on pin D7 (GPIO13).
baud_rate: 0
level: VERY_VERBOSE
# logs:
# component: ERROR
# Enable Home Assistant API
api:
services:
service: set_dsmr_key
variables:
private_key: string
then:
- logger.log:
format: Setting private key %s. Set to empty string to disable
args: [private_key.c_str()]
- globals.set:
id: has_key
value: !lambda "return private_key.length() == 32;"
- lambda: |-
if (private_key.length() == 32)
private_key.copy(id(stored_decryption_key), 32);
id(dsmr_instance).set_decryption_key(private_key);
ota:
platform: esphome
password: ""
dashboard_import:
package_import_url: github://zuidwijk/dsmr/slimmelezer.yaml@main
import_full_config: true
web_server:
port: 80
globals:
- id: has_key
type: bool
restore_value: yes
initial_value: "false"
- id: stored_decryption_key
type: char[32]
restore_value: yes
uart:
baud_rate: 115200
rx_pin: GPIO13 #D7
rx_buffer_size: 2048
data_bits: 7
parity: NONE
stop_bits: 1
dsmr:
id: dsmr_instance
max_telegram_length: 1700
#request_pin: D5
#request_interval: 15s
receive_timeout: 2s
crc_check: False
# For Luxembourg users set here your decryption key
#decryption_key: !secret decryption_key // enable this when using decryption for Luxembourg; key like '00112233445566778899AABBCCDDEEFF'
debug:
update_interval: 5s # More frequent debug updates
sensor:
- platform: dsmr
energy_delivered_lux:
name: "Energy Consumed Luxembourg"
energy_delivered_tariff1:
name: "Energy Consumed Tariff 1"
energy_delivered_tariff2:
name: "Energy Consumed Tariff 2"
energy_returned_lux:
name: "Energy Produced Luxembourg"
energy_returned_tariff1:
name: "Energy Produced Tariff 1"
energy_returned_tariff2:
name: "Energy Produced Tariff 2"
power_delivered:
name: "Power Consumed"
accuracy_decimals: 3
power_returned:
name: "Power Produced"
accuracy_decimals: 3
electricity_failures:
name: "Electricity Failures"
icon: mdi:alert
electricity_long_failures:
name: "Long Electricity Failures"
icon: mdi:alert
voltage_l1:
name: "Voltage Phase 1"
voltage_l2:
name: "Voltage Phase 2"
voltage_l3:
name: "Voltage Phase 3"
current_l1:
name: "Current Phase 1"
current_l2:
name: "Current Phase 2"
current_l3:
name: "Current Phase 3"
power_delivered_l1:
name: "Power Consumed Phase 1"
accuracy_decimals: 3
power_delivered_l2:
name: "Power Consumed Phase 2"
accuracy_decimals: 3
power_delivered_l3:
name: "Power Consumed Phase 3"
accuracy_decimals: 3
power_returned_l1:
name: "Power Produced Phase 1"
accuracy_decimals: 3
power_returned_l2:
name: "Power Produced Phase 2"
accuracy_decimals: 3
power_returned_l3:
name: "Power Produced Phase 3"
accuracy_decimals: 3
gas_delivered:
name: "Gas Consumed"
gas_delivered_be:
name: "Gas Consumed Belgium"
- platform: uptime
name: "SlimmeLezer Uptime"
- platform: wifi_signal
name: "SlimmeLezer Wi-Fi Signal"
update_interval: 60s
text_sensor:
- platform: dsmr
identification:
name: "DSMR Identification"
p1_version:
name: "DSMR Version"
p1_version_be:
name: "DSMR Version Belgium"
# timestamp:
# name: "Timestamp"
- platform: wifi_info
ip_address:
name: "SlimmeLezer IP Address"
ssid:
name: "SlimmeLezer Wi-Fi SSID"
bssid:
name: "SlimmeLezer Wi-Fi BSSID"
- platform: version
name: "ESPHome Version"
hide_timestamp: true
after running “esphome logs slimmelezer.yaml” i get:
[23:08:39][D][debug:035]: ESPHome version 2025.2.2
[23:08:39][D][debug:039]: Free Heap Size: 7720 bytes
[23:08:39][D][debug:041]: Flash Chip: Size=4096kB Speed=40MHz Mode=DOUT
[23:08:39][D][debug:050]: Chip ID: 0x000AECEB
[23:08:39][D][debug:051]: SDK Version: 2.2.2-dev(38a443e)
[23:08:39][D][debug:052]: Core Version: 3.1.2
[23:08:39][D][debug:053]: Boot Version=31 Mode=1
[23:08:39][D][debug:054]: CPU Frequency: 80
[23:08:39][D][debug:055]: Flash Chip ID=0x0016405E
[23:08:39][D][debug:056]: Reset Reason: Software/System restart
[23:08:39][D][debug:057]: Reset Info: Software/System restart
[23:08:39][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=268339 (now=269339)
[23:08:40][VV][scheduler:225]: Running timeout 'heap' with interval=1000 last_execution=268992 (now=269996)
[23:08:42][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=271047 (now=272047)
[23:08:43][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=272339 (now=273342)
[23:08:44][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=273047 (now=274049)
[23:08:44][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=273228 (now=274228)
[23:08:45][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=274339 (now=275341)
[23:08:46][V][dsmr:142]: Header of telegram found
[23:08:46][V][dsmr:176]: Footer of telegram found
[23:08:46][V][dsmr:257]: Trying to parse telegram
[23:08:46][V][dsmr:118]: Stop reading data from P1 port
[23:08:46][E][dsmr:266]: /ISK9\2M551T-200
^
Invalid identification string
[23:08:46][V][dsmr:105]: Start reading data from P1 port
[23:08:46][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=275047 (now=276047)
[23:08:46][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=275228 (now=276228)
[23:08:46][VV][scheduler:225]: Running interval 'update' with interval=1000 last_execution=275339 (now=276339)
[23:08:47][VV][scheduler:225]: Running interval 'update' with interval=5000 last_execution=271916 (now=276916)
A have also tried 9600, also 8N1, but nothing works.
I hva also installed Home Assistant (docker) on my WinPC, added the slimmelezer device using local IP but no electricity data is shown, only diagnostic data:
# Diagnostic
ESPHome Version 2025.2.2
IP Address 192.168.*****
Uptime 104 s
Wi-Fi BSSID 10:A3:B8:******
Wi-Fi Signal -75 dBm
Wi-Fi SSID *****
Any advice on how to change the yaml file so that the whole package would be captured. It looks like the slimmelezer is sending dsmr data.
Thanks