esphome:
|
|
name: ${devicename}
|
|
friendly_name: ${friendly_name}
|
|
|
|
esp8266:
|
|
board: esp12e
|
|
# https://esphome.io/components/esp8266.html
|
|
# https://github.com/esphome/issues/issues/3263
|
|
# Stops relay from cycling when restarting or flashing
|
|
early_pin_init: false
|
|
|
|
logger:
|
|
baud_rate: 0 # (UART logging interferes with cse7766)
|
|
logs:
|
|
sensor: DEBUG # (Overide any global setting, to VERBOSE will spamming the cse7766 sensors)
|
|
|
|
uart:
|
|
rx_pin: RX
|
|
baud_rate: 4800
|
|
parity: EVEN
|
|
|
|
globals:
|
|
# Global boolean containing value if confirm is selected.
|
|
- id: confirm_restart
|
|
type: bool
|
|
restore_value: no
|
|
initial_value: 'false'
|
|
|
|
binary_sensor:
|
|
- platform: gpio
|
|
pin:
|
|
number: GPIO0
|
|
mode: INPUT_PULLUP
|
|
inverted: True
|
|
internal: true
|
|
id: the_button
|
|
on_press:
|
|
- switch.toggle: relay
|
|
|
|
- platform: status
|
|
name: Status
|
|
|
|
sensor:
|
|
# Wifi Signal
|
|
- <<: !include ../common/sensors/wifi-signal.yaml
|
|
|
|
# Uptime
|
|
- <<: !include ../common/sensors/uptime.yaml
|
|
|
|
# Energy monitoring
|
|
- platform: cse7766
|
|
current: # amperes
|
|
name: "Current"
|
|
accuracy_decimals: 2 # Default
|
|
unit_of_measurement: "A" # Default
|
|
device_class: "current" # Default
|
|
state_class: "measurement" # Default
|
|
filters:
|
|
- throttle_average: 15s
|
|
voltage:
|
|
name: "Voltage"
|
|
accuracy_decimals: 2 # Default
|
|
unit_of_measurement: "V" # Default
|
|
device_class: "voltage" # Default
|
|
state_class: "measurement" # Default
|
|
filters:
|
|
- throttle_average: 15s
|
|
power: # (active) power value of the sensor in watts
|
|
name: "Power"
|
|
id: my_power
|
|
accuracy_decimals: 2 # Default
|
|
unit_of_measurement: "W" # Default
|
|
device_class: "power" # Default
|
|
state_class: "measurement" # Default
|
|
filters:
|
|
- throttle_average: 15s
|
|
energy: # total (active) energy value of the sensor in Wh
|
|
name: "Energy"
|
|
accuracy_decimals: 3 # Default
|
|
unit_of_measurement: "kWh" # Default
|
|
device_class: energy # Default
|
|
state_class: total_increasing # Default
|
|
filters:
|
|
- throttle: 15s
|
|
apparent_power: # apparent power value of the sensor in VA - (only available with version 2024.3.0 or greater)
|
|
name: "Apparent Power"
|
|
accuracy_decimals: 1 # Default
|
|
unit_of_measurement: "VA" # Default
|
|
device_class: apparent_power # Default
|
|
state_class: measurement # Default
|
|
filters:
|
|
- throttle_average: 15s
|
|
power_factor: # efficiency - (only available with version 2024.3.0 or greater)
|
|
name: "Power Factor"
|
|
accuracy_decimals: 2
|
|
unit_of_measurement: "" # Default (unitless)
|
|
device_class: power_factor # Default
|
|
state_class: measurement # Default
|
|
filters:
|
|
- throttle_average: 15s
|
|
|
|
- platform: total_daily_energy # (Optional, not specific to cse7766)
|
|
name: "Daily Energy"
|
|
power_id: my_power
|
|
accuracy_decimals: 2
|
|
unit_of_measurement: "Wh" # Default
|
|
device_class: energy # Default
|
|
state_class: total_increasing # Default
|
|
|
|
switch:
|
|
- platform: gpio
|
|
name: "Relay"
|
|
pin: GPIO12
|
|
id: relay
|
|
# AWLAYS_OFF should probably be used if we're not using early_pin_init: false
|
|
# restore_mode: ALWAYS_OFF # Powering the relay may cause damage or instability when the programmer is supplying Vcc.
|
|
# It is assumed this switch is used for a piece of critical infrastructure.
|
|
# As such, we want it to remain ON turing reboots.
|
|
# Lastly- the only functionality exposed for interacting with this relay, is to quickly power cycle it.
|
|
restore_mode: ALWAYS_ON
|
|
# Hide from home assistant / mqtt.
|
|
internal: true
|
|
|
|
# Expose a "confirm restart" switch.
|
|
- platform: template
|
|
name: Confirm Restart
|
|
id: confirm_restart_sw
|
|
icon: mdi:alert
|
|
lambda: |-
|
|
return id(confirm_restart);
|
|
turn_on_action:
|
|
- lambda: |-
|
|
id(confirm_restart) = true;
|
|
turn_off_action:
|
|
- lambda: |-
|
|
id(confirm_restart) = false;
|
|
|
|
button:
|
|
# Restart Button
|
|
- <<: !include ../common/buttons/restart.yaml
|
|
|
|
- platform: template
|
|
name: Power Cycle
|
|
icon: mdi:restart-alert
|
|
on_press:
|
|
- if:
|
|
condition:
|
|
lambda: 'return id(confirm_restart);'
|
|
then:
|
|
- switch.turn_off: relay
|
|
- delay: 0.5s
|
|
- switch.turn_on: relay
|
|
# Turn off confirm switch after cycling relay
|
|
- switch.turn_off: confirm_restart_sw
|
|
|
|
status_led:
|
|
pin:
|
|
number: GPIO13
|
|
inverted: yes
|