Community

homeean: Sonos HTTP API

Das hier ist der Thread für die Sonos HTTP API, welcher von der Doku des homeean-Skripts aus verlinkt wird. Hier können alle Fragen rund um die Nutzung der API gestellt und Anwendungsbeispiele geteilt werden.

Die Sonos HTTP API stellt eine REST API zur Verfügung, mit deren Hilfe EINFACH via Webhooks Deine Sonos Boxen gesteuert werden können. Damit kannst Du nicht nur die Musik steuern, sondern auch Sprachmeldungen wie „Schatz, die Waschmaschine ist fertig!“ auf Deinen Boxen ausgeben.

Dieser Thread ist Teil des homeean-Skripts für die einfache Installation von Tools & APIs auf einem neuinstallierten RaspBerry PI zur Nutzung mit dem homee oder anderen Gateways, welche Webhooks unterstützen.

Das homeean-Skript kann hier generiert werden:
https://himpler.com/homeean

Ein ausführlicher WIKI-Artikel zur Nutzung findet sich hier:
https://www.homeepedia.de/books/homeean/page/sonos-http-api

Generelle Diskussionen zu homeean finden hier statt:

Mehr Infos zur API gibt es hier: https://github.com/jishi/node-sonos-http-api

Nach der Installation erreichst Du die API via: http://DeineRaspiIP:5005

Lokal wird die API hier dokumentiert: http://DeineRaspiIP:5005/docs/

6 Like

@hblaschka

Ist es auch möglich eine männliche Stimme einzustellen ?

Gruß
Holger

Scheint bei der Implementierung nicht vorgesehen zu sein, ich hab nix gefunden in https://github.com/jishi/node-sonos-http-api/blob/master/lib/tts-providers/default/google.js

@Micha: Kennst Du da ein Setting?

Hey @Holgi @hblaschka

Du musst den Service auf AWS wechseln.
Dort hast du die Möglichkeit auch auf eine männliche Stimme zu stellen.

Wie genau das Setting dafür ist kann ich euch leider nicht sagen.
Habe mich damit nicht weiter beschäftigt.

VG Micha

Schon wieder so ne Herausforderung :joy:

Ist gut dokumentiert (unten SayTTS Support), ich würde Microsoft nehmen:

Im nachfolgenden Posting (im Taster-Laser-Thread) war mein gelaserter Sonos-Taster (FT55) zu sehen:

@Sofasportler fragte daraufhin:

Dein Wunsch ist mir Befehl, Gordon.

Relativ einfach:

Du brauchst dazu die Sonos HTTP API (siehe oben in diesem Thread - Installation via homeean möglich) und vier HGs, gemappt auf die richtigen Taster:

Im HG selbst ruft Du die API als Get-Webhook auf (wie oben in der Doku ersichtlich), z.B. so

und kannst damit die Sonos-API ansprechen.

Den Vierfachtaster in meinem Beispiel könntest Du auch zu einem Dreifachtaster machen, indem Du den Start-Taster mit einem Start/Stop bzw. Start/Mute Toggle implementieren würdest (API-Actions: playpause (toggles playing state) bzw. togglemute (toggles mute state)).

Die vier konkret implementierten API-Aufrufe für den o.g. Taster sind (die IP durch die IP deines RasPIs mit der laufenden Sonos API ersetzen):

  • SWR3 starten (liegt bei mir in den Sonos-Favoriten - yeah, Elchradio forever)
    192.168.178.91:5005/Wohnzimmer/play/favorites/SWR3
  • Pause
    192.168.178.91:5005/Wohnzimmer/pause
  • Lauter (Veränderung +5% bezogen auf 100%)
    192.168.178.91:5005/Wohnzimmer/volume/+5

  • Leiser (Veränderung -5% bezogen auf 100%)
    192.168.178.91:5005/Wohnzimmer/volume/-5

4 Like

Ok, danke.
Kann Sonos „Wohnzimmer“ auch eine Sonos-Gruppe sein oder gehen nur einzelne LS?

Du kannst mit der API frei gruppieren (vordefiniert oder sogar dynamisch via der API selbst), siehe Doku - ich hab nur eine Gruppe, hab es also noch nicht getestet… wobei für die Sprachausgabe werde ich mir wohl noch welche zulegen (1er - sind ja gerade auch günstig).

:joy::see_no_evil: weisst du, was das Beste daran ist? Ich habe das schon längst auf dem PI am laufen, um Sprachausgaben damit zu machen. Da ich dies aber irgendwann mal eingestellt habe und dann nie wieder verändern musste, habe ich das doch glatt vergessen… :flushed:

1 Like

Ich habe heute Einiges probiert und alles klappt soweit.
Aber hier hast Du glaube ich einen Fehler bzw. bei mir geht es nur mit einem anderen Webhook-Inhalt:

192.168.178.91:5005/Wohnzimmer/favorite/SWR3

Hm, dann ist die API recht tolerant, gerade noch mal nachgeschaut - genau so setze ich es ein und es läuft bei mir…

Hier gibts eine App, die verschiedene Accounts in einer App “verknüppert”:
https://www.androidpolice.com/2018/01/14/can-now-control-sonos-speakers-google-home-yonomi/

Wie machst du das mit Playlisten?

Wu-huu, Elchradio :slight_smile:

1 Like

Playlist

Playing a Sonos playlist is now supported. Invoke the following:

http://localhost:5005/living room/playlist/[playlist name]

and it will replace the queue with the playlist and starts playing.

Auszug aus der Github Beschreibung.

1 Like

@Sofasportler: Eine feinere Art RTFM zu sagen :wink:
@Daniel: Ich hätte aber auch auf die Doku verwiesen, da ich Playlists nicht einsetze. Wenn ich moodbasiert Musik abspielen will, dann sag ich Alexa sie solle “XYZ auf Sonos” spielen. Wenn ich taste, dann supporte ich damit Automatismen - morgens beim ersten Kaffee braucht es die Nachrichten, gute Musik und einen dunklen Kaffee…

Hab ich gelesen, aber hat bei mir nicht funktioniert und daher dachte ich du könntest mir einen Tip geben.

Hallo zusammen,
sorry für die Fragerei aber ich komme nicht ganz weiter. Bin auch neu in der Materie.

  • Ich habe auf einen RaspberryPie 2 wie bei himpler.com angegeben die Neuinstallation gemacht.
    Lief wunderbar durch.
  • Danach habe ich dann in der Paketauswahl nur das Sonos HTTP API ausgewählt und mir die Installationsdatei erzeugt und installiert.
    Lief auch problemlos durch.

Aber wie komme ich jetzt weiter? Irgendwie hänge ich jetzt fest.

Wäre super wenn mir jemand bissl helfen könnte.

Besten Dank

OK, erscheint bei Dir eine Webseite, wenn Du im Browser
http://IpDeinesRaspi:5005 aufrufst?

Wenn ja, ist oben beschrieben wie Du die Sonos-Geräte via Webhooks steuern kannst:

Weitere Beispiele (z.B. Sprachausgabe) sind auf https://github.com/jishi/node-sonos-http-api zu finden:

Stelle konkrete Fragen, wenn Du Hilfe brauchst.