mirror of
https://github.com/gesellix/Bose-SoundTouch.git
synced 2026-08-18 08:36:13 +00:00
docs: Update development timeline dates to reflect 2026 project timeline
- Updates feature history phases from 2024 to 2026 dates - Corrects service announcement timeline references - Aligns API coverage documentation with current project schedule
This commit is contained in:
+23
-23
@@ -4,7 +4,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
|
||||
## Development Timeline
|
||||
|
||||
### Phase 1: Foundation (November 2024 - December 2024)
|
||||
### Phase 1: Foundation (January 2026)
|
||||
|
||||
#### Core HTTP Client
|
||||
- **HTTP Client with XML Support**: Complete client implementation for SoundTouch Web API
|
||||
@@ -23,7 +23,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- Device connectivity testing
|
||||
- Simple information retrieval commands
|
||||
|
||||
### Phase 2: Media Control & Discovery (December 2024)
|
||||
### Phase 2: Media Control & Discovery (January 2026)
|
||||
|
||||
#### Media Controls
|
||||
- **Key Commands**: Complete implementation of `/key` endpoint
|
||||
@@ -48,7 +48,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- **Comprehensive Commands**: Full coverage of implemented endpoints
|
||||
- **Interactive Features**: Better user experience with formatted output
|
||||
|
||||
### Phase 3: Advanced Audio Controls (January 2025)
|
||||
### Phase 3: Advanced Audio Controls (January 2026)
|
||||
|
||||
#### Audio Management Trilogy
|
||||
- **Bass Control**: `/bass` GET/POST endpoints
|
||||
@@ -56,7 +56,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- Incremental bass adjustment
|
||||
- Device capability detection via `/bassCapabilities`
|
||||
- Safety limits and user warnings
|
||||
- **Balance Control**: `/balance` GET/POST endpoints
|
||||
- **Balance Control**: `/balance` GET/POST endpoints
|
||||
- Stereo balance adjustment (-50 to +50)
|
||||
- Left/right channel convenience methods
|
||||
- Balance centering functionality
|
||||
@@ -81,7 +81,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- Preset categorization and filtering
|
||||
- **API Limitation Documentation**: Clarified that POST `/presets` is officially N/A
|
||||
|
||||
### Phase 4: System Features (January 2025)
|
||||
### Phase 4: System Features (January 2026)
|
||||
|
||||
#### Clock and Display Management
|
||||
- **Clock Time**: `/clockTime` GET/POST endpoints
|
||||
@@ -104,7 +104,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- **Multiple Discovery Protocols**: Fallback discovery methods for different network environments
|
||||
- **Corporate Network Support**: Discovery options for restricted networks
|
||||
|
||||
### Phase 5: Real-time Events (January 2025)
|
||||
### Phase 5: Real-time Events (January 2026)
|
||||
|
||||
#### WebSocket Implementation
|
||||
- **WebSocket Client**: Complete WebSocket implementation for real-time events
|
||||
@@ -130,7 +130,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- **Formatted Output**: Human-readable event display
|
||||
- **Demo Applications**: WebSocket demonstration tools
|
||||
|
||||
### Phase 6: Multiroom Zone Management (January 2025)
|
||||
### Phase 6: Multiroom Zone Management (January 2026)
|
||||
|
||||
#### Zone Operations
|
||||
- **Zone Information**: `/getZone` GET endpoint
|
||||
@@ -166,7 +166,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- **Error Handling**: Specific zone-related error types
|
||||
- **Zone Builder**: Fluent API for zone construction
|
||||
|
||||
### Phase 7: Advanced Audio Controls (January 2025)
|
||||
### Phase 7: Advanced Audio Controls (January 2026)
|
||||
|
||||
#### Professional Audio Features
|
||||
- **DSP Audio Controls**: `/audiodspcontrols` GET/POST endpoints
|
||||
@@ -188,7 +188,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- **Conditional Feature Availability**: Features only available on compatible devices
|
||||
- **Graceful Degradation**: Fallback to basic controls when advanced features unavailable
|
||||
|
||||
### Phase 8: Speaker Notification System (February 2025)
|
||||
### Phase 8: Speaker Notification System (February 2026)
|
||||
|
||||
#### Notification Features
|
||||
- **Text-to-Speech (TTS)**: `/speaker` POST endpoint for TTS messages
|
||||
@@ -231,7 +231,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
- **Parameter Validation**: Complete input validation and error handling
|
||||
- **Usage Examples**: Extensive real-world usage examples
|
||||
|
||||
### Phase 9: Bug Fixes and Stability (February 2025)
|
||||
### Phase 9: Bug Fixes and Stability (February 2026)
|
||||
|
||||
#### Critical Bug Fixes
|
||||
- **PlayNotificationBeep HTTP Method Fix**: Corrected `/playNotification` endpoint to use GET instead of POST
|
||||
@@ -249,17 +249,17 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
|
||||
### API Endpoint Coverage Evolution
|
||||
|
||||
| Phase | Endpoints Added | Cumulative Total | Completion % |
|
||||
|-------|-----------------|------------------|--------------|
|
||||
| Phase 1 | 4 | 4 | 15% |
|
||||
| Phase 2 | 6 | 10 | 38% |
|
||||
| Phase 3 | 8 | 18 | 69% |
|
||||
| Phase 4 | 3 | 21 | 81% |
|
||||
| Phase 5 | 1 | 22 | 85% |
|
||||
| Phase 6 | 2 | 24 | 92% |
|
||||
| Phase 7 | 3 | 27 | 96% |
|
||||
| Phase 8 | 2 | 29 | 100% |
|
||||
| Phase 9 | 0 | 29 | 100% (Bug fixes) |
|
||||
| Phase | Endpoints Added | Cumulative Total | Completion % |
|
||||
|---------|-----------------|------------------|------------------|
|
||||
| Phase 1 | 4 | 4 | 15% |
|
||||
| Phase 2 | 6 | 10 | 38% |
|
||||
| Phase 3 | 8 | 18 | 69% |
|
||||
| Phase 4 | 3 | 21 | 81% |
|
||||
| Phase 5 | 1 | 22 | 85% |
|
||||
| Phase 6 | 2 | 24 | 92% |
|
||||
| Phase 7 | 3 | 27 | 96% |
|
||||
| Phase 8 | 2 | 29 | 100% |
|
||||
| Phase 9 | 0 | 29 | 100% (Bug fixes) |
|
||||
|
||||
### Testing Evolution
|
||||
|
||||
@@ -283,7 +283,7 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
### CLI Tool Evolution
|
||||
|
||||
#### Command Categories Added by Phase
|
||||
- **Phase 1**: `info`, `name`, `capabilities`
|
||||
- **Phase 1**: `info`, `name`, `capabilities`
|
||||
- **Phase 2**: `discover`, `play`, `volume`, `key`
|
||||
- **Phase 3**: `bass`, `balance`, `source`, `presets`
|
||||
- **Phase 4**: `clock`, `network`
|
||||
@@ -371,4 +371,4 @@ This document tracks the detailed evolution of features and capabilities in the
|
||||
|
||||
---
|
||||
|
||||
**This document tracks the evolution of the Bose SoundTouch API client from initial concept to production-ready library.**
|
||||
**This document tracks the evolution of the Bose SoundTouch API client from initial concept to production-ready library.**
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# 🎉 Introducing SoundTouch Service: Local Cloud Service Emulation
|
||||
|
||||
**Date**: January 2024
|
||||
**Version**: v2.0.0+
|
||||
**Date**: February 2026
|
||||
**Version**: v2.0.0+
|
||||
**Status**: Production Ready
|
||||
|
||||
## What's New?
|
||||
@@ -68,7 +68,7 @@ Our implementation is heavily inspired by and based on [SoundCork](https://githu
|
||||
|
||||
**Key contributions from SoundCork:**
|
||||
- Service emulation architecture
|
||||
- BMX/Marge endpoint discovery
|
||||
- BMX/Marge endpoint discovery
|
||||
- Device migration strategies
|
||||
- Python implementation reference
|
||||
|
||||
@@ -137,7 +137,7 @@ LOG_PROXY_BODY=true soundtouch-service
|
||||
## 🚀 Future Plans
|
||||
|
||||
- **Docker Images**: Official container images for easy deployment
|
||||
- **Cluster Support**: Multi-instance deployment for high availability
|
||||
- **Cluster Support**: Multi-instance deployment for high availability
|
||||
- **Advanced Analytics**: Machine learning-powered usage insights
|
||||
- **Extended Protocol Support**: Additional Bose protocol implementations
|
||||
- **Mobile App**: Companion mobile application for device management
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Bose SoundTouch API Coverage Analysis
|
||||
|
||||
**Last Updated:** January 2025
|
||||
**API Version:** Official Bose SoundTouch Web API v1.0
|
||||
**Last Updated:** February 2026
|
||||
**API Version:** Official Bose SoundTouch Web API v1.0
|
||||
**Implementation Status:** 100% Official Coverage + Extended Features
|
||||
|
||||
## Executive Summary
|
||||
@@ -10,7 +10,7 @@ This Go implementation provides **complete coverage** of the Bose SoundTouch Web
|
||||
|
||||
### Key Findings
|
||||
- ✅ **All essential user functionality implemented**
|
||||
- ✅ **Complete zone management implementation**
|
||||
- ✅ **Complete zone management implementation**
|
||||
- ✅ **Real-time WebSocket event system**
|
||||
- ✅ **Extended features beyond official specification**
|
||||
- ✅ **Complete advanced audio controls implementation**
|
||||
@@ -22,42 +22,42 @@ This Go implementation provides **complete coverage** of the Bose SoundTouch Web
|
||||
|
||||
### Implemented Endpoints: 20/21 (95%)
|
||||
|
||||
| Endpoint | Method | Status | Implementation | Notes |
|
||||
|----------|--------|--------|----------------|--------|
|
||||
| `/key` | POST | ✅ **Complete** | `SendKey()`, `SendKeyPress()`, `SendKeyRelease()` | Full key simulation with press/release states |
|
||||
| `/select` | POST | ✅ **Complete** | `SelectSource()`, `SelectSpotify()`, etc. | Source selection with validation |
|
||||
| `/sources` | GET | ✅ **Complete** | `GetSources()` | Available audio sources |
|
||||
| `/bassCapabilities` | GET | ✅ **Complete** | `GetBassCapabilities()` | Bass capability detection |
|
||||
| `/bass` | GET/POST | ✅ **Complete** | `GetBass()`, `SetBass()`, `SetBassSafe()` | Bass control (-9 to +9) with safety limits |
|
||||
| `/getZone` | GET | ✅ **Complete** | `GetZone()`, `GetZoneStatus()`, `GetZoneMembers()` | Multiroom zone information |
|
||||
| `/setZone` | POST | ✅ **Complete** | `SetZone()`, `CreateZone()`, `AddToZone()`, `RemoveFromZone()` | Zone configuration and management |
|
||||
| `/now_playing` | GET | ✅ **Complete** | `GetNowPlaying()` | Current playback status with full metadata |
|
||||
| `/trackInfo` | GET | ❌ **Non-functional** | `GetTrackInfo()` | Documented but times out on real devices |
|
||||
| `/volume` | GET/POST | ✅ **Complete** | `GetVolume()`, `SetVolume()`, `SetVolumeSafe()` | Volume and mute control with safety features |
|
||||
| `/presets` | GET | ✅ **Complete** | `GetPresets()`, `GetNextAvailablePresetSlot()` | Preset configurations (read-only per API spec) |
|
||||
| `/info` | GET | ✅ **Complete** | `GetDeviceInfo()` | Device information and capabilities |
|
||||
| `/name` | POST | ✅ **Complete** | `SetName()` | Device name modification |
|
||||
| `/capabilities` | GET | ✅ **Complete** | `GetCapabilities()` | Device feature capabilities |
|
||||
| `/addZoneSlave` | POST | ✅ **Complete** | `AddZoneSlave()`, `AddZoneSlaveByDeviceID()` | Individual device addition to zone |
|
||||
| `/removeZoneSlave` | POST | ✅ **Complete** | `RemoveZoneSlave()`, `RemoveZoneSlaveByDeviceID()` | Individual device removal from zone |
|
||||
| `/audiodspcontrols` | GET/POST | ✅ **Complete** | `GetAudioDSPControls()`, `SetAudioDSPControls()`, `SetAudioMode()`, `SetVideoSyncAudioDelay()` | DSP audio modes and video sync delay |
|
||||
| `/audioproducttonecontrols` | GET/POST | ✅ **Complete** | `GetAudioProductToneControls()`, `SetAudioProductToneControls()`, `SetAdvancedBass()`, `SetAdvancedTreble()` | Advanced bass/treble controls |
|
||||
| `/audioproductlevelcontrols` | GET/POST | ✅ **Complete** | `GetAudioProductLevelControls()`, `SetAudioProductLevelControls()`, `SetFrontCenterSpeakerLevel()`, `SetRearSurroundSpeakersLevel()` | Speaker level controls |
|
||||
| `/speaker` | POST | ✅ **Complete** | `PlayTTS()`, `PlayURL()`, `PlayCustom()` | TTS and URL content playback for notifications |
|
||||
| `/playNotification` | GET | ✅ **Complete** | `PlayNotificationBeep()` | Simple notification beep sound |
|
||||
| Endpoint | Method | Status | Implementation | Notes |
|
||||
|------------------------------|----------|----------------------|--------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------|
|
||||
| `/key` | POST | ✅ **Complete** | `SendKey()`, `SendKeyPress()`, `SendKeyRelease()` | Full key simulation with press/release states |
|
||||
| `/select` | POST | ✅ **Complete** | `SelectSource()`, `SelectSpotify()`, etc. | Source selection with validation |
|
||||
| `/sources` | GET | ✅ **Complete** | `GetSources()` | Available audio sources |
|
||||
| `/bassCapabilities` | GET | ✅ **Complete** | `GetBassCapabilities()` | Bass capability detection |
|
||||
| `/bass` | GET/POST | ✅ **Complete** | `GetBass()`, `SetBass()`, `SetBassSafe()` | Bass control (-9 to +9) with safety limits |
|
||||
| `/getZone` | GET | ✅ **Complete** | `GetZone()`, `GetZoneStatus()`, `GetZoneMembers()` | Multiroom zone information |
|
||||
| `/setZone` | POST | ✅ **Complete** | `SetZone()`, `CreateZone()`, `AddToZone()`, `RemoveFromZone()` | Zone configuration and management |
|
||||
| `/now_playing` | GET | ✅ **Complete** | `GetNowPlaying()` | Current playback status with full metadata |
|
||||
| `/trackInfo` | GET | ❌ **Non-functional** | `GetTrackInfo()` | Documented but times out on real devices |
|
||||
| `/volume` | GET/POST | ✅ **Complete** | `GetVolume()`, `SetVolume()`, `SetVolumeSafe()` | Volume and mute control with safety features |
|
||||
| `/presets` | GET | ✅ **Complete** | `GetPresets()`, `GetNextAvailablePresetSlot()` | Preset configurations (read-only per API spec) |
|
||||
| `/info` | GET | ✅ **Complete** | `GetDeviceInfo()` | Device information and capabilities |
|
||||
| `/name` | POST | ✅ **Complete** | `SetName()` | Device name modification |
|
||||
| `/capabilities` | GET | ✅ **Complete** | `GetCapabilities()` | Device feature capabilities |
|
||||
| `/addZoneSlave` | POST | ✅ **Complete** | `AddZoneSlave()`, `AddZoneSlaveByDeviceID()` | Individual device addition to zone |
|
||||
| `/removeZoneSlave` | POST | ✅ **Complete** | `RemoveZoneSlave()`, `RemoveZoneSlaveByDeviceID()` | Individual device removal from zone |
|
||||
| `/audiodspcontrols` | GET/POST | ✅ **Complete** | `GetAudioDSPControls()`, `SetAudioDSPControls()`, `SetAudioMode()`, `SetVideoSyncAudioDelay()` | DSP audio modes and video sync delay |
|
||||
| `/audioproducttonecontrols` | GET/POST | ✅ **Complete** | `GetAudioProductToneControls()`, `SetAudioProductToneControls()`, `SetAdvancedBass()`, `SetAdvancedTreble()` | Advanced bass/treble controls |
|
||||
| `/audioproductlevelcontrols` | GET/POST | ✅ **Complete** | `GetAudioProductLevelControls()`, `SetAudioProductLevelControls()`, `SetFrontCenterSpeakerLevel()`, `SetRearSurroundSpeakersLevel()` | Speaker level controls |
|
||||
| `/speaker` | POST | ✅ **Complete** | `PlayTTS()`, `PlayURL()`, `PlayCustom()` | TTS and URL content playback for notifications |
|
||||
| `/playNotification` | GET | ✅ **Complete** | `PlayNotificationBeep()` | Simple notification beep sound |
|
||||
|
||||
### Non-functional Endpoints: 1/21 (5%)
|
||||
|
||||
| Endpoint | Method | Status | Reason | Impact |
|
||||
|----------|--------|--------|--------|---------|
|
||||
| `/trackInfo` | GET | ❌ **Non-functional** | Times out on real devices (AllegroWebserver timeout) | **None** - Use `/now_playing` instead |
|
||||
| Endpoint | Method | Status | Reason | Impact |
|
||||
|--------------|--------|----------------------|------------------------------------------------------|---------------------------------------|
|
||||
| `/trackInfo` | GET | ❌ **Non-functional** | Times out on real devices (AllegroWebserver timeout) | **None** - Use `/now_playing` instead |
|
||||
|
||||
### Official Endpoints Not Supported by API: 1
|
||||
|
||||
| Endpoint | Method | Status | Official API Status |
|
||||
|----------|--------|--------|-------------------|
|
||||
| `/storePreset` | POST | ✅ **IMPLEMENTED** | Found via [SoundTouch Plus Wiki](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki/SoundTouch-WebServices-API) (official docs marked `/presets` POST as "N/A") |
|
||||
| `/removePreset` | POST | ✅ **IMPLEMENTED** | Found via [SoundTouch Plus Wiki](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki/SoundTouch-WebServices-API) |
|
||||
| Endpoint | Method | Status | Official API Status |
|
||||
|-----------------|--------|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `/storePreset` | POST | ✅ **IMPLEMENTED** | Found via [SoundTouch Plus Wiki](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki/SoundTouch-WebServices-API) (official docs marked `/presets` POST as "N/A") |
|
||||
| `/removePreset` | POST | ✅ **IMPLEMENTED** | Found via [SoundTouch Plus Wiki](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki/SoundTouch-WebServices-API) |
|
||||
|
||||
---
|
||||
|
||||
@@ -67,24 +67,24 @@ This Go implementation provides **complete coverage** of the Bose SoundTouch Web
|
||||
|
||||
**Note**: The `/speaker` and `/playNotification` endpoints were discovered via the [SoundTouch Plus Wiki](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki/SoundTouch-WebServices-API) and are now part of the official coverage.
|
||||
|
||||
| Endpoint | Method | Status | Notes |
|
||||
|----------|--------|--------|--------|
|
||||
| `/name` | GET | 🔍 **Extra** | Official API only documents POST, but GET works with real hardware |
|
||||
| `/balance` | GET/POST | 🔍 **Extra** | Stereo balance control (-50 to +50) - not in API v1.0 |
|
||||
| `/clockTime` | GET/POST | 🔍 **Extra** | Device time management - works with real devices |
|
||||
| `/clockDisplay` | GET/POST | 🔍 **Extra** | Clock display settings and brightness |
|
||||
| `/networkInfo` | GET | 🔍 **Extra** | Network connectivity information |
|
||||
| Endpoint | Method | Status | Notes |
|
||||
|-----------------|----------|--------------|--------------------------------------------------------------------|
|
||||
| `/name` | GET | 🔍 **Extra** | Official API only documents POST, but GET works with real hardware |
|
||||
| `/balance` | GET/POST | 🔍 **Extra** | Stereo balance control (-50 to +50) - not in API v1.0 |
|
||||
| `/clockTime` | GET/POST | 🔍 **Extra** | Device time management - works with real devices |
|
||||
| `/clockDisplay` | GET/POST | 🔍 **Extra** | Clock display settings and brightness |
|
||||
| `/networkInfo` | GET | 🔍 **Extra** | Network connectivity information |
|
||||
|
||||
### Advanced Implementation Features
|
||||
|
||||
| Feature | Status | Description |
|
||||
|---------|--------|-------------|
|
||||
| **WebSocket Events** | ✅ **Complete** | Real-time device state monitoring (`nowPlayingUpdated`, `volumeUpdated`, etc.) |
|
||||
| **Device Discovery** | ✅ **Complete** | UPnP/SSDP + mDNS/Bonjour automatic discovery |
|
||||
| **Safety Features** | ✅ **Enhanced** | Volume limiting, bass clamping, input validation |
|
||||
| **High-Level Zone API** | ✅ **Superior** | Fluent zone management API replacing low-level slave operations |
|
||||
| **Preset Management** | ✅ **Wiki Documented** | Full preset CRUD via `/storePreset` and `/removePreset` endpoints (found via SoundTouch Plus Wiki) |
|
||||
| **Content Navigation** | ✅ **Complete** | Browse and search content via `/navigate`, `/searchStation`, `/addStation` (via SoundTouch Plus Wiki) |
|
||||
| Feature | Status | Description |
|
||||
|-------------------------|-----------------------|-------------------------------------------------------------------------------------------------------|
|
||||
| **WebSocket Events** | ✅ **Complete** | Real-time device state monitoring (`nowPlayingUpdated`, `volumeUpdated`, etc.) |
|
||||
| **Device Discovery** | ✅ **Complete** | UPnP/SSDP + mDNS/Bonjour automatic discovery |
|
||||
| **Safety Features** | ✅ **Enhanced** | Volume limiting, bass clamping, input validation |
|
||||
| **High-Level Zone API** | ✅ **Superior** | Fluent zone management API replacing low-level slave operations |
|
||||
| **Preset Management** | ✅ **Wiki Documented** | Full preset CRUD via `/storePreset` and `/removePreset` endpoints (found via SoundTouch Plus Wiki) |
|
||||
| **Content Navigation** | ✅ **Complete** | Browse and search content via `/navigate`, `/searchStation`, `/addStation` (via SoundTouch Plus Wiki) |
|
||||
|
||||
---
|
||||
|
||||
@@ -221,4 +221,4 @@ The single non-functional endpoint (`/trackInfo`) is **broken on real devices**
|
||||
|
||||
**Note**: All official API endpoints are implemented. The `/trackInfo` endpoint times out on real devices but is implemented and tested.
|
||||
|
||||
**Overall Assessment: Complete** ⭐⭐⭐⭐⭐
|
||||
**Overall Assessment: Complete** ⭐⭐⭐⭐⭐
|
||||
|
||||
Reference in New Issue
Block a user