73 lines
5.0 KiB
Markdown
73 lines
5.0 KiB
Markdown
# Sonos-Inventar (live, 2026-07-02)
|
|
|
|
> **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`) 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, alle live auf VLAN 40)
|
|
|
|
| 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 |
|
|
|
|
**Zusätzlich (nicht Teil der ursprünglichen 10):**
|
|
|
|
| aktuelle IP | Zone / Rolle | MAC | Status |
|
|
|---|---|---|---|
|
|
| 10.40.40.198 | SonosTerrasse | `78:28:CA:D2:0D:AC` | ⏳ waiting (aktuell offline) |
|
|
|
|
> HA-Zuordnung (Beispiel): der Arc meldet sich als
|
|
> `RINCON_48A6B80B631001400@Wohnzimmer._sonos._tcp.local.` (RINCON = MAC ohne Trenner + `01400`).
|
|
|
|
## Home Assistant (TP7.2, korrigiert 2026-07-03)
|
|
- **⚠️ Korrektur früherer Notiz:** HA sitzt **nicht** auf VLAN 20, sondern noch auf `10.40.41.105`
|
|
(VLAN-1-Transfernetz, IP-Migration steht aus). Die HA-Sonos-Integration ist **SSDP-abhängig**
|
|
(`manifest dependencies:[ssdp]`, soco 0.31.1) → quert die VLAN-Grenze **nicht**. Deshalb waren alle
|
|
Sonos in HA `unavailable`, obwohl die iOS-App (mDNS) sie fand. Die alte „HA nutzt zeroconf/mDNS,
|
|
self-healing"-Aussage war falsch.
|
|
- ✅ **Fix (discovery-unabhängig):** `sonos: media_player:` in `configuration.yaml` mit **statischer `hosts:`-Liste**
|
|
(alle 11 IPs oben) + **`advertise_addr: 10.40.41.105`** (fixt UPnP-Event-Callbacks trotz HA-Multi-Homing
|
|
`.105`/`172.16.0.18`/docker). Nach Core-Restart alle 6 Online-Zonen `idle/playing`, Wohnzimmer-Push verifiziert.
|
|
- ✅ **Zusätzlich** hat der Repeater seit TP7.2 `bridge`(=VLAN 1) im Scope → HA bekommt jetzt auch die zeroconf-
|
|
Advertisements und meldet „automatic discovery is working". Die static `hosts:` bleiben als Redundanz.
|
|
- Steuern + **Gruppieren** läuft über die native **Sonos-Integration** (SOAP auf Port 1400), *nicht* AirPlay.
|
|
- IPs sind DHCP-reserviert = stabil; obige Tabelle ist die SSoT.
|
|
|
|
## 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:
|
|
```
|
|
./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
|
|
```
|