- 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>
24 lines
1.3 KiB
Markdown
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`.
|