Files
fresh-home/esphome/furnace-room-multisensor.yaml
T
2025-11-21 09:42:43 -05:00

188 lines
4.2 KiB
YAML

# 3v3 en svp sun 34 35 32 33 25 26 27 14 12 gnd 13 sd2 sd3 gnd 5v
substitutions:
devicename: furnace-room-multisensor
entity_name: furnace_room_multisensor
friendly_name: Furnace Room MultiSensor
comment: Clever MultiSensor
board: nodemcuv2
static_ip: !secret furnace-room-multisensor-ip
moisture: D1
door: D2
one_wire: D5
ultrasonic_trigger: D6
ultrasonic_echo: D7
packages:
network: !include common/wifi.yaml
device_base: !include common/device_base.yaml
web_server: !include common/web_server.yaml
esphome:
name: ${devicename}
friendly_name: ${friendly_name}
name_add_mac_suffix: false
esp8266:
board: ${board}
# Enable logging
logger:
api: # Using settings from common/device_base.yaml
ota: # Using settings from common/device_base.yaml
one_wire:
- platform: gpio
pin: ${one_wire}
sensor:
- platform: ultrasonic
trigger_pin: ${ultrasonic_trigger}
echo_pin: ${ultrasonic_echo}
id: ultrasonic_source
update_interval: 60s
internal: True
filters:
- sliding_window_moving_average:
window_size: 5
send_every: 5
send_first_at: 1
- lambda: 'return round( x * 10.0) / 10.0;'
- clamp:
min_value: 0.0
max_value: 150.0
- platform: copy
source_id: ultrasonic_source
unit_of_measurement: "cm"
state_class: measurement
id: distance_from_bottom
name: "Salt Level in CM"
icon: mdi:arrow-collapse-up
disabled_by_default: true
#update_interval: 5s
filters:
- lambda: 'return (0.94 - x) * 100;'
- clamp:
min_value: 0.0
max_value: 150.0
- platform: copy
source_id: ultrasonic_source
unit_of_measurement: "cm"
state_class: measurement
id: distance_from_top
name: "Salt Level From Top in CM"
icon: mdi:arrow-collapse-down
disabled_by_default: true
#update_interval: 5s
filters:
- lambda: 'return x * 100;'
- round: 1
- clamp:
min_value: 0.0
max_value: 150.0
- platform: copy
source_id: distance_from_bottom
unit_of_measurement: "bags"
state_class: measurement
id: level_in_bags
name: "Salt Level in Bags"
icon: mdi:counter
disabled_by_default: true
#update_interval: 5s
filters:
- lambda: 'return x / 17.5;'
- round: 1
- clamp:
min_value: 0.0
max_value: 10.0
- platform: dallas_temp
address: 0x5a3c01d6078a2e28
name: "Probe 1"
id: probe1
device_class: "temperature"
update_interval: 5s
filters:
- lambda: return x * (9.0/5.0) + 32.0;
- clamp:
min_value: 0.0
max_value: 150.0
- round: 2
- or:
- throttle: 60s
- delta: 1.0
unit_of_measurement: "°F"
state_class: measurement
- platform: dallas_temp
address: 0x6b3c01d6077bbb28
name: "Probe 2"
id: probe2
device_class: "temperature"
update_interval: 5s
filters:
- clamp:
min_value: 0.0
max_value: 150.0
- or:
- throttle: 60s
- delta: 1.0
- lambda: return round( (x * (9.0/5.0) + 32.0) * 100.0) / 100.0;
unit_of_measurement: "°F"
state_class: measurement
- platform: dallas_temp
address: 0x2a3c01d6073e0728
name: "Probe 3"
id: probe3
device_class: "temperature"
update_interval: 5s
filters:
- lambda: return round( (x * (9.0/5.0) + 32.0) * 100.0) / 100.0;
- clamp:
min_value: 0.0
max_value: 150.0
- or:
- throttle: 60s
- delta: 1.0
accuracy_decimals: 2
unit_of_measurement: "°F"
state_class: measurement
- platform: template
name: "Delta"
id: hvac_delta
icon: mdi:thermometer-lines
lambda: |-
return id(probe1).state - id(probe2).state;
update_interval: 10s
unit_of_measurement: "°F"
state_class: measurement
device_class: ""
accuracy_decimals: 2
filters:
- or:
- throttle: 60s
- delta: 1.0
binary_sensor:
- platform: gpio
name: "Door"
device_class: door
pin:
number: ${door}
mode: INPUT_PULLUP
- platform: gpio
name: "Leak"
device_class: moisture
pin:
number: ${moisture}
mode: INPUT_PULLUP
inverted: true