⛔ Offline Devices Report : Easy Customize Includes & Excludes, Notifications + More

:no_entry: Offline Devices Report with Notification Actions

New for 03d… Fixed the Individual Entity Selector & added a Real-Time Debug option

🚀 Version 2026.01.03.03d

Features

📱 Device Notifications
   - Send alerts to mobile devices via mobile_app integration
   - iOS and Android specific notification options
   - Configurable interruption levels and sounds

📢 Persistent Web UI Notifications
   - Dashboard notifications for offline devices
   - Optional "no issues" confirmation messages

⚡ Execution methods
   - Schedule Time and Day(s)
   - Manual trigger via button
   - Debug mode for immediate offline/unknown state changes

🚫️ Entity exclusion options
   - Directly select specific entities
   - Pattern-based exclusions using text strings
   - Case-sensitive matching for precise control
   - Include or Exclude entities with Visability disabled in HA (hidden entities)

📈 Flexible display formats
   - Friendly names only
   - Entity IDs only
   - Combined format (Friendly Name + Entity ID)

🎬 Custom actions after report
   - Add offline devices to To-Do list automatically
   - Action buttons in notifications for manual control
   - Custom automation actions integration
   - {{ offline_devices }} variable returns a formatted list of offline devices
   - {{ offline_devices_count }} variable returns the count of offline devices	   

📡 Smart device detection
   - Automatic battery sensor identification
   - Switch monitoring for offline states
   - Combined or separate reporting options

📖 Logging
   - Debug to Logbook
   - Easy troubleshooting configuration

🔧 Real-Time Debug Mode (Short-term troubleshooting only)
   - Trigger on entity state changes to offline/unknown
   - Configurable delay to confirm persistent offline state
   - Uses same exclusions as scheduled reports

Monitors all sources Zigbee, Zwave, Wifi, etc

Will list entities from domains:

  • sensor.*
  • binary_sensor.*
  • switch.*

and these domains are NOT monitored at all…

  • climate.*
  • light.*
  • media_player.*
  • device_tracker.*
  • input_*
  • automation.*
  • script.*
  • scene.*
  • weather.*
  • camera.*
  • person.*
  • zone.*
  • sun.*
  • timer.*
  • counter.*
  • calendar.*

Open your Home Assistant instance and show the blueprint import dialog with a specific blueprint pre-filled.

5 Likes

Is this exclude only? I recently have been using template sensors and labels to filter leak sensors that I want a notification for if they don’t report. I was gonna try this blueprint out. Do I have to exclude everything except them?

The blueprint is made to monitor the system, not just one device type. If you only want to monitor one type of entity that is a basic automation easy to create especially using AI. Or just use the blueprint and exclude what you dont want. Still faster than making and testing an automation :wink:

Hi @Ltek, it appears that the blueprint is currently broken, is this correct
?

Logger: homeassistant.components.websocket_api.http.connection
Source: components/websocket_api/connection.py:315
integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 8:33:37 PM (8 occurrences)
Last logged: 8:34:22 PM

[140629726185888] Error handling message: while scanning a simple key in "<unicode string>", line 50, column 3: 👨‍👨‍👦‍👦 Community Discussion, He ... ^ could not find expected ':' in "<unicode string>", line 52, column 3: domain: automation ^ (home_assistant_error)  from 10.0.1.146 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36)
[140629679507072] Error handling message: while scanning a simple key in "<unicode string>", line 50, column 3: 👨‍👨‍👦‍👦 Community Discussion, He ... ^ could not find expected ':' in "<unicode string>", line 52, column 3: domain: automation ^ (home_assistant_error) from 10.0.1.146 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36)
[140630354455392] Error handling message: while scanning a simple key in "<unicode string>", line 50, column 3: 👨‍👨‍👦‍👦 Community Discussion, He ... ^ could not find expected ':' in "<unicode string>", line 52, column 3: domain: automation ^ (home_assistant_error) from 10.0.1.146 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36)

YAML indentation error (YAML sux). Should be fixed now – please test and LMK. thx

1 Like

When I run the blueprint/automation, I get a notification for my LG washer and dryer (their power state is off). I go into the exclusion settings to exclude them and click on “Add target” and it doesn’t matter what I click on or what I type in there, but I can’t see any entities/devices/areas/etc. What am I doing wrong?

Fixed the Selector. Please DL the version I posted today and LMK how it goes. I did some code optimization and added a Real-Time Debug option

After importing the latest, I don’t get the dryer or washer power unavailable which makes sense as they’re not zigbee devices and I didn’t have to exclude them. Not sure if that means it’s working appropriately or if it means that it’s not working at all, but I don’t get a false positive any more. Thanks!

This blueprint is not specific Zigbee, Zwave, Wifi, etc

By default, it lists domains:

  • sensor
  • binary_sensor
  • switch

and these domains are NOT monitored at all…

  • climate.*
  • light.*
  • media_player.*
  • device_tracker.*
  • input_*
  • automation.*
  • script.*
  • scene.*
  • weather.*
  • camera.*
  • person.*
  • zone.*
  • sun.*
  • timer.*
  • counter.*
  • calendar.*

I have set this blueprint up however it is not triggering at the time set. Any advice?

The logs indicate a loop was detected

I just tested mine again, both manually and using the time schedule, mine ran fine but I did I’ll need to see your YAML and the full logged error

It happens everytime I try to run it or it hits the time.

YAML for the blueprint automation:

alias: Offline Device Report
description: ""
use_blueprint:
  path: Ltek/offline-devices-report-ltek.yaml
  input:
    include_time: time_enabled
    time: "16:37:00"
    include_easy_notify: enable_easy_okay_notify
    notify_device:
      - 3bab068cc8313d9d1b716aaccecd5bc2
    notify_data:
      - high_priority
      - channel
    notify_channel: alarm_stream
    include_persistent_notification: enable_persistent_notification
    include_debug: debug_disabled

For ease of readability - the error log with the long list of sensors removed

Logger: homeassistant.components.template.template_entity
Source: components/template/template_entity.py:337
integration: Template (documentation, issues)
First occurred: 12:20:18 PM (1 occurrence)
Last logged: 12:20:18 PM

Template loop detected while processing event: <Event state_changed[L]: entity_id=binary_sensor.entities_unavailable_or_unknown, old_state=<state binary_sensor.entities_unavailable_or_unknown=on; affected_entities=*[u]LONG LIST OF ENTITIES REMOVED FOR READABILITY[/u]* friendly_name=Entities Unavailable or Unknown @ 2026-01-06T12:18:18.080088-05:00>>, skipping template render for Template[{% set offline_entities = states | selectattr('state', 'in', ['unavailable', 'unknown']) | list %} {% if offline_entities %} {{ offline_entities | map(attribute='name') | list }} {% else %} [] {% endif %}]

Here is the full error log.

Logger: homeassistant.components.template.template_entity
Source: components/template/template_entity.py:337
integration: Template (documentation, issues)
First occurred: 12:20:18 PM (1 occurrence)
Last logged: 12:20:18 PM

Template loop detected while processing event: <Event state_changed[L]: entity_id=binary_sensor.entities_unavailable_or_unknown, old_state=<state binary_sensor.entities_unavailable_or_unknown=on; affected_entities=['stt.home_assistant_cloud', 'notify.adge', 'input_button.morning_button', 'input_button.laundry_time_check', 'input_button.unlockcrosstrek', 'input_button.exitdelay', 'input_button.entrydelay', 'input_button.remotestartcrosstrek', 'person.adge', 'person.dashboards', 'person.alarmpanel', 'tag.arm_bypass', 'input_text.washerrunning', 'switch.sonoff_a44003cab9', 'sensor.myggspray_wrlss_mtn_sensor_battery', 'sensor.myggspray_wrlss_mtn_sensor_battery_voltage', 'sensor.myggspray_wrlss_mtn_sensor_battery_type', 'update.myggspray_wrlss_mtn_sensor_firmware', 'button.myggspray_wrlss_mtn_sensor_identify_1', 'sensor.myggspray_wrlss_mtn_sensor_illuminance', 'binary_sensor.myggspray_wrlss_mtn_sensor_occupancy', 'button.myggspray_wrlss_mtn_sensor_identify_2', 'button.myggspray_wrlss_mtn_sensor_identify_1_2', 'button.myggspray_wrlss_mtn_sensor_identify_2_2', 'button.myggspray_wrlss_mtn_sensor_identify_1_3', 'button.myggspray_wrlss_mtn_sensor_identify_2_3', 'sensor.adgenp3_car_odometer', 'sensor.iphone_sim_2', 'sensor.iphone_sim_1', 'sensor.iphone_storage', 'sensor.iphone_geocoded_location', 'sensor.iphone_last_update_trigger', 'sensor.iphone_audio_output', 'sensor.iphone_ssid', 'sensor.iphone_bssid', 'sensor.iphone_connection_type', 'device_tracker.huaweitablet', 'device_tracker.alarm_tablet', 'sensor.adgeipadmini_connection_type', 'sensor.adgeipadmini_geocoded_location', 'sensor.adgeipadmini_ssid', 'sensor.adgeipadmini_bssid', 'sensor.adgeipadmini_storage', 'sensor.adgeipadmini_last_update_trigger', 'sensor.adgeipadmini_audio_output', 'button.ringkeypad1_ping', 'button.ringkeypadrear_ping', 'button.sidedoor_ping', 'button.egresswindow_ping', 'button.basementmotion_ping', 'button.ringextender_ping', 'button.floodfreezefurnace_ping', 'button.node_12_ping', 'button.sheddoor_ping', 'button.shedfront_ping', 'button.ringkeypad1_identify', 'button.ringkeypadrear_identify', 'button.sidedoor_identify', 'button.egresswindow_identify', 'button.basementmotion_identify', 'button.ringextender_identify', 'button.sheddoor_identify', 'button.shedfront_identify', 'button.front_door_ping', 'button.uppermotion_ping', 'button.recwindow_ping_2', 'button.front_door_identify', 'button.uppermotion_identify', 'button.recwindow_identify_2', 'button.rec_speaker_favorite_current_song', 'button.kitchen_hub_favorite_current_song', 'button.main_floor_airplay_favorite_current_song_2', 'button.basement_favorite_current_song', 'button.adrians_mac_mini_airplay_favorite_current_song', 'media_player.adrians_mac_mini_airplay', 'button.ap68e6bcad7e4a_favorite_current_song', 'button.adrians_macbook_pro_airplay_favorite_current_song', 'media_player.adrians_macbook_pro_airplay', 'button.hubspace_api_smithad150_gmail_com_generate_debug', 'button.hubspace_api_smithad150_gmail_com_generate_raw', 'sensor.peterborough_humidex', 'sensor.peterborough_chance_of_precipitation', 'sensor.peterborough_tendency', 'sensor.peterborough_uv_index', 'sensor.peterborough_wind_gust', 'button.doorbell_camera_reboot', 'button.doorbell_camera_set_system_date_and_time', 'lock.crosstrek_door_locks', 'button.crosstrek_horn_start', 'button.crosstrek_horn_stop', 'button.crosstrek_lights_start', 'button.crosstrek_lights_stop', 'button.crosstrek_remote_stop', 'sensor.rec_corner_auto_off_at', 'sensor.living_room_plant_auto_off_at', 'sensor.doorbellauto_auto_off_at', 'sensor.outdoor_accessory_on_since', 'light.esphome_web_a2ac78_armed_2', 'light.esphome_web_a2ac78_disarmed_2', 'light.esphome_web_a2ac78_arming', 'binary_sensor.esphome_web_a2ac78_adrian_tag_2', 'button.rfidreader1_disarmed_buzzer_button', 'button.rfidreader1_open_sensor_button', 'button.rfidreader1_armed_buzzer_button', 'switch.rfidreader1_is_armed', 'switch.rfidreader1_is_disarmed', 'switch.rfidreader1_is_arming', 'switch.rfidreader1_timer_delay', 'button.nspanel_backroom_restart', 'button.nspanel_backroom_update_tft_display', 'button.nspanel_basement_restart', 'button.nspanel_basement_update_tft_display', 'media_player.audiotest_mediatestspkr', 'light.rfid_atom_front_fd61a0_status_led', 'switch.rfid_atom_front_fd61a0_armed', 'switch.rfid_atom_front_fd61a0_disarmed', 'switch.rfid_atom_front_fd61a0_countdown', 'media_player.rfid_atom_front_fd61a0_rfidfrontspkr', 'light.m5stack_atom_echo_fd6760_esp32led', 'light.m5stack_atom_echo_fd6760_status_led', 'binary_sensor.m5stack_atom_echo_fd6760_button', 'media_player.m5stack_atom_echo_fd6760_rfidfrontspkr', 'button.m5stack_atom_echo_fd6760_safe_mode_boot', 'button.m5stack_atom_echo_fd6760_factory_reset', 'button.m5stack_atom_echo_fd6760_entry', 'button.m5stack_atom_echo_fd6760_exit', 'media_player.simpleaudioplayer_media_player', 'media_player.laundryrover_esp_speaker', 'button.lenovo_alarm_tablet_fullykiosk_restart_browser', 'button.lenovo_alarm_tablet_fullykiosk_restart_device', 'button.lenovo_alarm_tablet_fullykiosk_bring_to_foreground', 'button.lenovo_alarm_tablet_fullykiosk_send_to_background', 'button.lenovo_alarm_tablet_fullykiosk_load_start_url', 'button.lenovo_alarm_tablet_fullykiosk_clear_browser_cache', 'image.lenovo_alarm_tablet_fullykiosk_screenshot', 'notify.lenovo_alarm_tablet_fullykiosk_overlay_message', 'notify.lenovo_alarm_tablet_fullykiosk_text_to_speech', 'button.main_floor_identify', 'button.main_floor_clear_hold', 'button.bedroom_identify', 'button.basement_identify', 'select.main_floor_current_mode', 'button.front_door_wake', 'button.scrypted_84c5_identify', 'button.frontptzdriveway_identify', 'button.frontptzmain_identify', 'button.frontptzdoorbell_identify', 'button.scrypted_android_app_smithad150_identify', 'button.backyardactivitysensor_identify', 'button.drivewaypersondetector_identify', 'button.fronttapopersondetector_identify', 'button.backyardanimaldetector_identify', 'button.frontsidetapopersondetector_identify', 'button.driveway_identify', 'button.backyard_identify', 'button.dogcam_identify', 'button.basement_identify_2', 'button.fronttapo_identify', 'button.frontsidetapo_identify', 'button.shed_identify', 'button.advanced_notifier_alarm_system_identify', 'button.dishwasher_stop_program', 'button.tapo_hub_pair_new_device', 'sensor.main_pipe_water_leak_last_water_leak_alert', 'media_player.shield', 'media_player.shed_mini', 'update.hubspace_homeassistant_update', 'sensor.home_alarm_info', 'binary_sensor.home_alarm_tamper', 'binary_sensor.home_base_station_tamper', 'sensor.home_base_station_info', 'sensor.home_base_station_wireless', 'switch.home_alarm_siren', 'number.home_base_station_volume', 'media_player.shed_mini_2', 'button.adrians_mac_mini_airplay_favorite_current_song_2', 'media_player.adrians_mac_mini_airplay_2', 'button.main_floor_airplay_favorite_current_song', 'media_player.main_floor_airplay', 'update.green_button_integration_update_2', 'media_player.gtv', 'button.rfidreader2_i2s_spkr_favorite_current_song', 'media_player.rfidreader2_i2s_spkr', 'button.simpleaudioplayer_media_player_favorite_current_song', 'media_player.simpleaudioplayer_media_player_2', 'select.m5stack_atom_echo_fd6760_assistant', 'select.m5stack_atom_echo_fd6760_assistant_2', 'select.m5stack_atom_echo_fd6760_finished_speaking_detection', 'select.m5stack_atom_echo_fd6760_wake_word', 'select.m5stack_atom_echo_fd6760_wake_word_2', 'assist_satellite.m5stack_atom_echo_fd6760_assist_satellite', 'button.shield_favorite_current_song', 'media_player.shield_2', 'media_player.shield_3', 'button.shield_favorite_current_song_2', 'media_player.shield_4', 'media_player.shield_5', 'button.shield_favorite_current_song_3', 'media_player.shield_6', 'media_player.googletv1172', 'button.lenovo_alarm_tablet_fullykiosk_favorite_current_song', 'media_player.lenovo_alarm_tablet_fullykiosk_2', 'switch.home_alarm_panic_police', 'switch.home_alarm_panic_fire', 'button.indias_macbook_air_airplay_favorite_current_song', 'media_player.indias_macbook_air_airplay', 'button.basement_tv_airplay_favorite_current_song', 'media_player.basement_tv_airplay', 'number.dishwasher_start_in_relative', 'switch.dishwasher_half_load', 'switch.dishwasher_extra_dry', 'switch.dishwasher_hygiene', 'button.basement_group_favorite_current_song', 'media_player.basement_group_2', 'button.living_room_tv_favorite_current_song', 'media_player.living_room_tv_2', 'button.dishwasher_resume_program', 'media_player.doorbell2', 'camera.go2rtcstreams_doorbell3', 'camera.go2rtcstreams_doorbell2', 'update.green_button_integration_update'], affected_friendly_names=['Home Assistant Cloud', 'Adge', 'Morning_Button', 'Laundry Time Check', 'UnlockCrosstrek', 'ExitDelay', 'EntryDelay', 'RemoteStartCrosstrek', 'adge', 'dashboards', 'alarmpanel', 'Arm Bypass', 'washerRunning', 'ZBMINIL2', 'StairwellMotion Battery', 'StairwellMotion Battery voltage', 'StairwellMotion Battery type', 'StairwellMotion Firmware', 'StairwellMotion Identify (1)', 'StairwellMotion Illuminance', 'StairwellMotion Occupancy', 'StairwellMotion Identify (2)', 'Living Room Motion Identify (1)', 'Living Room Motion Identify (2)', 'Kitchen Motion Identify (1)', 'Kitchen Motion Identify (2)', 'adgeNP3 Car odometer', 'iPhone SIM 2', 'iPhone SIM 1', 'iPhone Storage', 'iPhone Geocoded Location', 'iPhone Last Update Trigger', 'iPhone Audio Output', 'iPhone SSID', 'iPhone BSSID', 'iPhone Connection Type', 'HuaweiTablet', 'Alarm Tablet', 'AdgeIpadMini Connection Type', 'AdgeIpadMini Geocoded Location', 'AdgeIpadMini SSID', 'AdgeIpadMini BSSID', 'AdgeIpadMini Storage', 'AdgeIpadMini Last Update Trigger', 'AdgeIpadMini Audio Output', 'RingKeypad1 Ping', 'RingKeypadRear Ping', 'SideDoor Ping', 'EgressWindow Ping', 'BasementMotion Ping', 'RingExtender Ping', 'FloodFreezeFurnace Ping', 'Rear Door Ping', 'ShedDoor Ping', 'ShedFront Ping', 'RingKeypad1 Identify', 'RingKeypadRear Identify', 'SideDoor Identify', 'EgressWindow Identify', 'BasementMotion Identify', 'RingExtender Identify', 'ShedDoor Identify', 'ShedFront Identify', 'Front Door Ping', 'UpperMotion Ping', 'RecWindow Ping', 'Front Door Identify', 'UpperMotion Identify', 'RecWindow Identify', 'Rec Speaker Favorite current song', 'Kitchen Hub Favorite current song', 'Main Floor Favorite current song', 'Basement Favorite current song', 'Adrian’s Mac mini Favorite current song', 'Adrian’s Mac mini', 'LivingRoomRokuTV Favorite current song', 'Adrian’s MacBook Pro Favorite current song', 'Adrian’s MacBook Pro', '[email protected] Generate Debug', '[email protected] Generate Raw', 'Peterborough Humidex', 'Peterborough Chance of precipitation', 'Peterborough Tendency', 'Peterborough UV index', 'Peterborough Wind gust', 'go2rtcStreams Reboot', 'go2rtcStreams Set System Date and Time', 'Crosstrek Door locks', 'Crosstrek Horn start', 'Crosstrek Horn stop', 'Crosstrek Lights start', 'Crosstrek Lights stop', 'Crosstrek Remote Stop', 'Rec Corner Auto-off at', 'Living Room Plant Auto-off at', 'DoorbellAuto Auto-off at', 'Outdoor Accessory On since', 'rfidFront armed', 'rfidFront disarmed', 'rfidFront arming', 'rfidFront Adrian_Tag', 'rfidFront Disarmed buzzer Button', 'rfidFront Open sensor Button', 'rfidFront Armed buzzer Button', 'rfidFront is_armed', 'rfidFront is_disarmed', 'rfidFront is_arming', 'rfidFront Timer Delay', 'nspanel_backroom Restart', 'nspanel_backroom Update TFT display', 'nspanel_basement Restart', 'nspanel_basement Update TFT display', 'rfidReader2 mediaTestSPKR', 'rfid-atom-front Status LED', 'rfid-atom-front Armed', 'rfid-atom-front Disarmed', 'rfid-atom-front Countdown', 'rfid-atom-front rfidFrontSpkr', 'M5Stack Atom Echo fd6760 esp32LED', 'M5Stack Atom Echo fd6760 Status LED', 'M5Stack Atom Echo fd6760 Button', 'M5Stack Atom Echo fd6760 rfidFrontSpkr', 'M5Stack Atom Echo fd6760 Safe Mode Boot', 'M5Stack Atom Echo fd6760 Factory reset', 'M5Stack Atom Echo fd6760 Entry', 'M5Stack Atom Echo fd6760 Exit', 'simpleAudioPlayer Media Player', 'LaundryRover esp_speaker', 'Lenovo Alarm Tablet FullyKiosk Restart browser', 'Lenovo Alarm Tablet FullyKiosk Restart device', 'Lenovo Alarm Tablet FullyKiosk Bring to foreground', 'Lenovo Alarm Tablet FullyKiosk Send to background', 'Lenovo Alarm Tablet FullyKiosk Load start URL', 'Lenovo Alarm Tablet FullyKiosk Clear browser cache', 'Lenovo Alarm Tablet FullyKiosk Screenshot', 'Lenovo Alarm Tablet FullyKiosk Overlay message', 'Lenovo Alarm Tablet FullyKiosk Text to speech', 'Main Floor Identify', 'Main Floor Clear Hold', 'Bedroom Identify', 'Basement Identify', 'Main Floor Current Mode', 'Front Door Lock Sensor Wake', 'Scrypted 84C5 Identify', 'FrontPTZDriveway Identify', 'FrontPTZMain Identify', 'FrontPTZDoorbell Identify', 'Scrypted Android App smithad150 Identify', 'BackyardActivitySensor Identify', 'DrivewayPersonDetector Identify', 'FrontTapoPersonDetector Identify', 'BackyardAnimalDetector Identify', 'FrontSideTapoPersonDetector Identify', 'Driveway Identify', 'Backyard Identify', 'DogCam Identify', 'Basement Identify', 'FrontTapo Identify', 'FrontSideTapo Identify', 'Shed Identify', 'Advanced notifier alarm system Identify', 'Dishwasher Stop program', 'Tapo Hub Pair new device', 'Main Pipe Water Leak Last water leak alert', 'Shield', 'Shed Mini', 'Hubspace-Homeassistant update', 'Info', 'Tamper', 'Tamper', 'Info', 'Wireless', 'Siren', 'Volume', 'shed mini 2', 'Favorite current song', 'adrians mac mini airplay 2', 'Favorite current song', 'main floor airplay', 'Green Button integration update', 'GTV', 'Favorite current song', 'rfidreader2 i2s spkr', 'Favorite current song', 'simpleaudioplayer media player 2', 'Assistant', 'Assistant 2', 'Finished speaking detection', 'Wake word', 'Wake word 2', 'Assist satellite', 'Favorite current song', 'shield 2', 'shield 3', 'Favorite current song', 'shield 4', 'shield 5', 'Favorite current song', 'shield 6', 'googletv1172', 'Favorite current song', 'lenovo alarm tablet fullykiosk 2', 'Panic - Police', 'Panic - Fire', 'Favorite current song', 'indias macbook air airplay', 'Favorite current song', 'basement tv airplay', 'Start in relative', 'Half load', 'Extra dry', 'Hygiene +', 'Favorite current song', 'basement group 2', 'Favorite current song', 'living room tv 2', 'Resume program', 'doorbell', 'go2rtcStreams doorbell3', 'go2rtcStreams doorbell2', 'Green Button integration update'], friendly_name=Entities Unavailable or Unknown @ 2026-01-06T12:18:18.080088-05:00>, new_state=<state binary_sensor.entities_unavailable_or_unknown=on; affected_entities=['stt.home_assistant_cloud', 'notify.adge', 'input_button.morning_button', 'input_button.laundry_time_check', 'input_button.unlockcrosstrek', 'input_button.exitdelay', 'input_button.entrydelay', 'input_button.remotestartcrosstrek', 'person.adge', 'person.dashboards', 'person.alarmpanel', 'tag.arm_bypass', 'input_text.washerrunning', 'switch.sonoff_a44003cab9', 'sensor.myggspray_wrlss_mtn_sensor_battery', 'sensor.myggspray_wrlss_mtn_sensor_battery_voltage', 'sensor.myggspray_wrlss_mtn_sensor_battery_type', 'update.myggspray_wrlss_mtn_sensor_firmware', 'button.myggspray_wrlss_mtn_sensor_identify_1', 'sensor.myggspray_wrlss_mtn_sensor_illuminance', 'binary_sensor.myggspray_wrlss_mtn_sensor_occupancy', 'button.myggspray_wrlss_mtn_sensor_identify_2', 'button.myggspray_wrlss_mtn_sensor_identify_1_2', 'button.myggspray_wrlss_mtn_sensor_identify_2_2', 'button.myggspray_wrlss_mtn_sensor_identify_1_3', 'button.myggspray_wrlss_mtn_sensor_identify_2_3', 'sensor.adgenp3_car_odometer', 'sensor.iphone_sim_2', 'sensor.iphone_sim_1', 'sensor.iphone_storage', 'sensor.iphone_geocoded_location', 'sensor.iphone_last_update_trigger', 'sensor.iphone_audio_output', 'sensor.iphone_ssid', 'sensor.iphone_bssid', 'sensor.iphone_connection_type', 'device_tracker.huaweitablet', 'device_tracker.alarm_tablet', 'sensor.adgeipadmini_connection_type', 'sensor.adgeipadmini_geocoded_location', 'sensor.adgeipadmini_ssid', 'sensor.adgeipadmini_bssid', 'sensor.adgeipadmini_storage', 'sensor.adgeipadmini_last_update_trigger', 'sensor.adgeipadmini_audio_output', 'button.ringkeypad1_ping', 'button.ringkeypadrear_ping', 'button.sidedoor_ping', 'button.egresswindow_ping', 'button.basementmotion_ping', 'button.ringextender_ping', 'button.floodfreezefurnace_ping', 'button.node_12_ping', 'button.sheddoor_ping', 'button.shedfront_ping', 'button.ringkeypad1_identify', 'button.ringkeypadrear_identify', 'button.sidedoor_identify', 'button.egresswindow_identify', 'button.basementmotion_identify', 'button.ringextender_identify', 'button.sheddoor_identify', 'button.shedfront_identify', 'button.front_door_ping', 'button.uppermotion_ping', 'button.recwindow_ping_2', 'button.front_door_identify', 'button.uppermotion_identify', 'button.recwindow_identify_2', 'button.rec_speaker_favorite_current_song', 'button.kitchen_hub_favorite_current_song', 'button.main_floor_airplay_favorite_current_song_2', 'button.basement_favorite_current_song', 'button.adrians_mac_mini_airplay_favorite_current_song', 'media_player.adrians_mac_mini_airplay', 'button.ap68e6bcad7e4a_favorite_current_song', 'button.adrians_macbook_pro_airplay_favorite_current_song', 'media_player.adrians_macbook_pro_airplay', 'button.hubspace_api_smithad150_gmail_com_generate_debug', 'button.hubspace_api_smithad150_gmail_com_generate_raw', 'sensor.peterborough_humidex', 'sensor.peterborough_chance_of_precipitation', 'sensor.peterborough_tendency', 'sensor.peterborough_uv_index', 'sensor.peterborough_wind_gust', 'button.doorbell_camera_reboot', 'button.doorbell_camera_set_system_date_and_time', 'lock.crosstrek_door_locks', 'button.crosstrek_horn_start', 'button.crosstrek_horn_stop', 'button.crosstrek_lights_start', 'button.crosstrek_lights_stop', 'button.crosstrek_remote_stop', 'sensor.rec_corner_auto_off_at', 'sensor.living_room_plant_auto_off_at', 'sensor.doorbellauto_auto_off_at', 'sensor.outdoor_accessory_on_since', 'light.esphome_web_a2ac78_armed_2', 'light.esphome_web_a2ac78_disarmed_2', 'light.esphome_web_a2ac78_arming', 'binary_sensor.esphome_web_a2ac78_adrian_tag_2', 'button.rfidreader1_disarmed_buzzer_button', 'button.rfidreader1_open_sensor_button', 'button.rfidreader1_armed_buzzer_button', 'switch.rfidreader1_is_armed', 'switch.rfidreader1_is_disarmed', 'switch.rfidreader1_is_arming', 'switch.rfidreader1_timer_delay', 'button.nspanel_backroom_restart', 'button.nspanel_backroom_update_tft_display', 'button.nspanel_basement_restart', 'button.nspanel_basement_update_tft_display', 'media_player.audiotest_mediatestspkr', 'light.rfid_atom_front_fd61a0_status_led', 'switch.rfid_atom_front_fd61a0_armed', 'switch.rfid_atom_front_fd61a0_disarmed', 'switch.rfid_atom_front_fd61a0_countdown', 'media_player.rfid_atom_front_fd61a0_rfidfrontspkr', 'light.m5stack_atom_echo_fd6760_esp32led', 'light.m5stack_atom_echo_fd6760_status_led', 'binary_sensor.m5stack_atom_echo_fd6760_button', 'media_player.m5stack_atom_echo_fd6760_rfidfrontspkr', 'button.m5stack_atom_echo_fd6760_safe_mode_boot', 'button.m5stack_atom_echo_fd6760_factory_reset', 'button.m5stack_atom_echo_fd6760_entry', 'button.m5stack_atom_echo_fd6760_exit', 'media_player.simpleaudioplayer_media_player', 'media_player.laundryrover_esp_speaker', 'button.lenovo_alarm_tablet_fullykiosk_restart_browser', 'button.lenovo_alarm_tablet_fullykiosk_restart_device', 'button.lenovo_alarm_tablet_fullykiosk_bring_to_foreground', 'button.lenovo_alarm_tablet_fullykiosk_send_to_background', 'button.lenovo_alarm_tablet_fullykiosk_load_start_url', 'button.lenovo_alarm_tablet_fullykiosk_clear_browser_cache', 'image.lenovo_alarm_tablet_fullykiosk_screenshot', 'notify.lenovo_alarm_tablet_fullykiosk_overlay_message', 'notify.lenovo_alarm_tablet_fullykiosk_text_to_speech', 'button.main_floor_identify', 'button.main_floor_clear_hold', 'button.bedroom_identify', 'button.basement_identify', 'select.main_floor_current_mode', 'button.front_door_wake', 'button.scrypted_84c5_identify', 'button.frontptzdriveway_identify', 'button.frontptzmain_identify', 'button.frontptzdoorbell_identify', 'button.scrypted_android_app_smithad150_identify', 'button.backyardactivitysensor_identify', 'button.drivewaypersondetector_identify', 'button.fronttapopersondetector_identify', 'button.backyardanimaldetector_identify', 'button.frontsidetapopersondetector_identify', 'button.driveway_identify', 'button.backyard_identify', 'button.dogcam_identify', 'button.basement_identify_2', 'button.fronttapo_identify', 'button.frontsidetapo_identify', 'button.shed_identify', 'button.advanced_notifier_alarm_system_identify', 'button.dishwasher_stop_program', 'button.tapo_hub_pair_new_device', 'sensor.main_pipe_water_leak_last_water_leak_alert', 'media_player.shield', 'media_player.shed_mini', 'update.hubspace_homeassistant_update', 'sensor.home_alarm_info', 'binary_sensor.home_alarm_tamper', 'binary_sensor.home_base_station_tamper', 'sensor.home_base_station_info', 'sensor.home_base_station_wireless', 'switch.home_alarm_siren', 'number.home_base_station_volume', 'media_player.shed_mini_2', 'button.adrians_mac_mini_airplay_favorite_current_song_2', 'media_player.adrians_mac_mini_airplay_2', 'button.main_floor_airplay_favorite_current_song', 'media_player.main_floor_airplay', 'update.green_button_integration_update_2', 'media_player.gtv', 'button.rfidreader2_i2s_spkr_favorite_current_song', 'media_player.rfidreader2_i2s_spkr', 'button.simpleaudioplayer_media_player_favorite_current_song', 'media_player.simpleaudioplayer_media_player_2', 'select.m5stack_atom_echo_fd6760_assistant', 'select.m5stack_atom_echo_fd6760_assistant_2', 'select.m5stack_atom_echo_fd6760_finished_speaking_detection', 'select.m5stack_atom_echo_fd6760_wake_word', 'select.m5stack_atom_echo_fd6760_wake_word_2', 'assist_satellite.m5stack_atom_echo_fd6760_assist_satellite', 'button.shield_favorite_current_song', 'media_player.shield_2', 'media_player.shield_3', 'button.shield_favorite_current_song_2', 'media_player.shield_4', 'media_player.shield_5', 'button.shield_favorite_current_song_3', 'media_player.shield_6', 'media_player.googletv1172', 'button.lenovo_alarm_tablet_fullykiosk_favorite_current_song', 'switch.home_alarm_panic_police', 'switch.home_alarm_panic_fire', 'button.indias_macbook_air_airplay_favorite_current_song', 'media_player.indias_macbook_air_airplay', 'button.basement_tv_airplay_favorite_current_song', 'media_player.basement_tv_airplay', 'number.dishwasher_start_in_relative', 'switch.dishwasher_half_load', 'switch.dishwasher_extra_dry', 'switch.dishwasher_hygiene', 'button.basement_group_favorite_current_song', 'button.living_room_tv_favorite_current_song', 'button.dishwasher_resume_program', 'media_player.doorbell2', 'camera.go2rtcstreams_doorbell3', 'camera.go2rtcstreams_doorbell2', 'update.green_button_integration_update'], affected_friendly_names=['Home Assistant Cloud', 'Adge', 'Morning_Button', 'Laundry Time Check', 'UnlockCrosstrek', 'ExitDelay', 'EntryDelay', 'RemoteStartCrosstrek', 'adge', 'dashboards', 'alarmpanel', 'Arm Bypass', 'washerRunning', 'ZBMINIL2', 'StairwellMotion Battery', 'StairwellMotion Battery voltage', 'StairwellMotion Battery type', 'StairwellMotion Firmware', 'StairwellMotion Identify (1)', 'StairwellMotion Illuminance', 'StairwellMotion Occupancy', 'StairwellMotion Identify (2)', 'Living Room Motion Identify (1)', 'Living Room Motion Identify (2)', 'Kitchen Motion Identify (1)', 'Kitchen Motion Identify (2)', 'adgeNP3 Car odometer', 'iPhone SIM 2', 'iPhone SIM 1', 'iPhone Storage', 'iPhone Geocoded Location', 'iPhone Last Update Trigger', 'iPhone Audio Output', 'iPhone SSID', 'iPhone BSSID', 'iPhone Connection Type', 'HuaweiTablet', 'Alarm Tablet', 'AdgeIpadMini Connection Type', 'AdgeIpadMini Geocoded Location', 'AdgeIpadMini SSID', 'AdgeIpadMini BSSID', 'AdgeIpadMini Storage', 'AdgeIpadMini Last Update Trigger', 'AdgeIpadMini Audio Output', 'RingKeypad1 Ping', 'RingKeypadRear Ping', 'SideDoor Ping', 'EgressWindow Ping', 'BasementMotion Ping', 'RingExtender Ping', 'FloodFreezeFurnace Ping', 'Rear Door Ping', 'ShedDoor Ping', 'ShedFront Ping', 'RingKeypad1 Identify', 'RingKeypadRear Identify', 'SideDoor Identify', 'EgressWindow Identify', 'BasementMotion Identify', 'RingExtender Identify', 'ShedDoor Identify', 'ShedFront Identify', 'Front Door Ping', 'UpperMotion Ping', 'RecWindow Ping', 'Front Door Identify', 'UpperMotion Identify', 'RecWindow Identify', 'Rec Speaker Favorite current song', 'Kitchen Hub Favorite current song', 'Main Floor Favorite current song', 'Basement Favorite current song', 'Adrian’s Mac mini Favorite current song', 'Adrian’s Mac mini', 'LivingRoomRokuTV Favorite current song', 'Adrian’s MacBook Pro Favorite current song', 'Adrian’s MacBook Pro', '[email protected] Generate Debug', '[email protected] Generate Raw', 'Peterborough Humidex', 'Peterborough Chance of precipitation', 'Peterborough Tendency', 'Peterborough UV index', 'Peterborough Wind gust', 'go2rtcStreams Reboot', 'go2rtcStreams Set System Date and Time', 'Crosstrek Door locks', 'Crosstrek Horn start', 'Crosstrek Horn stop', 'Crosstrek Lights start', 'Crosstrek Lights stop', 'Crosstrek Remote Stop', 'Rec Corner Auto-off at', 'Living Room Plant Auto-off at', 'DoorbellAuto Auto-off at', 'Outdoor Accessory On since', 'rfidFront armed', 'rfidFront disarmed', 'rfidFront arming', 'rfidFront Adrian_Tag', 'rfidFront Disarmed buzzer Button', 'rfidFront Open sensor Button', 'rfidFront Armed buzzer Button', 'rfidFront is_armed', 'rfidFront is_disarmed', 'rfidFront is_arming', 'rfidFront Timer Delay', 'nspanel_backroom Restart', 'nspanel_backroom Update TFT display', 'nspanel_basement Restart', 'nspanel_basement Update TFT display', 'rfidReader2 mediaTestSPKR', 'rfid-atom-front Status LED', 'rfid-atom-front Armed', 'rfid-atom-front Disarmed', 'rfid-atom-front Countdown', 'rfid-atom-front rfidFrontSpkr', 'M5Stack Atom Echo fd6760 esp32LED', 'M5Stack Atom Echo fd6760 Status LED', 'M5Stack Atom Echo fd6760 Button', 'M5Stack Atom Echo fd6760 rfidFrontSpkr', 'M5Stack Atom Echo fd6760 Safe Mode Boot', 'M5Stack Atom Echo fd6760 Factory reset', 'M5Stack Atom Echo fd6760 Entry', 'M5Stack Atom Echo fd6760 Exit', 'simpleAudioPlayer Media Player', 'LaundryRover esp_speaker', 'Lenovo Alarm Tablet FullyKiosk Restart browser', 'Lenovo Alarm Tablet FullyKiosk Restart device', 'Lenovo Alarm Tablet FullyKiosk Bring to foreground', 'Lenovo Alarm Tablet FullyKiosk Send to background', 'Lenovo Alarm Tablet FullyKiosk Load start URL', 'Lenovo Alarm Tablet FullyKiosk Clear browser cache', 'Lenovo Alarm Tablet FullyKiosk Screenshot', 'Lenovo Alarm Tablet FullyKiosk Overlay message', 'Lenovo Alarm Tablet FullyKiosk Text to speech', 'Main Floor Identify', 'Main Floor Clear Hold', 'Bedroom Identify', 'Basement Identify', 'Main Floor Current Mode', 'Front Door Lock Sensor Wake', 'Scrypted 84C5 Identify', 'FrontPTZDriveway Identify', 'FrontPTZMain Identify', 'FrontPTZDoorbell Identify', 'Scrypted Android App smithad150 Identify', 'BackyardActivitySensor Identify', 'DrivewayPersonDetector Identify', 'FrontTapoPersonDetector Identify', 'BackyardAnimalDetector Identify', 'FrontSideTapoPersonDetector Identify', 'Driveway Identify', 'Backyard Identify', 'DogCam Identify', 'Basement Identify', 'FrontTapo Identify', 'FrontSideTapo Identify', 'Shed Identify', 'Advanced notifier alarm system Identify', 'Dishwasher Stop program', 'Tapo Hub Pair new device', 'Main Pipe Water Leak Last water leak alert', 'Shield', 'Shed Mini', 'Hubspace-Homeassistant update', 'Info', 'Tamper', 'Tamper', 'Info', 'Wireless', 'Siren', 'Volume', 'shed mini 2', 'Favorite current song', 'adrians mac mini airplay 2', 'Favorite current song', 'main floor airplay', 'Green Button integration update', 'GTV', 'Favorite current song', 'rfidreader2 i2s spkr', 'Favorite current song', 'simpleaudioplayer media player 2', 'Assistant', 'Assistant 2', 'Finished speaking detection', 'Wake word', 'Wake word 2', 'Assist satellite', 'Favorite current song', 'shield 2', 'shield 3', 'Favorite current song', 'shield 4', 'shield 5', 'Favorite current song', 'shield 6', 'googletv1172', 'Favorite current song', 'lenovo alarm tablet fullykiosk 2', 'Panic - Police', 'Panic - Fire', 'Favorite current song', 'indias macbook air airplay', 'Favorite current song', 'basement tv airplay', 'Start in relative', 'Half load', 'Extra dry', 'Hygiene +', 'Favorite current song', 'basement group 2', 'Favorite current song', 'living room tv 2', 'Resume program', 'doorbell', 'go2rtcStreams doorbell3', 'go2rtcStreams doorbell2', 'Green Button integration update'], friendly_name=Entities Unavailable or Unknown @ 2026-01-06T12:18:18.080088-05:00>>, skipping template render for Template[{% set offline_entities = states | selectattr('state', 'in', ['unavailable', 'unknown']) | list %} {% if offline_entities %} {{ offline_entities | map(attribute='name') | list }} {% else %} [] {% endif %}]

here is my logs from running it with button push and it never even logs an event in the trace file

2026-01-06 12:33:10.001 ERROR (MainThread) [homeassistant.components.automation.offline_devices_report_with_notification_actions] Error rendering variables: UndefinedError: ‘annotatedyaml.objects.NodeStrClass object’ has no attribute ‘hours’

Manual run just now, here is the error log:

Logger: homeassistant.components.automation.offline_device_report
Source: components/automation/__init__.py:724
integration: Automation (documentation, issues)
First occurred: 12:38:24 PM (1 occurrence)
Last logged: 12:38:24 PM

Error rendering variables: UndefinedError: 'annotatedyaml.objects.NodeStrClass object' has no attribute 'hours'

@smithad150 @kobejo34

Posted version 06d with a debug time delay bug fixed that was causing some of your issues.

@smithad150
the error on the loop is coming from your own template binary sensor entity_id: binary_sensor.entities_unavailable_or_unknown

I suggest you exclude template entities. You can also try hidding (disable Visability) within HA’s properties and then set “Exclude Hidden Entities” in the blueprint. That should work too I suspect.

Thanks for that advice - entity disabled and no more loop error. Still getting the error : ‘hours’ attribute even after re-importing the Blueprint to override.

try 07d, just uploaded.

I cant get it to error even on the last code but this code should handle anything you throw at it (I hope)
I tested the debug delay times 0:00:00 and 1:01:01

This update resolved this issue. Thank you.

1 Like