Documentation for controlling and preserving Bose SoundTouch devices
This document summarizes the implementation of SCMUDC (Sound Control Management Usage Data Collection) event enrichment in the AfterTouch toolkit. The enhancement provides human-readable analysis of device telemetry data to improve usability and debugging capabilities.
Previously, SCMUDC telemetry events were stored as raw JSON with Base64-encoded XML content, making them difficult to analyze. Users had to manually decode content to understand what device interactions were being recorded.
pkg/service/proxy/)scmudc.gorecorder.goSCMUDCData field for API responsespkg/service/handlers/web/index.html)pkg/service/handlers/web/js/script.js)getOriginIcon(): Maps origins to emojis (📱 App, 🎛️ Hardware, 🔄 Internal)getActionIcon(): Maps actions to emojis (▶️ Play, ⏸️ Pause, etc.)showSCMUDCDetails(): Detailed popover for complex eventsdisplaySCMUDCPopover(): Modal dialog with full decoded contentBased on analysis of recorded data:
| Origin | Source | Description | Example Events |
|---|---|---|---|
gabbo |
SoundTouch App | Mobile/desktop app UI interactions | Play, Pause, Power via app |
console |
Device Hardware | Physical buttons on speaker | Preset buttons, hardware power |
device |
Internal System | Automatic device responses | Content playback, system actions |
### POST /v1/scmudc/A81B6A536A98
POST /v1/scmudc/A81B6A536A98
Host: events.api.bosecm.com
...
{"envelope":...,"payload":{"events":[{"data":{"contentItem":"PD94bWw..."}}]}}
### POST /v1/scmudc/A81B6A536A98
// Origin: Internal System (device)
// Action: play-item
// Command: Billie Eilish - bad guy (instrumental version)
// Summary: Device: Spotify: Billie Eilish - bad guy (instrumental version)
//
// Decoded Content:
// - Source: SPOTIFY
// - Item: Billie Eilish - bad guy (instrumental version)
// - Account: gesellix
// - Artwork: https://i.scdn.co/image/ab67616d0000b273...
//
// Full XML Content:
// <?xml version="1.0" encoding="UTF-8"?>
// <ContentItem source="SPOTIFY" type="tracklisturl" ...>
// <itemName>Billie Eilish - bad guy (instrumental version)</itemName>
// <containerArt>https://i.scdn.co/image/ab67616d0000b273...</containerArt>
// </ContentItem>
POST /v1/scmudc/A81B6A536A98
...
> {%
// Response: 200 OK
// SCMUDC Event Analysis:
// - Origin: Internal System (device)
// - Action: play-item
// - Summary: Device: Spotify: Billie Eilish - bad guy (instrumental version)
// - Content: Billie Eilish - bad guy (instrumental version)
// - Account: gesellix
%}
📱 ▶️ Play Button (Simple app action)
🔄 🎵 Billie Eilish - bad guy... (...) (Complex device event with details)
🎛️ ⭐ Preset 5 (Hardware preset button)
For complex events, clicking “(…)” shows:
pkg/service/proxy/
├── scmudc.go # New: SCMUDC enrichment logic
├── recorder.go # Enhanced: Enrichment integration
│
pkg/service/handlers/web/
├── index.html # Enhanced: New table column
├── js/script.js # Enhanced: SCMUDC display logic
│
docs/
├── scmudc-events-analysis.md # New: Analysis documentation
├── SCMUDC-ENRICHMENT-IMPLEMENTATION.md # This file
This implementation significantly improves the usability of SCMUDC telemetry data while maintaining full backward compatibility and raw data access for advanced users.