- 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>
3.3 KiB
3.3 KiB
Sonos-Inventar (live, 2026-06-17)
Erhoben zero-dep über die Sonos-HTTP-API (:1400) vom Mac (VLAN 1, 10.40.41.82, en5)
mit mcp/sonos/sonos-inv.py --seeds 10.40.40.199. Alle 10 Geräte S2 (SWGen=2).
Sonos hat keine API zum WLAN-Umstellen — Migration passiert am Netz, nicht am Gerät.
Bestand (10 Sonos)
| IP | Modell (Nr.) | Zone | MAC | SW | Wifi | Eth | VLAN | Status |
|---|---|---|---|---|---|---|---|---|
| 10.40.40.199 | SYMFONISK Bookshelf (S21) | Arbeitszimmer (L) | 34:7E:5C:32:37:96 |
86.7 | 0 | 1 | 40 | ✅ wired (Omada P6) |
| 10.40.40.200 | SYMFONISK Bookshelf (S21) | Arbeitszimmer (R) | 34:7E:5C:32:33:B8 |
86.7 | 0 | 1 | 40 | ✅ wired |
| 10.40.41.193 | SYMFONISK Table lamp (S20) | Schlafzimmer (L) | 78:28:CA:80:2A:F6 |
86.7 | 0 | 1 | 1 | ⏳ wired → Port nach VLAN 40 |
| 10.40.41.194 | SYMFONISK Table lamp (S20) | Schlafzimmer (R) | 78:28:CA:82:16:C2 |
86.7 | 0 | 1 | 1 | ⏳ wired → Port nach VLAN 40 |
| 10.40.41.195 | Sonos One SL (S22) | Bad | 48:A6:B8:14:FE:D0 |
95.0 | 1 | 0 | 1 | ⏳ WLAN |
| 10.40.41.196 | Sonos One SL (S22) | Kinderzimmer | 48:A6:B8:16:38:AE |
95.0 | 1 | 0 | 1 | ⏳ WLAN |
| 10.40.41.197 | Sonos One SL (S22) | Küche | 48:A6:B8:14:FE:F2 |
95.0 | 1 | 0 | 1 | ⏳ WLAN |
| 10.40.41.199 | Sonos Arc (S19) | Wohnzimmer (LF,RF) | 48:A6:B8:0B:63:10 |
95.0 | 1 | 0 | 1 | ⏳ WLAN — HT-Coordinator |
| 10.40.41.200 | Sonos Amp (S16) | Wohnzimmer (LR,RR) | 48:A6:B8:69:69:7B |
95.0 | 1 | 0 | 1 | ⏳ WLAN — HT-Surrounds |
| 10.40.41.201 | Sonos Sub | Wohnzimmer (SW) | 94:9F:3E:49:59:EE |
86.7 | 1 | 0 | 1 | ⏳ WLAN — HT-Sub |
Alle DHCP (Sonos kann kein statisches IP); VLAN-40-Paar hat dyn. Leases aus dhcp-v40.
Migrations-Klassen
- Fertig (VLAN 40, wired): Arbeitszimmer-Paar
.40.199/.200. - Wired, nur Port umhängen → VLAN 40: Schlafzimmer-Table-lamp-Paar
.41.193/.194(Wifi=0, Eth=1). Kamen via ALLNET/FB-Uplink (nicht direkter Omada-Access-Port) → Switch-Port lokalisieren (ALLNET MAC-Tabelle) und auf VLAN-40-Access setzen. = der „das schaff ich"-Teil. - Echtes WLAN (der Schmerz) — 6 Geräte:
- Standalone: Sonos One SL Bad / Kinderzimmer / Küche.
- Home-Theater-Bond „Wohnzimmer": Arc + Amp + Sub (Arc = Coordinator; Amp/Sub als
Satelliten an den Arc gebunden — beim Umzug zusammen behandeln).
→ Alle S2 ⇒
:1400/wifictrl(Remote-WLAN-Aus) nicht verfügbar. Sauberer Weg = TP3-Cutover (Media-SSID bzw. Per-MAC → VLAN 40); App-Re-Onboarding vermeidbar, wenn die Media-SSID die Geräte beim FB-WLAN-Abschalten selbst übernimmt. Alternativ kurzzeitig verkabeln.
Household-Partitionierung (Tooling-Gotcha)
ZoneGroupState ist pro VLAN partitioniert (Multicast quert VLANs nicht):
VLAN 40 sieht nur .40.199/.200, VLAN 1 sieht nur .41.193–.201. → Tool braucht einen Seed
je Partition (10.40.40.199 und ein VLAN-1-Gerät; lokales SSDP deckt VLAN 1 automatisch ab).
Werkzeug
mcp/sonos/sonos-inv.py (zero-dep, kein Daemon). Inventar:
./mcp/sonos/sonos-inv.py --seeds 10.40.40.199 # Tabelle
./mcp/sonos/sonos-inv.py --seeds 10.40.40.199 --json # maschinenlesbar
./mcp/sonos/sonos-inv.py --seeds 10.40.40.199 --verify 40 # Exit!=0 wenn ein Gerät nicht in VLAN 40