Files
ESPHome-Energy-Meter/energy-meter.yaml
2024-07-18 16:53:48 +02:00

157 lines
3.1 KiB
YAML

esphome:
name: energy-meter
friendly_name: energy-meter
on_boot:
- priority: 600.0
then:
- output.turn_off: watchdog_state
- delay:
seconds: 30
- if:
condition:
lambda: "return !id(ota_running);"
then:
- output.turn_on: watchdog_state
esp8266:
board: esp01_1m
# Stop the device from sleeping while ota is running
globals:
- id: ota_running
type: bool
initial_value: "false"
restore_value: False
# Disable safe mode so the resets from
# the Attiny watchdog don't trigger safe mode
safe_mode:
disabled: true
# Enable logging
logger:
baud_rate: 0
level: INFO
mqtt:
discovery: true
# Set your MQTT broker IP here!
broker: 192.168.1.2
birth_message: # Empty - this prevents status reporting as unavailabile in HA
will_message: # Empty - this prevents status reporting as unavailabile in HA
on_message:
topic: energy-meter/sensor/current_power/state
then:
- delay:
seconds: 1
- if:
condition:
lambda: "return !id(ota_running);"
then:
- output.turn_on: watchdog_state
ota:
platform: esphome
password: !secret ota_password
on_begin:
then:
- globals.set:
id: ota_running
value: "true"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
domain: ".lan"
fast_connect: true
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "Energy-Meter Fallback Hotspot"
password: !secret hotspot_password
captive_portal:
web_server:
port: 80
uart:
id: uart_bus
rx_pin:
# RXD0 on ESP-01
number: 3
inverted: false
baud_rate: 9600
data_bits: 8
parity: NONE
stop_bits: 1
debug:
output:
# Communication with Attiny85 watchdog
- platform: gpio
id: watchdog_state
pin:
number: 1
sml:
id: mysml
uart_id: uart_bus
sensor:
- platform: sml
retain: False
name: "Total energy"
sml_id: mysml
obis_code: "1-0:1.8.0"
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001
- platform: sml
retain: False
name: "Total energy (Tarif 1)"
sml_id: mysml
obis_code: "1-0:1.8.1"
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001
- platform: sml
retain: False
name: "Total energy (Tarif 2)"
sml_id: mysml
obis_code: "1-0:1.8.2"
unit_of_measurement: kWh
accuracy_decimals: 4
device_class: energy
state_class: total_increasing
filters:
- multiply: 0.0001
- platform: sml
retain: False
name: "Current power"
sml_id: mysml
obis_code: "1-0:16.7.0"
unit_of_measurement: W
accuracy_decimals: 4
device_class: power
state_class: measurement
- platform: adc
pin: VCC
icon: "mdi:battery"
name: "Battery Voltage"
# The ESP's deep sleep is not being used, but adding it
# may prevent the device from showing as offline in Home Assistant
deep_sleep:
sleep_duration: 5min