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

3.3 KiB
Raw Blame History

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

  1. Fertig (VLAN 40, wired): Arbeitszimmer-Paar .40.199/.200.
  2. 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.
  3. 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