Sonos
Steuert Sonos-Lautsprecher über eine lokale HTTP-API (kompatibel mit node-sonos-http-api). Ideal für Agent-Loop-Befehle wie „Pausiere das Wohnzimmer“ oder „Liste alle Räume“.
Kategorie: Integrationen & Business | Quelldatei: sonosBlock.js | Auth: Bridge-URL (kein Sonos-Cloud-Key)
Kurzbeschreibung
Uella spricht mit einer Sonos-HTTP-Bridge in deinem Netzwerk (Standard: http://localhost:5005). Der Block deckt Zonen, Wiedergabe, Lautstärke, Gruppierung und Hausweite Befehle ab — optimiert für den Agent Loop mit klaren operation-Werten.
Voraussetzungen
- Sonos-System im gleichen LAN wie Uella (oder erreichbare Bridge-URL).
- HTTP-Bridge installiert und gestartet, z. B.:
- node-sonos-http-api (
npm start, Port 5005) - oder ein Image/Container, das dieselbe URL-Struktur bietet
- node-sonos-http-api (
- In Uella: Base-URL im Block oder unter Einstellungen → Sonos HTTP-API
Optional: HTTP Basic Auth, falls die Bridge geschützt ist.
Konfiguration
| Feld | Beschreibung |
|---|---|
baseUrl | z. B. http://192.168.1.50:5005 |
httpUser / httpPassword | Nur bei aktivierter Basic Auth |
roomName | Exakter Raumname wie in der Sonos-App (z. B. Wohnzimmer) |
operation | Aktion (im Flow) oder vom Agenten als Tool-Parameter |
Globale Werte (Profil): Objekt sonos mit { "baseUrl": "…", "httpUser": "…", "httpPassword": "…" } oder flache Keys sonosBaseUrl, sonosHttpUser, sonosHttpPassword.
Typische Agent-Aufgaben
| Aufgabe | Operation | Parameter |
|---|---|---|
| Räume anzeigen | zones_list | — |
| Was läuft gerade? | state_get | roomName |
| Abspielen / Pause | play / pause / playpause | roomName |
| Lautstärke setzen | volume_set | roomName, volume (0–100) |
| Leiser / lauter | volume_relative | roomName, volumeDelta (z. B. -5, +10) |
| Favorit starten | favorite_play | roomName, favoriteName |
| Alle pausieren | pause_all | optional pauseAllMinutes |
| Gruppieren | join_room | roomName, targetRoomName |
| Aus Gruppe | leave_room | roomName |
Beispiel-Prompts:
- „Welche Sonos-Räume gibt es?“ →
zones_list - „Pausiere das Wohnzimmer“ →
pause+roomName: Wohnzimmer - „Stelle Küche auf 25 Prozent“ →
volume_set+volume: 25
Agent Loop
- Block Sonos im Agent-Loop unter Tools aktivieren.
- Bei unbekanntem Raum zuerst
zones_list— Raumnamen exakt übernehmen. - Der Block liefert ein eigenes Tool-Schema (
buildAgentLoopToolSchema) und Operations-Hinweise für das Modell.
Hinweise
- Keine offizielle Sonos-Cloud-API — Steuerung läuft über UPnP/HTTP im LAN; die Bridge muss vom Uella-Server erreichbar sein.
- Raumnamen mit Leerzeichen sind ok (z. B.
Living Room); der Block URL-encodiert automatisch. - Bei
ECONNREFUSED: Bridge-URL prüfen, Firewall, ob Uella im selben Netz wie Sonos läuft. - Erweiterte Aktionen (z. B.
say, Presets): Operationcustom_requestmitcustomPath(z. B./Wohnzimmer/say/Hallo).
Links
- node-sonos-http-api: https://github.com/jishi/node-sonos-http-api
- API-Übersicht: http://jishi.github.io/node-sonos-http-api/