# 🛡️ AdGuard Control Hub **The ultimate Home Assistant integration for AdGuard Home** ## ✨ Features ### 🎯 Smart Client Management - Automatic discovery of AdGuard clients as Home Assistant entities - Add, update, and remove clients directly from Home Assistant - Bulk operations to manage multiple clients simultaneously with pattern matching ### 🛡️ Granular Service Blocking - Per-client service blocking for YouTube, Netflix, Gaming, Social Media, etc. - Time-based scheduled blocking with per-day rules - Global and per-client toggles for protection - Emergency unblock for temporary internet access ### 🏠 Home Assistant Ecosystem Integration - Rich entity support: switches, sensors, binary sensors - Beautiful and customizable Lovelace dashboard cards - Automation-friendly services for advanced workflows - Real-time DNS and blocking statistics ## 📦 Installation ### 🔧 Method 1: HACS (Recommended) 1. Open Home Assistant and go to **HACS > Integrations** 2. Click menu (⋮) → **Custom repositories** 3. Add repository URL: `https://git.sq4ind.eu/sq4ind/adguard-control-hub` 4. Set category to **Integration**, click **Add** 5. Search for **AdGuard Control Hub** 6. Click **Install**, then restart Home Assistant 7. Go to **Settings > Devices & Services > Add Integration** 8. Search and select **AdGuard Control Hub**, enter your AdGuard Home details ### 🛠️ Method 2: Manual Installation 1. Download the latest release zip from your Gitea repository 2. Extract `custom_components/adguard_hub` into your Home Assistant config directory 3. Restart Home Assistant 4. Add integration via UI as per above ## ⚙️ Configuration - **Host**: IP or hostname of your AdGuard Home - **Port**: Default 3000 unless customized - **Username & Password**: Admin credentials for AdGuard Home - **SSL**: Enable if AdGuard Home runs HTTPS - **Verify SSL**: Disable for self-signed certificates ## 🎬 Use Cases & Examples ### Parental Controls - Kids Bedtime Automation ```yaml automation: - alias: "Kids Bedtime - Block Entertainment" trigger: platform: time at: "20:00:00" action: service: adguard_hub.block_services data: client_name: "Kids iPad" services: - youtube - netflix - gaming - social ``` ### Work Productivity - Focus Mode ```yaml automation: - alias: "Work Focus Mode" trigger: platform: state entity_id: input_boolean.work_focus_mode to: 'on' action: service: adguard_hub.bulk_update_clients data: client_pattern: "Work*" settings: blocked_services: ["social", "entertainment", "shopping"] ``` ### Emergency Unblock ```yaml service: adguard_hub.emergency_unblock data: duration: 600 # 10 minutes clients: ["all"] ``` ## 📱 Dashboard Examples **Main Control Panel:** ```yaml type: vertical-stack title: 🛡️ AdGuard Control Hub cards: - type: glance entities: - switch.adguard_protection - sensor.adguard_blocked_percentage - sensor.adguard_queries_today - sensor.adguard_blocked_today - type: entities title: Family Devices entities: - switch.adguard_client_kids_ipad - switch.adguard_client_work_laptop - switch.adguard_client_guest_network ``` **Emergency Button:** ```yaml type: button name: "🚨 Emergency Unblock" icon: mdi:shield-off tap_action: action: call-service service: adguard_hub.emergency_unblock service_data: duration: 600 clients: ["all"] ``` ## 🤝 Support & Contribution - Full documentation and setup examples in the repository wiki. - Report issues or request features via the repository's issue tracker. - Contributions welcome—please read the contribution guidelines. ## 📄 License This project is licensed under the MIT License. See the LICENSE file for details. Made with ❤️ and professional care, so you control your AdGuard Home network integration!