mirror of
https://github.com/CeeWeasel/fresh-home.git
synced 2026-08-09 18:40:14 -04:00
why keep track any more?
This commit is contained in:
@@ -12,6 +12,7 @@ packages:
|
||||
network: !include common/wifi.yaml
|
||||
device_base: !include common/device_base.yaml
|
||||
bme680: !include common/bme680.yaml
|
||||
too_humid: !include common/binary_sensor/too_humid.yaml
|
||||
|
||||
esphome:
|
||||
name: ${devicename}
|
||||
|
||||
@@ -39,13 +39,13 @@ packages:
|
||||
- esphome-common/bluetooth-proxy.yaml
|
||||
|
||||
binary_sensor:
|
||||
- id: !remove bed_presence_status
|
||||
- id: !remove local_status_sensor
|
||||
|
||||
button:
|
||||
- id: !remove btn_restart
|
||||
- id: !remove local_restart_button
|
||||
|
||||
sensor:
|
||||
- id: !remove bed_presence_uptime
|
||||
- id: !remove local_uptime_sensor
|
||||
# See https://github.com/ElevatedSensors/sensor-configs/blob/main/bed-presence-mk1/sensor.yaml for a detailed
|
||||
# description of available substitutions.
|
||||
#
|
||||
|
||||
@@ -8,7 +8,7 @@ substitutions:
|
||||
static_ip: !secret circuit-sensor-ip
|
||||
|
||||
packages:
|
||||
network: !include common/waveshare_esp32_s3_eth.yaml
|
||||
network: !include common/waveshare_esp32_s3_wifi.yaml
|
||||
device_base: !include common/device_base.yaml
|
||||
web_server: !include common/web_server.yaml
|
||||
|
||||
|
||||
@@ -1,2 +1,4 @@
|
||||
platform: status
|
||||
name: "Status"
|
||||
binary_sensor:
|
||||
- platform: status
|
||||
name: "Status"
|
||||
id: local_status_sensor
|
||||
@@ -0,0 +1,35 @@
|
||||
number:
|
||||
- platform: template
|
||||
name: High Humidity Trigger
|
||||
id: val_humidity
|
||||
icon: mdi:gauge-full
|
||||
unit_of_measurement: '%'
|
||||
entity_category: config
|
||||
optimistic: True
|
||||
restore_value: True
|
||||
initial_value: 70
|
||||
min_value: 0
|
||||
max_value: 100
|
||||
step: 1.0
|
||||
mode: box
|
||||
|
||||
- platform: template
|
||||
name: Humidity Change Trigger
|
||||
id: val_derivative
|
||||
icon: mdi:gauge-full
|
||||
unit_of_measurement: ''
|
||||
entity_category: config
|
||||
optimistic: True
|
||||
restore_value: True
|
||||
initial_value: 2.0
|
||||
min_value: -10.0
|
||||
max_value: 10.0
|
||||
step: .01
|
||||
mode: box
|
||||
|
||||
binary_sensor:
|
||||
- platform: template
|
||||
name: Too Humid
|
||||
id: too_humid
|
||||
device_class: moisture
|
||||
lambda: return id(relative_humidity).state >= id(val_humidity).state or id(relative_humidity_change).state >= id(val_derivative).state;
|
||||
@@ -67,7 +67,10 @@ sensor:
|
||||
id: temperature
|
||||
internal: true
|
||||
sample_rate: lp
|
||||
unit_of_measurement: "°C"
|
||||
unit_of_measurement: "°F"
|
||||
# Converting to farenheit here, to avoid decimals when viewing the sensor in home assistant
|
||||
filters:
|
||||
- lambda: return round( (x * (9.0/5.0) + 32.0) * 100.0) / 100.0;
|
||||
web_server:
|
||||
sorting_weight: 11
|
||||
sorting_group_id: sorting_group_temperature_settings
|
||||
@@ -149,13 +152,18 @@ sensor:
|
||||
- platform: copy
|
||||
source_id: temperature
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°C"
|
||||
unit_of_measurement: "°F"
|
||||
name: "Air Temperature"
|
||||
id: air_temperature
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
- lambda: 'return round( x * 10.0) / 10.0;'
|
||||
web_server:
|
||||
sorting_weight: 12
|
||||
sorting_group_id: sorting_group_temperature_settings
|
||||
@@ -165,8 +173,9 @@ sensor:
|
||||
- platform: copy
|
||||
source_id: temperature
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°C/m"
|
||||
unit_of_measurement: "°F/m"
|
||||
name: "Air Temperature Change"
|
||||
id: air_temperature_change
|
||||
icon: mdi:chart-line
|
||||
disabled_by_default: true
|
||||
filters:
|
||||
@@ -182,7 +191,10 @@ sensor:
|
||||
float change = ( ( x - last_value ) / ( time - last_time ) ) *1000*5;
|
||||
last_value = x;
|
||||
last_time = time;
|
||||
return change;
|
||||
return round( change * 100.0) / 100.0;
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
@@ -196,11 +208,16 @@ sensor:
|
||||
device_class: humidity
|
||||
unit_of_measurement: "%"
|
||||
name: "Relative Humidity"
|
||||
id: relative_humidity
|
||||
filters:
|
||||
- round: 2
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_weight: 22
|
||||
sorting_group_id: sorting_group_humidity_settings
|
||||
@@ -210,6 +227,7 @@ sensor:
|
||||
device_class: humidity
|
||||
unit_of_measurement: "%/m"
|
||||
name: "Relative Humidity Change"
|
||||
id: relative_humidity_change
|
||||
icon: mdi:chart-line
|
||||
disabled_by_default: true
|
||||
filters:
|
||||
@@ -222,14 +240,18 @@ sensor:
|
||||
last_time = time;
|
||||
return {};
|
||||
}
|
||||
float change = ( ( x - last_value ) / ( time - last_time ) ) *1000*5;
|
||||
float change = ( ( x - last_value ) / ( time - last_time ) ) *1000*10;
|
||||
last_value = x;
|
||||
last_time = time;
|
||||
return change;
|
||||
- round: 2
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_weight: 23
|
||||
sorting_group_id: sorting_group_humidity_settings
|
||||
@@ -243,6 +265,10 @@ sensor:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_pressure_settings
|
||||
|
||||
@@ -255,6 +281,10 @@ sensor:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_pressure_settings
|
||||
|
||||
@@ -267,6 +297,10 @@ sensor:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
@@ -279,6 +313,10 @@ sensor:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
@@ -291,6 +329,10 @@ sensor:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
|
||||
@@ -0,0 +1,371 @@
|
||||
web_server:
|
||||
port: 80
|
||||
version: 3
|
||||
include_internal: true
|
||||
sorting_groups:
|
||||
- id: sorting_group_temperature_settings
|
||||
name: "Temperature Settings"
|
||||
sorting_weight: 10
|
||||
- id: sorting_group_humidity_settings
|
||||
name: "Humidity Settings"
|
||||
sorting_weight: 20
|
||||
- id: sorting_group_pressure_settings
|
||||
name: "Pressure Settings"
|
||||
sorting_weight: 30
|
||||
- id: sorting_group_quality_settings
|
||||
name: "Quality Settings"
|
||||
sorting_weight: 40
|
||||
|
||||
|
||||
bme68x_bsec2_i2c:
|
||||
i2c_id: ${i2c_id}
|
||||
model: bme680
|
||||
|
||||
# i2c address
|
||||
# -----------
|
||||
# Common values are:
|
||||
# - 0x76
|
||||
# - 0x77
|
||||
# Default: 0x76
|
||||
address: 0x77
|
||||
|
||||
# Temperature offset
|
||||
# ------------------
|
||||
# Useful if device is in enclosure and reads too high
|
||||
# Default: 0
|
||||
temperature_offset: 0
|
||||
|
||||
# Sample rate
|
||||
# -----------
|
||||
# This controls the sampling rate for gas-dependant sensors and will govern the interval
|
||||
# at which the sensor heater is operated.
|
||||
# By default this rate will also be used for temperature, pressure and humidity sensors
|
||||
# but these can be overridden on a per-sensor level if required.
|
||||
#
|
||||
# Available options:
|
||||
# - lp (low power - samples every 3 seconds)
|
||||
# - ulp (ultra low power - samples every 5 minutes)
|
||||
# Default: lp
|
||||
sample_rate: lp
|
||||
|
||||
# Interval at which to save BSEC state
|
||||
# ------------------------------------
|
||||
# Default: 6h
|
||||
state_save_interval: 6h
|
||||
|
||||
sensor:
|
||||
- platform: bme68x_bsec2
|
||||
temperature:
|
||||
# Temperature in °C
|
||||
id: temperature
|
||||
internal: true
|
||||
sample_rate: lp
|
||||
unit_of_measurement: "°F"
|
||||
# Converting to farenheit here, to avoid decimals when viewing the sensor in home assistant
|
||||
filters:
|
||||
- lambda: return round( (x * (9.0/5.0) + 32.0) * 100.0) / 100.0;
|
||||
web_server:
|
||||
sorting_weight: 11
|
||||
sorting_group_id: sorting_group_temperature_settings
|
||||
|
||||
humidity:
|
||||
# Relative humidity %
|
||||
id: humidity
|
||||
internal: true
|
||||
sample_rate: lp
|
||||
unit_of_measurement: "%"
|
||||
web_server:
|
||||
sorting_weight: 21
|
||||
sorting_group_id: sorting_group_humidity_settings
|
||||
|
||||
pressure:
|
||||
# Pressure in hPa
|
||||
id: pressure
|
||||
internal: true
|
||||
sample_rate: lp
|
||||
unit_of_measurement: "hPa"
|
||||
web_server:
|
||||
sorting_weight: 31
|
||||
sorting_group_id: sorting_group_pressure_settings
|
||||
|
||||
gas_resistance:
|
||||
# Gas resistance in Ω
|
||||
id: resistance
|
||||
internal: true
|
||||
unit_of_measurement: "Ω"
|
||||
disabled_by_default: True
|
||||
web_server:
|
||||
sorting_weight: 41
|
||||
sorting_group_id: sorting_group_pressure_settings
|
||||
|
||||
iaq:
|
||||
# Indoor air quality value
|
||||
id: iaq
|
||||
internal: true
|
||||
unit_of_measurement: "AQI"
|
||||
web_server:
|
||||
sorting_weight: 51
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
co2_equivalent:
|
||||
# CO2 equivalent estimate in ppm
|
||||
id: co2
|
||||
internal: true
|
||||
unit_of_measurement: "ppm"
|
||||
web_server:
|
||||
sorting_weight: 61
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
breath_voc_equivalent:
|
||||
# Volatile organic compounds equivalent estimate in ppm
|
||||
id: breath_voc
|
||||
internal: true
|
||||
unit_of_measurement: "ppm"
|
||||
web_server:
|
||||
sorting_weight: 71
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
iaq_accuracy:
|
||||
# IAQ accuracy as a numeric value of 0, 1, 2, 3
|
||||
name: "Numeric IAQ Accuracy"
|
||||
id: iaq_accuracy
|
||||
disabled_by_default: True
|
||||
web_server:
|
||||
sorting_weight: 81
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
filters:
|
||||
- median:
|
||||
window_size: 20
|
||||
send_every: 20
|
||||
send_first_at: 1
|
||||
|
||||
# These source sensors update every 3 seconds
|
||||
# An average with a window size of 10 and send_every of 10 means that an average is pushed out every 30 seconds
|
||||
|
||||
- platform: copy
|
||||
source_id: temperature
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°F"
|
||||
name: "Air Temperature"
|
||||
id: air_temperature
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
- lambda: 'return round( x * 10.0) / 10.0;'
|
||||
web_server:
|
||||
sorting_weight: 12
|
||||
sorting_group_id: sorting_group_temperature_settings
|
||||
|
||||
# These derivatives attempt to calculate the change per minute
|
||||
|
||||
- platform: copy
|
||||
source_id: temperature
|
||||
device_class: temperature
|
||||
unit_of_measurement: "°F/m"
|
||||
name: "Air Temperature Change"
|
||||
id: air_temperature_change
|
||||
icon: mdi:chart-line
|
||||
disabled_by_default: true
|
||||
filters:
|
||||
- lambda: |-
|
||||
static float last_value = 0;
|
||||
static float last_time = 0;
|
||||
float time = (float) millis();
|
||||
if (last_time == 0){
|
||||
last_value = x;
|
||||
last_time = time;
|
||||
return {};
|
||||
}
|
||||
float change = ( ( x - last_value ) / ( time - last_time ) ) *1000*5;
|
||||
last_value = x;
|
||||
last_time = time;
|
||||
return round( change * 100.0) / 100.0;
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
web_server:
|
||||
sorting_weight: 13
|
||||
sorting_group_id: sorting_group_temperature_settings
|
||||
|
||||
- platform: copy
|
||||
source_id: humidity
|
||||
device_class: humidity
|
||||
unit_of_measurement: "%"
|
||||
name: "Relative Humidity"
|
||||
id: relative_humidity
|
||||
filters:
|
||||
- round: 2
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_weight: 22
|
||||
sorting_group_id: sorting_group_humidity_settings
|
||||
|
||||
- platform: copy
|
||||
source_id: humidity
|
||||
device_class: humidity
|
||||
unit_of_measurement: "%/m"
|
||||
name: "Relative Humidity Change"
|
||||
id: relative_humidity_change
|
||||
icon: mdi:chart-line
|
||||
disabled_by_default: true
|
||||
filters:
|
||||
- lambda: |-
|
||||
static float last_value = 0;
|
||||
static float last_time = 0;
|
||||
float time = (float) millis();
|
||||
if (last_time == 0){
|
||||
last_value = x;
|
||||
last_time = time;
|
||||
return {};
|
||||
}
|
||||
float change = ( ( x - last_value ) / ( time - last_time ) ) *1000*10;
|
||||
last_value = x;
|
||||
last_time = time;
|
||||
return change;
|
||||
- round: 2
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_weight: 23
|
||||
sorting_group_id: sorting_group_humidity_settings
|
||||
|
||||
- platform: copy
|
||||
source_id: pressure
|
||||
unit_of_measurement: "hPa"
|
||||
name: "Pressure"
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_pressure_settings
|
||||
|
||||
- platform: copy
|
||||
source_id: resistance
|
||||
unit_of_measurement: "Ω"
|
||||
name: "Gas Resistance"
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_pressure_settings
|
||||
|
||||
- platform: copy
|
||||
source_id: iaq
|
||||
unit_of_measurement: "AQI"
|
||||
name: "Air Quality Index"
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
- platform: copy
|
||||
source_id: co2
|
||||
unit_of_measurement: "ppm"
|
||||
name: "CO2 Equivalent"
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
- platform: copy
|
||||
source_id: breath_voc
|
||||
unit_of_measurement: "ppm"
|
||||
name: "Breath VOC Equivalent"
|
||||
filters:
|
||||
- sliding_window_moving_average:
|
||||
window_size: 10
|
||||
send_every: 10
|
||||
send_first_at: 1
|
||||
- round: 2
|
||||
- or:
|
||||
- heartbeat: 60s
|
||||
- delta: 0.1
|
||||
web_server:
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
|
||||
text_sensor:
|
||||
- platform: template
|
||||
name: "IAQ Classification"
|
||||
icon: "mdi:checkbox-marked-circle-outline"
|
||||
web_server:
|
||||
sorting_weight: 60
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
lambda: |-
|
||||
if (int(id(iaq).state) <= 50) {
|
||||
return {"Excellent"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 100) {
|
||||
return {"Good"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 150) {
|
||||
return {"Lightly polluted"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 200) {
|
||||
return {"Moderately polluted"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 250) {
|
||||
return {"Heavily polluted"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 350) {
|
||||
return {"Severely polluted"};
|
||||
}
|
||||
else if (int(id(iaq).state) <= 500) {
|
||||
return {"Extremely polluted"};
|
||||
}
|
||||
else {
|
||||
return {"unknown"};
|
||||
}
|
||||
|
||||
- platform: bme68x_bsec2
|
||||
iaq_accuracy:
|
||||
# IAQ accuracy as a text value of Stabilizing, Uncertain, Calibrating, Calibrated
|
||||
name: "AQI Accuracy"
|
||||
web_server:
|
||||
sorting_weight: 61
|
||||
sorting_group_id: sorting_group_quality_settings
|
||||
@@ -1,3 +1,5 @@
|
||||
platform: restart
|
||||
name: "Restart"
|
||||
disabled_by_default: false
|
||||
button:
|
||||
- platform: restart
|
||||
name: "Restart"
|
||||
id: local_restart_button
|
||||
disabled_by_default: false
|
||||
@@ -23,14 +23,8 @@ ota:
|
||||
- platform: esphome
|
||||
password: !secret ota-password
|
||||
|
||||
binary_sensor:
|
||||
- <<: !include binary_sensor/status_sensor.config.yaml
|
||||
|
||||
button:
|
||||
- <<: !include button/restart_button.config.yaml
|
||||
|
||||
sensor:
|
||||
- <<: !include sensor/uptime_sensor.config.yaml
|
||||
|
||||
text_sensor:
|
||||
- <<: !include text_sensor/version_sensor.config.yaml
|
||||
packages:
|
||||
binary_sensor: !include binary_sensor/status_sensor.config.yaml
|
||||
button: !include button/restart_button.config.yaml
|
||||
sensor: !include sensor/uptime_sensor.config.yaml
|
||||
text_sensor: !include text_sensor/version_sensor.config.yaml
|
||||
|
||||
@@ -16,11 +16,10 @@ ethernet:
|
||||
|
||||
use_address: ${devicename}.local
|
||||
|
||||
manual_ip:
|
||||
static_ip: ${static_ip}
|
||||
gateway: !secret iot_default_gateway
|
||||
subnet: !secret iot_subnet_mask
|
||||
dns1: !secret iot_default_dns1
|
||||
# manual_ip:
|
||||
# static_ip: ${static_ip}
|
||||
# gateway: !secret iot_default_gateway
|
||||
# subnet: !secret iot_subnet_mask
|
||||
# dns1: !secret iot_default_dns1
|
||||
|
||||
text_sensor:
|
||||
- <<: !include text_sensor/ethernet_info.config.yaml
|
||||
text_sensor: !include text_sensor/ethernet_info.config.yaml
|
||||
@@ -0,0 +1,8 @@
|
||||
esp32:
|
||||
board: esp32-evb
|
||||
framework:
|
||||
#type: arduino
|
||||
type: ${framework}
|
||||
|
||||
packages:
|
||||
network: !include ../common/wifi.yaml
|
||||
@@ -1,3 +1,16 @@
|
||||
platform: wifi_signal
|
||||
name: RSSI
|
||||
update_interval: 60s
|
||||
# Example configuration entry with 2 sensors and filter
|
||||
sensor:
|
||||
- platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
|
||||
name: "RSSI"
|
||||
id: local_wifi_signal_db
|
||||
update_interval: 60s
|
||||
entity_category: "diagnostic"
|
||||
|
||||
- platform: copy # Reports the WiFi signal strength in %
|
||||
source_id: local_wifi_signal_db
|
||||
name: "WiFi Signal Strength"
|
||||
filters:
|
||||
- lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
|
||||
unit_of_measurement: "%"
|
||||
entity_category: "diagnostic"
|
||||
device_class: ""
|
||||
@@ -1,4 +1,6 @@
|
||||
platform: uptime
|
||||
name: Uptime
|
||||
disabled_by_default: true
|
||||
icon: mdi:timer-check
|
||||
sensor:
|
||||
- platform: uptime
|
||||
name: Uptime
|
||||
id: local_uptime_sensor
|
||||
disabled_by_default: true
|
||||
icon: mdi:timer-check
|
||||
@@ -1,10 +1,10 @@
|
||||
# Text sensors with general information.
|
||||
platform: ethernet_info
|
||||
ip_address:
|
||||
name: "IP Address"
|
||||
icon: mdi:ip
|
||||
disabled_by_default: true
|
||||
mac_address:
|
||||
name: MAC Address
|
||||
icon: mdi:network
|
||||
disabled_by_default: true
|
||||
text_sensor:
|
||||
- platform: ethernet_info
|
||||
ip_address:
|
||||
name: "IP Address"
|
||||
icon: mdi:ip
|
||||
disabled_by_default: true
|
||||
mac_address:
|
||||
name: MAC Address
|
||||
icon: mdi:network
|
||||
disabled_by_default: true
|
||||
@@ -1,5 +1,5 @@
|
||||
# Text sensors with general information.
|
||||
platform: ethernet_info
|
||||
ip_address:
|
||||
name: "IP Address"
|
||||
disabled_by_default: true
|
||||
text_sensor:
|
||||
- platform: ethernet_info
|
||||
ip_address:
|
||||
name: "IP Address"
|
||||
disabled_by_default: true
|
||||
@@ -1,4 +1,5 @@
|
||||
platform: ethernet_info
|
||||
mac_address:
|
||||
name: MAC Address
|
||||
disabled_by_default: true
|
||||
text_sensor:
|
||||
- platform: ethernet_info
|
||||
mac_address:
|
||||
name: MAC Address
|
||||
disabled_by_default: true
|
||||
@@ -1,6 +1,6 @@
|
||||
platform: version
|
||||
name: ESPHome Version
|
||||
# id: ${entity_name}_version
|
||||
hide_timestamp: true
|
||||
disabled_by_default: true
|
||||
icon: mdi:chip
|
||||
text_sensor:
|
||||
- platform: version
|
||||
name: ESPHome Version
|
||||
hide_timestamp: true
|
||||
disabled_by_default: true
|
||||
icon: mdi:chip
|
||||
|
||||
@@ -1,21 +1,21 @@
|
||||
# Text sensors with general information.
|
||||
platform: wifi_info
|
||||
ip_address:
|
||||
name: IP
|
||||
icon: mdi:ip
|
||||
update_interval: 60s
|
||||
disabled_by_default: true
|
||||
ssid:
|
||||
name: SSID
|
||||
icon: mdi:lan
|
||||
update_interval: 60s
|
||||
disabled_by_default: true
|
||||
bssid:
|
||||
name: BSSID
|
||||
disabled_by_default: true
|
||||
update_interval: 60s
|
||||
icon: mdi:router-network
|
||||
mac_address:
|
||||
name: Wifi MAC Address
|
||||
disabled_by_default: true
|
||||
icon: mdi:wifi-cog
|
||||
text_sensor:
|
||||
- platform: wifi_info
|
||||
ip_address:
|
||||
name: IP
|
||||
icon: mdi:ip
|
||||
update_interval: 60s
|
||||
disabled_by_default: true
|
||||
ssid:
|
||||
name: SSID
|
||||
icon: mdi:lan
|
||||
update_interval: 60s
|
||||
disabled_by_default: true
|
||||
bssid:
|
||||
name: BSSID
|
||||
disabled_by_default: true
|
||||
update_interval: 60s
|
||||
icon: mdi:router-network
|
||||
mac_address:
|
||||
name: Wifi MAC Address
|
||||
disabled_by_default: true
|
||||
icon: mdi:wifi-cog
|
||||
|
||||
@@ -38,6 +38,4 @@ ethernet:
|
||||
|
||||
packages:
|
||||
ble_proxy: !include ../common/ble_proxy.yaml
|
||||
|
||||
text_sensor:
|
||||
- <<: !include text_sensor/ethernet_info.config.yaml
|
||||
text_sensor: !include text_sensor/ethernet_info.config.yaml
|
||||
@@ -0,0 +1,50 @@
|
||||
esphome:
|
||||
name: ${devicename}
|
||||
platformio_options:
|
||||
board_build.arduino.memory_type: qio_opi
|
||||
board_build.flash_mode: dio
|
||||
upload_speed: 921600
|
||||
monitor_speed: 115200
|
||||
|
||||
esp32:
|
||||
board: ${board}
|
||||
flash_size: 16MB
|
||||
framework:
|
||||
type: ${framework}
|
||||
sdkconfig_options:
|
||||
CONFIG_ESP32_S3_BOX_BOARD: "y"
|
||||
|
||||
psram:
|
||||
mode: octal
|
||||
speed: 80MHz
|
||||
|
||||
packages:
|
||||
network: !include ../common/wifi.yaml
|
||||
|
||||
# captive_portal:
|
||||
|
||||
# wifi:
|
||||
# # Enable fast connect
|
||||
# fast_connect: true
|
||||
# min_auth_mode: WPA2
|
||||
# use_address: ${devicename}.local
|
||||
|
||||
# networks:
|
||||
# - ssid: !secret wifi_ssid
|
||||
# password: !secret wifi_password
|
||||
# hidden: true
|
||||
|
||||
# manual_ip:
|
||||
# static_ip: ${static_ip}
|
||||
# gateway: !secret iot_default_gateway
|
||||
# subnet: !secret iot_subnet_mask
|
||||
# dns1: !secret iot_default_dns1
|
||||
|
||||
# # Enable fallback hotspot (captive portal) in case wifi connection fails
|
||||
# ap:
|
||||
# ssid: "${friendly_name}"
|
||||
# password: !secret fallback_ap_password
|
||||
|
||||
# packages:
|
||||
# sensor: !include sensor/rssi_sensor.config.yaml
|
||||
# text_sensor: !include text_sensor/wifi_sensor.config.yaml
|
||||
@@ -23,8 +23,6 @@ wifi:
|
||||
ssid: "${friendly_name}"
|
||||
password: !secret fallback_ap_password
|
||||
|
||||
sensor:
|
||||
- <<: !include sensor/rssi_sensor.config.yaml
|
||||
|
||||
text_sensor:
|
||||
- <<: !include text_sensor/wifi_sensor.config.yaml
|
||||
packages:
|
||||
sensor: !include sensor/rssi_sensor.config.yaml
|
||||
text_sensor: !include text_sensor/wifi_sensor.config.yaml
|
||||
@@ -17,8 +17,6 @@ wifi:
|
||||
ssid: "${friendly_name}"
|
||||
password: !secret fallback_ap_password
|
||||
|
||||
sensor:
|
||||
- <<: !include sensor/rssi_sensor.config.yaml
|
||||
sensor: !include sensor/rssi_sensor.config.yaml
|
||||
|
||||
text_sensor:
|
||||
- <<: !include text_sensor/wifi_sensor.config.yaml
|
||||
text_sensor: !include text_sensor/wifi_sensor.config.yaml
|
||||
@@ -0,0 +1,138 @@
|
||||
substitutions:
|
||||
devicename: garage-cleversensor
|
||||
entity_name: garage_cleversensor
|
||||
friendly_name: Garage CleverSensor
|
||||
comment: Clever MultiSensor
|
||||
board: olimex_evb
|
||||
#framework: arduino
|
||||
framework: esp-idf
|
||||
network: wifi
|
||||
static_ip: !secret garage-cleversensor-ip
|
||||
i2c_id: bus_a
|
||||
|
||||
# For the ultrasonic sensors
|
||||
trigger1: 16
|
||||
echo1: 17
|
||||
trigger2: 19
|
||||
echo2: 20
|
||||
|
||||
# For the reed switches
|
||||
garage: 4
|
||||
outer: 5
|
||||
inner: 3
|
||||
|
||||
sda: 21
|
||||
scl: 22
|
||||
|
||||
# Infrared Sensor
|
||||
ir_tx: 12
|
||||
ir_rx: 39
|
||||
|
||||
# I2C Pins
|
||||
i2c_sda: 13
|
||||
i2c_scl: 16
|
||||
|
||||
# For the ethernet adapter
|
||||
ethernet_mdc_pin: 23
|
||||
ethernet_mdio_pin: 18
|
||||
ethernet_clk_pin: 0
|
||||
|
||||
# For the relays
|
||||
relay1: 32 # Garage
|
||||
relay2: 33
|
||||
|
||||
# Built-in button
|
||||
button1: 34
|
||||
|
||||
esphome:
|
||||
name: ${devicename}
|
||||
friendly_name: ${friendly_name}
|
||||
name_add_mac_suffix: false
|
||||
|
||||
packages:
|
||||
board: !include common/olimex_evb_wifi.yaml
|
||||
device_base: !include common/device_base.yaml
|
||||
web_server: !include common/web_server.yaml
|
||||
bme680: !include common/bme68x_bsec2_i2c.yaml
|
||||
|
||||
# remote_receiver:
|
||||
# pin: ${ir_rx}
|
||||
# dump: all
|
||||
|
||||
# remote_transmitter:
|
||||
# pin: ${ir_tx}
|
||||
# carrier_duty_percent: 50%
|
||||
|
||||
i2c:
|
||||
- id: ${i2c_id}
|
||||
sda: ${sda}
|
||||
scl: ${scl}
|
||||
|
||||
switch:
|
||||
- platform: gpio
|
||||
pin: ${relay1}
|
||||
name: "Relay1"
|
||||
|
||||
- platform: gpio
|
||||
pin: ${relay2}
|
||||
name: "Relay2"
|
||||
|
||||
sensor:
|
||||
- platform: ultrasonic
|
||||
name: Car Sensor East Side
|
||||
trigger_pin: ${trigger1}
|
||||
echo_pin: ${echo1}
|
||||
id: ultrasonic1
|
||||
timeout: 4.0m
|
||||
update_interval: 0.5s
|
||||
filters:
|
||||
- or:
|
||||
- throttle_average: 30s
|
||||
- delta: 0.5
|
||||
- sliding_window_moving_average:
|
||||
window_size: 5
|
||||
send_every: 5
|
||||
- delta: 0.0254
|
||||
|
||||
- platform: ultrasonic
|
||||
name: Car Sensor West Side
|
||||
trigger_pin: ${trigger2}
|
||||
echo_pin: ${echo2}
|
||||
id: ultrasonic2
|
||||
timeout: 4.0m
|
||||
update_interval: 0.5s
|
||||
filters:
|
||||
- or:
|
||||
- throttle_average: 30s
|
||||
- delta: 0.5
|
||||
- sliding_window_moving_average:
|
||||
window_size: 5
|
||||
send_every: 5
|
||||
- delta: 0.0254
|
||||
|
||||
|
||||
binary_sensor:
|
||||
- platform: gpio
|
||||
name: "ESP32-EVB button"
|
||||
pin: ${button1}
|
||||
|
||||
- platform: gpio
|
||||
name: "Garage Door"
|
||||
device_class: door
|
||||
pin:
|
||||
number: ${garage}
|
||||
mode: INPUT_PULLUP
|
||||
|
||||
- platform: gpio
|
||||
name: "Outer Door"
|
||||
device_class: door
|
||||
pin:
|
||||
number: ${outer}
|
||||
mode: INPUT_PULLUP
|
||||
|
||||
- platform: gpio
|
||||
name: "Inner Door"
|
||||
device_class: door
|
||||
pin:
|
||||
number: ${inner}
|
||||
mode: INPUT_PULLUP
|
||||
@@ -1,16 +1,17 @@
|
||||
substitutions:
|
||||
name: home-assistant-voice-097b44
|
||||
devicename: home-assistant-voice-097b44
|
||||
friendly_name: Home Assistant Voice 097b44
|
||||
comment: Clever Voice
|
||||
static_ip: !secret clints-home-assistant-voice
|
||||
packages:
|
||||
base: !include common/device_base.yaml
|
||||
network: !include common/wifi.yaml
|
||||
Nabu Casa.Home Assistant Voice PE: github://esphome/home-assistant-voice-pe/home-assistant-voice.yaml
|
||||
esphome:
|
||||
name: ${name}
|
||||
name_add_mac_suffix: false
|
||||
friendly_name: ${friendly_name}
|
||||
api:
|
||||
encryption:
|
||||
key: !secret api-encryption-key
|
||||
|
||||
wifi:
|
||||
ssid: !secret wifi_ssid
|
||||
password: !secret wifi_password
|
||||
button:
|
||||
- id: !remove local_restart_button
|
||||
@@ -12,6 +12,7 @@ packages:
|
||||
network: !include common/wifi.yaml
|
||||
device_base: !include common/device_base.yaml
|
||||
bme680: !include common/bme680.yaml
|
||||
too_humid: !include common/binary_sensor/too_humid.yaml
|
||||
|
||||
esphome:
|
||||
name: ${devicename}
|
||||
|
||||
Reference in New Issue
Block a user