Files
bf-infra/mcp/sonos/README.md
Christoph Emsenhuber e2c2700252 Sonos 🔍 Inventar (10 Geräte, alle S2) + zero-dep :1400-Helper
- mcp/sonos/sonos-inv.py: SSDP + ZoneGroupTopology-API, Seed-je-VLAN-Partition,
  --json / --verify. Kein MCP-Container (User-Entscheid), kein Daemon, stdlib-only.
- docs/sonos-inventar.md: Bestand + Migrationsklassen.
- Kernbefund: echter WLAN-Umzug = 6 Geräte (3× One SL + HT-Bond Arc/Amp/Sub);
  Schlafzimmer-Paar nur Switch-Port; Arbeitszimmer-Paar fertig. Alle S2 →
  :1400/wifictrl tot → Umzug via TP3-Cutover, nicht am Gerät.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 20:31:11 +02:00

24 lines
1.3 KiB
Markdown

# sonos-inv — Sonos-Inventar/Verifikation (zero-dep, KEIN MCP)
Bewusste Entscheidung statt Sonos-MCP-Container: für unseren Zweck (Bestand erheben +
VLAN-Umzug verifizieren) reicht ein kleines stdlib-Python-Skript über die Sonos-`:1400`-API.
Ein SoCo-MCP-Container bräuchte einen gepatchten Fork (Multicast-only, kein Seeding, kein
Image) und je VLAN-Partition einen Seed — Aufwand ohne Mehrwert, solange wir kein
Playback per Chat steuern. **Sonos hat keine API zum WLAN-Umstellen** — daher hier nicht abgebildet.
## Nutzung
```
./sonos-inv.py # nur lokales Segment (SSDP)
./sonos-inv.py --seeds 10.40.40.199 # + VLAN-40-Partition (BF-Standard)
./sonos-inv.py --seeds 10.40.40.199 --json # maschinenlesbar
./sonos-inv.py --seeds 10.40.40.199 --verify 40 # Exit!=0 wenn ein Gerät nicht in VLAN 40
```
Von einem **VLAN-1-Host** ausführen (z.B. Mac `10.40.41.82`); inter-VLAN-L3 ist offen (bis TP5),
daher sind die VLAN-40-Geräte per Seed-IP erreichbar.
## Gotcha — Discovery ist pro VLAN partitioniert
SSDP-Multicast quert keine VLANs → ein Seed **je Partition** nötig. Lokales SSDP deckt das
Segment des ausführenden Hosts ab (VLAN 1), `--seeds 10.40.40.199` zieht die VLAN-40-Partition dazu.
Bestand & Migrationsplan: `../../docs/sonos-inventar.md`.