Files
bf-infra/mcp/sonos
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
..

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.