- 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.