Some checks failed
🧪 Integration Testing / 🔧 Test Integration (2023.12.0, 3.11) (push) Successful in 2m11s
🧪 Integration Testing / 🔧 Test Integration (2023.12.0, 3.12) (push) Successful in 2m2s
🧪 Integration Testing / 🔧 Test Integration (2024.1.0, 3.11) (push) Successful in 1m4s
🧪 Integration Testing / 🔧 Test Integration (2024.1.0, 3.12) (push) Successful in 1m19s
🛡️ Code Quality & Security Check / 🔍 Code Quality Analysis (push) Failing after 56s
Signed-off-by: Rafal Zielinski <sq4ind@gmail.com>
166 lines
4.6 KiB
Markdown
166 lines
4.6 KiB
Markdown
# 🛡️ AdGuard Control Hub
|
|
|
|
[](https://github.com/custom-components/hacs)
|
|
[](https://git.sq4ind.eu/sq4ind/adguard-control-hub/releases)
|
|
[](LICENSE)
|
|
|
|
**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](LICENSE) file for details.
|
|
|
|
---
|
|
|
|
Made with ❤️ and professional care, so you control your AdGuard Home network integration!
|
|
|
|
---
|
|
|
|
[](https://github.com/custom-components/hacs) | [Releases](https://git.sq4ind.eu/sq4ind/adguard-control-hub/releases) | [Issues](https://git.sq4ind.eu/sq4ind/adguard-control-hub/issues) | [License](LICENSE) |