Files
zorruno-homeassistant/esphome/esp-mainovenmonitor.yaml
2024-05-27 22:20:04 +12:00

171 lines
5.3 KiB
YAML

#############################################
#############################################
# OVEN POWER MONITOR
# Monitoring power of an oven (at the main
# switchboard) using a sonoff basic (esp8266)
# and a PZEM-004T. The relay also allows disabling
# of the oven with a contactor (eg on smoke detection)
# https://zorruno.com/2022/nodered-oven-notifications/
##############################################
#############################################
#############################################
# Variable Substitutions
#############################################
substitutions:
devicename: "esp-mainovenmonitor"
friendly_name: "esp-mainovenmonitor"
description_comment: "Oven power monitoring and disable, with a sonoff basic"
api_key: !secret esp-mainovenmonitor_api_key #unfortunately you can't use substitutions in secrets names
ota_pass: !secret esp-mainovenmonitor_ota_pass #unfortunately you can't use substitutions in secrets names
mqtt_topic: "esphome" #main topic for the mqtt server, call it what you like
#update_time: 30s #update time for for temp sensors etc
#############################################
# ESPHome
#############################################
esphome:
name: ${devicename}
comment: ${description_comment} #appears on the esphome page in HA
#############################################
# ESP Platform and Framework
# https://esphome.io/components/esp8266.html
# https://esphome.io/components/esp32.html
#############################################
esp8266:
#board: sonoff_basic
#board: esp01_1m
board: esp8285
framework:
version: latest #recommended, latest or dev
#esp32:
# board: nodemcu-32s
# framework:
# type: arduino
# #type: esp-idf #Suggested Use ESP-IDF Framework, or Plug Out the UART Cable Might Cause ESP32 Hang.
# version: recommended #recommended, latest or dev
#############################################
# ESPHome Logging Enable
# https://esphome.io/components/logger.html
#############################################
logger:
level: INFO #INFO Level suggested, or DEBUG for testing
baud_rate: 0 #set to 0 for no logging via UART, needed if you are using it for other serial things (eg PZEM)
#esp8266_store_log_strings_in_flash: false
#tx_buffer_size: 64
#############################################
# Enable the Home Assistant API
# https://esphome.io/components/api.html
#############################################
api:
encryption:
key: ${api_key}
#############################################
# Enable Over the Air Update Capability
# https://esphome.io/components/ota.html?highlight=ota
#############################################
ota:
safe_mode: true #Safe mode will detect boot loops
password: ${ota_pass}
#############################################
# Wifi Settings
# https://esphome.io/components/wifi.html
#############################################
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
#power_save_mode: LIGHT #https://esphome.io/components/wifi.html#wifi-power-save-mode
#manual_ip: #optional static IP address
#static_ip: 192.168.x.x
#gateway: 192.168.X.x
#subnet: 255.255.255.0
ap: #Details for fallback hotspot (captive portal) in case wifi connection fails https://esphome.io/components/wifi.html#access-point-mode
ssid: $devicename fallback AP
password: !secret fallback_ap_password
ap_timeout: 5min #default is 1min
captive_portal: # Fallback captive portal https://esphome.io/components/captive_portal.html
#############################################
# Web Portal for display and monitoring
#############################################
web_server:
port: 80
version: 2
include_internal: true
ota: false
# auth:
# username: !secret web_server_username
# password: !secret web_server_password
#############################################
# MQTT Monitoring
# https://esphome.io/components/mqtt.html?highlight=mqtt
# MUST also have api enabled if you enable MQTT
#############################################
mqtt:
broker: !secret mqtt_server
topic_prefix: ${mqtt_topic}/${devicename}
#username: !secret mqtt_username
#password: !secret mqtt_password
#############################################
#############################################
# MAIN SENSORS
#############################################
#############################################
# PEZEM4 Power Monitoring
# https://esphome.io/components/sensor/pzemac.html
#############################################
uart:
rx_pin: GPIO3
tx_pin: GPIO1
#tx_pin: RX
#rx_pin: TX
baud_rate: 9600
stop_bits: 1
modbus:
sensor:
- platform: pzemac
current:
name: "Main Oven Current"
voltage:
name: "Main Oven Voltage"
energy:
name: "Main Oven Energy"
power:
name: "Main Oven Power"
frequency:
name: "Main Oven Mains Frequency"
power_factor:
name: "Main Oven Power Factor"
update_interval: 10s
########################################
########################################
# Relay Output (on sonoff basic)
switch:
- platform: gpio
name: "Main Oven Disable"
pin: GPIO12
button:
- platform: restart
name: "Main Oven ESPHome Restart"
# LED Flashes on errors or warnings
# https://esphome.io/components/status_led.html
status_led:
pin:
number: GPIO13
inverted: true