Add Changelog
288
Changelog.md
Normal file
288
Changelog.md
Normal file
@@ -0,0 +1,288 @@
|
||||
# 📝 Changelog
|
||||
|
||||
All notable changes to AdGuard Control Hub will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Added
|
||||
- Placeholder for upcoming features
|
||||
|
||||
### Changed
|
||||
- Placeholder for upcoming changes
|
||||
|
||||
### Fixed
|
||||
- Placeholder for upcoming fixes
|
||||
|
||||
## [1.0.0] - 2025-01-XX
|
||||
|
||||
### 🎉 Initial Release
|
||||
|
||||
The first stable release of AdGuard Control Hub, providing comprehensive Home Assistant integration for AdGuard Home.
|
||||
|
||||
### ✨ Added
|
||||
|
||||
#### Core Integration
|
||||
- **Complete AdGuard Home API Integration** - Full API wrapper supporting all major endpoints
|
||||
- **Home Assistant Config Flow** - User-friendly configuration interface with validation
|
||||
- **Update Coordinator Pattern** - Efficient data fetching with configurable intervals
|
||||
- **Multi-Instance Support** - Connect to multiple AdGuard Home instances
|
||||
|
||||
#### Entity Support
|
||||
- **Global Protection Switch** - Master toggle for AdGuard Home protection
|
||||
- **Client Switches** - Individual protection control for each AdGuard client
|
||||
- **Service Blocking Switches** - Per-client service blocking controls (YouTube, Netflix, Gaming, etc.)
|
||||
- **Statistics Sensors** - Real-time DNS query and blocking statistics
|
||||
- **Binary Sensors** - Status indicators for protection and client connectivity
|
||||
|
||||
#### Services & Automation
|
||||
- **Client Management Services**:
|
||||
- `add_client` - Add new client devices programmatically
|
||||
- `update_client` - Modify existing client configurations
|
||||
- `remove_client` - Remove clients from AdGuard Home
|
||||
- **Service Blocking Services**:
|
||||
- `block_services` - Block specific services for clients with scheduling support
|
||||
- `unblock_services` - Remove service blocks from clients
|
||||
- **Bulk Operations**:
|
||||
- `bulk_update_clients` - Update multiple clients using pattern matching
|
||||
- **Emergency Access**:
|
||||
- `emergency_unblock` - Temporary unblock for urgent internet access
|
||||
|
||||
#### Supported Services
|
||||
- **Social Media**: YouTube, Facebook, Instagram, TikTok, Twitter, Snapchat, Reddit
|
||||
- **Entertainment**: Netflix, Disney+, Spotify, Twitch
|
||||
- **Gaming**: Steam, Epic Games, Roblox, general gaming services
|
||||
- **Shopping**: Amazon, eBay
|
||||
- **Communication**: WhatsApp, Telegram, Discord
|
||||
- **Security Categories**: Adult content, gambling, torrents
|
||||
|
||||
#### Advanced Features
|
||||
- **Time-Based Scheduling** - Block services during specific hours/days
|
||||
- **Pattern Matching** - Bulk operations using wildcard patterns (`Kids*`, `Work*`)
|
||||
- **Emergency Override** - Temporary access for urgent situations
|
||||
- **Client Auto-Discovery** - Automatic entity creation for new clients
|
||||
- **SSL/TLS Support** - Secure connections with certificate validation
|
||||
|
||||
#### Dashboard Integration
|
||||
- **Rich Lovelace Cards** - Pre-built dashboard examples
|
||||
- **Mobile Optimization** - Touch-friendly controls for mobile devices
|
||||
- **Emergency Controls** - Quick access buttons for urgent situations
|
||||
- **Statistics Visualization** - Real-time charts and graphs
|
||||
|
||||
### 🛠️ Technical Features
|
||||
|
||||
#### Development & Quality
|
||||
- **Comprehensive Test Suite** - Unit and integration tests with >90% coverage
|
||||
- **CI/CD Pipeline** - Automated testing, security scanning, and releases
|
||||
- **Code Quality Tools** - Black, Flake8, isort, MyPy, Bandit integration
|
||||
- **Pre-commit Hooks** - Automatic code formatting and validation
|
||||
- **Type Hints** - Full type annotation for better IDE support
|
||||
|
||||
#### Security & Performance
|
||||
- **Security Scanning** - Automated vulnerability detection with Bandit and Safety
|
||||
- **Rate Limiting** - Respectful API usage to prevent server overload
|
||||
- **Error Handling** - Comprehensive error recovery and user feedback
|
||||
- **Performance Optimization** - Efficient data fetching and caching
|
||||
- **Connection Pooling** - Reused HTTP sessions for better performance
|
||||
|
||||
#### Documentation
|
||||
- **Comprehensive Wiki** - Complete documentation with examples
|
||||
- **Installation Guides** - HACS and manual installation instructions
|
||||
- **Dashboard Examples** - Ready-to-use Lovelace configurations
|
||||
- **Automation Examples** - Real-world automation scenarios
|
||||
- **Troubleshooting Guide** - Solutions for common issues
|
||||
- **API Reference** - Technical documentation for developers
|
||||
|
||||
### 🏠 Home Assistant Integration
|
||||
|
||||
#### Compatibility
|
||||
- **Home Assistant 2023.1+** - Full compatibility with modern HA versions
|
||||
- **HACS Support** - Easy installation and automatic updates
|
||||
- **Multi-Platform** - Supports all major Home Assistant installation methods
|
||||
|
||||
#### Configuration Options
|
||||
```yaml
|
||||
adguard_hub:
|
||||
scan_interval: 30 # Update frequency in seconds
|
||||
auto_create_clients: true # Auto-create entities for new clients
|
||||
enable_statistics: true # Collect detailed statistics
|
||||
blocked_services_as_switches: true # Create service blocking switches
|
||||
client_naming_pattern: "adguard_{name}" # Entity naming pattern
|
||||
```
|
||||
|
||||
#### Entity Naming
|
||||
- `switch.adguard_protection` - Global protection toggle
|
||||
- `switch.adguard_client_{name}` - Per-client protection
|
||||
- `switch.adguard_client_{name}_service_{service}` - Per-client service blocks
|
||||
- `sensor.adguard_queries_today` - DNS query statistics
|
||||
- `binary_sensor.adguard_filtering_enabled` - Protection status
|
||||
|
||||
### 📱 Dashboard Examples
|
||||
|
||||
#### Family Control Dashboard
|
||||
- Kids' device management
|
||||
- Parental control toggles
|
||||
- Service blocking controls
|
||||
- Quick action buttons (Study Mode, Free Time, Bedtime)
|
||||
|
||||
#### Work Productivity Dashboard
|
||||
- Work device controls
|
||||
- Distraction blocking
|
||||
- Focus mode automation
|
||||
- Break time management
|
||||
|
||||
#### Network Analytics Dashboard
|
||||
- Real-time statistics
|
||||
- Query history graphs
|
||||
- Client activity monitoring
|
||||
- System health indicators
|
||||
|
||||
### 🤖 Automation Examples
|
||||
|
||||
#### Parental Controls
|
||||
```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
|
||||
```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"]
|
||||
```
|
||||
|
||||
#### Presence-Based Rules
|
||||
```yaml
|
||||
automation:
|
||||
- alias: "Away Mode - Strict Filtering"
|
||||
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
|
||||
```
|
||||
|
||||
### 🎯 Use Cases
|
||||
|
||||
#### Family Management
|
||||
- **Bedtime Routines**: Automatically block entertainment at bedtime
|
||||
- **Homework Time**: Restrict social media during study hours
|
||||
- **Weekend Flexibility**: Different rules for weekends vs school days
|
||||
- **Age-Appropriate Content**: Parental controls and safe search
|
||||
|
||||
#### Work Productivity
|
||||
- **Focus Sessions**: Block distracting websites during work hours
|
||||
- **Meeting Mode**: Ensure bandwidth availability during calls
|
||||
- **Break Management**: Scheduled access to social media
|
||||
- **Deadline Crunch**: Temporary strict blocking for important projects
|
||||
|
||||
#### Network Management
|
||||
- **Guest Controls**: Automatic restrictions for visitor devices
|
||||
- **Bandwidth Management**: Block heavy services when needed
|
||||
- **Security Enforcement**: Mandatory safe browsing and filtering
|
||||
- **Emergency Access**: Quick override for urgent internet needs
|
||||
|
||||
### 🔧 Installation & Setup
|
||||
|
||||
#### HACS Installation (Recommended)
|
||||
1. Add custom repository: `https://your-gitea-domain.com/your-username/adguard-control-hub`
|
||||
2. Install "AdGuard Control Hub"
|
||||
3. Restart Home Assistant
|
||||
4. Configure via UI: Settings → Devices & Services
|
||||
|
||||
#### Manual Installation
|
||||
1. Download latest release
|
||||
2. Extract to `custom_components/adguard_hub/`
|
||||
3. Restart Home Assistant
|
||||
4. Add integration via UI
|
||||
|
||||
#### Configuration Requirements
|
||||
- AdGuard Home IP address and port
|
||||
- Admin username and password
|
||||
- Optional: SSL configuration for secure connections
|
||||
|
||||
### 🌟 Highlights
|
||||
|
||||
- **🎯 Comprehensive Control**: Complete management of AdGuard Home from Home Assistant
|
||||
- **🏠 Smart Integration**: Native Home Assistant entities and services
|
||||
- **👨👩👧👦 Family-Friendly**: Perfect for parental controls and family internet management
|
||||
- **💼 Work-Ready**: Focus modes and productivity features for remote work
|
||||
- **🤖 Automation-First**: Designed for advanced Home Assistant automations
|
||||
- **📱 Mobile-Optimized**: Touch-friendly controls for phones and tablets
|
||||
- **🔒 Security-Focused**: Comprehensive security scanning and safe defaults
|
||||
- **🛠️ Developer-Friendly**: Well-documented API and extensive development tools
|
||||
|
||||
---
|
||||
|
||||
## 📋 Version History Summary
|
||||
|
||||
| Version | Release Date | Key Features |
|
||||
|---------|--------------|--------------|
|
||||
| [1.0.0] | 2025-01-XX | Initial release with full AdGuard Home integration |
|
||||
|
||||
---
|
||||
|
||||
## 🔮 Roadmap
|
||||
|
||||
### Planned Features
|
||||
|
||||
#### Version 1.1.0
|
||||
- **Enhanced Statistics**: Detailed per-client analytics and reporting
|
||||
- **Mobile App Integration**: Control from Home Assistant mobile app
|
||||
- **Advanced Scheduling**: Recurring schedules and holiday exceptions
|
||||
- **Notification Integration**: Smart alerts for rule changes and activities
|
||||
|
||||
#### Version 1.2.0
|
||||
- **Multi-Language Support**: Translations for major languages
|
||||
- **Theme Integration**: Support for Home Assistant themes
|
||||
- **Backup & Restore**: Configuration backup and migration tools
|
||||
- **Performance Dashboard**: Integration health and performance metrics
|
||||
|
||||
#### Version 2.0.0
|
||||
- **AdGuard Home v2 API**: Support for new API features
|
||||
- **Machine Learning**: Intelligent blocking suggestions
|
||||
- **Cloud Sync**: Multi-instance configuration synchronization
|
||||
- **Advanced Analytics**: Usage patterns and optimization recommendations
|
||||
|
||||
### Community Requests
|
||||
|
||||
Based on user feedback, we're considering:
|
||||
- **DNS-over-HTTPS Configuration**: Advanced DNS settings management
|
||||
- **Custom Block Lists**: Integration with custom filtering lists
|
||||
- **Geolocation Blocking**: Country-based access restrictions
|
||||
- **Bandwidth Monitoring**: Network usage tracking and limiting
|
||||
- **VPN Integration**: Automatic VPN controls for different clients
|
||||
|
||||
---
|
||||
|
||||
**Want to contribute to the next release?** Check out our [Contributing Guide](Contributing) and [Development Setup](Development)!
|
||||
|
||||
**Having issues?** See our [Troubleshooting Guide](Troubleshooting) or [report a bug](https://your-gitea-domain.com/your-username/adguard-control-hub/issues).
|
||||
|
||||
**Questions about features?** Visit our [Service Reference](Service-Reference) or ask in [Discussions](https://your-gitea-domain.com/your-username/adguard-control-hub/discussions).
|
Reference in New Issue
Block a user