Compare commits

...

8 Commits

4 changed files with 173 additions and 46 deletions

View File

@@ -1 +1 @@
2025.10.0
2025.10.3

View File

@@ -25,24 +25,36 @@ input_boolean:
tony_ibuprofen_active:
name: Tony Ibuprofen Active
icon: mdi:medication
tony_ibuprofen_reminder:
name: Tony Ibuprofen Reminder
icon: mdi:medication
tony_ibuprofen_taken:
name: Tony Ibuprofen Taken
icon: mdi:medication
tony_tylenol_active:
name: Tony Tylenol Active
icon: mdi:medication
tony_tylenol_reminder:
name: Tony Tylenol Reminder
icon: mdi:medication
tony_tylenol_taken:
name: Tony Tylenol Taken
icon: mdi:medication
tony_custom_meds_tracker_p1:
name: Tony Custom Meds Tracker P1
icon: mdi:medication
tony_custom_meds_reminder_p1:
name: Tony Custom Meds Reminder P1
icon: mdi:medication
tony_custom_meds_taken_p1:
name: Tony Custom Meds Taken P1
icon: mdi:medication
tony_custom_meds_tracker_p2:
name: Tony Custom Meds Tracker P2
icon: mdi:medication
tony_custom_meds_reminder_p2:
name: Tony Custom Meds Reminder P2
icon: mdi:medication
tony_custom_meds_taken_p2:
name: Tony Custom Meds Taken P2
icon: mdi:medication

View File

@@ -1733,21 +1733,38 @@ tony_morning_meds:
entity_id: counter.tony_morning_meds_reminder_count
above: 2
then:
- action: google_generative_ai_conversation.generate_content
- alias: Generate snarky reminder
action: ai_task.generate_data
metadata: {}
data:
prompt: Remind Tony to take his morning meds. Use a maximum of two lines.
Be snarky, because at this point he's been reminded {{ remindCount }}
times.
instructions: Remind Tony to take his morning meds. Use a maximum of two
lines. Be snarky, because at this point this is reminder number {{ remindCount
}}.
task_name: Tony Morning Medication Reminder Snarky
entity_id: ai_task.google_ai_task
structure:
notification_text:
description: The text to send in the notification to Tony's phone
required: true
selector:
text:
response_variable: response
alias: Generate snarky reminder
else:
- action: google_generative_ai_conversation.generate_content
- alias: Generate reminder
action: ai_task.generate_data
metadata: {}
data:
prompt: Remind Tony to take his morning meds. Use a maximum of two lines.
instructions: Remind Tony to take his morning meds. Use a maximum of two
lines.
task_name: Tony Morning Medication Reminder
entity_id: ai_task.google_ai_task
structure:
notification_text:
description: The text to send in the notification to Tony's phone
required: true
selector:
text:
response_variable: response
alias: Generate reminder
- delay:
hours: 0
minutes: 0
@@ -1760,7 +1777,7 @@ tony_morning_meds:
who: tony
type: alert
title: Morning Meds
message: '{{ response.text }}'
message: '{{ response.data.notification_text }}'
tag: tony-morning-meds
actions:
- action: TONY_MORNING_MEDS_TAKEN
@@ -1782,11 +1799,11 @@ tony_morning_meds:
state: home
alias: If Tony is home
then:
- data:
- alias: Send TTS notification
data:
who: common_areas
type: alert
message: '{{ response.text }}'
alias: Send TTS notification
message: '{{ response.data.notification_text }}'
action: script.speech_engine
else:
- delay:
@@ -2044,21 +2061,38 @@ tony_afternoon_meds:
entity_id: counter.tony_afternoon_meds_reminder_count
above: 2
then:
- action: google_generative_ai_conversation.generate_content
- alias: Generate snarky reminder
action: ai_task.generate_data
metadata: {}
data:
prompt: Remind Tony to take his afternoon meds. Use a maximum of two lines.
Be snarky, because at this point he's been reminded {{ remindCount }}
times.
instructions: Remind Tony to take his afternoon meds. Use a maximum of two
lines. Be snarky, because at this point this is reminder number {{ remindCount
}}.
task_name: Tony Afternoon Medication Reminder Snarky
entity_id: ai_task.google_ai_task
structure:
notification_text:
description: The text to send in the notification to Tony's phone
required: true
selector:
text:
response_variable: response
alias: Generate snarky reminder
else:
- action: google_generative_ai_conversation.generate_content
- alias: Generate reminder
action: ai_task.generate_data
metadata: {}
data:
prompt: Remind Tony to take his afternoon meds. Use a maximum of two lines.
instructions: Remind Tony to take his afternoon meds. Use a maximum of two
lines.
task_name: Tony Afternoon Medication Reminder
entity_id: ai_task.google_ai_task
structure:
notification_text:
description: The text to send in the notification to Tony's phone
required: true
selector:
text:
response_variable: response
alias: Generate reminder
- delay:
hours: 0
minutes: 0
@@ -2071,7 +2105,7 @@ tony_afternoon_meds:
who: tony
type: alert
title: Afternoon Meds
message: '{{ response.text }}'
message: '{{ response.data.notification_text }}'
tag: tony-afternoon-meds
actions:
- action: TONY_AFTERNOON_MEDS_TAKEN
@@ -2093,11 +2127,11 @@ tony_afternoon_meds:
state: home
alias: If Tony is home
then:
- data:
- alias: Send TTS notification
data:
who: common_areas
type: alert
message: '{{ response.text }}'
alias: Send TTS notification
message: '{{ response.data.notification_text }}'
action: script.speech_engine
else:
- delay:
@@ -3006,14 +3040,14 @@ rabbit_hutch_cleaning:
emma_sleep:
alias: Emma Sleep
sequence:
- if:
- alias: Run scheduling if it hasn't already been run
if:
- condition: time
after: 04:00:00
after: 09:00:00
before: '17:00:00'
then:
- data: {}
action: script.emma_bedroom_scheduling_evening
alias: Run scheduling if it hasn't already been run
- target:
entity_id:
- script.emma_ibuprofen
@@ -3099,21 +3133,38 @@ tina_morning_meds:
entity_id: counter.tina_morning_meds_reminder_count
above: 2
then:
- action: google_generative_ai_conversation.generate_content
- alias: Generate snarky reminder
action: ai_task.generate_data
metadata: {}
data:
prompt: Remind Tina to take her morning meds. Use a maximum of two lines.
Be snarky, because at this point she's been reminded {{ remindCount }}
times.
instructions: Remind Tina to take her morning meds. Use a maximum of two
lines. Be snarky, because at this point this is reminder number {{ remindCount
}}.
task_name: Tina Morning Medication Reminder Snarky
entity_id: ai_task.google_ai_task
structure:
notification_text:
description: The text to send in the notification to Tina's phone
required: true
selector:
text:
response_variable: response
alias: Generate snarky reminder
else:
- action: google_generative_ai_conversation.generate_content
- alias: Generate reminder
action: ai_task.generate_data
metadata: {}
data:
prompt: Remind Tina to take her morning meds. Use a maximum of two lines.
instructions: Remind Tina to take her morning meds. Use a maximum of two
lines.
task_name: Tina Morning Medication Reminder
entity_id: ai_task.google_ai_task
structure:
notification_text:
description: The text to send in the notification to Tina's phone
required: true
selector:
text:
response_variable: response
alias: Generate reminder
- delay:
hours: 0
minutes: 0
@@ -3124,7 +3175,7 @@ tina_morning_meds:
who: tina
type: alert
title: Morning Meds
message: '{{ response.text }}'
message: '{{ response.data.notification_text }}'
tag: tina-morning-meds
actions:
- action: TINA_MORNING_MEDS_TAKEN
@@ -3184,21 +3235,37 @@ tina_night_meds:
entity_id: counter.tina_night_meds_reminder_count
above: 2
then:
- action: google_generative_ai_conversation.generate_content
- alias: Generate snarky reminder
action: ai_task.generate_data
metadata: {}
data:
prompt: Remind Tina to take her night meds. Use a maximum of two lines.
Be snarky, because at this point she's been reminded {{ remindCount }}
times.
instructions: Remind Tina to take her night meds. Use a maximum of two lines.
Be snarky, because at this point this is reminder number {{ remindCount
}}.
task_name: Tina Night Medication Reminder Snarky
entity_id: ai_task.google_ai_task
structure:
notification_text:
description: The text to send in the notification to Tina's phone
required: true
selector:
text:
response_variable: response
alias: Generate snarky reminder
else:
- action: google_generative_ai_conversation.generate_content
- alias: Generate reminder
action: ai_task.generate_data
metadata: {}
data:
prompt: Remind Tina to take her night meds. Use a maximum of two lines.
instructions: Remind Tina to take her night meds. Use a maximum of two lines.
task_name: Tina Night Medication Reminder
entity_id: ai_task.google_ai_task
structure:
notification_text:
description: The text to send in the notification to Tina's phone
required: true
selector:
text:
response_variable: response
alias: Generate reminder
- delay:
hours: 0
minutes: 0
@@ -3209,7 +3276,7 @@ tina_night_meds:
who: tina
type: alert
title: Night Meds
message: '{{ response.text }}'
message: '{{ response.data.notification_text }}'
tag: tina-night-meds
actions:
- action: TINA_NIGHT_MEDS_TAKEN

View File

@@ -464,3 +464,51 @@
map(attribute='attributes.friendly_name') |
list %}
{{ uptimekuma | join(', ') }}
- name: Media Server Viewer Health
unique_id: 51154ade-255e-4dcd-9b89-66910fcc1331
unit_of_measurement: '%'
icon: mdi:movie
state: >
{% set total = states.binary_sensor |
selectattr('entity_id','in',label_entities('media_server')) |
selectattr('entity_id','in',label_entities('viewer')) |
list | count | int %}
{% set up = states.binary_sensor |
selectattr('entity_id','in',label_entities('media_server')) |
selectattr('entity_id','in',label_entities('viewer')) |
selectattr('state','eq','on') |
list | count | int %}
{{ ((up / total) * 100) | round(0) }}
attributes:
services_down: >
{% set down = states.binary_sensor |
selectattr('entity_id','in',label_entities('media_server')) |
selectattr('entity_id','in',label_entities('viewer')) |
selectattr('state','eq','off') |
map(attribute='attributes.friendly_name') |
list %}
{{ down | join(', ') }}
- name: Media Server Downloaders Health
unique_id: f27867fe-700f-45bc-9e6b-8b1ee74cb724
unit_of_measurement: '%'
icon: mdi:tray-arrow-down
state: >
{% set total = states.binary_sensor |
selectattr('entity_id','in',label_entities('media_server')) |
selectattr('entity_id','in',label_entities('downloader')) |
list | count | int %}
{% set up = states.binary_sensor |
selectattr('entity_id','in',label_entities('media_server')) |
selectattr('entity_id','in',label_entities('downloader')) |
selectattr('state','eq','on') |
list | count | int %}
{{ ((up / total) * 100) | round(0) }}
attributes:
services_down: >
{% set down = states.binary_sensor |
selectattr('entity_id','in',label_entities('media_server')) |
selectattr('entity_id','in',label_entities('downloader')) |
selectattr('state','eq','off') |
map(attribute='attributes.friendly_name') |
list %}
{{ down | join(', ') }}