- Works directly in SSH add-on (no Python required) - Line-by-line YAML parsing - Preserves indentation and structure - Color-coded output - Automatic backups with restore script - Removes 19 input_booleans and 10 scripts
Home Assistant Chore Cleanup Script
Automatically removes unused chore-related entities from your Home Assistant YAML configuration files.
🎯 What It Does
This script identifies and removes 46 unused entities from your Home Assistant configuration:
- 19 Input Booleans: Unused task tracking booleans (personal desk/room cleaning, generic tasks)
- 7 Duplicate Scripts: Old naming convention (
complete_task_*versions) - 3 Generic Scripts: Unused completion scripts
✅ Safety Features
- Automatic Backups: Creates timestamped backups before making ANY changes
- Restore Script: Generates a one-click restore script in case you need to undo
- Dry-run Capable: Review what will be removed before committing
- Error Handling: Continues even if some files fail, reports all errors at end
📋 What Gets Removed
Input Booleans (19 items)
task_lou_clean_desk_pending
task_jess_clean_desk_pending
task_william_clean_desk_pending
task_xander_clean_desk_pending
task_bella_clean_desk_pending
task_lou_clean_room_pending
task_jess_clean_room_pending
task_william_clean_room_pending
task_xander_clean_room_pending
task_bella_clean_room_pending
task_tidy_lounge_pending
task_vacuum_room_pending
task_get_school_ready_pending
task_clean_desks_done_this_week
task_clean_rooms_done_this_week
task_tidy_lounge_done_this_week
task_tidy_kitchen_done_today
task_clean_dining_table_done_today
task_vacuum_room_done_today
Scripts (10 items)
complete_task_dishwasher_unload (duplicate)
complete_task_washing_machine_unload (duplicate)
complete_task_dryer_unload (duplicate)
complete_task_bins_out (duplicate)
complete_task_bins_in (duplicate)
complete_task_kitty_litter_clean (duplicate)
complete_task_kitty_litter_change (duplicate)
complete_tidy_lounge (unused)
complete_vacuum_room (unused)
complete_get_school_ready (unused)
🚀 Usage
Method 1: Run Directly on Home Assistant
# SSH into your Home Assistant instance
ssh root@homeassistant.local
# Copy the script to your config directory
# (You can upload via File Editor add-on or SCP)
# Make it executable
chmod +x /config/ha_chore_cleanup.py
# Run the script
python3 /config/ha_chore_cleanup.py
Method 2: Run from Any Machine (with path)
# If your Home Assistant config is mounted elsewhere
python3 ha_chore_cleanup.py /path/to/your/config
Method 3: Via Home Assistant Terminal Add-on
- Install "Terminal & SSH" add-on
- Upload script via File Editor
- Run in terminal:
cd /config
python3 ha_chore_cleanup.py
📂 What Files Get Modified
The script will search and modify these files if they exist:
configuration.yaml(if entities are defined inline)input_boolean.yamlorinput_booleans.yamlscripts.yamlorscript.yamlhelpers.yaml(if it exists)- Any files in
packages/directory containing the target entities
🔄 Backup Location
Backups are saved to:
/config/backups/cleanup_YYYYMMDD_HHMMSS/
Each backup directory contains:
- Original YAML files before modification
restore.sh- One-click restoration script
⚠️ Important Notes
What's KEPT (Safe to Keep)
The script does NOT remove these items because they're actively used:
Tracking Booleans (used in automation conditions):
task_bella_clothes_done_todaytask_xander_clothes_done_todaytask_william_clothes_done_todaytask_handwash_dishes_done_todaytask_feed_chips_done_todaytask_feed_harper_done_todaytask_water_chips_done_todaytask_water_harper_done_todaytask_kitty_litter_clean_done_todaytask_kitty_litter_change_done_fortnight
These prevent duplicate task creation and are referenced in your automations.
Files with !include Directives
If the script encounters YAML files with !include or !secret directives, it will:
- Create a backup
- Skip automatic modification
- Report the file for manual review
📊 Expected Output
======================================================================
Home Assistant Chore Cleanup Script
======================================================================
✓ Created backup directory: /config/backups/cleanup_20241223_150000
Processing configuration.yaml...
✓ Backed up: configuration.yaml
Removed 5 input_boolean entries
Removed 3 script entries
✓ Saved: configuration.yaml
Processing input_boolean.yaml...
✓ Backed up: input_boolean.yaml
✓ Removed 14 input_boolean entries
✓ Saved: input_boolean.yaml
Processing scripts.yaml...
✓ Backed up: scripts.yaml
✓ Removed 7 script entries
✓ Saved: scripts.yaml
======================================================================
CLEANUP SUMMARY
======================================================================
✓ Backups saved to: /config/backups/cleanup_20241223_150000
📋 Input Booleans Removed: 19
- task_bella_clean_desk_pending
- task_clean_desks_done_this_week
[... full list ...]
📜 Scripts Removed: 10
- complete_get_school_ready
- complete_task_bins_in
[... full list ...]
======================================================================
NEXT STEPS:
======================================================================
1. Review the changes in your YAML files
2. Run 'ha core check' to verify configuration
3. If everything looks good, restart Home Assistant
4. If issues occur, restore from backups
======================================================================
🔧 Post-Cleanup Steps
1. Verify Configuration
# Check configuration is valid
ha core check
2. Review Changes (Optional)
# Compare backup to current
diff /config/backups/cleanup_YYYYMMDD_HHMMSS/scripts.yaml /config/scripts.yaml
3. Restart Home Assistant
ha core restart
4. Verify Everything Works
- Check your Dailies dashboard (dashboard-chores)
- Test a few task completions
- Check for any errors in logs
🔙 How to Restore (If Needed)
Option 1: Use the Restore Script
cd /config/backups/cleanup_YYYYMMDD_HHMMSS
./restore.sh
ha core restart
Option 2: Manual Restore
# Copy backup files back
cp /config/backups/cleanup_YYYYMMDD_HHMMSS/*.yaml /config/
ha core restart
🐛 Troubleshooting
"Permission Denied"
chmod +x ha_chore_cleanup.py
"Module 'yaml' not found"
pip3 install pyyaml
Configuration Check Fails After Cleanup
- Don't panic - your backups are safe
- Run the restore script
- Review what was removed
- Report any issues
Script Reports Errors
- Check the error messages in the summary
- Review those specific files manually
- The script continues even if some files fail
📝 Logs & Debugging
The script outputs detailed information about:
- Which files it's processing
- How many items it removed from each file
- Any errors encountered
- Full list of removed items
All output is also printed to console for your review.
🤝 Support
If you encounter issues:
- Check the backup directory - your files are safe
- Review the error messages
- Restore from backup if needed
- Report the issue with the full output
📜 License
Created for Jess's Home Assistant setup Use freely, modify as needed
Last Updated: December 23, 2024 Version: 1.0.0