From 1e0e92671aa30af45bb4178b133745569ffbe793 Mon Sep 17 00:00:00 2001 From: Christoph Emsenhuber Date: Thu, 2 Jul 2026 19:29:22 +0200 Subject: [PATCH] =?UTF-8?q?TP7=20=F0=9F=93=84=20Sonos-Inventar:=20Migratio?= =?UTF-8?q?n=20abgeschlossen=20(alle=2010=20auf=20VLAN40)=20+=20HA-Integra?= =?UTF-8?q?tion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Alle Sonos jetzt auf VLAN40 (10.40.40.0/24), IPs per MAC DHCP-reserviert. Korrigierte IPs (Arbeitszimmer .199/.200 → .191/.192, Arc hält .199). Discovery-Merkregel dokumentiert: iOS-App + Home Assistant = mDNS/zeroconf (_sonos._tcp.local.) → über Repeater lösbar; macOS-Desktop-App = SSDP (quert VLAN nicht, kein Reflector gebaut); Spotify = Cloud. Passend zur Router-Änderung (nicht im Repo): mdns-repeat-ifaces= vlan10,vlan20,vlan40 (vlan20 für HA ergänzt) + forward/input-Regeln vlan20<->vlan40. HA discovert per zeroconf selbst → self-healing der IPs. Co-Authored-By: Claude Opus 4.8 --- docs/sonos-inventar.md | 92 +++++++++++++++++++++++------------------- 1 file changed, 50 insertions(+), 42 deletions(-) diff --git a/docs/sonos-inventar.md b/docs/sonos-inventar.md index 18ad9ce..3d8b87c 100644 --- a/docs/sonos-inventar.md +++ b/docs/sonos-inventar.md @@ -1,52 +1,60 @@ -# Sonos-Inventar (live, 2026-06-17) +# Sonos-Inventar (live, 2026-07-02) -> **Update 2026-06-18 (nach TP3-WLAN):** Stand der Migration: -> - **VLAN 40 (MEDIA), 4 Geräte wired:** Arbeitszimmer-Paar `.40.199/.200` + **Schlafzimmer-Table-Lamps** -> `78:28:CA:80:2A:F6`/`82:16:C2` (jetzt `.40.192/.193`, Port auf VLAN 40 umgehängt ✅, reachable). -> - **VLAN 1 (FritzBox-WLAN), 7 Geräte:** 3× One SL (Bad/Kinderzimmer/Küche) + Home-Theater Arc/Amp/Sub -> + **1 weiteres (war offline)** — alle noch nicht migriert. -> - **Folge:** Household über VLAN1↔VLAN40 **gespalten** → mDNS-Repeater (`vlan10,vlan40`) deckt VLAN1 nicht ab -> → „Sonos erscheinen selektiv je Netz" (kein mDNS-Defekt). **Fix = die 7 WLAN-Sonos auf `dirtyvader-media` -> (VLAN 40) holen.** Migrationsziel-SSID steht (TP3); `sec-media` hat **FT/802.11r=no** (802.11r bricht Sonos). +> **Update 2026-07-02 (Migration abgeschlossen + HA-Integration):** +> - **Alle 10 Sonos sind jetzt auf VLAN 40 (MEDIA), `10.40.40.0/24`** — die Vor-Migrations-Aufteilung +> (VLAN 1 / FritzBox-WLAN) ist Geschichte (FB seit 2026-07-01 ausgebaut, Edge-Cutover auf Arris-Bridge). +> - **IPs per MAC fest reserviert** im DHCP-Server `dhcp-v40` auf ap1 (Leases `dynamic:false`) → **stabil**, +> dürfen in HA/Tools hart eingetragen werden. ⚠️ IPs haben sich ggü. dem alten Stand verschoben +> (Arbeitszimmer-Paar `.199/.200` → `.191/.192`; Arc hält jetzt `.199`). +> - **mDNS-Discovery quert jetzt VLANs:** `mdns-repeat-ifaces=vlan10,vlan20,vlan40` auf ap1 (2026-07-02 +> um vlan20 erweitert). Damit finden **iOS-Sonos-App (vlan10)** *und* **Home Assistant (vlan20)** die +> Boxen per Bonjour/`_sonos._tcp.local.` automatisch. Firewall: `forward`-accept vlan10↔vlan40 **und** +> vlan20↔vlan40 gesetzt (TP5-safe), plus `input`-accept udp/5353 für vlan10/vlan20/vlan40. +> - **Desktop-Sonos-App (macOS)** nutzt **SSDP (UDP 1900)** statt mDNS → quert die VLAN-Grenze **nicht** +> (RouterOS reflektiert kein SSDP). Für die Mac-App bräuchte es einen SSDP-Reflector mit Bein je VLAN — +> bewusst **nicht** gebaut (iOS-App + HA decken den Bedarf ab). Spotify Connect geht ohnehin (Cloud). -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. +Erhoben zero-dep über die Sonos-HTTP-API (`:1400`) 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. -## Bestand (10 Sonos) +## Bestand (10 Sonos, alle live auf VLAN 40) -| 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 | +| aktuelle IP | Modell (Nr.) | Zone / Rolle | MAC | SW | Status | +|---|---|---|---|---|---| +| 10.40.40.191 | SYMFONISK Bookshelf (S21) | Arbeitszimmer (L) | `34:7E:5C:32:37:96` | 86.7 | ✅ bound | +| 10.40.40.192 | SYMFONISK Bookshelf (S21) | Arbeitszimmer (R) | `34:7E:5C:32:33:B8` | 86.7 | ✅ bound | +| 10.40.40.193 | SYMFONISK Table lamp (S20) | Schlafzimmer (L) | `78:28:CA:80:2A:F6` | 86.7 | ✅ bound | +| 10.40.40.195 | SYMFONISK Table lamp (S20) | Schlafzimmer (R) | `78:28:CA:82:16:C2` | 86.7 | ✅ bound | +| 10.40.40.194 | Sonos One SL (S22) | Bad | `48:A6:B8:14:FE:D0` | 95.0 | ✅ bound | +| 10.40.40.196 | Sonos One SL (S22) | Kinderzimmer | `48:A6:B8:16:38:AE` | 95.0 | ✅ bound | +| 10.40.40.197 | Sonos One SL (S22) | Küche | `48:A6:B8:14:FE:F2` | 95.0 | ✅ bound | +| 10.40.40.199 | **Sonos Arc (S19)** | Wohnzimmer (LF,RF) — HT-Coordinator | `48:A6:B8:0B:63:10` | 95.0 | ✅ bound | +| 10.40.40.200 | **Sonos Amp (S16)** | Wohnzimmer (LR,RR) — HT-Surrounds | `48:A6:B8:69:69:7B` | 95.0 | ✅ bound | +| 10.40.40.201 | **Sonos Sub** | Wohnzimmer (SW) — HT-Sub | `94:9F:3E:49:59:EE` | 86.7 | ✅ bound | -Alle DHCP (Sonos kann kein statisches IP); VLAN-40-Paar hat dyn. Leases aus `dhcp-v40`. +**Zusätzlich (nicht Teil der ursprünglichen 10):** -## 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. +| aktuelle IP | Zone / Rolle | MAC | Status | +|---|---|---|---| +| 10.40.40.198 | SonosTerrasse | `78:28:CA:D2:0D:AC` | ⏳ waiting (aktuell offline) | -## 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). +> HA-Zuordnung (Beispiel): der Arc meldet sich als +> `RINCON_48A6B80B631001400@Wohnzimmer._sonos._tcp.local.` (RINCON = MAC ohne Trenner + `01400`). + +## Home Assistant +- HA (INFRA/VLAN 20) entdeckt Sonos per **zeroconf/mDNS** (`_sonos._tcp.local.`), **nicht** SSDP → + seit der Repeater-vlan20-Erweiterung (2026-07-02) findet HA die Boxen wieder selbst und zieht die + aktuellen `10.40.40.x`-IPs nach (self-healing, keine manuellen Hosts nötig). +- Steuern + **Gruppieren** läuft über die native **Sonos-Integration** (SOAP auf Port 1400), *nicht* AirPlay. +- Falls IPs mal hart hinterlegt werden sollen: obige Tabelle ist die SSoT; IPs sind DHCP-reserviert = stabil. + +## Home-Theater-Bond „Wohnzimmer" +Arc (`.199`, Coordinator) + Amp (`.200`, Surrounds) + Sub (`.201`) sind aneinander gebunden — +beim Umzug/Reset zusammen behandeln. + +## Household-Partitionierung (Tooling-Gotcha — historisch) +Früher war ZoneGroupState **pro VLAN partitioniert** (Multicast querte VLANs nicht) → Tool brauchte einen +Seed je Partition. **Obsolet**, seit alle Sonos in VLAN 40 zusammenstehen: ein einziger Seed genügt. ## Werkzeug `mcp/sonos/sonos-inv.py` (zero-dep, kein Daemon). Inventar: