Compare commits
8 Commits
2025.9.4
...
2de7d82e20
| Author | SHA1 | Date | |
|---|---|---|---|
|
2de7d82e20
|
|||
|
83c3c10a5a
|
|||
|
f7ac1b915b
|
|||
|
1d3398752e
|
|||
|
837ed779c9
|
|||
|
bc3a58875d
|
|||
|
3c018a922b
|
|||
|
10188d553a
|
@@ -1 +1 @@
|
||||
2025.9.4
|
||||
2025.10.1
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -68,6 +68,7 @@
|
||||
**jsconfig*
|
||||
.markdownlint.json
|
||||
**test.jinja
|
||||
**.ha_run.lock
|
||||
|
||||
# exceptions
|
||||
!/www/bubble/
|
||||
@@ -300,18 +300,6 @@ influxdb:
|
||||
- binary_sensor.people_present
|
||||
- weather.iron_nerd_weather_station
|
||||
- weather.ashland_weather_station
|
||||
- sensor.circle_k
|
||||
- sensor.kroger
|
||||
- sensor.kecks
|
||||
- sensor.the_barn
|
||||
- sensor.the_big_fish
|
||||
- sensor.speedway
|
||||
- sensor.meijer
|
||||
- sensor.ridis
|
||||
- sensor.marathon_cleveland_avenue
|
||||
- sensor.south_side_shell
|
||||
- sensor.east_side_shell
|
||||
- sensor.shell_ottawa_avenue
|
||||
- sensor.current_lights_on
|
||||
- binary_sensor.early_night_mode
|
||||
- input_boolean.give_me_darkness
|
||||
@@ -484,18 +472,6 @@ prometheus:
|
||||
- binary_sensor.people_present
|
||||
- weather.iron_nerd_weather_station
|
||||
- weather.ashland_weather_station
|
||||
- sensor.circle_k
|
||||
- sensor.kroger
|
||||
- sensor.kecks
|
||||
- sensor.the_barn
|
||||
- sensor.the_big_fish
|
||||
- sensor.speedway
|
||||
- sensor.meijer
|
||||
- sensor.ridis
|
||||
- sensor.marathon_cleveland_avenue
|
||||
- sensor.south_side_shell
|
||||
- sensor.east_side_shell
|
||||
- sensor.shell_ottawa_avenue
|
||||
- sensor.current_lights_on
|
||||
- binary_sensor.early_night_mode
|
||||
- input_boolean.give_me_darkness
|
||||
|
||||
@@ -1,39 +1,3 @@
|
||||
sensor.ridis:
|
||||
device_class: monetary
|
||||
|
||||
sensor.kecks:
|
||||
device_class: monetary
|
||||
|
||||
sensor.circle_k:
|
||||
device_class: monetary
|
||||
|
||||
sensor.the_big_fish:
|
||||
device_class: monetary
|
||||
|
||||
sensor.meijer:
|
||||
device_class: monetary
|
||||
|
||||
sensor.south_side_shell:
|
||||
device_class: monetary
|
||||
|
||||
sensor.kroger:
|
||||
device_class: monetary
|
||||
|
||||
sensor.marathon_cleveland_avenue:
|
||||
device_class: monetary
|
||||
|
||||
sensor.speedway:
|
||||
device_class: monetary
|
||||
|
||||
sensor.shell_ottawa_avenue:
|
||||
device_class: monetary
|
||||
|
||||
sensor.the_barn:
|
||||
device_class: monetary
|
||||
|
||||
sensor.east_side_shell:
|
||||
device_class: monetary
|
||||
|
||||
sensor.local_minimum_gas_price:
|
||||
device_class: monetary
|
||||
|
||||
|
||||
@@ -268,7 +268,7 @@ script:
|
||||
- light.living_room_overhead
|
||||
- service: input_text.set_value
|
||||
target:
|
||||
entity_id: input_text.living_room_studio_selected_scene
|
||||
entity_id: input_text.living_room_selected_scene
|
||||
data:
|
||||
value: Alert
|
||||
# Define variable for restoration of the current scene if the backup is not needed
|
||||
|
||||
@@ -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
|
||||
|
||||
151
scripts.yaml
151
scripts.yaml
@@ -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:
|
||||
@@ -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
|
||||
|
||||
@@ -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(', ') }}
|
||||
Reference in New Issue
Block a user