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/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..5369dcda 100755
--- a/config/automation/away.yaml
+++ b/config/automation/away.yaml
@@ -41,3 +41,25 @@
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'
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/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/packages/climate.yaml b/config/packages/climate.yaml
index bbd7187c..65dd34a2 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,31 @@ 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: state
+ entity_id:
+ - binary_sensor.sleepnumber_carlo_carlo_is_in_bed
+ - binary_sensor.sleepnumber_carlo_stacey_is_in_bed
+ to: 'on'
+ - platform: numeric_state
+ entity_id: climate.downstairs
+ attribute: temperature
+ above: 76
+ 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'
+ action:
+ - service: climate.set_temperature
+ data:
+ entity_id: climate.downstairs
+ temperature: 76
+
diff --git a/config/script/speech_engine.yaml b/config/script/speech_engine.yaml
index 2285cfdf..78d4c324 100755
--- a/config/script/speech_engine.yaml
+++ b/config/script/speech_engine.yaml
@@ -7,7 +7,7 @@
# 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 +50,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..6fa029ea 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.
@@ -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 %}