Add Dashboard-Examples

2025-09-28 12:47:24 +00:00
parent c316ba80c9
commit 87e7c43dac

622
Dashboard-Examples.-.md Normal file

@@ -0,0 +1,622 @@
# 📱 Dashboard Examples
Create beautiful and functional dashboards to control your AdGuard Control Hub. These examples provide ready-to-use Lovelace configurations.
## 🎛️ Main Control Panel
A comprehensive overview of your AdGuard Home status and controls.
### Full Control Dashboard
```yaml
type: vertical-stack
title: 🛡️ AdGuard Control Hub
cards:
# Status Overview
- type: glance
title: Protection Status
columns: 4
entities:
- entity: switch.adguard_protection
name: Protection
tap_action:
action: toggle
- entity: sensor.adguard_blocked_percentage
name: Block Rate
icon: mdi:percent
- entity: sensor.adguard_queries_today
name: Queries Today
icon: mdi:dns
- entity: sensor.adguard_blocked_today
name: Blocked Today
icon: mdi:block-helper
# Quick Statistics
- type: statistics-graph
title: DNS Activity (24h)
chart_type: line
period: hour
stat_types:
- sum
entities:
- sensor.adguard_queries_today
- sensor.adguard_blocked_today
# Device Controls
- type: entities
title: Network Devices
show_header_toggle: false
entities:
- type: section
label: "Family Devices"
- entity: switch.adguard_client_kids_ipad
name: "Kids iPad"
icon: mdi:tablet
secondary_info: last-updated
- entity: switch.adguard_client_kids_laptop
name: "Kids Laptop"
icon: mdi:laptop
secondary_info: last-updated
- type: section
label: "Work Devices"
- entity: switch.adguard_client_work_laptop
name: "Work Laptop"
icon: mdi:briefcase
secondary_info: last-updated
- type: section
label: "Smart Home"
- entity: switch.adguard_client_living_room_tv
name: "Living Room TV"
icon: mdi:television
secondary_info: last-updated
# Emergency Controls
- type: horizontal-stack
cards:
- type: button
name: "🚨 Emergency Unblock"
icon: mdi:shield-off-outline
tap_action:
action: call-service
service: adguard_hub.emergency_unblock
service_data:
duration: 600
clients: ["all"]
hold_action:
action: more-info
```
## 👨‍👩‍👧‍👦 Family Control Dashboard
Specialized dashboard for managing kids' internet access.
### Kids Internet Control
```yaml
type: vertical-stack
title: 👪 Family Internet Control
cards:
# Family Status Overview
- type: glance
title: Family Devices Status
columns: 3
entities:
- entity: switch.adguard_client_kids_ipad
name: "iPad"
tap_action:
action: toggle
- entity: switch.adguard_client_kids_laptop
name: "Laptop"
tap_action:
action: toggle
- entity: switch.adguard_client_kids_phone
name: "Phone"
tap_action:
action: toggle
# Parental Control Features
- type: entities
title: Parental Controls
show_header_toggle: false
entities:
- entity: switch.adguard_client_kids_ipad_parental
name: "Parental Control - iPad"
icon: mdi:account-child
- entity: switch.adguard_client_kids_ipad_safesearch
name: "Safe Search - iPad"
icon: mdi:search-web
- entity: switch.adguard_client_kids_ipad_safebrowsing
name: "Safe Browsing - iPad"
icon: mdi:shield-check
# Service Blocking Controls
- type: entities
title: Content Blocking - Kids iPad
show_header_toggle: false
entities:
- type: section
label: "Entertainment"
- entity: switch.adguard_client_kids_ipad_service_youtube
name: "Block YouTube"
icon: mdi:youtube
- entity: switch.adguard_client_kids_ipad_service_netflix
name: "Block Netflix"
icon: mdi:netflix
- entity: switch.adguard_client_kids_ipad_service_disney_plus
name: "Block Disney+"
icon: mdi:disney
- type: section
label: "Social Media"
- entity: switch.adguard_client_kids_ipad_service_tiktok
name: "Block TikTok"
icon: mdi:music-note
- entity: switch.adguard_client_kids_ipad_service_instagram
name: "Block Instagram"
icon: mdi:instagram
- entity: switch.adguard_client_kids_ipad_service_snapchat
name: "Block Snapchat"
icon: mdi:snapchat
- type: section
label: "Gaming"
- entity: switch.adguard_client_kids_ipad_service_roblox
name: "Block Roblox"
icon: mdi:gamepad-variant
- entity: switch.adguard_client_kids_ipad_service_gaming
name: "Block Gaming Services"
icon: mdi:controller-classic
# Quick Action Buttons
- type: grid
title: Quick Actions
square: false
columns: 2
cards:
- type: button
name: "📚 Study Mode"
icon: mdi:book-open-variant
tap_action:
action: call-service
service: adguard_hub.block_services
service_data:
client_name: "Kids iPad"
services: ["social", "entertainment", "gaming"]
card_mod:
style: |
ha-card {
background: linear-gradient(45deg, #2196F3, #21CBF3);
color: white;
}
- type: button
name: "🎮 Free Time"
icon: mdi:play-circle
tap_action:
action: call-service
service: adguard_hub.unblock_services
service_data:
client_name: "Kids iPad"
services: ["entertainment"]
card_mod:
style: |
ha-card {
background: linear-gradient(45deg, #4CAF50, #8BC34A);
color: white;
}
- type: button
name: "😴 Bedtime"
icon: mdi:sleep
tap_action:
action: call-service
service: adguard_hub.block_services
service_data:
client_name: "Kids iPad"
services: ["social", "entertainment", "gaming"]
card_mod:
style: |
ha-card {
background: linear-gradient(45deg, #9C27B0, #673AB7);
color: white;
}
- type: button
name: "✅ Allow All"
icon: mdi:check-circle
tap_action:
action: call-service
service: adguard_hub.unblock_services
service_data:
client_name: "Kids iPad"
services: ["social", "entertainment", "gaming"]
card_mod:
style: |
ha-card {
background: linear-gradient(45deg, #FF9800, #FF5722);
color: white;
}
```
## 💼 Work Productivity Dashboard
Control work devices and eliminate distractions during work hours.
### Work Focus Dashboard
```yaml
type: vertical-stack
title: 💼 Work Productivity Control
cards:
# Work Status
- type: entities
title: Work Environment
show_header_toggle: false
entities:
- entity: switch.adguard_client_work_laptop
name: "Work Laptop Protection"
icon: mdi:laptop
- entity: binary_sensor.adguard_client_work_laptop_online
name: "Work Laptop Online"
icon: mdi:lan-connect
- entity: sensor.adguard_client_work_laptop_queries
name: "DNS Queries Today"
icon: mdi:dns
# Distraction Controls
- type: entities
title: Distraction Blocking
show_header_toggle: false
entities:
- entity: switch.adguard_client_work_laptop_service_facebook
name: "Block Facebook"
icon: mdi:facebook
- entity: switch.adguard_client_work_laptop_service_twitter
name: "Block Twitter"
icon: mdi:twitter
- entity: switch.adguard_client_work_laptop_service_youtube
name: "Block YouTube"
icon: mdi:youtube
- entity: switch.adguard_client_work_laptop_service_reddit
name: "Block Reddit"
icon: mdi:reddit
- entity: switch.adguard_client_work_laptop_service_netflix
name: "Block Netflix"
icon: mdi:netflix
# Focus Mode Controls
- type: grid
title: Focus Modes
square: false
columns: 3
cards:
- type: button
name: "🧠 Deep Focus"
icon: mdi:brain
tap_action:
action: call-service
service: adguard_hub.block_services
service_data:
client_name: "Work Laptop"
services: ["social", "entertainment", "gaming"]
- type: button
name: "☕ Break Time"
icon: mdi:coffee
tap_action:
action: call-service
service: adguard_hub.emergency_unblock
service_data:
duration: 900 # 15 minutes
clients: ["Work Laptop"]
- type: button
name: "👔 Normal Mode"
icon: mdi:account-tie
tap_action:
action: call-service
service: adguard_hub.unblock_services
service_data:
client_name: "Work Laptop"
services: ["social"]
```
## 🏠 Guest Network Dashboard
Manage guest access and apply appropriate restrictions.
### Guest Control Panel
```yaml
type: vertical-stack
title: 🌐 Guest Network Management
cards:
# Guest Status
- type: entities
title: Guest Network
show_header_toggle: false
entities:
- entity: switch.adguard_client_guest_network
name: "Guest Protection"
icon: mdi:wifi-strength-4
- entity: binary_sensor.adguard_client_guest_network_active
name: "Guest Network Active"
icon: mdi:account-group
# Guest Restrictions
- type: entities
title: Guest Access Controls
show_header_toggle: false
entities:
- entity: switch.adguard_client_guest_network_service_adult
name: "Block Adult Content"
icon: mdi:shield-account
- entity: switch.adguard_client_guest_network_service_gambling
name: "Block Gambling"
icon: mdi:cards-playing-outline
- entity: switch.adguard_client_guest_network_service_torrents
name: "Block Torrents"
icon: mdi:download-network
# Quick Guest Modes
- type: horizontal-stack
cards:
- type: button
name: "🔓 Open Access"
icon: mdi:wifi-check
tap_action:
action: call-service
service: adguard_hub.update_client
service_data:
name: "Guest Network"
blocked_services: []
- type: button
name: "🛡️ Safe Mode"
icon: mdi:shield-check
tap_action:
action: call-service
service: adguard_hub.update_client
service_data:
name: "Guest Network"
blocked_services: ["adult", "gambling", "torrents"]
parental_enabled: true
safebrowsing_enabled: true
```
## 📊 Statistics Dashboard
Monitor your network activity and blocking effectiveness.
### Network Analytics
```yaml
type: vertical-stack
title: 📊 Network Analytics
cards:
# Key Metrics
- type: glance
title: Today's Statistics
columns: 4
entities:
- entity: sensor.adguard_queries_today
name: "Total Queries"
icon: mdi:dns
- entity: sensor.adguard_blocked_today
name: "Blocked"
icon: mdi:block-helper
- entity: sensor.adguard_blocked_percentage
name: "Block Rate"
icon: mdi:percent
- entity: binary_sensor.adguard_filtering_enabled
name: "Filtering"
icon: mdi:filter
# Query History
- type: history-graph
title: DNS Queries (24 Hours)
hours_to_show: 24
refresh_interval: 60
entities:
- sensor.adguard_queries_today
- sensor.adguard_blocked_today
# Client Activity
- type: entities
title: Most Active Clients
show_header_toggle: false
entities:
- entity: sensor.adguard_client_kids_ipad_queries
name: "Kids iPad"
icon: mdi:tablet
secondary_info: entity-id
- entity: sensor.adguard_client_work_laptop_queries
name: "Work Laptop"
icon: mdi:laptop
secondary_info: entity-id
- entity: sensor.adguard_client_living_room_tv_queries
name: "Living Room TV"
icon: mdi:television
secondary_info: entity-id
# System Health
- type: entities
title: System Status
show_header_toggle: false
entities:
- entity: binary_sensor.adguard_filtering_enabled
name: "DNS Filtering"
icon: mdi:dns
- entity: switch.adguard_protection
name: "Protection Status"
icon: mdi:shield
- type: attribute
entity: switch.adguard_protection
attribute: sw_version
name: "AdGuard Version"
icon: mdi:information
```
## 📱 Mobile-Optimized Dashboard
Simplified controls perfect for mobile devices.
### Mobile Quick Controls
```yaml
type: vertical-stack
title: 🛡️ AdGuard Mobile
cards:
# Emergency Button
- 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"]
hold_action:
action: call-service
service: adguard_hub.emergency_unblock
service_data:
duration: 300 # 5 minutes on hold
clients: ["all"]
card_mod:
style: |
ha-card {
background: linear-gradient(45deg, #f44336, #e91e63);
color: white;
font-weight: bold;
font-size: 18px;
height: 80px;
}
# Device Quick Toggle
- type: glance
title: Family Devices
columns: 2
show_name: true
show_state: false
entities:
- entity: switch.adguard_client_kids_ipad
name: "Kids iPad"
tap_action:
action: toggle
- entity: switch.adguard_client_kids_laptop
name: "Kids Laptop"
tap_action:
action: toggle
- entity: switch.adguard_client_work_laptop
name: "Work"
tap_action:
action: toggle
- entity: switch.adguard_client_guest_network
name: "Guests"
tap_action:
action: toggle
# Quick Actions
- type: grid
columns: 2
square: false
cards:
- type: button
name: "Block Gaming"
icon: mdi:gamepad-variant-outline
tap_action:
action: call-service
service: adguard_hub.block_services
service_data:
client_name: "Kids iPad"
services: ["gaming", "roblox"]
- type: button
name: "Block Social"
icon: mdi:account-group-outline
tap_action:
action: call-service
service: adguard_hub.block_services
service_data:
client_name: "Kids iPad"
services: ["social", "tiktok", "instagram"]
```
## 🎨 Custom Styling with card-mod
Enhance your dashboards with custom CSS styling.
### Styled Emergency Button
```yaml
type: button
name: "🚨 EMERGENCY ACCESS"
icon: mdi:shield-off-outline
tap_action:
action: call-service
service: adguard_hub.emergency_unblock
service_data:
duration: 600
clients: ["all"]
card_mod:
style: |
ha-card {
background: linear-gradient(135deg, #ff6b6b 0%, #ee5a24 100%);
border: 2px solid #c44569;
color: white;
font-weight: bold;
font-size: 16px;
text-transform: uppercase;
letter-spacing: 1px;
box-shadow: 0 8px 16px rgba(238, 90, 36, 0.3);
transition: all 0.3s ease;
}
ha-card:hover {
transform: translateY(-2px);
box-shadow: 0 12px 24px rgba(238, 90, 36, 0.4);
}
ha-card:active {
transform: translateY(0);
}
```
### Protection Status with Color
```yaml
type: entity
entity: switch.adguard_protection
card_mod:
style: |
ha-card {
background: {% if is_state('switch.adguard_protection', 'on') %}
linear-gradient(45deg, #4CAF50, #8BC34A)
{% else %}
linear-gradient(45deg, #f44336, #ff5722)
{% endif %};
color: white;
font-weight: bold;
}
```
## 📐 Layout Tips
### Responsive Design
Use different dashboard layouts for different screen sizes:
- **Desktop**: Vertical stacks with multiple columns
- **Tablet**: Mixed horizontal and vertical stacks
- **Mobile**: Single column with large touch targets
### Organization Best Practices
1. **Group related controls** together
2. **Use sections** to separate different areas
3. **Add icons** for visual clarity
4. **Use consistent colors** for similar functions
5. **Provide visual feedback** for actions
---
**Next**: Set up [Automation Examples](Automation-Examples) to make your network truly smart!