yaml no checksum found error
Closed this issue · 1 comments
jonskoglund commented
I have some issues using the slimmelezer. I read that you're using a DSMR version 2.2+ smart meter. Same here. What yaml config for this ESPHome node are you using? Mine validates, but the log gives the same error over and over again. I have this:
---
substitutions:
device_name: slimmelezer
device_description: "DIY P1 module to read your smart meter"
#external_components:
# - source: github://michielappelman/dsmr
esphome:
name: ${device_name}
comment: "${device_description}"
platform: ESP8266
esp8266_restore_from_flash: true
board: d1_mini
name_add_mac_suffix: false
project:
name: zuidwijk.slimmelezer
version: "1.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'"
wifi:
networks:
- ssid: "!secret wifi_ssid"
password: !secret wifi_pwd
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: ${device_name}
captive_portal:
# Enable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
password: !secret homeass_api_pwd
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:
web_server:
port: 80
uart:
baud_rate: 9600
data_bits: 7
parity: EVEN
stop_bits: 1
rx_pin: D7
globals:
- id: has_key
type: bool
restore_value: yes
initial_value: "false"
- id: stored_decryption_key
type: char[32]
restore_value: yes
dsmr:
id: dsmr_instance
sensor:
- platform: dsmr
energy_delivered_tariff1:
name: "Energy Consumed Tariff 1"
state_class: total_increasing
energy_delivered_tariff2:
name: "Energy Consumed Tariff 2"
state_class: total_increasing
energy_returned_tariff1:
name: "Energy Produced Tariff 1"
state_class: total_increasing
energy_returned_tariff2:
name: "Energy Produced Tariff 2"
state_class: total_increasing
power_delivered:
name: "Power Consumed"
accuracy_decimals: 0
filters:
- multiply: 1000
power_returned:
name: "Power Produced"
accuracy_decimals: 0
filters:
- multiply: 1000
- platform: uptime
name: "Uptime"
- platform: wifi_signal
name: "Wi-Fi Signal"
update_interval: 60s
text_sensor:
- platform: dsmr
identification:
name: "DSMR Identification"
p1_version:
name: "DSMR Version"
electricity_tariff:
name: "Current Energy Tariff"
#gas_delivered_hack:
# name: "Gas Delivered"
- platform: wifi_info
ip_address:
name: "IP Address"
ssid:
name: "Wi-Fi SSID"
bssid:
name: "Wi-Fi BSSID"
- platform: version
name: "ESPHome Version"
hide_timestamp: true
When I check the logs I see this error message:
[E][dsmr:138]: !
^
No checksum found�
[E][dsmr:138]: !
^
Is it possible that you post your yaml for your smart meter so I can compare? Or maybe you can help me fix my issue.
jonskoglund commented
Removed the above yaml config completely from my ESPHome dashboard and flashed
SlimmeLezer firmware for DSMR 2.x with state_fix. It looks like everything is working as it should so I will close this issue.