1176 lines
32 KiB
YAML
1176 lines
32 KiB
YAML
- alias: Cube Voice - Scene Creator
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
from: idle
|
|
to: listening
|
|
actions:
|
|
- action: scene.create
|
|
data:
|
|
scene_id: cube_voice_restore
|
|
snapshot_entities:
|
|
- light.cube_light_top
|
|
- light.cube_inner
|
|
id: a7612198293a4638a9a4bfd867361f8e
|
|
- id: e3e94119c906442b87993accb955a681
|
|
alias: Cube Voice - Listening
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
to: listening
|
|
actions:
|
|
- action: awtrix.notification
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
text: LISTENING
|
|
duration: 10
|
|
rainbow: true
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.cube_light_top
|
|
data:
|
|
rgb_color:
|
|
- 10
|
|
- 250
|
|
- 10
|
|
effect: Happy Blinker
|
|
- id: bf933227de44481a82be0e6bc48781a9
|
|
alias: Cube Voice - Processing
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
to: processing
|
|
actions:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.cube_light_top
|
|
data:
|
|
rgb_color:
|
|
- 10
|
|
- 50
|
|
- 250
|
|
effect: Mysterious
|
|
- id: 224bc31d91254e57ad8d93e8549be334
|
|
alias: Cube Voice - Speaking
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
to: processing
|
|
actions:
|
|
- action: light.turn_on
|
|
data:
|
|
effect: 'Music: Vibrate'
|
|
target:
|
|
entity_id: light.cube_voice_ring
|
|
- id: speakandrestore123948
|
|
alias: Cube Voice - Speaking and Restore
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
to: idle
|
|
id: restore
|
|
actions:
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id: scene.cube_voice_restore
|
|
- id: '1755313710558'
|
|
alias: Persona Switcher
|
|
description: ''
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- input_select.current_persona
|
|
from: null
|
|
to: null
|
|
conditions: []
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: jax
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: JAX
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: buddy
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: BUDDY
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: sparkle
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: SPARKLE
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: zorp
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: ZORP
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: neon
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: NEON
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: crash
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: CRASH
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: thecube
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: THECUBE
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: mobius
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: MOBIUS
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_select.current_persona
|
|
state: NEON
|
|
sequence:
|
|
- action: select.select_option
|
|
data:
|
|
option: NEON
|
|
target:
|
|
entity_id:
|
|
- select.home_assistant_voice_09739d_assistant
|
|
- select.esp32_s3_box_3_52b3dc_assistant
|
|
- conditions: []
|
|
sequence: []
|
|
mode: single
|
|
- id: '1755332428238'
|
|
alias: Siren - Auto Off
|
|
description: Auto turn off siren after 20 seconds
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- siren.small_siren
|
|
to: 'on'
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 20
|
|
conditions: []
|
|
actions:
|
|
- action: siren.turn_off
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: siren.small_siren
|
|
mode: single
|
|
- id: '1755332428239'
|
|
alias: Fan - Auto Off
|
|
description: Auto turn off fan after 1 minute
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- switch.fan_switch
|
|
to: 'on'
|
|
for:
|
|
hours: 0
|
|
minutes: 1
|
|
seconds: 0
|
|
conditions: []
|
|
actions:
|
|
- action: switch.turn_off
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: switch.fan_switch
|
|
- action: input_boolean.turn_on
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: input_boolean.fan_cooldown
|
|
mode: single
|
|
- id: '1755332428240'
|
|
alias: Strobe - Auto Off
|
|
description: Auto turn off strobe after 30 seconds
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- switch.strobe_switch
|
|
to: 'on'
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
conditions: []
|
|
actions:
|
|
- action: switch.turn_off
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: switch.strobe_switch
|
|
mode: single
|
|
- id: '1755332428241'
|
|
alias: Blacklight - Auto Off
|
|
description: Auto turn off blacklight after 30 seconds
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- switch.blacklight_switch
|
|
to: 'on'
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
conditions: []
|
|
actions:
|
|
- action: switch.turn_off
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: switch.blacklight_switch
|
|
mode: single
|
|
- id: '1755332428242'
|
|
alias: Fan Cooldown Clear
|
|
description: Clear fan cooldown after 1 hour
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- input_boolean.fan_cooldown
|
|
to: 'on'
|
|
for:
|
|
hours: 1
|
|
minutes: 0
|
|
seconds: 0
|
|
conditions: []
|
|
actions:
|
|
- action: input_boolean.turn_off
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: input_boolean.fan_cooldown
|
|
mode: single
|
|
- id: '1755333596935'
|
|
alias: Health - Lights Red
|
|
description: ''
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- sensor.backend_health_check
|
|
to: unavailable
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 15
|
|
- trigger: state
|
|
entity_id:
|
|
- sensor.backend_health_check
|
|
to: unknown
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 15
|
|
conditions: []
|
|
actions:
|
|
- action: light.turn_on
|
|
metadata: {}
|
|
data:
|
|
rgb_color:
|
|
- 99
|
|
- 0
|
|
- 0
|
|
flash: long
|
|
target:
|
|
entity_id: light.cube_voice_ring
|
|
- action: light.turn_on
|
|
metadata: {}
|
|
data:
|
|
rgb_color:
|
|
- 86
|
|
- 0
|
|
- 0
|
|
effect: Breathe
|
|
target:
|
|
entity_id: light.cube_light_top
|
|
mode: single
|
|
- id: '1755333757049'
|
|
alias: Health Healthy
|
|
description: Health Healthy
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- sensor.backend_health_check
|
|
to: healthy
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 15
|
|
from: unavailable
|
|
conditions: []
|
|
actions:
|
|
- action: light.turn_on
|
|
metadata: {}
|
|
data:
|
|
rgb_color:
|
|
- 0
|
|
- 200
|
|
- 0
|
|
flash: long
|
|
target:
|
|
entity_id: light.cube_voice_ring
|
|
- action: light.turn_on
|
|
metadata: {}
|
|
data:
|
|
effect: twinkle
|
|
target:
|
|
entity_id: light.cube_light_top
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- action: light.turn_on
|
|
metadata: {}
|
|
data:
|
|
brightness_pct: 100
|
|
rgb_color:
|
|
- 116
|
|
- 0
|
|
- 100
|
|
target:
|
|
entity_id: light.cube_light_top
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
milliseconds: 0
|
|
- action: light.turn_on
|
|
metadata: {}
|
|
data:
|
|
effect: none
|
|
target:
|
|
entity_id:
|
|
- light.cube_inner
|
|
- light.cube_light_top
|
|
mode: single
|
|
- id: cycle_persona_automation
|
|
alias: Current Persona GLITCH
|
|
description: hange current persona
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- input_select.current_persona
|
|
conditions: []
|
|
actions:
|
|
- action: siren.turn_on
|
|
target:
|
|
entity_id: siren.small_siren
|
|
data: {}
|
|
- action: light.turn_on
|
|
metadata: {}
|
|
data:
|
|
brightness_pct: 100
|
|
effect: Acid
|
|
target:
|
|
entity_id: light.cube_light_top
|
|
- action: music_assistant.play_media
|
|
metadata: {}
|
|
data:
|
|
media_type: track
|
|
media_id: glitch cube theme song!
|
|
enqueue: replace
|
|
target:
|
|
entity_id: media_player.cube_jukebox
|
|
mode: single
|
|
- id: motion_auto_reset
|
|
alias: Motion Auto Reset
|
|
description: Automatically reset motion detection after 30 seconds
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_boolean.motion_detected
|
|
to: 'on'
|
|
for:
|
|
seconds: 30
|
|
conditions: []
|
|
actions:
|
|
- action: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.motion_detected
|
|
mode: restart
|
|
- id: low_battery_alert
|
|
alias: Low Battery Alert
|
|
description: Alert when low battery is detected
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_boolean.low_battery
|
|
to: 'on'
|
|
conditions: []
|
|
actions:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.cube_voice_ring
|
|
data:
|
|
rgb_color:
|
|
- 255
|
|
- 0
|
|
- 0
|
|
flash: long
|
|
- action: persistent_notification.create
|
|
data:
|
|
title: Low Battery Warning
|
|
message: System battery is low. Consider finding power.
|
|
notification_id: low_battery_alert
|
|
mode: single
|
|
- id: cube_busy_visual
|
|
alias: Cube Busy Visual
|
|
description: Show visual indicator when cube is busy
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_boolean.cube_busy
|
|
to: 'on'
|
|
- trigger: state
|
|
entity_id: input_boolean.cube_busy
|
|
to: 'off'
|
|
conditions: []
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.cube_busy
|
|
state: 'on'
|
|
sequence:
|
|
- action: light.turn_on
|
|
data:
|
|
effect: Happy Blinker
|
|
brightness_pct: 50
|
|
target:
|
|
entity_id:
|
|
- light.cube_light_top
|
|
- conditions:
|
|
- condition: state
|
|
entity_id: input_boolean.cube_busy
|
|
state: 'off'
|
|
sequence:
|
|
- action: light.turn_on
|
|
data:
|
|
effect: '{{ state_attr("light.cube_light_top", "effect_list") | random }}'
|
|
target:
|
|
entity_id: light.cube_light_top
|
|
mode: restart
|
|
- id: awtrix_persona_change
|
|
alias: AWTRIX Persona Display
|
|
description: Show persona change on AWTRIX display
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_select.current_persona
|
|
conditions: []
|
|
actions:
|
|
- service: mqtt.publish
|
|
data:
|
|
topic: awtrix/custom/persona
|
|
payload: "{\n \"text\": \"{{ states('input_select.current_persona').upper()\
|
|
\ }}\",\n \"icon\": {% if states('input_select.current_persona') == 'buddy'\
|
|
\ %}2022{% elif states('input_select.current_persona') == 'jax' %}7956{% elif\
|
|
\ states('input_select.current_persona') == 'lomi' %}7919{% elif states('input_select.current_persona')\
|
|
\ == 'zorp' %}7982{% else %}7786{% endif %},\n \"color\": {% if states('input_select.current_persona')\
|
|
\ == 'buddy' %}[0, 200, 255]{% elif states('input_select.current_persona')\
|
|
\ == 'jax' %}[255, 100, 0]{% elif states('input_select.current_persona') ==\
|
|
\ 'lomi' %}[255, 0, 200]{% elif states('input_select.current_persona') ==\
|
|
\ 'zorp' %}[100, 255, 0]{% else %}[255, 255, 255]{% endif %},\n \"duration\"\
|
|
: 8\n}\n"
|
|
mode: single
|
|
- id: awtrix_battery_alert
|
|
alias: AWTRIX Battery Alert
|
|
description: Show battery status on AWTRIX
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_boolean.low_battery
|
|
conditions: []
|
|
actions:
|
|
- service: mqtt.publish
|
|
data:
|
|
topic: awtrix/custom/battery
|
|
payload: "{\n \"text\": \"{% if states('input_boolean.low_battery') == 'on'\
|
|
\ %}LOW BAT{% else %}BAT OK{% endif %}\",\n \"icon\": {% if states('input_boolean.low_battery')\
|
|
\ == 'on' %}184{% else %}183{% endif %},\n \"color\": {% if states('input_boolean.low_battery')\
|
|
\ == 'on' %}[255, 0, 0]{% else %}[0, 255, 0]{% endif %},\n \"effect\": \"\
|
|
{% if states('input_boolean.low_battery') == 'on' %}BlinkyRainbow{% endif\
|
|
\ %}\",\n \"duration\": 10\n}\n"
|
|
mode: single
|
|
- id: awtrix_motion_alert
|
|
alias: AWTRIX Motion Alert
|
|
description: Show motion detection on AWTRIX
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_boolean.motion_detected
|
|
to: 'on'
|
|
conditions: []
|
|
actions:
|
|
- service: mqtt.publish
|
|
data:
|
|
topic: awtrix/custom/motion
|
|
payload: "{\n \"text\": \"MOTION\",\n \"icon\": 7876,\n \"color\": [255,\
|
|
\ 165, 0],\n \"effect\": \"ColorWipe\",\n \"duration\": 5\n}\n"
|
|
mode: single
|
|
- id: awtrix_health_status
|
|
alias: AWTRIX Health Status
|
|
description: Show system health on AWTRIX
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: sensor.backend_health_check
|
|
conditions: []
|
|
actions:
|
|
- service: mqtt.publish
|
|
data:
|
|
topic: awtrix/custom/health
|
|
payload: "{\n \"text\": \"{{ trigger.to_state.state.upper() }}\",\n \"icon\"\
|
|
: {% if trigger.to_state.state == 'healthy' %}4687{% else %}4688{% endif %},\n\
|
|
\ \"color\": {% if trigger.to_state.state == 'healthy' %}[0, 255, 0]{% elif\
|
|
\ trigger.to_state.state == 'degraded' %}[255, 255, 0]{% else %}[255, 0, 0]{%\
|
|
\ endif %},\n \"duration\": 8\n}\n"
|
|
mode: single
|
|
- id: awtrix_conversation_counter
|
|
alias: AWTRIX Conversation Update
|
|
description: Show conversation count on AWTRIX
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: counter.daily_conversations
|
|
conditions: []
|
|
actions:
|
|
- service: mqtt.publish
|
|
data:
|
|
topic: awtrix/custom/conversations
|
|
payload: "{\n \"text\": \"CHATS {{ states('counter.daily_conversations') }}\"\
|
|
,\n \"icon\": 7929,\n \"color\": [0, 255, 200],\n \"duration\": 6\n}\n"
|
|
mode: single
|
|
- id: '1755536429534'
|
|
alias: Speak Weather
|
|
description: ''
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- sensor.world_state
|
|
attribute: weather_updated_at
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
conditions:
|
|
- condition: state
|
|
entity_id: media_player.square_voice
|
|
state: idle
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
actions:
|
|
- action: tts.cloud_say
|
|
metadata: {}
|
|
data:
|
|
cache: false
|
|
entity_id: media_player.square_voice
|
|
message: '{{ state_attr(''sensor.world_state'',''weather_conditions'') }}'
|
|
language: en-US
|
|
mode: single
|
|
- id: '1755758825522'
|
|
alias: LOW BATTERY ON
|
|
description: Trigger low battery mode when cube battery drops below 12.2V
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.cube_battery_volts
|
|
below: 12.2
|
|
conditions: []
|
|
actions:
|
|
- action: input_boolean.turn_on
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: input_boolean.low_battery_mode
|
|
mode: single
|
|
- id: '1755760732184'
|
|
alias: 'Awtrix: Now Playing'
|
|
description: ''
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- media_player.cube_jukebox
|
|
to: playing
|
|
conditions: []
|
|
actions:
|
|
- action: awtrix.notification
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
text: 'Now playing: {{ state_attr(''media_player.cube_jukebox'', ''media_title'')
|
|
}} -- {{ state_attr(''media_player.cube_jukebox'', ''media_artist'') }}'
|
|
duration: 30
|
|
icon: '39264'
|
|
rainbow: false
|
|
pushIcon: '1'
|
|
repeat: -1
|
|
wakeup: true
|
|
mode: single
|
|
- id: '1755841067280'
|
|
alias: Analyze Camera
|
|
description: ''
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- switch.camera_motion_alarm
|
|
to: 'on'
|
|
conditions: []
|
|
actions:
|
|
- action: script.main_cam_analyze_detail
|
|
metadata: {}
|
|
data: {}
|
|
mode: single
|
|
- id: '1755864373097'
|
|
alias: keylights
|
|
description: ''
|
|
triggers:
|
|
- trigger: time_pattern
|
|
minutes: /1
|
|
conditions: []
|
|
actions:
|
|
- action: light.turn_on
|
|
metadata: {}
|
|
data:
|
|
effect: '{{ state_attr("light.esphome_web_510674_key_rgb_matrix", "effect_list")
|
|
| random }}'
|
|
target:
|
|
entity_id: light.esphome_web_510674_key_rgb_matrix
|
|
mode: single
|
|
- id: '1755864517367'
|
|
alias: siren
|
|
description: ''
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- binary_sensor.esphome_web_510674_right_encoder_button
|
|
to: 'on'
|
|
conditions: []
|
|
actions:
|
|
- action: siren.turn_on
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: siren.small_siren
|
|
mode: single
|
|
- id: 123456781aaa92
|
|
alias: Cube Voice - Scene Creator
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
from: idle
|
|
to: listening
|
|
actions:
|
|
- action: scene.create
|
|
data:
|
|
scene_id: cube_voice_restore
|
|
snapshot_entities:
|
|
- light.cube_light_top
|
|
- light.cube_inner
|
|
- id: voicelistening123456
|
|
alias: Cube Voice - Listening
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
to: listening
|
|
actions:
|
|
- action: awtrix.notification
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
text: BUDDY is LiStEnING
|
|
duration: 10
|
|
rainbow: true
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.cube_light_top
|
|
data:
|
|
rgb_color:
|
|
- 10
|
|
- 10
|
|
- 200
|
|
- id: voiceprocessing1234
|
|
alias: Cube Voice - Processing
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
to: processing
|
|
actions:
|
|
- action: input_boolean.turn_on
|
|
target:
|
|
entity_id: input_boolean.cube_busy
|
|
- id: speakandrestore123948
|
|
alias: Cube Voice - Speaking and Restore
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
to: speaking
|
|
- trigger: state
|
|
entity_id: assist_satellite.square_voice
|
|
to: idle
|
|
id: restore
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: restore
|
|
sequence:
|
|
- action: scene.turn_on
|
|
target:
|
|
entity_id: scene.cube_voice_restore
|
|
- action: input_boolean.turn_off
|
|
target:
|
|
entity_id: input_boolean.cube_busy
|
|
default:
|
|
- action: light.turn_on
|
|
target:
|
|
entity_id: light.cube_inner
|
|
data:
|
|
effect: 'Music: Vibrate'
|
|
- id: cube_proactive_motion_check
|
|
alias: 'Cube: Motion After Quiet Period'
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.living_room_motion
|
|
to: 'on'
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ (as_timestamp(now()) - as_timestamp(states.sensor.cube_last_conversation_time
|
|
| default(0))) > 1800 }}
|
|
|
|
'
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: motion_after_quiet
|
|
context: Motion detected in living room after {{ ((as_timestamp(now()) - as_timestamp(states.sensor.cube_last_conversation_time
|
|
| default(0))) / 60) | round }} minutes of quiet
|
|
- id: cube_proactive_arrival_checkin
|
|
alias: 'Cube: Arrival Check-in'
|
|
trigger:
|
|
- platform: state
|
|
entity_id: person.user
|
|
to: home
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ (as_timestamp(now()) - as_timestamp(trigger.from_state.last_changed))
|
|
> 7200 }}
|
|
|
|
'
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: arrival_home
|
|
context: User just arrived home after being away for {{ ((as_timestamp(now())
|
|
- as_timestamp(trigger.from_state.last_changed)) / 3600) | round(1) }} hours
|
|
- id: cube_proactive_weather_alert
|
|
alias: 'Cube: Weather Change Alert'
|
|
trigger:
|
|
- platform: state
|
|
entity_id: weather.home
|
|
attribute: condition
|
|
condition:
|
|
- condition: template
|
|
value_template: "{{ trigger.to_state.attributes.condition in ['rainy', 'snowy',\
|
|
\ 'stormy', 'windy'] and \n trigger.from_state.attributes.condition not in\
|
|
\ ['rainy', 'snowy', 'stormy', 'windy'] }}\n"
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: weather_change
|
|
context: Weather changed from {{ trigger.from_state.attributes.condition }}
|
|
to {{ trigger.to_state.attributes.condition }}
|
|
- id: cube_proactive_evening_checkin
|
|
alias: 'Cube: Evening Check-in'
|
|
trigger:
|
|
- platform: time
|
|
at: '21:00:00'
|
|
condition:
|
|
- condition: state
|
|
entity_id: person.user
|
|
state: home
|
|
- condition: template
|
|
value_template: '{{ (as_timestamp(now()) - as_timestamp(states.sensor.cube_last_conversation_time
|
|
| default(0))) > 3600 }}
|
|
|
|
'
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: evening_checkin
|
|
context: It's evening (9 PM) and user has been home without interaction for
|
|
{{ ((as_timestamp(now()) - as_timestamp(states.sensor.cube_last_conversation_time
|
|
| default(0))) / 60) | round }} minutes
|
|
- id: cube_proactive_morning_energy
|
|
alias: 'Cube: Morning Energy Report'
|
|
trigger:
|
|
- platform: time
|
|
at: 08:00:00
|
|
condition:
|
|
- condition: state
|
|
entity_id: person.user
|
|
state: home
|
|
- condition: state
|
|
entity_id: binary_sensor.workday_sensor
|
|
state: 'on'
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: morning_energy_report
|
|
context: 'Good morning! It''s a workday. Current energy usage: {{ states(''sensor.home_energy_consumption'')
|
|
}}kW. Weather: {{ states(''weather.home'') }}'
|
|
- id: cube_proactive_device_offline
|
|
alias: 'Cube: Important Device Offline'
|
|
trigger:
|
|
- platform: state
|
|
entity_id:
|
|
- binary_sensor.internet_connection
|
|
- binary_sensor.nas_online
|
|
- binary_sensor.security_system
|
|
to: 'off'
|
|
for: 00:05:00
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: device_offline_alert
|
|
context: Important device {{ trigger.entity_id }} has been offline for 5 minutes
|
|
- id: cube_proactive_loneliness_check
|
|
alias: 'Cube: Extended Isolation Check'
|
|
trigger:
|
|
- platform: time_pattern
|
|
hours: /4
|
|
condition:
|
|
- condition: state
|
|
entity_id: person.user
|
|
state: home
|
|
- condition: template
|
|
value_template: '{{ (as_timestamp(now()) - as_timestamp(states.sensor.cube_last_conversation_time
|
|
| default(0))) > 14400 }}
|
|
|
|
'
|
|
- condition: time
|
|
after: 08:00:00
|
|
before: '22:00:00'
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: loneliness_check
|
|
context: User has been home for {{ ((as_timestamp(now()) - as_timestamp(states.sensor.cube_last_conversation_time
|
|
| default(0))) / 3600) | round(1) }} hours without interaction. Checking in
|
|
to see how they're doing
|
|
- id: cube_proactive_energy_spike
|
|
alias: 'Cube: High Energy Usage Alert'
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: sensor.home_energy_consumption
|
|
above: 5.0
|
|
for: 00:10:00
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: high_energy_usage
|
|
context: 'Energy consumption has been high ({{ states(''sensor.home_energy_consumption'')
|
|
}}kW) for 10 minutes. Current time: {{ now().strftime(''%H:%M'') }}'
|
|
- id: cube_proactive_security_event
|
|
alias: 'Cube: Security Event Response'
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.front_door
|
|
to: 'on'
|
|
- platform: state
|
|
entity_id: binary_sensor.back_door
|
|
to: 'on'
|
|
condition:
|
|
- condition: or
|
|
conditions:
|
|
- condition: state
|
|
entity_id: person.user
|
|
state: not_home
|
|
- condition: time
|
|
after: '23:00:00'
|
|
before: 06:00:00
|
|
action:
|
|
- service: rest_command.glitchcube_proactive
|
|
data:
|
|
trigger: security_event
|
|
context: '{{ trigger.entity_id }} opened at {{ now().strftime(''%H:%M'') }}
|
|
when user status is {{ states(''person.user'') }}'
|
|
- id: awtrix_location_context
|
|
alias: AWTRIX Location Context
|
|
description: Shows current location with time context and coordinates
|
|
triggers:
|
|
- trigger: time_pattern
|
|
minutes: /5
|
|
- trigger: state
|
|
entity_id: input_text.current_location
|
|
- trigger: state
|
|
entity_id: sun.sun
|
|
conditions: []
|
|
actions:
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: location
|
|
text: 📍 {{ states('input_text.current_location') }} - {{ now().strftime('%I:%M
|
|
%p') }}
|
|
icon: 7786
|
|
color: '{% set hour = now().hour %}{% if hour < 6 %}#6464FF{% elif hour < 12
|
|
%}#FFC800{% elif hour < 17 %}#FF9600{% elif hour < 21 %}#FF6400{% else %}#C800FF{%
|
|
endif %}'
|
|
duration: 12
|
|
scrollSpeed: 85
|
|
textCase: 1
|
|
center: true
|
|
mode: single
|
|
- id: awtrix_weather_info
|
|
alias: AWTRIX Weather Info
|
|
description: Dynamic weather display with current conditions
|
|
triggers:
|
|
- trigger: time_pattern
|
|
minutes: /10
|
|
- trigger: state
|
|
entity_id: weather.playaweather
|
|
- trigger: state
|
|
entity_id: weather.pirateweather
|
|
conditions: []
|
|
actions:
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: weather
|
|
text: 🌤️ {{ state_attr('weather.playaweather', 'temperature') | int }}°F H{{
|
|
state_attr('weather.playaweather', 'humidity') }}% W{{ state_attr('weather.playaweather',
|
|
'wind_speed') | round(1) }}mph
|
|
icon: '{% set condition = states(''weather.playaweather'') %}{% if condition
|
|
== ''sunny'' %}a2282{% elif condition == ''clear-night'' %}a2283{% elif condition
|
|
== ''partlycloudy'' %}a2284{% elif condition == ''cloudy'' %}a2285{% elif
|
|
condition == ''rainy'' %}a2286{% elif condition == ''snowy'' %}a2287{% else
|
|
%}a2282{% endif %}'
|
|
color: '{% set temp = state_attr(''weather.playaweather'', ''temperature'')
|
|
| int %}{% if temp < 70 %}#0096FF{% elif temp < 80 %}#00FF64{% elif temp <
|
|
90 %}#FFFF00{% elif temp < 100 %}#FF9600{% else %}#FF0000{% endif %}'
|
|
duration: 15
|
|
scrollSpeed: 75
|
|
center: false
|
|
mode: single
|
|
- id: awtrix_glitch_cube_alert
|
|
alias: AWTRIX Glitch Cube Alert
|
|
description: Fun animated notification with HEY GLITCH CUBE message
|
|
triggers:
|
|
- trigger: time_pattern
|
|
minutes: /3
|
|
- trigger: state
|
|
entity_id: input_select.current_persona
|
|
- trigger: state
|
|
entity_id: counter.daily_conversations
|
|
conditions: []
|
|
actions:
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: hey_glitch
|
|
text: 🎉 HEY GLITCH CUBE! 🎉
|
|
icon: '{% set persona = states(''input_select.current_persona'') %}{% if persona
|
|
== ''buddy'' %}2022{% elif persona == ''jax'' %}7956{% elif persona == ''lomi''
|
|
%}7919{% elif persona == ''zorp'' %}7982{% else %}7786{% endif %}'
|
|
rainbow: true
|
|
effect: BlinkyRainbow
|
|
duration: 8
|
|
scrollSpeed: 100
|
|
center: false
|
|
mode: single
|
|
- id: awtrix_system_status
|
|
alias: AWTRIX System Status
|
|
description: Shows current persona and conversation count
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_select.current_persona
|
|
- trigger: state
|
|
entity_id: counter.daily_conversations
|
|
- trigger: time_pattern
|
|
minutes: /15
|
|
conditions: []
|
|
actions:
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: status
|
|
text: 🤖 {{ states('input_select.current_persona').upper() }} - {{ states('counter.daily_conversations')
|
|
}} CHATS
|
|
icon: '{% set persona = states(''input_select.current_persona'') %}{% if persona
|
|
== ''buddy'' %}2022{% elif persona == ''jax'' %}7956{% elif persona == ''lomi''
|
|
%}7919{% elif persona == ''zorp'' %}7982{% else %}7786{% endif %}'
|
|
color: '{% set persona = states(''input_select.current_persona'') %}{% if persona
|
|
== ''buddy'' %}#00C8FF{% elif persona == ''jax'' %}#FF6400{% elif persona
|
|
== ''lomi'' %}#FF00C8{% elif persona == ''zorp'' %}#64FF00{% else %}#FFFFFF{%
|
|
endif %}'
|
|
duration: 15
|
|
scrollSpeed: 80
|
|
center: false
|
|
mode: single
|
|
- id: awtrix_manual_hey_glitch
|
|
alias: AWTRIX Manual Hey Glitch
|
|
description: Manually trigger HEY GLITCH CUBE alert via input button
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_button.cycle_persona
|
|
conditions: []
|
|
actions:
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: hey_glitch
|
|
text: 🚨 HEY GLITCH CUBE! 🚨 PERSONA SWITCH!
|
|
icon: 7982
|
|
rainbow: true
|
|
effect: BlinkyRainbow
|
|
duration: 10
|
|
scrollSpeed: 120
|
|
center: false
|
|
mode: single
|
|
- id: awtrix_clear_apps
|
|
alias: AWTRIX Clear All Apps
|
|
description: Clear all custom AWTRIX apps when maintenance mode enabled
|
|
triggers:
|
|
- trigger: state
|
|
entity_id: input_boolean.maintenance_mode
|
|
to: 'on'
|
|
conditions: []
|
|
actions:
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: location
|
|
text: ''
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: weather
|
|
text: ''
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: hey_glitch
|
|
text: ''
|
|
- service: awtrix.custom_app
|
|
data:
|
|
device: ac07cb1bceee39dce3af75aa6c6d784c
|
|
app: status
|
|
text: ''
|
|
mode: single
|
|
- id: cube_proactive_bored
|
|
alias: 'Cube: Proactive Boredom Check'
|
|
trigger:
|
|
- platform: state
|
|
entity_id: binary_sensor.living_room_motion
|
|
to: 'on'
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ (as_timestamp(now()) - as_timestamp(states.conversation.last_conversation_time
|
|
| default(0))) > 1200 }}
|
|
|
|
'
|
|
action:
|
|
- service: assist_satellite.start_conversation
|
|
target:
|
|
entity_id: assist_satellite.square_voice
|
|
data:
|
|
start_message: '[PROACTIVE] motion_detected_with_boredom: Motion in living room,
|
|
no conversation for {{ ((as_timestamp(now()) - as_timestamp(states.conversation.last_conversation_time
|
|
| default(0))) / 60) | round }} minutes'
|
|
extra_system_prompt: You detected motion after a period of inactivity. Be engaging
|
|
and offer to help with activities or entertainment.
|
|
- id: cube_proactive_lonely
|
|
alias: 'Cube: Proactive Loneliness'
|
|
trigger:
|
|
- platform: time_pattern
|
|
minutes: /30
|
|
condition:
|
|
- condition: state
|
|
entity_id: person.user
|
|
state: home
|
|
- condition: template
|
|
value_template: '{{ (as_timestamp(now()) - as_timestamp(states.conversation.last_conversation_time
|
|
| default(0))) > 3600 }}
|
|
|
|
'
|
|
action:
|
|
- service: assist_satellite.start_conversation
|
|
target:
|
|
entity_id: assist_satellite.square_voice
|
|
data:
|
|
start_message: '[PROACTIVE] loneliness_check: User is home but no interaction
|
|
for {{ ((as_timestamp(now()) - as_timestamp(states.conversation.last_conversation_time
|
|
| default(0))) / 60) | round }} minutes, feeling a bit lonely'
|
|
extra_system_prompt: You haven't talked to the user in a while and want to check
|
|
in. Be friendly and offer companionship or suggest activities.
|
|
- id: cube_proactive_weather_alert
|
|
alias: 'Cube: Proactive Weather Alert'
|
|
trigger:
|
|
- platform: state
|
|
entity_id: weather.home
|
|
attribute: condition
|
|
to: rainy
|
|
action:
|
|
- service: assist_satellite.start_conversation
|
|
target:
|
|
entity_id: assist_satellite.square_voice
|
|
data:
|
|
start_message: '[PROACTIVE] weather_change_alert: Weather changed to {{ states(''weather.home'')
|
|
}}, might want to let you know about potential impacts'
|
|
extra_system_prompt: The weather has changed and you want to inform the user
|
|
about potential impacts or suggestions related to the new weather conditions.
|