Files
bf-infra/docs/sonos-inventar.md
Christoph Emsenhuber 82ca6e282c docs 📄 TP7.2: HA↔Sonos static-host binding + VLAN1/GUEST-Discovery
HA-Sonos waren unavailable: HA hängt auf VLAN1 (10.40.41.105), nicht VLAN20,
und die Sonos-Integration ist SSDP-abhängig (quert VLAN nicht) — frühere
"HA nutzt mDNS/self-healing"-Notiz war falsch.

Fix: static hosts: + advertise_addr in configuration.yaml (discovery-unabhängig,
advertise_addr fixt UPnP-Callbacks trotz Multi-Homing). Zusätzlich VLAN1/GUEST-
Erreichbarkeit: mdns-repeat-ifaces +vlan90,bridge; forward vlan90↔vlan40 (ganzes
MEDIA) + input 5353 vlan90. Flacher-Repeater-Leak bewusst.

- teilprojekte.md: neues TP7.2, TP5/TP7-Regeln nachgezogen
- sonos-inventar.md: HA-Abschnitt korrigiert (SSDP + static hosts)
- tp7-mdns.md: superseding Update-Block (neue Repeater-Ifaces, GUEST-Forward)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 08:05:18 +02:00

5.0 KiB

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