feat: Complete preset management and content navigation CLI with comprehensive documentation

- Add missing CLI commands for navigation and station management functionality
- Implement browse commands (content, menu, container, tunein, pandora, stored-music)
- Implement station commands (search, add, remove) for all sources (TuneIn, Pandora, Spotify)
- Create comprehensive examples for preset management and navigation/station demo
- Update all documentation to properly credit SoundTouch Plus Wiki as endpoint source
- Correct attribution from 'reverse engineering' to community-documented endpoints
- Add Related Projects section acknowledging SoundTouch Plus and SoundCork
- Update API coverage documentation to reflect 100% functional implementation
- Resolve GitHub issue #14 with complete preset management and direct content playback

Resolves: #14
This commit is contained in:
Tobias Gesellchen
2026-01-31 01:14:05 +01:00
parent aca141ecc2
commit 4ebc42f5d5
25 changed files with 2980 additions and 202 deletions
+33 -2
View File
@@ -2,6 +2,8 @@
This document provides a comprehensive overview of the available API endpoints verified against the official Bose SoundTouch Web API v1.0 specification (January 7, 2026).
**Acknowledgment**: Additional endpoints beyond the official API were discovered through the comprehensive [SoundTouch Plus Wiki](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki/SoundTouch-WebServices-API) maintained by the SoundTouch Plus community. Special thanks to @thlucas1 and contributors for documenting these working endpoints that enable full preset management and content navigation functionality.
## Implementation Status Legend
-**Implemented** - Fully implemented with tests and real device validation
- 🔍 **Extra** - Implemented but not in official API v1.0 (may be newer version or undocumented)
@@ -227,10 +229,39 @@ Retrieves the configured presets.
</presets>
```
### POST /presets ️ **N/A**
### POST /storePreset ✅ **IMPLEMENTED**
Creates or updates a preset.
**Status**: According to the official Bose SoundTouch API documentation, POST operations on `/presets` are marked as "N/A" - this endpoint officially does not support preset creation or modification via any API client.
**Status**: While the official Bose SoundTouch API documentation marks POST `/presets` as "N/A", we discovered and implemented the actual working endpoint `/storePreset` through the comprehensive [SoundTouch Plus Wiki](https://github.com/thlucas1/homeassistantcomponent_soundtouchplus/wiki/SoundTouch-WebServices-API). This enables full preset management functionality.
**Implementation**:
- Client method: `StorePreset(id, contentItem)`, `StoreCurrentAsPreset(id)`
- CLI: `preset store`, `preset store-current`
- Supports all content sources: Spotify, TuneIn, local music, etc.
**XML Request**:
```xml
<preset id="1" createdOn="1640995200" updatedOn="1640995200">
<ContentItem source="SPOTIFY" type="uri" location="spotify:playlist:123" isPresetable="true">
<itemName>My Playlist</itemName>
</ContentItem>
</preset>
```
**Response**: Updated preset configuration
### POST /removePreset ✅ **IMPLEMENTED**
Removes/clears a preset slot.
**Implementation**:
- Client method: `RemovePreset(id)`
- CLI: `preset remove --slot <1-6>`
- WebSocket events: Triggers `presetsUpdated` notifications
**XML Request**:
```xml
<preset id="3"/>
```
**Alternative Methods**:
- Use the official Bose SoundTouch mobile app