diff --git a/automations/climate/hvac_fan_on.yaml b/automations/climate/hvac_fan_on.yaml
index f5ee0af..07bed07 100644
--- a/automations/climate/hvac_fan_on.yaml
+++ b/automations/climate/hvac_fan_on.yaml
@@ -1,102 +1,94 @@
alias: HVAC Fan On
id: automation_hvac_fan_on
-trigger:
+triggers:
# Has the fan been off for ten minutes?
- - platform: state
+ - trigger: state
entity_id: switch.thermostat_fan_mode
- to: 'off'
- for: '00:10:00'
+ to: "off"
+ for: "00:10:00"
# Did the temp just switch to just right?
- - platform: state
+ - trigger: state
entity_id: binary_sensor.temp_just_right
- to: 'on'
+ to: "on"
# Did it just become cooler inside or outside?
- - platform: state
+ - trigger: state
entity_id: binary_sensor.cooler_outside
- from: 'off'
- to: 'on'
+ from: "off"
+ to: "on"
# Did it just become warmer inside or outside?
- - platform: state
+ - trigger: state
entity_id: binary_sensor.warmer_outside
- from: 'off'
- to: 'on'
+ from: "off"
+ to: "on"
# Is it starting to get too warm inside?
- - platform: numeric_state
+ - trigger: numeric_state
entity_id: sensor.thermostat_temperature
above: 80
# Is it starting to get too cool inside?
- - platform: numeric_state
+ - trigger: numeric_state
entity_id: sensor.thermostat_temperature
below: 60
condition:
- condition: state
entity_id: input_boolean.allow_fan
- state: 'on'
+ state: "on"
# Are the internal sensors above 67?
# This is mainly to ensure those sensors are working
- condition: numeric_state
- entity_id: sensor.return_temperature
+ entity_id: sensor.hvac_multisensor_return
above: 50
- condition: numeric_state
- entity_id: sensor.hvac_temperature
+ entity_id: sensor.hvac_multisensor_supply
above: 50
# Is the fan currently off?
- condition: state
entity_id: switch.thermostat_fan_mode
- state: 'off'
+ state: "off"
# Is the system currently idle?
- condition: state
entity_id: sensor.hvac_action
- state: 'idle'
+ state: "idle"
# Is the home occupied?
- condition: state
entity_id: input_boolean.home_occupied
- state: 'on'
+ state: "on"
# Is the outside temp just right?
- condition: state
entity_id: binary_sensor.temp_just_right
- state: 'on'
+ state: "on"
# Is it getting too warm or too cold in the house?
- condition: or
conditions:
- condition: and
conditions:
- - condition: numeric_state
- entity_id: sensor.thermostat_temperature
- above: 75
- - condition: state
- entity_id: binary_sensor.cooler_outside
- state: 'on'
+ - condition: numeric_state
+ entity_id: sensor.thermostat_temperature
+ above: 75
+ - condition: state
+ entity_id: binary_sensor.cooler_outside
+ state: "on"
- condition: and
conditions:
- - condition: numeric_state
- entity_id: sensor.thermostat_temperature
- below: 65
- - condition: state
- entity_id: binary_sensor.warmer_outside
- state: 'on'
+ - condition: numeric_state
+ entity_id: sensor.thermostat_temperature
+ below: 65
+ - condition: state
+ entity_id: binary_sensor.warmer_outside
+ state: "on"
action:
- - service: logbook.log
- data_template:
- name: HVAC Fan On
- entity_id: automation.hvac_fan_on
- message: >
- Turned on HVAC fan
-
-
- service: homeassistant.turn_on
- entity_id: switch.thermostat_fan_mode
\ No newline at end of file
+ entity_id: switch.thermostat_fan_mode
diff --git a/automations/frigate/frigate_person_from_street.yaml b/automations/frigate/frigate_person_from_street.yaml
index 73b6c1e..c977230 100644
--- a/automations/frigate/frigate_person_from_street.yaml
+++ b/automations/frigate/frigate_person_from_street.yaml
@@ -24,8 +24,7 @@ variables:
before_zones:
- from_street
after_zones:
- - driveway_center
- - driveway_east_side
+ - driveway
- parking_spot
input_zones:
- from_street
diff --git a/automations/frigate/frigate_vehicle_notification.yaml b/automations/frigate/frigate_vehicle_notification.yaml
index be91da4..196669f 100644
--- a/automations/frigate/frigate_vehicle_notification.yaml
+++ b/automations/frigate/frigate_vehicle_notification.yaml
@@ -25,8 +25,7 @@ variables:
before_zones:
- from_street
after_zones:
- - driveway_center
- - driveway_east_side
+ - driveway
- parking_spot
input_zones:
- from_street
diff --git a/automations/rooms/furnace_room_lights.yaml b/automations/rooms/furnace_room_lights.yaml
index 897b87b..b02f9db 100644
--- a/automations/rooms/furnace_room_lights.yaml
+++ b/automations/rooms/furnace_room_lights.yaml
@@ -1,48 +1,56 @@
alias: Furnace Room Lights
id: automation_furnace_room_lights
+description: "Handles the lights in the furnace room"
mode: queued
-
-trigger:
- - platform: state
- id: door_open
- entity_id: binary_sensor.furnace_room_door, binary_sensor.furnace_room_door_contact
+triggers:
+ - id: door_open
+ entity_id: >-
+ binary_sensor.hvac_multisensor_door,
+ binary_sensor.furnace_room_door_contact
from: "off"
to: "on"
-
- - platform: state
- id: door_closed
- entity_id: binary_sensor.furnace_room_door, binary_sensor.furnace_room_door_contact
+ trigger: state
+ alias: >-
+ When one of the door sensors detect that the furnace room door has been
+ opened
+ - id: door_closed
+ entity_id: >-
+ binary_sensor.hvac_multisensor_door,
+ binary_sensor.furnace_room_door_contact
to: "off"
for: "00:10:00"
-
- - platform: state
- id: motion_off
+ trigger: state
+ alias: When the furnace room door has been closed for 10 minutes
+ - id: motion_off
entity_id: binary_sensor.furnace_room_motion_switch_home_security_motion_detection
to: "off"
for: "00:15:00"
-
-action:
+ trigger: state
+actions:
- choose:
- # - conditions:
- # - condition: trigger
- # id: "door_open"
- # - condition: state
- # entity_id: light.furnace_room
- # state: 'off'
- # sequence:
- # - service: light.turn_on
- # target:
- # entity_id: light.furnace_room
- - conditions:
- - condition: trigger
- id: "door_closed"
- - condition: state
- entity_id: binary_sensor.furnace_room_motion_switch_home_security_motion_detection
- state: "off"
- - condition: state
- entity_id: light.furnace_room
- state: 'on'
- sequence:
- - service: light.turn_off
- target:
- entity_id: light.furnace_room
\ No newline at end of file
+ - conditions:
+ - condition: trigger
+ id: door_open
+ - condition: state
+ entity_id: light.furnace_room
+ state: "off"
+ sequence:
+ - target:
+ entity_id: light.furnace_room
+ action: light.turn_on
+ data: {}
+ - conditions:
+ - condition: trigger
+ id: door_closed
+ - condition: state
+ entity_id: >-
+ binary_sensor.furnace_room_motion_switch_home_security_motion_detection
+ state: "off"
+ - condition: state
+ entity_id: light.furnace_room
+ state: "on"
+ sequence:
+ - target:
+ entity_id: light.furnace_room
+ action: light.turn_off
+ data: {}
diff --git a/automations/rooms/mancave_lights.yaml b/automations/rooms/mancave_lights.yaml
index dfec601..af09b30 100644
--- a/automations/rooms/mancave_lights.yaml
+++ b/automations/rooms/mancave_lights.yaml
@@ -2,21 +2,21 @@ alias: Mancave Lights
id: automation_mancave_lights
mode: queued
-trigger:
- - platform: state
+triggers:
+ - trigger: state
id: door_open
entity_id: binary_sensor.mancave_door_contact
from: "off"
to: "on"
- - platform: state
+ - trigger: state
id: door_closed
entity_id: binary_sensor.mancave_door_contact
from: "on"
to: "off"
for: "00:10:00"
- - platform: state
+ - trigger: state
id: motion_off
entity_id: binary_sensor.mancave_motion_switch_home_security_motion_detection
to: "off"
diff --git a/components/alerts/hvac_delta_sensors_unavailable.yaml b/components/alerts/hvac_delta_sensors_unavailable.yaml
index f7726ab..d22f254 100644
--- a/components/alerts/hvac_delta_sensors_unavailable.yaml
+++ b/components/alerts/hvac_delta_sensors_unavailable.yaml
@@ -1,6 +1,6 @@
# name: "HVAC Delta Sensors Unavailable"
# done_message: "HVAC delta sensors available"
-# entity_id: binary_sensor.hvac_delta_sensors_unavailable
+# entity_id: binary_sensor.hvac_multisensor_delta_sensors_unavailable
# state: 'on'
# repeat:
# - 15
diff --git a/components/alerts/hvac_delta_too_small_for_too_long.yaml b/components/alerts/hvac_delta_too_small_for_too_long.yaml
index e233534..1b33749 100644
--- a/components/alerts/hvac_delta_too_small_for_too_long.yaml
+++ b/components/alerts/hvac_delta_too_small_for_too_long.yaml
@@ -1,7 +1,7 @@
# name: "The AC is probably broken again!"
-# message: "It is {{states('sensor.front_porch_temperature')}} outside and {{state_attr('climate.thermostat','current_temperature')}} inside. The thermostat is set to {{state_attr('climate.thermostat','target_temp_low')}} and the delta is {{states('sensor.hvac_delta')}}"
-# done_message: "AC is now {{states('sensor.hvac_delta')}}"
-# entity_id: binary_sensor.hvac_delta_too_small_for_too_long
+# message: "It is {{states('sensor.front_porch_temperature')}} outside and {{state_attr('climate.thermostat','current_temperature')}} inside. The thermostat is set to {{state_attr('climate.thermostat','target_temp_low')}} and the delta is {{states('sensor.hvac_multisensor_delta')}}"
+# done_message: "AC is now {{states('sensor.hvac_multisensor_delta')}}"
+# entity_id: binary_sensor.hvac_multisensor_delta_too_small_for_too_long
# state: "on"
# repeat:
# - 1
diff --git a/components/binary_sensors/template.yaml b/components/binary_sensors/template.yaml
index cb104ac..757f363 100644
--- a/components/binary_sensors/template.yaml
+++ b/components/binary_sensors/template.yaml
@@ -299,9 +299,9 @@ sensors:
{% if is_state('binary_sensor.hvac_delta_sensors_unavailable','on') %}
{{'false'}}
{% else %}
- {% if is_state_attr('climate.thermostat', 'hvac_action', 'cooling') and states('sensor.hvac_delta') | int(default=0) >= -5 %}
+ {% if is_state_attr('climate.thermostat', 'hvac_action', 'cooling') and states('sensor.hvac_multisensor_delta') | int(default=0) >= -5 %}
{{'true'}}
- {% elif is_state_attr('climate.thermostat', 'hvac_action', 'heating') and states('sensor.hvac_delta') | int(default=0) <= 5 %}
+ {% elif is_state_attr('climate.thermostat', 'hvac_action', 'heating') and states('sensor.hvac_multisensor_delta') | int(default=0) <= 5 %}
{{'true'}}
{% else %}
{{'false'}}
@@ -329,15 +329,15 @@ sensors:
unique_id: templatebinarysensor.hvac_delta_temperature_good
friendly_name: HVAC Delta Temperature Good
value_template: >-
- {% if states("sensor.hvac_temperature") | string != "unknown" and states("sensor.return_temperature") | string != "unknown" %}
+ {% if states("sensor.hvac_multisensor_supply") | string != "unknown" and states("sensor.hvac_multisensor_return") | string != "unknown" %}
{% if states('sensor.hvac_action') | string == 'cooling' and as_timestamp(now())-(as_timestamp(states.sensor.hvac_action.last_changed))|round(1) > 300 %}
- {% if states('sensor.hvac_delta') | float(default=0) < -10 %}
+ {% if states('sensor.hvac_multisensor_delta') | float(default=0) < -10 %}
{{ 'true' }}
{% else %}
{{ 'false' }}
{% endif %}
{% elif states('sensor.hvac_action') | string == 'heating' and as_timestamp(now())-(as_timestamp(states.sensor.hvac_action.last_changed))|round(1) > 300 %}
- {% if states('sensor.hvac_delta') | float(default=0) > 10 %}
+ {% if states('sensor.hvac_multisensor_delta') | float(default=0) > 10 %}
{{ 'true' }}
{% else %}
{{ 'false' }}
@@ -352,7 +352,7 @@ sensors:
delay_on:
minutes: 5
value_template: >-
- {% if states("sensor.hvac_temperature") | string == 'unknown' or states("sensor.return_temperature") | string == 'unknown' or states("sensor.hvac_temperature") | string == 'unavailable' or states("sensor.return_temperature") | string == 'unavailable' %}
+ {% if states("sensor.hvac_multisensor_supply") | string == 'unknown' or states("sensor.hvac_multisensor_return") | string == 'unknown' or states("sensor.hvac_multisensor_supply") | string == 'unavailable' or states("sensor.hvac_multisensor_return") | string == 'unavailable' %}
{{ 'true' }}
{% else %}
{{ 'false' }}
@@ -707,7 +707,7 @@ sensors:
need_salt:
unique_id: templatebinarysensor.need_salt
friendly_name: Need Salt
- value_template: "{{ is_state('binary_sensor.furnace_room_multisensor_status', 'on') and is_state('sensor.salt_level_in_bags','0') }}"
+ value_template: "{{ is_state('binary_sensor.hvac_multisensor_status', 'on') and is_state('sensor.hvac_multisensor_salt_level_in_bags','0') }}"
icon_template: mdi:shaker-outline
delay_on:
seconds: 900
diff --git a/components/packages/databases.yaml b/components/packages/databases.yaml
index 11d37a7..7608d84 100644
--- a/components/packages/databases.yaml
+++ b/components/packages/databases.yaml
@@ -191,7 +191,7 @@ logbook:
- sensor.time
- sensor.time_date
- sensor.time_utc
- - sensor.hvac_delta
+ - sensor.hvac_multisensor_delta
- sensor.master_bed_person_count
- automation.cam14_ptz_move
- automation.cycle_back_yard_camera
diff --git a/components/packages/hvac_stats.yaml b/components/packages/hvac_stats.yaml
index 1bd2f87..c129825 100644
--- a/components/packages/hvac_stats.yaml
+++ b/components/packages/hvac_stats.yaml
@@ -70,7 +70,7 @@ sensor:
- sensor.mancave_thermostat_temperature
- sensor.blue_room_thermostat_temperature
- sensor.great_room_multisensor_air_temperature
- - sensor.furnace_room_temperature
+ - sensor.furnace_room_thermostat_temperature
- platform: min_max
name: Downstairs Min Temperature
diff --git a/esphome/archive/hvac-multisensor-425f4f.yaml b/esphome/archive/hvac-multisensor-425f4f.yaml
deleted file mode 100644
index 1f09a31..0000000
--- a/esphome/archive/hvac-multisensor-425f4f.yaml
+++ /dev/null
@@ -1,212 +0,0 @@
-# 3v3 en svp sun 34 35 32 33 25 26 27 14 12 gnd 13 sd2 sd3 gnd 5v
-substitutions:
- devicename: hvac-multisensor-425f4f
- entity_name: hvac_multisensor
- friendly_name: HVAC MultiSensor
- comment: Clever MultiSensor
- platform: ESP32
- board: wemos_d1_mini32
- static_ip: !secret hvac-multisensor-ip
-
- sda_pin: GPIO21
- scl_pin: GPIO22
- door_pin: GPIO19
- one_wire_pin: GPIO14
- trigger_pin: GPIO04
- echo_pin: GPIO12
-
- #mdc_pin: GPIO23
- #mdio_pin: GPIO18
- #clk_mode: GPIO17_OUT
- #power_pin: GPIO5
-
-packages:
- #wifi: !include common/wifi_no_power_save.yaml
- ethernet: !include common/ethernet.yaml
- device_base: !include common/device_base.yaml
- ble_proxy: !include common/ble_proxy.yaml
-
-esphome:
- name: ${devicename}
- friendly_name: ${friendly_name}
- name_add_mac_suffix: false
-
-esp32:
- board: ${board}
- framework:
- type: esp-idf
-
-web_server:
- port: 80
- version: 3
- include_internal: true
-
-# Enable logging
-logger:
-
-api: # Using settings from common/device_base.yaml
-
-ota: # Using settings from common/device_base.yaml
-
-esp32_ble_tracker:
-
-# globals:
-# - id: screen_power
-# type: bool
-# restore_value: yes
-# initial_value: 'true'
-
-# font:
-# - file: 'CascadiaMonoPL.ttf'
-# id: font1
-# size: 17
-
-# one_wire:
-# - platform: gpio
-# pin: ${one_wire_pin}
-
-# i2c:
-# sda: ${sda_pin}
-# scl: ${scl_pin}
-# frequency: 800kHz
-
-# display:
-# - platform: ssd1306_i2c
-# id: oled
-# model: "SSD1306 128x64"
-# #reset_pin: GPIO14 #D0
-# address: 0x3C
-# lambda: |-
-# it.print(0, 0, id(font1), "Delta:");
-# it.printf(128, 0, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_delta).state);
-# it.print(0, 16, id(font1), "Supply:");
-# it.printf(128, 16, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_supply).state);
-# it.print(0, 32, id(font1), "Return:");
-# it.printf(128, 32, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_return).state);
-# it.print(0, 48, id(font1), "Ambient:");
-# it.printf(128, 48, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(ambient).state);
-
-# sensor:
-# - platform: dallas_temp
-# address: 0xB33C01B607798528
-# name: "Return Temperature"
-# id: hvac_return
-# update_interval: 10s
-# filters:
-# - lambda: return x * (9.0/5.0) + 32.0;
-# unit_of_measurement: "°F"
-# state_class: measurement
-
-# - platform: dallas_temp
-# address: 0x0F3C01B6070C1328
-# name: "Supply Temperature"
-# id: hvac_supply
-# update_interval: 10s
-# filters:
-# - lambda: return x * (9.0/5.0) + 32.0;
-# unit_of_measurement: "°F"
-# state_class: measurement
-
-# - platform: dallas_temp
-# address: 0xFA3C01B607005B28
-# name: "Ambient Temperature"
-# id: ambient
-# update_interval: 10s
-# filters:
-# - lambda: return x * (9.0/5.0) + 32.0;
-# unit_of_measurement: "°F"
-# state_class: measurement
-
-# - platform: template
-# name: "Delta Temperature"
-# id: hvac_delta
-# lambda: |-
-# return (id(hvac_supply).state - id(hvac_return).state);
-# update_interval: 10s
-# unit_of_measurement: "°F"
-# state_class: measurement
-# filters:
-# - or:
-# - throttle: 60s
-# - delta: 1.0
-
-# - platform: ultrasonic
-# trigger_pin: ${trigger_pin}
-# echo_pin: ${echo_pin}
-# id: ultrasonic_source
-# #update_interval: 5s
-# internal: True
-# filters:
-# - sliding_window_moving_average:
-# window_size: 5
-# send_every: 5
-# send_first_at: 1
-# on_value:
-# then:
-# - sensor.template.publish:
-# id: distance_from_bottom
-# state: !lambda 'return id(ultrasonic_source).state;'
-
-# - sensor.template.publish:
-# id: distance_from_top
-# state: !lambda 'return id(ultrasonic_source).state;'
-
-# - platform: template
-# unit_of_measurement: "cm"
-# state_class: measurement
-# id: distance_from_bottom
-# name: "Salt Level in CM"
-# #update_interval: 5s
-# filters:
-# - lambda: 'return (0.94 - (id(ultrasonic_source).state)) * 100;'
-# on_value:
-# then:
-# - sensor.template.publish:
-# id: level_in_bags
-# state: !lambda 'return id(distance_from_bottom).state;'
-
-# - platform: template
-# unit_of_measurement: "cm"
-# state_class: measurement
-# id: distance_from_top
-# name: "Salt Level From Top in CM"
-# #update_interval: 5s
-# filters:
-# - lambda: 'return (id(ultrasonic_source).state) * 100;'
-
-# - platform: template
-# unit_of_measurement: "bags"
-# state_class: measurement
-# id: level_in_bags
-# name: "Salt Level in Bags"
-# #update_interval: 5s
-# filters:
-# - lambda: 'return (id(distance_from_bottom).state) / 17.5;'
-
-# binary_sensor:
-# - platform: gpio
-# name: "Door"
-# device_class: door
-# pin:
-# number: ${door_pin}
-# mode: INPUT_PULLUP
-
-# switch:
-# - platform: template
-# id: display_switch
-# name: "Display"
-# lambda: |-
-# if (id(screen_power)) {
-# id(oled).turn_on();
-# } else {
-# id(oled).turn_off();
-# }
-# return id(screen_power);
-# turn_on_action:
-# - lambda: |-
-# id(screen_power) = true;
-# // id(oled).turn_on();
-# turn_off_action:
-# - lambda: |-
-# id(screen_power) = false;
-# // id(oled).turn_off();
diff --git a/esphome/archive/hvac-multisensor.yaml b/esphome/archive/hvac-multisensor.yaml
index 40a4185..9bda855 100644
--- a/esphome/archive/hvac-multisensor.yaml
+++ b/esphome/archive/hvac-multisensor.yaml
@@ -11,11 +11,10 @@ substitutions:
sda_pin: GPIO21
scl_pin: GPIO22
door_pin: GPIO19
-
-
one_wire_pin: GPIO14
trigger_pin: GPIO04
- echo_pin: GPIO12
+ echo_pin: GPIO13
+
#mdc_pin: GPIO23
#mdio_pin: GPIO18
#clk_mode: GPIO17_OUT
@@ -30,14 +29,35 @@ packages:
esphome:
name: ${devicename}
friendly_name: ${friendly_name}
+ name_add_mac_suffix: false
+ on_boot:
+ - priority: -100
+ then:
+ - lambda: |-
+ if (id(oled)) {
+ id(oled_enabled) = true;
+ } else {
+ id(oled_enabled) = false;
+ }
esp32:
board: ${board}
framework:
type: esp-idf
+# web_server:
+# port: 80
+# version: 3
+# include_internal: true
+
# Enable logging
logger:
+ level: DEBUG
+ logs:
+ sensor: INFO
+ component: INFO
+ ultrasonic: INFO
+ ethernet: DEBUG
api: # Using settings from common/device_base.yaml
@@ -46,6 +66,11 @@ ota: # Using settings from common/device_base.yaml
esp32_ble_tracker:
globals:
+ - id: oled_enabled
+ type: bool
+ restore_value: yes
+ initial_value: 'false'
+
- id: screen_power
type: bool
restore_value: yes
@@ -65,27 +90,12 @@ i2c:
scl: ${scl_pin}
frequency: 800kHz
-display:
- - platform: ssd1306_i2c
- id: oled
- model: "SSD1306 128x64"
- #reset_pin: GPIO14 #D0
- address: 0x3C
- lambda: |-
- it.print(0, 0, id(font1), "Delta:");
- it.printf(128, 0, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_delta).state);
- it.print(0, 16, id(font1), "Supply:");
- it.printf(128, 16, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_supply).state);
- it.print(0, 32, id(font1), "Return:");
- it.printf(128, 32, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_return).state);
- it.print(0, 48, id(font1), "Ambient:");
- it.printf(128, 48, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(ambient).state);
-
sensor:
- platform: dallas_temp
address: 0xB33C01B607798528
- name: "Return Temperature"
+ name: "Return"
id: hvac_return
+ icon: mdi:home-thermometer-outline
update_interval: 10s
filters:
- lambda: return x * (9.0/5.0) + 32.0;
@@ -94,8 +104,9 @@ sensor:
- platform: dallas_temp
address: 0x0F3C01B6070C1328
- name: "Supply Temperature"
+ name: "Supply"
id: hvac_supply
+ icon: mdi:thermostat
update_interval: 10s
filters:
- lambda: return x * (9.0/5.0) + 32.0;
@@ -104,8 +115,9 @@ sensor:
- platform: dallas_temp
address: 0xFA3C01B607005B28
- name: "Ambient Temperature"
+ name: "Ambient"
id: ambient
+ icon: mdi:home-thermometer
update_interval: 10s
filters:
- lambda: return x * (9.0/5.0) + 32.0;
@@ -113,8 +125,9 @@ sensor:
state_class: measurement
- platform: template
- name: "Delta Temperature"
+ name: "Delta"
id: hvac_delta
+ icon: mdi:thermometer-lines
lambda: |-
return (id(hvac_supply).state - id(hvac_return).state);
update_interval: 10s
@@ -151,6 +164,8 @@ sensor:
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 - (id(ultrasonic_source).state)) * 100;'
@@ -165,6 +180,8 @@ sensor:
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 (id(ultrasonic_source).state) * 100;'
@@ -174,49 +191,54 @@ sensor:
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 (id(distance_from_bottom).state) / 17.5;'
+display:
+ - platform: ssd1306_i2c
+ id: oled
+ model: "SSD1306 128x64"
+ #reset_pin: GPIO14 #D0
+ address: 0x3C
+ lambda: |-
+ it.print(0, 0, id(font1), "Delta:");
+ it.printf(128, 0, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_delta).state);
+ it.print(0, 16, id(font1), "Supply:");
+ it.printf(128, 16, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_supply).state);
+ it.print(0, 32, id(font1), "Return:");
+ it.printf(128, 32, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(hvac_return).state);
+ it.print(0, 48, id(font1), "Ambient:");
+ it.printf(128, 48, id(font1), TextAlign::TOP_RIGHT, "%.1f°F", id(ambient).state);
+
binary_sensor:
- platform: gpio
name: "Door"
device_class: door
- pin:
- number: ${door_pin}
- mode: INPUT_PULLUP
+ pin: ${door_pin}
+ filters:
+ - invert:
- - platform: homeassistant
- internal: true
- id: light_state
- entity_id: light.furnace_room
- on_state:
- then:
- - if:
- condition:
- lambda: 'return id(light_state).state;'
- then:
- - logger.log: "The light is on"
- else:
- - logger.log: "The is off. Turning off display"
- - switch.turn_off: display_switch
-
-switch:
- - platform: template
- id: display_switch
- name: "Display"
- lambda: |-
- if (id(screen_power)) {
- id(oled).turn_on();
- } else {
- id(oled).turn_off();
- }
- return id(screen_power);
- turn_on_action:
- - lambda: |-
- id(screen_power) = true;
- // id(oled).turn_on();
- turn_off_action:
- - lambda: |-
- id(screen_power) = false;
- // id(oled).turn_off();
+# switch:
+# - platform: template
+# id: display_switch
+# name: "Display"
+# lambda: |-
+# if (id(oled_enabled)) {
+# if (id(screen_power)) {
+# id(oled).turn_on();
+# } else {
+# id(oled).turn_off();
+# }
+# }
+# return id(screen_power);
+# turn_on_action:
+# - lambda: |-
+# id(screen_power) = true;
+# // id(oled).turn_on();
+# turn_off_action:
+# - lambda: |-
+# id(screen_power) = false;
+# // id(oled).turn_off();
diff --git a/esphome/common/ethernet.yaml b/esphome/common/ethernet.yaml
index 3e96219..638c6ab 100644
--- a/esphome/common/ethernet.yaml
+++ b/esphome/common/ethernet.yaml
@@ -17,5 +17,4 @@ ethernet:
dns2: !secret iot_default_dns2
text_sensor:
- - <<: !include text_sensor/ethernet_ip_address.config.yaml
- - <<: !include text_sensor/ethernet_mac_address.config.yaml
\ No newline at end of file
+ - <<: !include text_sensor/ethernet_info.config.yaml
\ No newline at end of file
diff --git a/esphome/common/text_sensor/ethernet_sensor.config.yaml b/esphome/common/text_sensor/ethernet_info.config.yaml
similarity index 100%
rename from esphome/common/text_sensor/ethernet_sensor.config.yaml
rename to esphome/common/text_sensor/ethernet_info.config.yaml
diff --git a/esphome/common/web_server.yaml b/esphome/common/web_server.yaml
new file mode 100644
index 0000000..7c70bf8
--- /dev/null
+++ b/esphome/common/web_server.yaml
@@ -0,0 +1,4 @@
+web_server:
+ port: 80
+ version: 3
+ include_internal: true
\ No newline at end of file
diff --git a/esphome/CascadiaMonoPL.ttf b/esphome/fonts/CascadiaMonoPL.ttf
similarity index 100%
rename from esphome/CascadiaMonoPL.ttf
rename to esphome/fonts/CascadiaMonoPL.ttf
diff --git a/esphome/hvac-multisensor-425f4f.yaml b/esphome/hvac-multisensor.yaml
similarity index 83%
rename from esphome/hvac-multisensor-425f4f.yaml
rename to esphome/hvac-multisensor.yaml
index ddeca71..f0e3919 100644
--- a/esphome/hvac-multisensor-425f4f.yaml
+++ b/esphome/hvac-multisensor.yaml
@@ -1,6 +1,6 @@
# 3v3 en svp sun 34 35 32 33 25 26 27 14 12 gnd 13 sd2 sd3 gnd 5v
substitutions:
- devicename: hvac-multisensor-425f4f
+ devicename: hvac-multisensor
entity_name: hvac_multisensor
friendly_name: HVAC MultiSensor
comment: Clever MultiSensor
@@ -21,7 +21,6 @@ substitutions:
#power_pin: GPIO5
packages:
- #wifi: !include common/wifi_no_power_save.yaml
ethernet: !include common/ethernet.yaml
device_base: !include common/device_base.yaml
ble_proxy: !include common/ble_proxy.yaml
@@ -30,26 +29,12 @@ esphome:
name: ${devicename}
friendly_name: ${friendly_name}
name_add_mac_suffix: false
- on_boot:
- - priority: -100
- then:
- - lambda: |-
- if (id(oled)) {
- id(oled_enabled) = true;
- } else {
- id(oled_enabled) = false;
- }
esp32:
board: ${board}
framework:
type: esp-idf
-# web_server:
-# port: 80
-# version: 3
-# include_internal: true
-
# Enable logging
logger:
level: DEBUG
@@ -74,13 +59,22 @@ globals:
- id: screen_power
type: bool
restore_value: yes
- initial_value: 'true'
+ initial_value: 'false'
font:
- - file: 'CascadiaMonoPL.ttf'
+ - file: 'fonts/CascadiaMonoPL.ttf'
id: font1
size: 17
+ # - file: "gfonts://Roboto"
+ # id: roboto_20
+ # size: 20
+
+ # - file: "gfonts://Material+Symbols+Outlined"
+ # id: icons_50
+ # size: 50
+ # glyphs: ["\U0000e425"] # mdi-timer
+
one_wire:
- platform: gpio
pin: ${one_wire_pin}
@@ -221,24 +215,21 @@ binary_sensor:
filters:
- invert:
-# switch:
-# - platform: template
-# id: display_switch
-# name: "Display"
-# lambda: |-
-# if (id(oled_enabled)) {
-# if (id(screen_power)) {
-# id(oled).turn_on();
-# } else {
-# id(oled).turn_off();
-# }
-# }
-# return id(screen_power);
-# turn_on_action:
-# - lambda: |-
-# id(screen_power) = true;
-# // id(oled).turn_on();
-# turn_off_action:
-# - lambda: |-
-# id(screen_power) = false;
-# // id(oled).turn_off();
+switch:
+ - platform: template
+ id: display_switch
+ icon: mdi:console
+ name: "Display"
+ lambda: |-
+ // if (id(screen_power)) {
+ // id(oled).turn_on();
+ // } else {
+ // id(oled).turn_off();
+ // }
+ return id(screen_power);
+ turn_on_action:
+ - lambda: |-
+ id(screen_power) = true;
+ turn_off_action:
+ - lambda: |-
+ id(screen_power) = false;
diff --git a/lovelace/cameras/view-camera-04.yaml b/lovelace/cameras/view-camera-04.yaml
index 010c043..63b71ca 100644
--- a/lovelace/cameras/view-camera-04.yaml
+++ b/lovelace/cameras/view-camera-04.yaml
@@ -145,43 +145,17 @@ card:
- type: conditional
conditions:
- - entity: binary_sensor.driveway_east_side_vehicle_occupancy
+ - entity: binary_sensor.driveway_vehicle_occupancy
state: "on"
- entity: binary_sensor.garage_door
state: "on"
elements:
- type: state-icon
- entity: binary_sensor.driveway_east_side_vehicle_occupancy
- style:
- top: 50%
- left: 63%
-
- - type: conditional
- conditions:
- - entity: binary_sensor.driveway_center_vehicle_occupancy
- state: "on"
- - entity: binary_sensor.garage_door
- state: "on"
- elements:
- - type: state-icon
- entity: binary_sensor.driveway_center_vehicle_occupancy
+ entity: binary_sensor.driveway_vehicle_occupancy
style:
top: 50%
left: 55%
- - type: conditional
- conditions:
- - entity: binary_sensor.driveway_west_side_vehicle_occupancy
- state: "on"
- - entity: binary_sensor.garage_door
- state: "on"
- elements:
- - type: state-icon
- entity: binary_sensor.driveway_west_side_vehicle_occupancy
- style:
- top: 50%
- left: 47%
-
- type: conditional
conditions:
- entity: binary_sensor.walkway_person_occupancy
diff --git a/lovelace/cameras/view-camera-18.yaml b/lovelace/cameras/view-camera-18.yaml
index 9290f44..6dc99b0 100644
--- a/lovelace/cameras/view-camera-18.yaml
+++ b/lovelace/cameras/view-camera-18.yaml
@@ -94,37 +94,15 @@ card:
- type: conditional
conditions:
- - entity: binary_sensor.driveway_east_side_vehicle_occupancy
+ - entity: binary_sensor.driveway_vehicle_occupancy
state: "on"
elements:
- type: state-icon
- entity: binary_sensor.driveway_east_side_vehicle_occupancy
- style:
- top: 35%
- left: 65%
-
- - type: conditional
- conditions:
- - entity: binary_sensor.driveway_center_vehicle_occupancy
- state: "on"
- elements:
- - type: state-icon
- entity: binary_sensor.driveway_center_vehicle_occupancy
+ entity: binary_sensor.driveway_vehicle_occupancy
style:
top: 45%
left: 55%
- - type: conditional
- conditions:
- - entity: binary_sensor.driveway_west_side_vehicle_occupancy
- state: "on"
- elements:
- - type: state-icon
- entity: binary_sensor.driveway_west_side_vehicle_occupancy
- style:
- top: 55%
- left: 45%
-
- type: conditional
conditions:
- entity: binary_sensor.parking_spot_vehicle_occupancy
diff --git a/lovelace/cameras/view-camera-19.yaml b/lovelace/cameras/view-camera-19.yaml
index 2d014cd..716cfa0 100644
--- a/lovelace/cameras/view-camera-19.yaml
+++ b/lovelace/cameras/view-camera-19.yaml
@@ -94,26 +94,15 @@ card:
- type: conditional
conditions:
- - entity: binary_sensor.driveway_center_vehicle_occupancy
+ - entity: binary_sensor.driveway_vehicle_occupancy
state: "on"
elements:
- type: state-icon
- entity: binary_sensor.driveway_center_vehicle_occupancy
+ entity: binary_sensor.driveway_vehicle_occupancy
style:
top: 60%
left: 14%
- - type: conditional
- conditions:
- - entity: binary_sensor.driveway_east_side_vehicle_occupancy
- state: "on"
- elements:
- - type: state-icon
- entity: binary_sensor.driveway_east_side_vehicle_occupancy
- style:
- top: 60%
- left: 20%
-
- type: conditional
conditions:
- entity: binary_sensor.parking_spot_vehicle_occupancy
diff --git a/lovelace/phone/furnace-room.yaml b/lovelace/phone/furnace-room.yaml
index 61e1157..a34fbba 100644
--- a/lovelace/phone/furnace-room.yaml
+++ b/lovelace/phone/furnace-room.yaml
@@ -44,7 +44,7 @@ cards:
- type: horizontal-stack
cards:
- type: custom:mushroom-entity-card
- entity: switch.hvac_display_switch
+ entity: switch.hvac_multisensor_display
name: HVAC Display
icon: mdi:monitor
layout: vertical
@@ -77,17 +77,17 @@ cards:
- hours_to_show: 24
graph: line
type: sensor
- entity: sensor.return_temperature
+ entity: sensor.hvac_multisensor_return
detail: 1
name: Return
- hours_to_show: 24
graph: line
type: sensor
- entity: sensor.hvac_temperature
+ entity: sensor.hvac_multisensor_supply
detail: 1
name: Supply
# - type: vertical-stack
# cards:
# - type: custom:mushroom-title-card
# subtitle: Cameras
- # - !include /config/lovelace/cameras/view-camera-10.yaml
\ No newline at end of file
+ # - !include /config/lovelace/cameras/view-camera-10.yaml
diff --git a/lovelace/room_cards/furnace_room.yaml b/lovelace/room_cards/furnace_room.yaml
index 208a212..2c33a44 100644
--- a/lovelace/room_cards/furnace_room.yaml
+++ b/lovelace/room_cards/furnace_room.yaml
@@ -17,7 +17,7 @@ elements:
text-align: right
#Card title
- type: custom:mushroom-title-card
- title: 'Furnace Room'
+ title: "Furnace Room"
style:
font-size: 130%
left: -2%
@@ -52,7 +52,7 @@ elements:
hold_action:
action: more-info
- - type: 'custom:button-card'
+ - type: "custom:button-card"
color: auto
entity: light.furnace_room
show_name: false
@@ -74,7 +74,7 @@ elements:
action: more-info
#button #3
- - type: 'custom:button-card'
+ - type: "custom:button-card"
color: auto
entity: binary_sensor.heat_pump
show_name: false
@@ -94,17 +94,16 @@ elements:
action: more-info
- type: custom:mushroom-template-card
- primary: "{{ states('sensor.hvac_delta') }}"
- entity: sensor.hvac_delta
+ primary: "{{ states('sensor.hvac_multisensor_delta') }}"
+ entity: sensor.hvac_multisensor_delta
tap_action:
action: more-info
style:
left: 36%
top: 88%
-
#button #3
- - type: 'custom:button-card'
+ - type: "custom:button-card"
color: auto
entity: binary_sensor.furnace
show_name: false
@@ -124,7 +123,7 @@ elements:
action: more-info
#button #3
- - type: 'custom:button-card'
+ - type: "custom:button-card"
color: auto
entity: binary_sensor.furnace_room_water_sensor_water_alarm_water_leak_detected
show_name: false
@@ -142,9 +141,8 @@ elements:
- height: 30px
tap_action:
action: more-info
-
# 12,31,50,69,88
# 14,38,62,86
# 25,50,75
# 33,66
-# 50
\ No newline at end of file
+# 50
diff --git a/lovelace/view-ha-floorplan.yaml b/lovelace/view-ha-floorplan.yaml
index 943dbac..7701fa8 100644
--- a/lovelace/view-ha-floorplan.yaml
+++ b/lovelace/view-ha-floorplan.yaml
@@ -187,9 +187,7 @@ cards:
- binary_sensor.utility_room_person_occupancy
- binary_sensor.blue_room_person_occupancy
- binary_sensor.furnace_room_person_occupancy
- - binary_sensor.driveway_center_vehicle_occupancy
- - binary_sensor.driveway_east_side_vehicle_occupancy
- - binary_sensor.driveway_west_side_vehicle_occupancy
+ - binary_sensor.driveway_vehicle_occupancy
states:
- state: "on"
class: "visible-entity"
@@ -452,9 +450,9 @@ cards:
- sensor.front_porch_temperature
- sensor.deck_temperature
- sensor.garage_multisensor_air_temperature
- #- sensor.hvac_temperature
- #- sensor.return_temperature
- - sensor.hvac_delta
+ #- sensor.hvac_multisensor_supply
+ #- sensor.hvac_multisensor_return
+ - sensor.hvac_multisensor_delta
- sensor.outdoors_mean_temperature
# text_template: '${entity.state ? entity.state : "unknown"} F'
# An example of rounding up a number, i.e. a temperature of 90.1 becomes 91
@@ -596,7 +594,7 @@ cards:
'
- entities:
- - sensor.salt_level_in_bags
+ - sensor.hvac_multisensor_salt_level_in_bags
class_template: '
var bags = parseFloat(entity.state);
if (bags > 4)
@@ -801,7 +799,7 @@ cards:
- binary_sensor.storage_room_door_contact
- binary_sensor.mancave_door_contact
- binary_sensor.blue_room_door_contact
- - binary_sensor.furnace_room_door
+ - binary_sensor.hvac_multisensor_door
- binary_sensor.furnace_room_door_contact
- binary_sensor.utility_room_door_contact
states:
diff --git a/lovelace/view-overview.yaml b/lovelace/view-overview.yaml
index 1935cbe..acfe2a6 100644
--- a/lovelace/view-overview.yaml
+++ b/lovelace/view-overview.yaml
@@ -922,25 +922,11 @@ badges:
navigation_path: /ai-yml/ai-cam19
hold_action:
action: more-info
- - entity: binary_sensor.driveway_east_side_vehicle_occupancy
+ - entity: binary_sensor.driveway_vehicle_occupancy
name: Driveway
tap_action:
action: navigate
- navigation_path: /ai-yml/ai-cam19
- hold_action:
- action: more-info
- - entity: binary_sensor.driveway_center_vehicle_occupancy
- name: Driveway
- tap_action:
- action: navigate
- navigation_path: /ai-yml/ai-cam19
- hold_action:
- action: more-info
- - entity: binary_sensor.driveway_west_side_vehicle_occupancy
- name: Driveway
- tap_action:
- action: navigate
- navigation_path: /ai-yml/ai-cam19
+ navigation_path: /ai-yml/ai-cam18
hold_action:
action: more-info
# - entity: input_boolean.guest_mode
@@ -1197,7 +1183,7 @@ cards:
# - entity: binary_sensor.front_yard_plant_monitor_status
# state_filter:
# - "off"
- # - entity: binary_sensor.furnace_room_multisensor_status
+ # - entity: binary_sensor.hvac_multisensor_status
# state_filter:
# - "off"
- entity: binary_sensor.pm_status
@@ -1206,12 +1192,15 @@ cards:
- entity: binary_sensor.nursery_tagreader_status
state_filter:
- "off"
- - entity: binary_sensor.nursery_tagreader_status
+ - entity: binary_sensor.everything_presence_lite_8fa4fc_everything_presence_great_room_status
state_filter:
- "off"
- entity: binary_sensor.black_bed_status
state_filter:
- "off"
+ - entity: binary_sensor.hvac_multisensor_status
+ state_filter:
+ - "off"
# - entity: binary_sensor.white_bed_status
# state_filter:
# - "off"
diff --git a/www/floorplan/fullsized_floorplan.svg b/www/floorplan/fullsized_floorplan.svg
index 9d78979..a98b755 100644
--- a/www/floorplan/fullsized_floorplan.svg
+++ b/www/floorplan/fullsized_floorplan.svg
@@ -1619,14 +1619,14 @@
style="stroke-width:0.012145"
transform="scale(-1)" />
+ inkscape:label="binary_sensor.hvac_multisensor_door" />
-
-