mirror of
https://github.com/randybb/esphome-configs.git
synced 2026-01-02 11:37:28 +01:00
209 lines
5.1 KiB
YAML
209 lines
5.1 KiB
YAML
substitutions:
|
|
device: mains-power
|
|
name: Mains Power
|
|
name_1: Mains
|
|
comment: "Room: Mains Power Monitoring"
|
|
|
|
esphome:
|
|
name: mcu-${device}
|
|
comment: ${comment}
|
|
|
|
esp32:
|
|
board: m5stack-atom
|
|
framework:
|
|
type: esp-idf
|
|
version: 5.1.2
|
|
platform_version: 6.6.0
|
|
|
|
packages:
|
|
common: !include common/common.yaml
|
|
|
|
# PINOUTS: M5ATOM
|
|
# IR G12
|
|
# NEO G27
|
|
# BUTTON G39
|
|
# I2C0 SDA G26
|
|
# I2C0 SCL G32
|
|
# I2C1 SDA G25
|
|
# I2C1 SCL G21
|
|
# UART0 RX G3
|
|
# UART0 TX G1
|
|
# UART1 RX G23
|
|
# UART1 TX G33
|
|
# 1-WIRE G22
|
|
# NC G19
|
|
|
|
modbus:
|
|
uart_id: uart_modbus
|
|
|
|
uart:
|
|
- id: uart_modbus
|
|
rx_pin: 26
|
|
tx_pin: 32
|
|
baud_rate: 9600
|
|
stop_bits: 2
|
|
# debug:
|
|
|
|
sensor:
|
|
# - platform: template
|
|
# name: "${name_1} Total Daily Energy"
|
|
# id: mains_daily_energy
|
|
# lambda: |-
|
|
# return (id(mains_l1_total_daily_energy).state + id(mains_l3_total_daily_energy).state + id(mains_l3_total_daily_energy).state);
|
|
# update_interval: 60s
|
|
# L1
|
|
- platform: pzemac
|
|
address: 10
|
|
id: pzemac_l1
|
|
current:
|
|
name: "${name_1} L1 Current"
|
|
voltage:
|
|
name: "${name_1} L1 Voltage"
|
|
energy:
|
|
name: "${name_1} L1 Energy"
|
|
id: mains_l1_energy
|
|
power:
|
|
name: "${name_1} L1 Power"
|
|
id: mains_l1_power
|
|
frequency:
|
|
name: "${name_1} L1 Frequency"
|
|
power_factor:
|
|
name: "${name_1} L1 Power Factor"
|
|
update_interval: 20s
|
|
# - platform: total_daily_energy
|
|
# name: "${name_1} L1 Total Daily Energy"
|
|
# power_id: mains_l1_power
|
|
# id: mains_l1_total_daily_energy
|
|
# filters:
|
|
# - multiply: 0.001
|
|
# unit_of_measurement: kWh
|
|
# icon: mdi:counter
|
|
# - platform: integration
|
|
# name: "${name_1} L1 Energy Meter"
|
|
# sensor: mains_l1_power
|
|
# time_unit: h
|
|
# filters:
|
|
# - lambda: return x * (0.001) + 2282;
|
|
# unit_of_measurement: kWh
|
|
# icon: mdi:counter
|
|
# L2
|
|
- platform: pzemac
|
|
address: 11
|
|
id: pzemac_l2
|
|
current:
|
|
name: "${name_1} L2 Current"
|
|
voltage:
|
|
name: "${name_1} L2 Voltage"
|
|
energy:
|
|
name: "${name_1} L2 Energy"
|
|
id: mains_l2_energy
|
|
power:
|
|
name: "${name_1} L2 Power"
|
|
id: mains_l2_power
|
|
frequency:
|
|
name: "${name_1} L2 Frequency"
|
|
power_factor:
|
|
name: "${name_1} L2 Power Factor"
|
|
update_interval: 20s
|
|
# - platform: total_daily_energy
|
|
# name: "${name_1} L2 Total Daily Energy"
|
|
# id: mains_l2_total_daily_energy
|
|
# power_id: mains_l2_power
|
|
# filters:
|
|
# - multiply: 0.001
|
|
# unit_of_measurement: kWh
|
|
# icon: mdi:counter
|
|
# - platform: integration
|
|
# name: "${name_1} L2 Energy Meter"
|
|
# sensor: mains_l2_power
|
|
# time_unit: h
|
|
# filters:
|
|
# - lambda: return x * (0.001) + 2282;
|
|
# unit_of_measurement: kWh
|
|
# icon: mdi:counter
|
|
# L3
|
|
- platform: pzemac
|
|
address: 12
|
|
id: pzemac_l3
|
|
current:
|
|
name: "${name_1} L3 Current"
|
|
voltage:
|
|
name: "${name_1} L3 Voltage"
|
|
energy:
|
|
name: "${name_1} L3 Energy"
|
|
id: mains_l3_energy
|
|
power:
|
|
name: "${name_1} L3 Power"
|
|
id: mains_l3_power
|
|
frequency:
|
|
name: "${name_1} L3 Frequency"
|
|
power_factor:
|
|
name: "${name_1} L3 Power Factor"
|
|
update_interval: 20s
|
|
# - platform: total_daily_energy
|
|
# name: "${name_1} L3 Total Daily Energy"
|
|
# power_id: mains_l3_power
|
|
# id: mains_l3_total_daily_energy
|
|
# filters:
|
|
# - multiply: 0.001
|
|
# unit_of_measurement: kWh
|
|
# icon: mdi:counter
|
|
# - platform: integration
|
|
# name: "${name_1} L3 Energy Meter"
|
|
# sensor: mains_l3_power
|
|
# time_unit: h
|
|
# filters:
|
|
# - lambda: return x * (0.001) + 2282;
|
|
# unit_of_measurement: kWh
|
|
# icon: mdi:counter
|
|
# TOTAL: L1+L2+L3
|
|
- platform: template
|
|
name: "${name_1} Power"
|
|
id: "total_mains_power"
|
|
device_class: power
|
|
state_class: measurement
|
|
unit_of_measurement: W
|
|
accuracy_decimals: 1
|
|
lambda: |-
|
|
return id(mains_l1_power).state + id(mains_l2_power).state + id(mains_l3_power).state ;
|
|
# - platform: template
|
|
# name: "${name_1} Total Daily Energy"
|
|
# id: "mains_total_daily_energy"
|
|
# icon: mdi:counter
|
|
# device_class: energy
|
|
# # state_class: measurement
|
|
# state_class: total_increasing
|
|
# unit_of_measurement: kWh
|
|
# accuracy_decimals: 1
|
|
# lambda: |-
|
|
# return id(mains_l1_total_daily_energy).state + id(mains_l2_total_daily_energy).state + id(mains_l3_total_daily_energy).state ;
|
|
- platform: template
|
|
name: "${name_1} Energy"
|
|
icon: mdi:counter
|
|
device_class: energy
|
|
state_class: total_increasing
|
|
unit_of_measurement: kWh
|
|
accuracy_decimals: 1
|
|
filters:
|
|
- multiply: 0.001
|
|
lambda: |-
|
|
return id(mains_l1_energy).state + id(mains_l2_energy).state + id(mains_l3_energy).state;
|
|
|
|
button:
|
|
- platform: template
|
|
name: "${name_1} Energy Zero"
|
|
on_press:
|
|
- pzemac.reset_energy: pzemac_l1
|
|
- pzemac.reset_energy: pzemac_l2
|
|
- pzemac.reset_energy: pzemac_l3
|
|
|
|
time:
|
|
- platform: homeassistant
|
|
id: ha_time
|
|
timezone: Europe/Bratislava
|
|
on_time:
|
|
- cron: '0 0 0 * * *'
|
|
then:
|
|
- pzemac.reset_energy: pzemac_l1
|
|
- pzemac.reset_energy: pzemac_l2
|
|
- pzemac.reset_energy: pzemac_l3 |