diff --git a/README.md b/README.md index cb41c646..cc0aa94b 100755 --- a/README.md +++ b/README.md @@ -259,10 +259,8 @@ Defining Guest Mode - /config/input_boolean/home_modes.yaml#L1-L4
Using Guest mode as a condition - /config/script/speech_engine.yaml#L26-L28

-Track garbage days and chore days for the kids. Voice reminders and Alexa intergration/request for info.'

+

Track garbage days. Voice reminders and Alexa intergration/request for info.'

-Defining responsibilities trigger - /config/input_boolean/hidden_booleans.yaml#L5-L7
- Responsibility Speech Code - /config/script/speech_engine.yaml#L56-L68

diff --git a/config/.HA_VERSION b/config/.HA_VERSION index 5bc1f4d9..8f208759 100755 --- a/config/.HA_VERSION +++ b/config/.HA_VERSION @@ -1 +1 @@ -2025.7.1 \ No newline at end of file +2025.7.2 \ No newline at end of file diff --git a/config/automation/Speech/announcements.yaml b/config/automation/Speech/announcements.yaml index 2ea66270..19ba173a 100755 --- a/config/automation/Speech/announcements.yaml +++ b/config/automation/Speech/announcements.yaml @@ -50,7 +50,7 @@ {%- endmacro -%} {{greeting_sentence(person)}} - call_responsibilities: 1 + call_garbage_day: 1 call_no_announcement: 1 call_garage_check: 1 call_window_check: 1 diff --git a/config/automation/Speech/home_stats.yaml b/config/automation/Speech/home_stats.yaml index 8c8b8195..d3f78f19 100755 --- a/config/automation/Speech/home_stats.yaml +++ b/config/automation/Speech/home_stats.yaml @@ -26,7 +26,7 @@ - service: script.speech_engine data: call_inside_weather: 1 - call_responsibilities: 1 + call_garbage_day: 1 call_outside_weather: 1 call_garage_check: 1 call_window_check: 1 diff --git a/config/automation/Speech/nest.yaml b/config/automation/Speech/nest.yaml deleted file mode 100755 index b9394a05..00000000 --- a/config/automation/Speech/nest.yaml +++ /dev/null @@ -1,23 +0,0 @@ -###################################################################### -## Announce when one of the nests kick in -## Announce over all Chromecast Audios -###################################################################### -- alias: 'Nest Status' - id: 7812fdaf-a3f8-498b-8f07-28e977e528fe - trigger: - - - platform: state - entity_id: - - climate.downstairs - - climate.upstairs - from: 'off' - - action: - - service: script.speech_engine - data: - NestStatus: "The {{ trigger.entity_id.split('.')[1].split('_')[0]}} {{ trigger.entity_id.split('.')[1].split('_')[1]}} has now been turned on for {{(trigger.to_state.state)}}." - call_window_check: 1 - - - - diff --git a/config/automation/Speech/responsibilities.yaml b/config/automation/Speech/responsibilities.yaml deleted file mode 100755 index 86835f6d..00000000 --- a/config/automation/Speech/responsibilities.yaml +++ /dev/null @@ -1,22 +0,0 @@ -#------------------------------------------- -# Responsibilities Announcement -# Description: Triggers a speech announcement for daily responsibilities -# -# Features: -# - Announces garbage day and recycling reminders -# - Triggered by an input_boolean entity -# -# Integration: Uses speech_engine script for announcements -# Follow me on https://www.vcloudinfo.com/click-here -#------------------------------------------- -- alias: 'responsibilities' - id: f39bd8db-a348-4024-a6a6-a3e3c836646c - trigger: - - platform: state - entity_id: input_boolean.responsibilities - to: 'on' - - action: - - service: script.speech_engine - data: - call_responsibilities: 1 diff --git a/config/automation/away.yaml b/config/automation/away.yaml index 5382fe34..58d00de3 100755 --- a/config/automation/away.yaml +++ b/config/automation/away.yaml @@ -41,3 +41,30 @@ entity_id: switch.back_landscaping +# Set thermostats to eco mode when everyone is away +- alias: 'Set Thermostats to Eco When Away' + id: 1e2d3c4b-eco-thermostat-away + mode: single + trigger: + - platform: state + entity_id: group.family + to: 'not_home' + condition: + - condition: state + entity_id: group.family + state: 'not_home' + - condition: state + entity_id: input_boolean.guest_mode + state: 'off' + action: + - service: climate.set_preset_mode + data: + entity_id: + - climate.downstairs + - climate.upstairs + preset_mode: 'eco' + - service: script.notify_engine + data: + title: "Thermostat Eco Mode Triggered" + value1: "DEBUG: Everyone is gone and the Automation was triggered." + who: "carlo" diff --git a/config/automation/flash_all.yaml b/config/automation/flash_all.yaml index 5b28606f..76cd3739 100755 --- a/config/automation/flash_all.yaml +++ b/config/automation/flash_all.yaml @@ -28,8 +28,6 @@ - light.main_slider - light.garage_attic - light.bedroom_lights - - light.den_2 - - light.den1 - light.dinette_lights - light.dining_room_lights - light.foyer diff --git a/config/blueprints/automation/homeassistant/motion_light.yaml b/config/blueprints/automation/homeassistant/motion_light.yaml deleted file mode 100755 index c10d3691..00000000 --- a/config/blueprints/automation/homeassistant/motion_light.yaml +++ /dev/null @@ -1,49 +0,0 @@ -blueprint: - name: Motion-activated Light - domain: automation - source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/motion_light.yaml - input: - motion_entity: - name: Motion Sensor - selector: - entity: - domain: binary_sensor - device_class: motion - light_target: - name: Light - selector: - target: - entity: - domain: light - no_motion_wait: - name: Wait time - description: Time to wait until the light should be turned off. - default: 120 - selector: - number: - min: 0 - max: 3600 - unit_of_measurement: seconds - -# If motion is detected within the delay, -# we restart the script. -mode: restart -max_exceeded: silent - -trigger: - platform: state - entity_id: !input motion_entity - from: "off" - to: "on" - -action: - - service: light.turn_on - target: !input light_target - - wait_for_trigger: - platform: state - entity_id: !input motion_entity - from: "on" - to: "off" - - delay: !input no_motion_wait - - service: light.turn_off - target: !input light_target diff --git a/config/blueprints/automation/homeassistant/notify_leaving_zone.yaml b/config/blueprints/automation/homeassistant/notify_leaving_zone.yaml deleted file mode 100755 index 9b79396f..00000000 --- a/config/blueprints/automation/homeassistant/notify_leaving_zone.yaml +++ /dev/null @@ -1,41 +0,0 @@ -blueprint: - name: Send notification when a person leaves a zone - domain: automation - source_url: https://github.com/home-assistant/core/blob/dev/homeassistant/components/automation/blueprints/notify_leaving_zone.yaml - input: - person_entity: - name: Person - selector: - entity: - domain: person - zone_entity: - name: Zone - selector: - entity: - domain: zone - notify_device: - name: Device to notify - description: Device needs to run the official Home Assistant app to receive notifications. - selector: - device: - integration: mobile_app - -trigger: - platform: state - entity_id: !input person_entity - -variables: - zone_entity: !input zone_entity - zone_state: "{{ states[zone_entity].name }}" - person_entity: !input person_entity - person_name: "{{ states[person_entity].name }}" - -condition: - condition: template - value_template: "{{ trigger.from_state.state == zone_state and trigger.to_state.state != zone_state }}" - -action: - domain: mobile_app - type: notify - device_id: !input notify_device - message: "{{ person_name }} has left {{ zone_state }}" diff --git a/config/blueprints/script/homeassistant/confirmable_notification.yaml b/config/blueprints/script/homeassistant/confirmable_notification.yaml deleted file mode 100755 index ae170eab..00000000 --- a/config/blueprints/script/homeassistant/confirmable_notification.yaml +++ /dev/null @@ -1,74 +0,0 @@ -blueprint: - name: Confirmable Notification - description: >- - A script that sends an actionable notification with a confirmation before - running the specified action. - domain: script - source_url: https://github.com/home-assistant/core/blob/master/homeassistant/components/script/blueprints/confirmable_notification.yaml - input: - notify_device: - name: Device to notify - description: Device needs to run the official Home Assistant app to receive notifications. - selector: - device: - integration: mobile_app - title: - name: "Title" - description: "The title of the button shown in the notification." - default: "" - selector: - text: - message: - name: "Message" - description: "The message body" - selector: - text: - confirm_text: - name: "Confirmation Text" - description: "Text to show on the confirmation button" - default: "Confirm" - selector: - text: - confirm_action: - name: "Confirmation Action" - description: "Action to run when notification is confirmed" - default: [] - selector: - action: - dismiss_text: - name: "Dismiss Text" - description: "Text to show on the dismiss button" - default: "Dismiss" - selector: - text: - dismiss_action: - name: "Dismiss Action" - description: "Action to run when notification is dismissed" - default: [] - selector: - action: - -mode: restart - -sequence: - - alias: "Send notification" - domain: mobile_app - type: notify - device_id: !input notify_device - title: !input title - message: !input message - data: - actions: - - action: "CONFIRM" - title: !input confirm_text - - action: "DISMISS" - title: !input dismiss_text - - alias: "Awaiting response" - wait_for_trigger: - - platform: event - event_type: mobile_app_notification_action - - choose: - - conditions: "{{ wait.trigger.event.data.action == 'CONFIRM' }}" - sequence: !input confirm_action - - conditions: "{{ wait.trigger.event.data.action == 'DISMISS' }}" - sequence: !input dismiss_action diff --git a/config/configuration.yaml b/config/configuration.yaml index 53eed32a..cc3ec013 100755 --- a/config/configuration.yaml +++ b/config/configuration.yaml @@ -64,34 +64,7 @@ light: !include light_groups.yaml ifttt: key: !secret ifttt_key -logbook: - exclude: - entities: - - automation.detect_lights_and_adjust_the_brightness_when_turned_on_based_on_time - - automation.cuckoo_clock - - binary_sensor.office_motion - - group.garage_doors - - media_player.LivingRoomCC - - py.warnings - - sensor.small_garage_status - - sensor.large_garage_status - - sensor.small_garage_time_in_state - - sensor.large_garage_time_in_state - - sensor.large_garage_wifi_signal_strength - - sensor.small_garage_wifi_signal_strength - - sensor.small_garage_reflection_rate - - sensor.large_garage_reflection_rate - - sensor.pi_hole_ads_blocked_today - - sensor.pi_hole_ads_percentage_blocked_today - - sensor.pi_hole_dns_queries_today - - sensor.time - - sensor.date - - sensor.floorplan_date - - sensor.floorplan_time - - sensor.ha_uptime - - sensor.sleepnumber_carlo_stacey_pressure - - sensor.sleepnumber_carlo_carlo_pressure - +logbook: !include logbook.yaml logger: !include logger.yaml recorder: !include recorder.yaml diff --git a/config/group/Indoor_Outdoor.yaml b/config/group/Indoor_Outdoor.yaml index 462232f3..fe36faa7 100755 --- a/config/group/Indoor_Outdoor.yaml +++ b/config/group/Indoor_Outdoor.yaml @@ -4,8 +4,6 @@ Interior_Lights: - group.kitchen_accents - light.bedroom - light.bedroom_lights - - light.den_2 - - light.den1 - light.dinette_lights - light.dining_room_lights - light.foyer diff --git a/config/group/media_players.yaml b/config/group/media_players.yaml index b3696ddd..bbbc9159 100755 --- a/config/group/media_players.yaml +++ b/config/group/media_players.yaml @@ -3,7 +3,6 @@ media_players: - media_player.livingroomcc - media_player.living_room_tv - media_player.living_room_ultra - - media_player.upstairs_living_room - media_player.bedroom_tablet - media_player.living_room - media_player.front_room_flex @@ -24,6 +23,5 @@ tvs: - media_player.roku_3810x_923c - media_player.roku_living_room - media_player.tv_samsung_q70_series_65 - - media_player.upstairs_living_room diff --git a/config/group/switches.yaml b/config/group/switches.yaml index c76f966e..6059fb5f 100755 --- a/config/group/switches.yaml +++ b/config/group/switches.yaml @@ -14,7 +14,7 @@ Interior Switches: - switch.lr_amp - switch.master_bathroom_accent_1 - switch.master_bathroom_accent_2 - - switch.pool_deck + #- switch.pool_deck - Not being used right now - switch.foyer_outlet - switch.den_outlet - switch.living_room_outlet diff --git a/config/input_boolean/hidden_booleans.yaml b/config/input_boolean/hidden_booleans.yaml index 2532f064..1d561dec 100755 --- a/config/input_boolean/hidden_booleans.yaml +++ b/config/input_boolean/hidden_booleans.yaml @@ -1,7 +1,3 @@ home_stats: name: Home Stats initial: off - -responsibilities: - name: responsibilities - initial: off diff --git a/config/logbook.yaml b/config/logbook.yaml new file mode 100644 index 00000000..a335337b --- /dev/null +++ b/config/logbook.yaml @@ -0,0 +1,42 @@ +#------------------------------------------- +# Logbook Configuration +# Description: Settings for the Home Assistant logbook component +# This component is responsible for displaying items in the logbook. +# Follow me on https://www.vcloudinfo.com/click-here +# Original Repo: https://github.com/CCOSTAN/Home-AssistantConfig +#------------------------------------------- + +exclude: + entity_globs: + - sensor.*_location + - sensor.*_place + - sensor.*_geocoded_location + - sensor.pirateweather_* + - weather.* + entities: + - automation.cuckoo_clock + - automation.detect_lights_and_adjust_the_brightness_when_turned_on_based_on_time + - binary_sensor.office_motion + - binary_sensor.refrigerator_door_open + - binary_sensor.rheem_wh_running + - group.garage_doors + - media_player.LivingRoomCC + - sensor.date + - sensor.downstairs_ac_cooling_numeric + - sensor.ha_uptime + - sensor.large_garage_reflection_rate + - sensor.large_garage_status + - sensor.large_garage_time_in_state + - sensor.large_garage_wifi_signal_strength + - sensor.pi_hole_ads_blocked_today + - sensor.pi_hole_ads_percentage_blocked_today + - sensor.pi_hole_dns_queries_today + - sensor.rheem_wh_running_state + - sensor.sleepnumber_carlo_carlo_pressure + - sensor.sleepnumber_carlo_stacey_pressure + - sensor.small_garage_reflection_rate + - sensor.small_garage_status + - sensor.small_garage_time_in_state + - sensor.small_garage_wifi_signal_strength + - sensor.time + - sensor.upstairs_ac_cooling_numeric diff --git a/config/logger.yaml b/config/logger.yaml index 73bdfcb3..f4a88ef4 100755 --- a/config/logger.yaml +++ b/config/logger.yaml @@ -14,13 +14,12 @@ default: info logs: + AIOGitHubAPI: error aiohttp.access: critical aiohttp.server: critical aiounifi: error custom_components.hacs: error hacs: error - queueman: error - AIOGitHubAPI: error homeassistant.core: error homeassistant.config_entries: error homeassistant.components.automation: warn @@ -29,10 +28,14 @@ logs: homeassistant.components.device_tracker: error homeassistant.components.discovery: warn homeassistant.components.feedreader: error + homeassistant.components.history: error homeassistant.components.http: warn homeassistant.components.ipp: critical + homeassistant.components.logbook: error homeassistant.components.media_player: info + homeassistant.components.mqtt: error homeassistant.components.mqtt.discovery: critical + homeassistant.components.persistent_notification: critical homeassistant.components.rest.sensor: critical homeassistant.components.recorder: error homeassistant.components.sensor.pi_hole: critical @@ -47,9 +50,11 @@ logs: homeassistant.helpers.script: info homeassistant.helpers.entity: critical homeassistant.loader: warn + homeassistant.components.websocket_api: error pubnub: critical py.warnings: error pyhap.hap_server: warn + queueman: error urllib3.connectionpool: error requests.packages.urllib3.connectionpool: critical root: warn diff --git a/config/packages/alexa_media_player.yaml b/config/packages/alexa_media_player.yaml index 3c5f7dbf..fea8f4ca 100755 --- a/config/packages/alexa_media_player.yaml +++ b/config/packages/alexa_media_player.yaml @@ -12,4 +12,3 @@ sensor: {{ states.media_player | selectattr('attributes.last_called','eq',True) | map(attribute='entity_id') | first | default('none') }} #------------------------------------------- - diff --git a/config/packages/climate.yaml b/config/packages/climate.yaml index bbd7187c..c0113f07 100644 --- a/config/packages/climate.yaml +++ b/config/packages/climate.yaml @@ -1,6 +1,8 @@ -# -------------------------------------------------- -# AC Filter‑change runtime tracker -# -------------------------------------------------- +###################################################################### +## AC related automations +## For more info visit https://www.vcloudinfo.com/click-here +## Contact: @CCOSTAN +###################################################################### input_datetime: downstairs_last_filter_change: @@ -118,6 +120,19 @@ automation: who: "Carlo" group: "maintenance" + - alias: 'AC Status off Announcement' + id: 7812fdaf-a3f8-498b-8f07-28e977e528fe + trigger: + - platform: state + entity_id: + - climate.downstairs + - climate.upstairs + from: 'off' + action: + - service: script.speech_engine + data: + NestStatus: "The {{ trigger.entity_id.split('.')[1].split('_')[0]}} {{ trigger.entity_id.split('.')[1].split('_')[1]}} has now been turned on for {{(trigger.to_state.state)}}." + call_window_check: 1 - alias: Prevent Upstairs Nest Below 76 id: 7812fdaf-a3f8-498b-8f07-28e977e528ff @@ -132,3 +147,33 @@ automation: data: entity_id: climate.upstairs temperature: 77 + + - alias: Set Downstairs Nest to 76 When both in bed + id: set_downstairs_nest_76_both_in_bed + trigger: + - platform: numeric_state + entity_id: climate.downstairs + attribute: temperature + above: 76 + - platform: state + entity_id: group.bed + to: 'on' + condition: + - condition: and + conditions: + - condition: state + entity_id: binary_sensor.sleepnumber_carlo_carlo_is_in_bed + state: 'on' + - condition: state + entity_id: binary_sensor.sleepnumber_carlo_stacey_is_in_bed + state: 'on' + - condition: numeric_state + entity_id: climate.downstairs + attribute: temperature + above: 76 + action: + - service: climate.set_temperature + data: + entity_id: climate.downstairs + temperature: 76 + diff --git a/config/packages/conico.yaml b/config/packages/conico.yaml deleted file mode 100755 index 851392f0..00000000 --- a/config/packages/conico.yaml +++ /dev/null @@ -1,81 +0,0 @@ -#------------------------------------------- -# Conico Cameras Configuration -# Description: Integrates Conico Cameras with Alexa Media Player -# Last Updated: 2023-11-15 -# -# Features: -# - Displays garage camera feed on Echo Show devices -# - Displays driveway camera feed when front door opens -# - Triggers based on garage door state and occupancy changes -# -# Hardware: -# - Conico Camera: https://amzn.to/2Kl1eHo -# - Amazon Echo Show devices -# -# Integration: Alexa Media Player -# -# Original Repo: https://github.com/CCOSTAN/Home-AssistantConfig -# Blog Post: https://www.vcloudinfo.com/2019/03/integrating-smart-cameras-with-alexa-echo-shows.html -# Follow me on https://www.vcloudinfo.com/click-here -#------------------------------------------- - - -automation: - - alias: 'Garage Camera on Alexa Shows' - id: 4373df2a-77f2-4e19-be7c-46c7b27ca583 - mode: single - trigger: - - platform: state - entity_id: - - cover.large_garage_door - - cover.small_garage_door - from: 'closed' - to: 'open' - - - platform: state - entity_id: binary_sensor.mcu1_gpio12 #interior Garage Doors - from: 'off' - to: 'on' - - - platform: state - entity_id: - - person.carlo - - person.stacey - - person.paige - - person.justin - to: 'not_home' - from: 'home' - - action: - - choose: - - conditions: "{{ is_state('binary_sensor.sleepnumber_carlo_stacey_is_in_bed','on') }}" - sequence: - - service: media_player.play_media - data: - entity_id: media_player.stacey_bedroom - media_content_id: 'show garage camera from home assistant' - media_content_type: custom - - delay: '00:10:00' - - service: media_player.play_media - data: - entity_id: media_player.stacey_bedroom - media_content_id: 'hide garage camera' - media_content_type: custom - - default: - - service: media_player.play_media - target: - entity_id: media_player.kitchen - data: - media_content_id: 'show garage camera from home assistant' - media_content_type: custom - - delay: '00:20:00' - - service: media_player.play_media - target: - entity_id: media_player.kitchen - data: - media_content_id: 'hide garage camera' - media_content_type: custom - - - service: script.garage_lights_off - diff --git a/config/packages/fridge.yaml b/config/packages/fridge.yaml new file mode 100644 index 00000000..964fea23 --- /dev/null +++ b/config/packages/fridge.yaml @@ -0,0 +1,38 @@ +#------------------------------------------- +# @CCOSTAN +# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig +# Support for LG Fridges (https://amzn.to/3lOYTCv) +# Added ThinLg HACS integration for Fridge sensors - https://github.com/ollo69/ha-smartthinq-sensors +#------------------------------------------- + +automation: + - alias: 'Fridge Door Open' + id: 2346efcd-e8a8-4e86-b5b6-43eBl1nkFr1dge95D00r0pen + mode: single + trigger: + - platform: state + entity_id: binary_sensor.refrigerator_door_open + to: 'on' + for: + minutes: 5 + condition: + - condition: state + entity_id: binary_sensor.refrigerator_door_open + state: 'on' + action: + - service: script.notify_engine + data: + title: 'Fridge Door Open' + value1: > + The fridge door has been open for more than 5 minutes. Please check and close the fridge door to avoid temperature issues. + who: 'family' + group: 'information' + + - wait_template: "{{ states.group.family.state == 'home' }}" + + - service: script.speech_engine + data: + value1: "Attention! The fridge door has been open for more than 5 minutes. Please close the fridge door." + + - delay: 00:30:00 + - event: event_fridge_door_open diff --git a/config/packages/garadget.yaml b/config/packages/garadget.yaml index c7e92bbf..6819ac52 100755 --- a/config/packages/garadget.yaml +++ b/config/packages/garadget.yaml @@ -79,11 +79,50 @@ group: - cover.large_garage_door - cover.small_garage_door +automation: + + ###################################################################### + ## Automation: Auto-open Large Garage Door when someone comes home + ###################################################################### + - alias: 'Auto Open Large Garage Door On Arrival' + id: 7e2b1c3a-4b1e-4b2a-9c1a-automated_garage_door + mode: single + trigger: + - platform: state + entity_id: + - person.carlo + - person.stacey + - person.justin + from: 'not_home' + to: 'home' + condition: + - condition: state + entity_id: cover.large_garage_door + state: 'closed' + - condition: state + entity_id: group.bed + state: 'off' + action: + - service: cover.open_cover + target: + entity_id: cover.large_garage_door + - service: input_text.set_value + target: + entity_id: input_text.last_person_home + data: + value: "{{ trigger.to_state.entity_id.split('.')[1] }}" + - service: script.notify_engine + data: + who: 'parents' + value1: "Large Garage has been auto-opened for {{ states('input_text.last_person_home') }}." + title: 'Garage Auto-Opened' + group: 'Welcome_Home' + camera_entity: camera.garagecam + ###################################################################### ## Send a notification to anyone coming home asking if they want to open the garage door. ###################################################################### -automation: - alias: 'Garage Helper' id: 365adc21-5e96-4e78-9e94-089901a29430 mode: parallel @@ -339,3 +378,61 @@ automation: data: value1: "Check the garage doors. The Small garage is {{ states('cover.small_garage_door')}} and the large garage is {{ states('cover.large_garage_door')}} [Only mention the garage door that is open and remind us to close it for the night]" + - alias: 'Garage Camera on Alexa Shows' + id: 4373df2a-77f2-4e19-be7c-46c7b27ca583 + mode: single + trigger: + - platform: state + entity_id: + - cover.large_garage_door + - cover.small_garage_door + from: 'closed' + to: 'open' + + - platform: state + entity_id: binary_sensor.mcu1_gpio12 #interior Garage Doors + from: 'off' + to: 'on' + + - platform: state + entity_id: + - person.carlo + - person.stacey + - person.paige + - person.justin + to: 'not_home' + from: 'home' + + action: + - choose: + - conditions: "{{ is_state('binary_sensor.sleepnumber_carlo_stacey_is_in_bed','on') }}" + sequence: + - service: media_player.play_media + data: + entity_id: media_player.stacey_bedroom + media_content_id: 'show garage camera from home assistant' + media_content_type: custom + - delay: '00:10:00' + - service: media_player.play_media + data: + entity_id: media_player.stacey_bedroom + media_content_id: 'hide garage camera' + media_content_type: custom + + default: + - service: media_player.play_media + target: + entity_id: media_player.kitchen + data: + media_content_id: 'show garage camera from home assistant' + media_content_type: custom + - delay: '00:20:00' + - service: media_player.play_media + target: + entity_id: media_player.kitchen + data: + media_content_id: 'hide garage camera' + media_content_type: custom + + - service: script.garage_lights_off + diff --git a/config/packages/proxmox.yaml b/config/packages/proxmox.yaml index dc8c1a32..6e534889 100644 --- a/config/packages/proxmox.yaml +++ b/config/packages/proxmox.yaml @@ -15,3 +15,22 @@ automation: target: entity_id: button.qemu_docker2_101_reboot mode: single + + - alias: "Notify Carlo of Proxmox Updates" + id: notify_carlo_proxmox_updates + description: "Sends a notification to Carlo when there are updates available for the Proxmox hosts." + trigger: + - platform: state + entity_id: binary_sensor.node_proxmox02_updates_packages + to: 'on' + - platform: state + entity_id: binary_sensor.node_proxmox1_updates_packages + to: 'on' + action: + - service: script.notify_engine + data: + who: carlo + title: "Proxmox Updates Available" + value1: "There are updates available for the Proxmox hosts. Please review and apply updates as needed." + group: "information" + mode: single diff --git a/config/packages/stats.yaml b/config/packages/stats.yaml index 48b2e4e5..1de8e0c3 100755 --- a/config/packages/stats.yaml +++ b/config/packages/stats.yaml @@ -11,16 +11,23 @@ command_line: unique_id: lines_of_code command: "find /config -name '*.yaml' | xargs cat | wc -l" scan_interval: 20000 + value_template: "{{ value | int }}" + unit_of_measurement: "count" + - sensor: + name: 'GitHub Open Issues' + unique_id: github_open_issues + command: 'curl -s https://api.github.com/repos/ccostan/home-assistantconfig' + scan_interval: 20000 + value_template: '{{ value_json.open_issues }}' + unit_of_measurement: 'count' - sensor: - name: 'GitHub Stats' - unique_id: github_stats_command - command: 'curl https://api.github.com/repos/ccostan/home-assistantconfig' + name: 'GitHub Stargazers' + unique_id: github_stargazers + command: 'curl -s https://api.github.com/repos/ccostan/home-assistantconfig' scan_interval: 20000 - value_template: '{{ value_json.name }}' - json_attributes: - - open_issues - - stargazers_count + value_template: '{{ value_json.stargazers_count }}' + unit_of_measurement: 'count' sensor: - platform: history_stats @@ -66,31 +73,42 @@ sensor: friendly_name: 'Number of Sensors' value_template: >- {{ states.sensor | list | count }} + unit_of_measurement: 'count' + icon_template: mdi:counter automation_count: friendly_name: 'Number of Automations' value_template: >- - {{ states.automation| list | count }} + {{ states.automation | list | count }} + unit_of_measurement: 'count' + icon_template: mdi:robot script_count: friendly_name: 'Number of Scripts' - value_template: > + value_template: >- {{ states.script | list | count }} + unit_of_measurement: 'count' + icon_template: mdi:script-text binary_sensor_count: friendly_name: 'Number of Binary Sensors' value_template: >- {{ states.binary_sensor | list | count }} - + unit_of_measurement: 'count' + icon_template: mdi:binary-sensor tracker_count: friendly_name: 'Number of Devices' value_template: >- {{ states.device_tracker| list | count }} + unit_of_measurement: 'count' + icon_template: mdi:account-group + lights_count: friendly_name: 'Number of Lights' value_template: > {{ states.light | list | count }} - + unit_of_measurement: 'count' + icon_template: mdi:lightbulb lights_on_count: friendly_name: "Number of lights on" value_template: >- @@ -103,7 +121,8 @@ sensor: {% else %} {{ qty }} {{ p1 }} on. {% endif %} - + unit_of_measurement: 'count' + icon_template: mdi:binary-sensor protect_count: friendly_name: 'Number of Smoke Detectors' value_template: > @@ -116,9 +135,12 @@ sensor: {% else %} 0 {% endif %} + unit_of_measurement: 'count' + icon_template: mdi:smoke-detector camera_count: friendly_name: 'Number of online Cameras' value_template: > {{ states.camera | list | count }} - + unit_of_measurement: 'count' + icon_template: mdi:camera ############################################################# diff --git a/config/recorder.yaml b/config/recorder.yaml index ed208ff5..daba47d4 100755 --- a/config/recorder.yaml +++ b/config/recorder.yaml @@ -11,28 +11,48 @@ #------------------------------------------- #db_url: sqlite:///data/home-assistant_v2.db purge_keep_days: 30 -include: - entities: - - device_tracker.spaceship_location_tracker exclude: domains: - - device_tracker - camera + - device_tracker + - event + - feedreader + - image + - media_player + - persistent_notification + - sun + - update + - zone entity_globs: - - sensor.*uptime* - - sensor.vpn_client_* + - binary_sensor.*_motion + - binary_sensor.*_motion_* + - binary_sensor.*is_present +# - binary_sensor.*occupancy* + - light.sleepnumber_* + - number.sleepnumber_* + - media_player.*echo* + - select.sleepnumber_* + - sensor.*_battery + - sensor.*_battery_state + - sensor.*_bssid - sensor.*_first_connection* - sensor.*_last_connection* - - binary_sensor.*_motion - - binary_sensor.*is_present - - binary_sensor.*_motion_* + - sensor.*_last_update* + - sensor.*_last_boot + - sensor.*_since + - sensor.*uptime* + - sensor.vpn_client_* + - switch.*_do_not_disturb_* + - switch.*_repeat_switch + entities: - automation.update_garage_get_status + - binary_sensor.bear_stone - binary_sensor.powerwall_charging - - media_player.carlo_s_4th_fire - - media_player.alarm_panel_2 - - script.speech_processing + - number.alarm_panel_1_screen_brightness - script.amp_settings + - script.speech_processing + - sensor.bear_stone - sensor.carlo_ap - sensor.carlo_fast - sensor.clock_am_pm @@ -42,23 +62,26 @@ exclude: - sensor.clock_time - sensor.clock_time_2 - sensor.date + - sensor.dockerconfigs_backup_date + - sensor.dockerconfigs_backup_error_message + - sensor.dockerconfigs_backup_status - sensor.external_ip - - sensor.floorplan_date - - sensor.floorplan_time - - sensor.floorplan_time_2 - sensor.ha_uptime - sensor.large_garage_door_since + - sensor.small_garage_door_since + - sensor.last_alexa + - sensor.lights_on_count - sensor.low_battery - sensor.network - sensor.network_detail - sensor.pi_hole_ads_blocked_today - sensor.pi_hole_ads_percentage_blocked_today - sensor.pi_hole_dns_queries_today - - sensor.small_garage_door_since - - sensor.large_garage_door_since - - sensor.stacey_iphone11_activity - - sensor.time - sensor.rachio_watering_time - - binary_sensor.rheem_wh_running - - sun.sun - - zone.home + - sensor.stacey_iphone11_activity + - sensor.stacey_iphone11_audio_output + - sensor.sun_next_dawn + - sensor.time + - switch.bear_stone + - switch.alarm_panel_1_screensaver + diff --git a/config/script/speech_engine.yaml b/config/script/speech_engine.yaml index 2285cfdf..35b0483e 100755 --- a/config/script/speech_engine.yaml +++ b/config/script/speech_engine.yaml @@ -3,11 +3,12 @@ # action: # service: script.speech_engine # data: + # value1: # call_no_announcement: # call_dark_outside: # call_window_check: # call_garage_check: - # call_responsibilities + # call_garbage_day # call_light_check # call_inside_weather # call_outside_weather @@ -50,9 +51,8 @@ speech_engine: # Include the speech message from the "speech/briefing.yaml" template file speech_message: !include ../templates/speech/briefing.yaml - # Turn off the "input_boolean.home_stats" and "input_boolean.responsibilities" input booleans + # Turn off the "input_boolean.home_stats" - service: input_boolean.turn_off data: entity_id: - input_boolean.home_stats - - input_boolean.responsibilities diff --git a/config/templates/speech/briefing.yaml b/config/templates/speech/briefing.yaml index f49142de..5a0b7dc0 100755 --- a/config/templates/speech/briefing.yaml +++ b/config/templates/speech/briefing.yaml @@ -21,7 +21,7 @@ The sun has set. I will turn on the outside lights. {%- endmacro -%} - {%- macro responsibilities() -%} + {%- macro garbage_day() -%} {% set day_of_week = now().strftime('%a') %} {% if day_of_week in ['Wed', 'Sun'] %} Today is garbage day. @@ -286,11 +286,11 @@ New Information: {% if call_no_announcement != 1 %} {% if now().strftime('%H')|int(9999)< 12 and now().strftime('%H')|int(9999)> 6 %} - Good morning. + Good morning. [if there is only one person home, address them specifically] {% elif now().strftime('%H')|int(9999)>= 12 and now().strftime('%H')|int(9999)< 17 %} - Good afternoon. + Good afternoon. [if there is only one person home, address them specifically] {% else %} - Good evening. + Good evening. [if there is only one person home, address them specifically] {% endif %} {% endif %} @@ -346,8 +346,8 @@ {{ light_check() }} {% endif %} - {% if call_responsibilities == 1 %} - {{ responsibilities() }} + {% if call_garbage_day == 1 %} + {{ garbage_day() }} {% endif %} {% if now().strftime('%H')|int(0) > 21 %}