Add Changelog

2025-09-28 12:48:14 +00:00
parent 5843a1a97a
commit b6ebf361c3

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).