laundry esphome migration

This commit is contained in:
root
2025-05-30 23:45:16 +12:00
parent b09fb0625b
commit 8bb951dc8f
37 changed files with 3277 additions and 1630 deletions

View File

@@ -12,33 +12,45 @@
#############################################
#############################################
# VARIABLE SUBSTITUTIONS
# Give the device a useful name & description here
# and change values accordingly.
# SPECIFIC DEVICE VARIABLE SUBSTITUTIONS
# If NOT using a secrets file, just replace these with the passwords etc (in quotes)
#############################################
substitutions:
devicename: "esp-occupancystair"
friendly_name: "Stair Occupancy and Underhouse Environment"
description_comment: "D1 Mini ESP32 with LD2410 mmWave for internal stairwell and environment sensors for under house"
api_key: !secret esp-occupancystair_api_key #unfortunately you can't use substitutions in secrets names
ota_pass: !secret esp-occupancystair_ota_pass #unfortunately you can't use substitutions in secrets names
wifi_ssid: !secret wifi_ssid
wifi_password: !secret wifi_password
fallback_ap_password: !secret fallback_ap_password
#Add these if we are giving it a static ip, or remove them in the Wifi section
#static_ip_address: !secret esp-occupancystair_static_ip
#static_ip_gateway: !secret esp-occupancystair_gateway
#static_ip_subnet: !secret esp-occupancystair_subnet
api_key: !secret esp-occupancystair_api_key # unfortunately you can't use substitutions inside secrets names
ota_pass: !secret esp-occupancystair_ota_pass # unfortunately you can't use substitutions inside secrets names
static_ip_address: !secret esp-occupancystair_ip
log_level: "INFO" # Define logging level: NONE, ERROR, WARN, INFO, DEBUG (Default), VERBOSE, VERY_VERBOSE
update_interval: "60s" # update time for for general sensors etc
room: "Outside" # Allows ESP device to be automatically linked to an 'Area' in Home Assistant.
mqtt_server: !secret mqtt_server
mqtt_username: !secret mqtt_username
mqtt_password: !secret mqtt_password
mqtt_topic: "esphome" #main topic for the mqtt server, call it what you like
#web_server_username: !secret web_server_username
#web_server_password: !secret web_server_password
update_time: 30s #update time for for general temp sensors etc
#############################################
# Included Common Packages
# https://esphome.io/components/esphome.html
#############################################
packages:
common_wifi: !include
file: common/network_common.yaml
vars:
local_static_ip_address: ${static_ip_address}
local_ota_pass: ${ota_pass}
common_api: !include
file: common/api_common.yaml
vars:
local_api_key: ${api_key}
common_webportal: !include
file: common/webportal_common.yaml
common_mqtt: !include
file: common/mqtt_common.yaml
common_sntp: !include
file: common/sntp_common.yaml
common_general_sensors: !include
file: common/sensors_common.yaml
vars:
local_friendly_name: ${friendly_name}
local_update_interval: ${update_interval}
#############################################
# ESPHome
@@ -49,6 +61,7 @@ esphome:
friendly_name: ${friendly_name}
comment: ${description_comment} #appears on the esphome page in HA
min_version: 2024.6.0
area: "${room}"
#on_boot: #Initial Setting, will remember previous values (if set)
#priority: -200
#then:
@@ -84,75 +97,6 @@ logger:
#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:
- platform: esphome
password: ${ota_pass}
#############################################
# Safe Mode
# Safe mode will detect boot loops
# https://esphome.io/components/safe_mode
#############################################
safe_mode:
#############################################
# Wifi Settings
# https://esphome.io/components/wifi.html
#
# Power Save mode (can reduce wifi reliability)
# NONE (least power saving, Default for ESP8266)
# LIGHT (Default for ESP32)
# HIGH (most power saving)
#############################################
wifi:
ssid: ${wifi_ssid}
password: ${wifi_password}
#power_save_mode: LIGHT #https://esphome.io/components/wifi.html#wifi-power-save-mode
#manual_ip: #optional static IP address
#static_ip: ${static_ip_address}
#gateway: ${static_ip_gateway}
#subnet: ${static_ip_subnet}
ap: #Details for fallback hotspot in case wifi connection fails https://esphome.io/components/wifi.html#access-point-mode
ssid: ${devicename} fallback AP
password: ${fallback_ap_password}
ap_timeout: 30min #Time until it brings up fallback AP. default is 1min
#############################################
# Web Portal for display and monitoring
# Turning this off is probably a good idea to save resources.
# https://esphome.io/components/web_server.html
#############################################
#web_server:
# port: 80
# auth:
# username: ${web_server_username} #probably a good idea to secure it
# password: ${web_server_password}
#############################################
# MQTT Monitoring
# https://esphome.io/components/mqtt.html?highlight=mqtt
# MUST also have api enabled if you enable MQTT
#############################################
mqtt:
broker: ${mqtt_server}
topic_prefix: ${mqtt_topic}/${devicename}
username: ${mqtt_username}
password: ${mqtt_password}
discovery: false # enable entity discovery (true is default)
#discover_ip: True # enable device discovery (true is default)
#############################################
# Bluetooth
# https://esphome.io/components/bluetooth_proxy.html
@@ -315,79 +259,78 @@ select:
sensor:
- platform: bme280_i2c
temperature:
name: ${friendly_name} BME280 Temp
name: "Temperature"
accuracy_decimals: 1
oversampling: 2x
pressure:
name: ${friendly_name} BME280 Pressure
name: "Pressure"
oversampling: 2x
humidity:
name: ${friendly_name} BME280 Humidity
name: "Humidity"
accuracy_decimals: 1
oversampling: 2x
address: 0x76
update_interval: ${update_time}
- platform: uptime
name: ${friendly_name} Uptime
update_interval: ${update_interval}
#The ld2410 sensor values
- platform: ld2410
light:
name: Light
name: "Light"
moving_distance:
name : Moving Distance
name: "Moving Distance"
still_distance:
name: Still Distance
name: "Still Distance"
moving_energy:
name: Move Energy
name: "Move Energy"
still_energy:
name: Still Energy
name: "Still Energy"
detection_distance:
name: Detection Distance
name: "Detection Distance"
g0:
move_energy:
name: g0 move energy
name: "g0 move energy"
still_energy:
name: g0 still energy
name: "g0 still energy"
g1:
move_energy:
name: g1 move energy
name: "g1 move energy"
still_energy:
name: g1 still energy
name: "g1 still energy"
g2:
move_energy:
name: g2 move energy
name: "g2 move energy"
still_energy:
name: g2 still energy
name: "g2 still energy"
g3:
move_energy:
name: g3 move energy
name: "g3 move energy"
still_energy:
name: g3 still energy
name: "g3 still energy"
g4:
move_energy:
name: g4 move energy
name: "g4 move energy"
still_energy:
name: g4 still energy
name: "g4 still energy"
g5:
move_energy:
name: g5 move energy
name: "g5 move energy"
still_energy:
name: g5 still energy
name: "g5 still energy"
g6:
move_energy:
name: g6 move energy
name: "g6 move energy"
still_energy:
name: g6 still energy
name: "g6 still energy"
g7:
move_energy:
name: g7 move energy
name: "g7 move energy"
still_energy:
name: g7 still energy
name: "g7 still energy"
g8:
move_energy:
name: g8 move energy
name: "g8 move energy"
still_energy:
name: g8 still energy
name: "g8 still energy"
# The ld2410 switch allows you to control your LD2410 Sensor.
#Bluetooth switch is only useful of you have a B or C model
@@ -402,13 +345,14 @@ switch:
binary_sensor:
- platform: ld2410
has_target:
name: ${friendly_name} Presence
name: "mmWave Presence"
has_moving_target:
name: ${friendly_name} Moving Target
name: "mmWave Moving Target"
has_still_target:
name: ${friendly_name} Still Target
name: "mmWave Still Target"
out_pin_presence_status:
name: ${friendly_name} LD2140 Out Pin Presence Status
name: "LD2140 Out Pin Presence Status"
entity_category: diagnostic
#Standard PIR Sensor
- platform: gpio
@@ -418,7 +362,7 @@ binary_sensor:
input: true
pullup: true
inverted: true
name: ${friendly_name} PIR Sensor
name: "PIR Sensor"
device_class: motion
#The ld2410 button allows resetting