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" /> - -