diff --git a/recorder_exclude.yaml b/recorder_exclude.yaml new file mode 100644 index 0000000..9a0a998 --- /dev/null +++ b/recorder_exclude.yaml @@ -0,0 +1,137 @@ +# ===================================================================== +# Home Assistant Recorder Exclude Configuration +# ===================================================================== +# Add this to your configuration.yaml (merge with existing recorder: if any) +# +# This config excludes high-churn, low-value entities from the recorder +# database. These entities will still work in automations, dashboards, +# and templates — they just won't have historical data stored. +# +# Estimated impact: ~2,500+ fewer state changes recorded per hour +# ===================================================================== + +recorder: + # Keep 5 days of history (down from default 10) - reduces DB size significantly + purge_keep_days: 5 + # Commit every 3 seconds instead of 1 - reduces disk I/O + commit_interval: 3 + + exclude: + # ----------------------------------------------------------------- + # DOMAINS: Exclude entire domains that don't need history + # ----------------------------------------------------------------- + domains: + - update # 82 update entities - we don't need a history of available updates + - input_button # Momentary buttons - no useful history + + # ----------------------------------------------------------------- + # ENTITY GLOBS: Pattern-based exclusions for bulk noisy entities + # ----------------------------------------------------------------- + entity_globs: + # -- browser_mod: 228 entities, 200 unavailable (stale sessions) -- + - sensor.browser_mod_* + - media_player.browser_mod_* + - light.browser_mod_* + - binary_sensor.browser_mod_* + + # -- iCloud3: Generates 1000+ state changes per 4 hours -- + - sensor.icloud3_* + - sensor.jess_iphone_15_next_update + - sensor.jess_iphone_15_last_update + - sensor.jess_iphone_15_last_located + - sensor.jess_iphone_15_info + - sensor.jess_iphone_15_interval + - sensor.jess_iphone_15_moved_distance + - sensor.jess_iphone_15_travel_time + - sensor.jess_iphone_15_travel_time_min + - sensor.jess_iphone_15_zone_distance + - sensor.jess_iphone_15_zone_name + - sensor.jess_iphone_15_badge + - sensor.jess_iphone_15_dir_of_travel + - sensor.jess_apple_watch_5_next_update + - sensor.jess_apple_watch_5_last_update + - sensor.jess_apple_watch_5_last_located + - sensor.jess_apple_watch_5_info + - sensor.jess_apple_watch_5_interval + - sensor.jess_apple_watch_5_moved_distance + - sensor.jess_apple_watch_5_travel_time + - sensor.jess_apple_watch_5_travel_time_min + - sensor.jess_apple_watch_5_zone_distance + - sensor.jess_apple_watch_5_zone_name + - sensor.jess_apple_watch_5_badge + - sensor.jess_apple_watch_5_dir_of_travel + + # -- Frigate: Count sensors that are almost always 0 -- + - sensor.*_all_count + - sensor.*_all_active_count + - sensor.*_car_count + - sensor.*_car_active_count + - sensor.*_cat_count + - sensor.*_cat_active_count + - sensor.*_dog_count + - sensor.*_dog_active_count + - sensor.*_person_count + - sensor.*_person_active_count + - sensor.*_review_status + - sensor.*_last_recognized_plate + + # -- Frigate: Occupancy binary sensors that flap constantly -- + - binary_sensor.*_cat_occupancy + - binary_sensor.*_dog_occupancy + - binary_sensor.*_all_occupancy + + # -- Plex: All those unavailable client media players -- + - media_player.plex_* + + # -- Pioneer VSX-832 duplicates (keep only vsx_832 and pioneer_vsx_832_6) -- + - media_player.pioneer_vsx_8326352 + - media_player.pioneer_vsx_832_2 + - media_player.pioneer_vsx_832_25 + - media_player.pioneer_vsx_832_3 + - media_player.pioneer_vsx_832_4 + - media_player.pioneer_vsx_832_5 + + # -- VSX-832 mute switches (all unavailable) -- + - switch.vsx_832_mute_* + + # -- Proxmox last_boot sensors (static values, change once per reboot) -- + - sensor.*_last_boot + + # -- F1 Sensor (76 entities, most unavailable off-season) -- + - sensor.f1_* + - select.f1_* + + # -- Misc hash-ID entities (likely orphaned browser_mod/plex sessions) -- + - media_player.*_???????? + + # -- qBittorrent status (high churn, low value for history) -- + - sensor.qbittorrent_status + - sensor.qbittorrent_active_torrents + - sensor.qbittorrent_inactive_torrents + - sensor.qbittorrent_errored_torrents + - sensor.qbittorrent_connection_status + + # ----------------------------------------------------------------- + # SPECIFIC ENTITIES: Individual high-churn entities + # ----------------------------------------------------------------- + entities: + # Time sensors - 720 state changes per hour combined, pointless to record + - sensor.date_time + - sensor.time + - sensor.time_2 + + # Frigate motion (useful for automations, but constant flapping doesn't need history) + - binary_sensor.backyard_motion + - binary_sensor.driveway_motion + + # Mobile app sensors that update constantly + - sensor.jess_iphone_audio_output + - sensor.jess_iphone_app_version + - sensor.jess_iphone_location_permission + - sensor.jess_iphone_watch_battery + - sensor.jess_iphone_watch_battery_state + - sensor.jess_phone_last_update_trigger + + # Frigate internal sensor + - sensor.frigate_coral_inference_speed + - sensor.frigate_uptime