| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- esphome:
- name: smartmeter
- esp8266:
- board: d1_mini
- # Enable logging
- logger:
- hardware_uart: UART0_SWAP
- # Enable Home Assistant API
- api:
- encryption:
- key: "nc/DDxg2mjIDat3SJd/7otH9KBA7te/egr9X8pGi1Io="
- ota:
- password: "37b5b12ce4c3bc1184eb6872a85b48d6"
- wifi:
- ssid: !secret wifi_ssid
- password: !secret wifi_password
- # Enable fallback hotspot (captive portal) in case wifi connection fails
- ap:
- ssid: "Smartmeter Fallback Hotspot"
- password: "UzI1eDQxpFcP"
- globals:
- - id: total_pulses
- type: int
- restore_value: false
- initial_value: '0'
- captive_portal:
-
- # SML Example configuration entry
- uart:
- id: uart_bus
- rx_pin: GPIO3
- baud_rate: 9600
- data_bits: 8
- parity: NONE
- stop_bits: 1
-
- # This is mainly here because the internal_filter of the pulse_counter on ESP8266
- # can only be set to a maximum of 13us, which is way too low. The Reedswitch
- # sometimes rapidly switches from ON to OFF, causing a lot of "ghost" pulses.
- # The delayed_on filter will make sure that the sensor stayed ON for at least
- # 100ms before increasing the counter.
- binary_sensor:
- - platform: gpio
- id: internal_pulse_counter
- pin: GPIO16
- filters:
- - invert:
- - delayed_on: 100ms
- on_press:
- then:
- - lambda: id(total_pulses) += 1;
- sml:
- id: mysml
- uart_id: uart_bus
- sensor:
- - platform: sml
- name: "Total energy"
- sml_id: mysml
- server_id: "0a01445a4700039f12bd"
- obis_code: "1-0:1.8.0"
- unit_of_measurement: kWh
- accuracy_decimals: 1
- device_class: energy
- state_class: total_increasing
- filters:
- - multiply: 0.0001
- - heartbeat: 10s
-
- - platform: sml
- name: "Power"
- sml_id: mysml
- server_id: "0a01445a4700039f12bd"
- obis_code: "1-0:16.7.0"
- unit_of_measurement: W
- accuracy_decimals: 1
- device_class: energy
- filters:
- - multiply: 0.01
- - heartbeat: 10s
- - platform: template
- name: "Gas used"
- device_class: gas
- unit_of_measurement: "m³"
- state_class: total_increasing
- icon: "mdi:fire"
- accuracy_decimals: 1
- lambda: |-
- return id(total_pulses) * 0.1;
-
- text_sensor:
- - platform: sml
- name: "Total energy text"
- sml_id: mysml
- server_id: "0a01445a4700039f12bd"
- obis_code: "1-0:1.8.0"
- format: uint
-
- - platform: sml
- name: "Power text"
- sml_id: mysml
- server_id: "0a01445a4700039f12bd"
- obis_code: "1-0:16.7.0"
- format: uint
|