Clone
1
Service-Reference
sq4ind edited this page 2025-09-28 12:46:27 +00:00
Table of Contents
- 🔧 Service Reference
🔧 Service Reference
Complete documentation for all AdGuard Control Hub services. Use these services in automations and scripts to control your network programmatically.
📋 Service Overview
Service | Description | Use Case |
---|---|---|
add_client |
Add new client to AdGuard Home | Programmatically register new devices |
update_client |
Modify existing client settings | Change client configuration |
remove_client |
Remove client from AdGuard Home | Clean up old devices |
block_services |
Block specific services for clients | Implement parental controls |
unblock_services |
Unblock services for clients | Grant access to specific services |
bulk_update_clients |
Update multiple clients simultaneously | Apply rules to device groups |
emergency_unblock |
Temporary emergency access override | Urgent internet access needs |
🛡️ Client Management Services
adguard_hub.add_client
Add a new client device to AdGuard Home with full configuration options.
Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
name |
string | ✅ | - | Friendly name for the client |
ids |
list | ❌ | [] |
IP addresses, MAC addresses, or Client IDs |
use_global_settings |
boolean | ❌ | true |
Whether to use global protection settings |
use_global_blocked_services |
boolean | ❌ | true |
Whether to use global service blocking |
blocked_services |
list | ❌ | [] |
Services to block for this client |
filtering_enabled |
boolean | ❌ | true |
Enable DNS filtering |
parental_enabled |
boolean | ❌ | false |
Enable parental controls |
safebrowsing_enabled |
boolean | ❌ | false |
Enable safe browsing |
safesearch_enabled |
boolean | ❌ | false |
Enable safe search |
upstream_dns |
list | ❌ | [] |
Custom DNS servers |
Example Usage
# Basic client addition
service: adguard_hub.add_client
data:
name: "Kids iPad"
ids:
- "192.168.1.150"
- "aa:bb:cc:dd:ee:ff"
# Advanced client with custom settings
service: adguard_hub.add_client
data:
name: "Kids Laptop"
ids: ["192.168.1.151"]
use_global_settings: false
use_global_blocked_services: false
blocked_services:
- "youtube"
- "gaming"
- "social"
filtering_enabled: true
parental_enabled: true
safebrowsing_enabled: true
safesearch_enabled: true
upstream_dns:
- "1.1.1.3" # Cloudflare for Families
- "1.0.0.3"
adguard_hub.update_client
Modify settings for an existing client.
Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
name |
string | ✅ | - | Name of the client to update |
ids |
list | ❌ | - | New device identifiers |
use_global_settings |
boolean | ❌ | - | Use global protection settings |
use_global_blocked_services |
boolean | ❌ | - | Use global service blocking |
blocked_services |
list | ❌ | - | Update blocked services list |
filtering_enabled |
boolean | ❌ | - | Enable/disable filtering |
parental_enabled |
boolean | ❌ | - | Enable/disable parental controls |
safebrowsing_enabled |
boolean | ❌ | - | Enable/disable safe browsing |
safesearch_enabled |
boolean | ❌ | - | Enable/disable safe search |
upstream_dns |
list | ❌ | - | Update DNS servers |
Example Usage
# Enable parental controls for existing client
service: adguard_hub.update_client
data:
name: "Kids iPad"
parental_enabled: true
safesearch_enabled: true
# Change blocked services
service: adguard_hub.update_client
data:
name: "Work Laptop"
blocked_services: ["social", "entertainment"]
# Add new device identifier
service: adguard_hub.update_client
data:
name: "Kids Phone"
ids:
- "192.168.1.160"
- "ff:ee:dd:cc:bb:aa"
adguard_hub.remove_client
Remove a client from AdGuard Home.
Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
name |
string | ✅ | - | Name of the client to remove |
Example Usage
# Remove old device
service: adguard_hub.remove_client
data:
name: "Old Laptop"
🎛️ Service Blocking Services
adguard_hub.block_services
Block specific services for a client device.
Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
client_name |
string | ✅ | - | Name of the client |
services |
list | ✅ | - | List of services to block |
schedule |
dict | ❌ | - | Optional blocking schedule |
Available Services
Common service identifiers you can use:
Service ID | Description |
---|---|
youtube |
YouTube video platform |
netflix |
Netflix streaming |
disney_plus |
Disney+ streaming |
facebook |
Facebook social network |
instagram |
Instagram social media |
tiktok |
TikTok short videos |
twitter |
Twitter/X social media |
snapchat |
Snapchat messaging |
reddit |
Reddit forums |
gaming |
General gaming services |
steam |
Steam gaming platform |
roblox |
Roblox gaming |
adult |
Adult content |
gambling |
Gambling sites |
torrents |
Torrent sites |
social |
All social media |
entertainment |
All entertainment |
Schedule Format
schedule:
enabled: true
time_zone: "Local"
mon: { start: "09:00", end: "17:00" }
tue: { start: "09:00", end: "17:00" }
wed: { start: "09:00", end: "17:00" }
thu: { start: "09:00", end: "17:00" }
fri: { start: "09:00", end: "17:00" }
sat: { start: "10:00", end: "14:00" }
sun: { start: "10:00", end: "14:00" }
Example Usage
# Block social media for kids
service: adguard_hub.block_services
data:
client_name: "Kids iPad"
services:
- "social"
- "tiktok"
- "snapchat"
# Block gaming during school hours
service: adguard_hub.block_services
data:
client_name: "Kids Laptop"
services: ["gaming", "steam", "roblox"]
schedule:
enabled: true
time_zone: "Local"
mon: { start: "08:00", end: "15:00" }
tue: { start: "08:00", end: "15:00" }
wed: { start: "08:00", end: "15:00" }
thu: { start: "08:00", end: "15:00" }
fri: { start: "08:00", end: "15:00" }
# Block distracting sites during work
service: adguard_hub.block_services
data:
client_name: "Work Laptop"
services: ["facebook", "twitter", "youtube", "reddit"]
adguard_hub.unblock_services
Remove service blocks from a client device.
Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
client_name |
string | ✅ | - | Name of the client |
services |
list | ✅ | - | List of services to unblock |
Example Usage
# Allow entertainment after homework
service: adguard_hub.unblock_services
data:
client_name: "Kids iPad"
services: ["youtube", "netflix"]
# Allow social media during break
service: adguard_hub.unblock_services
data:
client_name: "Work Laptop"
services: ["facebook", "twitter"]
# Unblock gaming on weekends
service: adguard_hub.unblock_services
data:
client_name: "Kids PlayStation"
services: ["gaming", "steam", "playstation"]
📦 Bulk Operations
adguard_hub.bulk_update_clients
Update multiple clients simultaneously using pattern matching or explicit lists.
Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
client_pattern |
string | ❌ | "*" |
Wildcard pattern to match clients |
clients |
list | ❌ | - | Explicit list of client names |
settings |
dict | ✅ | - | Settings to apply to matched clients |
Pattern Matching
Use shell-style wildcards:
*
- Matches anything?
- Matches any single characterKids*
- Matches clients starting with "Kids"*Phone*
- Matches clients containing "Phone"Work_*
- Matches clients starting with "Work_"
Example Usage
# Apply parental controls to all kids' devices
service: adguard_hub.bulk_update_clients
data:
client_pattern: "Kids*"
settings:
parental_enabled: true
safesearch_enabled: true
blocked_services: ["adult", "gambling"]
# Update specific clients by name
service: adguard_hub.bulk_update_clients
data:
clients:
- "iPad Pro"
- "MacBook Air"
- "iPhone 12"
settings:
safebrowsing_enabled: true
# Apply work restrictions to all work devices
service: adguard_hub.bulk_update_clients
data:
client_pattern: "Work*"
settings:
blocked_services: ["social", "entertainment"]
filtering_enabled: true
# Emergency: Remove all blocks from all devices
service: adguard_hub.bulk_update_clients
data:
client_pattern: "*"
settings:
blocked_services: []
parental_enabled: false
🚨 Emergency Services
adguard_hub.emergency_unblock
Temporarily disable blocking for emergency internet access.
Parameters
Parameter | Type | Required | Default | Description |
---|---|---|---|---|
duration |
integer | ❌ | 300 |
Duration in seconds |
clients |
list | ❌ | ["all"] |
Clients to unblock |
Example Usage
# Emergency unblock for all devices (10 minutes)
service: adguard_hub.emergency_unblock
data:
duration: 600
clients: ["all"]
# Unblock specific client for 5 minutes
service: adguard_hub.emergency_unblock
data:
duration: 300
clients: ["Work Laptop"]
# Quick 2-minute unblock for urgent access
service: adguard_hub.emergency_unblock
data:
duration: 120
clients: ["Kids iPad"]
# Long emergency unblock (1 hour) for special circumstances
service: adguard_hub.emergency_unblock
data:
duration: 3600
clients: ["all"]
🔄 Service Combinations
Complex Automation Examples
Combine multiple services for sophisticated network management:
Study Time Automation
# Complete study time setup
script:
study_time_enable:
sequence:
# Block distractions on all kids' devices
- service: adguard_hub.bulk_update_clients
data:
client_pattern: "Kids*"
settings:
blocked_services: ["social", "entertainment", "gaming"]
# Allow educational content
- service: adguard_hub.unblock_services
data:
client_name: "Kids Laptop"
services: ["educational"]
# Enable parental controls
- service: adguard_hub.bulk_update_clients
data:
client_pattern: "Kids*"
settings:
parental_enabled: true
safesearch_enabled: true
Family Movie Night
# Movie night setup
script:
movie_night_setup:
sequence:
# Unblock streaming for TV
- service: adguard_hub.unblock_services
data:
client_name: "Living Room TV"
services: ["netflix", "disney_plus", "youtube"]
# Block bandwidth-heavy services on other devices
- service: adguard_hub.bulk_update_clients
data:
client_pattern: "*"
settings:
blocked_services: ["torrents", "gaming"]
# Allow kids to access streaming but block social
- service: adguard_hub.bulk_update_clients
data:
client_pattern: "Kids*"
settings:
blocked_services: ["social", "gaming"]
Work Focus Session
# Deep work focus
script:
work_focus_enable:
sequence:
# Block all distractions on work devices
- service: adguard_hub.bulk_update_clients
data:
client_pattern: "Work*"
settings:
blocked_services: ["social", "entertainment", "news", "shopping"]
# Ensure kids can't distract with bandwidth usage
- service: adguard_hub.bulk_update_clients
data:
client_pattern: "Kids*"
settings:
blocked_services: ["gaming", "streaming", "youtube"]
⚠️ Service Usage Tips
Best Practices
- Test First: Test service calls manually before using in automations
- Error Handling: Wrap service calls in try-catch blocks for reliability
- Client Names: Use consistent, descriptive client names
- Scheduling: Use schedules for predictable time-based restrictions
- Emergency Access: Always have an emergency unblock method available
Common Patterns
Time-Based Restrictions
# Bedtime routine
automation:
- trigger:
platform: time
at: "20:00:00"
action:
- service: adguard_hub.bulk_update_clients
data:
client_pattern: "Kids*"
settings:
blocked_services: ["entertainment", "social", "gaming"]
Presence-Based Rules
# Away from home
automation:
- trigger:
platform: state
entity_id: group.family
to: 'not_home'
action:
- service: adguard_hub.bulk_update_clients
data:
client_pattern: "*"
settings:
parental_enabled: true
safebrowsing_enabled: true
Device-Specific Controls
# Gaming console management
automation:
- trigger:
platform: time
at: "21:00:00"
action:
- service: adguard_hub.block_services
data:
client_name: "PlayStation 5"
services: ["gaming", "playstation", "steam"]
Next: Check out Troubleshooting if you need help, or explore the API Reference for technical details!