Sonos-Lautstärke mit Stream Deck+ steuern
Die nachfolgende kurze Anleitung mag sehr spezifisch und für nur wenige relevant sein, ist aber insbesondere auch ein Protokoll für mich selber, um die Konfiguration in Zukunft nachvollziehen zu können.
Das Ziel: Die Lautstärke des Sonos-Lautsprechers auf meinem Pult soll mit dem Drehregler des Stream Deck+ gesteuert werden können. Dafür benötigt ihr:
- Stream Deck+
- Home Assistant mit konfigurierter Sonos-Integration
- Sonos Lautsprecher1
- Stream Deck Plugin für Home Assistant
Script in Home Assistant
Um den Sonos-Lautsprecher mit dem Stream Deck steuern zu können, muss als erstes ein Script in Home Assistant erstellt werden, welches dann beim Drehen des Stream Deck+ Rades ausgelöst wird.
Das Script in Home Assistant erstellen:
- Home Assistant besuchen
- Einstellungen öffnen
- Zu “Automatisierungen & Szenen” navigieren
- Zum Tab “Skripte” wechseln
- “Neues Skript erstellen”
- Mit dem Menü (oben rechts) zu “Als YAML bearbeiten” wechseln
- Untenstehenden Code einfügen
- Speichern
YAML-Code:
alias: Stream Deck + Sonos Volume
sequence:
- if:
- condition: template
value_template: "{{ ticks < 0 }}"
then:
- service: media_player.volume_down
target:
entity_id: media_player.era_300
data: {}
else:
- service: media_player.volume_up
target:
entity_id: media_player.era_300
data: {}
mode: single
icon: mdi:volume-high
Im Code dabei “era_300” durch den Namen eures Lautsprechers in Home Assistant ersetzen.
Das Script erhält beim Drehen des Drehreglers die “Ticks”, also die Schritte der Umdrehung des Reglers. Wenn Ticks < 0 sind, dann dreht ihr nach links, wenn Ticks > 0 nach rechts. Entsprechend wird die Lautstärke bei ticks < 0 gesenkt, bei ticks > 0 erhöht.
Stream Deck+ Konfiguration
Zu Beginn muss das Home Assistant Plugin für Stream Deck aus dem Elgato Marketplace installiert werden. Danach das Home Assistant “Entity (generic)” Modul zum gewünschten Feld für einen der Drehregler hinzufügen.
- Unter “Server Settings” die Verbindung mit eurer Home Assistant Installation herstellen. Der Access Token kann auf eurer Profilseite unter “Langlebige Zugangstoken” ganz unten generiert werden.
- Mit Encoder appearance könnt ihr das Icon eurer Entität in Home Assistant übernehmen. Hier bspw. unter “Domain” “media_player” und als “Entity” euren Lautsprecher auswählen. Hier wird ausschliesslich das Aussehen des Buttons auf eurem Stream Deck konfiguriert.
- Unter “Short Press”, “Long Press” und “Screen tab” können die Aktionen für euren Lautsprecher beim klicken des Drehrades oder dem Bildschirm konfiguriert werden. In meinem Fall habe ich auf einen Short Press die Funktion Play/Pause konfiguriert:
- Domain: media_player
- Service: Play/Pause
- Entity: Era300 (euer Lautsprecher)
- Alternativ kann der Lautsprecher z.B. auch stummgeschaltet oder der nächste Titel wiedergegeben werden. Die Aktion wird unter “Service” konfiguriert.
- Das Drehrad wird unter Rotation konfiguriert. Hierfür wird das Script, welches wir oben erstellt haben, aufgerufen. Hier meine Konfiguration:
- Domain: script
- Service: Stream Deck+ Sonos Volume (das zuvor erstellte Script)
- Service Data JSON
{
"ticks": {{ ticks }}
}
Mit diesem JSON werden die Ticks an Home Assistant übergeben, um die Lautstärke entweder zu senken oder erhöhen.
Damit sollte die Konfiguration bereits abgeschlossen sein und der (Sonos) Lautsprecher via Home Assistant mit dem Stream Deck+ gesteuert werden können.
-
In meinem Fall ein Sonos Era300, das Prinzip funktioniert aber grundsätzlich mit jedem Lautsprecher, der mit Home Assistant verbunden werden kann. Im Prinzip auch mit Nicht-Sonos Lautsprechern. ↩︎
Comments
Mit einem Account auf Mastodon oder im Fediverse, kannst du hier auf diesen Post antworten. Bekannte Antworten (nicht-privat) werden unten angezeigt.