| @ -0,0 +1,159 @@ | |||
| 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: false | |||
| # 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 | |||