homeean: Sonos HTTP API

Komme leider erst morgen dazu. Dann probiere ich es aber gleich aus.

gerade getestet - die sonos api laeuft out of the box (gerade mit einem zero w getestet) - die harmony-api bedingt noch mal anpassungen (config file ist fehlerhaft)…

So, auch bei mir laufen die Grundfunktionen jetzt schon mal. Danke nochmal für die Hilfe.

1 „Gefällt mir“

Ich habe anhand der Sonos HTTP API mal einen ersten Demo-Wiki-Artikel zur Installation und Konfiguration geschrieben und auf dem externen Wiki (homeepedia) publiziert:

https://www.homeepedia.de/books/homeean/page/sonos-http-api

Kommentare dazu sind willkommen, die anderen homeean–Pakete werden nach und nach (das kann allerdings etwas dauern) dort ebenfalls auf ähnliche Art beschrieben werden.

7 „Gefällt mir“

Wow, tolle Arbeit. Danke für die Mühe.

1 „Gefällt mir“

Ich habe in der Doku noch etwas interessantes gefunden: Mit der Aktion clip kann man lokale Soundclips abspielen. Die Dateien müssen auf dem Raspberry im Verzeichnis /node-sonos-http-api/static/clips/ liegen und können dann über Webhook abgespielt werden:

Abspielen im Wohnzimmer mit Lautstärke 10%:
http://192.168.1.100:5005/Wohnzimmer/clip/sample_clip.mp3/10

Abspielen auf allen Geräten mit Lautstärke 10%:
http://192.168.1.100:5005/clipall/sample_clip.mp3/10

Ich nutze das im Homeegramm um vor der Sprachausgabe ein Jingle abzuspielen (erhöht die Aufmerksamkeit). Im Homeegramm ist der zweite Webhook dann mit einer Verzögerung von z.B. 4 Sekunden hinterlegt, damit der Jingle zu Ende laufen kann.

6 „Gefällt mir“

Guter Hinweis, ich habe den Hinweis am Ende des Artikels mit Credits und Link hinzugefügt:
https://www.homeepedia.de/books/homeean/page/sonos-http-api

3 „Gefällt mir“

Es geht natürlich auch mit einem Musikstück aus der Bibliothek, aber für kurze Jingles ist der static Ordner eigentlich ideal, dann hat man die Jingles vom Rest der Musik getrennt.
Die Anleitung in homeepedia ist übrigens klasse! Hat mir viel Testen und herumprobieren gespart!

Mal etwas anderes: Hat jemand schon herausgefunden, wie man die zuvor gespielte Musik nach der Sprachausgabe wieder weiterlaufen lassen kann? Die Kommandos pauseall und resumeall funktionieren bei mir irgendwie nicht (getestet mit Radiosender und mit Musik von Amazon Prime Music.

edit: Ich glaube es ist ein bekanntes Problem, dass sich nicht lösen lässt: https://github.com/jishi/node-sonos-http-api/issues/531

Wenn du was findest, lass es mich wissen. Unter Home Assistant kannst Du den letzten State zwischenspeichern und den dann resumen, muss selber mal testen ob und welche Auswirkung das in meinem TV-Setting haben würde…

Also ich kann nur von mir reden.
Wenn ich eine Sprachausgabe sende dann spielt danach die Musik normal weiter. Egal ob Radio oder Stream.

VG

Bei mir funktioniert das auch problemlos.

1 „Gefällt mir“

Bei mir stoppt nach der Sprachausgabe auch die Musik. Gruß

Also, gerade getestet im Setting TV und bei Musikstream. Bei beiden schaltet er nach einigen Sekunden (2-3 Sekunden nach der Sprachausgabe) wieder zurück auf Stream/TV.

1 „Gefällt mir“

Ja, ich muss gestehen, ich habe scheinbar schlampig getestet. Bei mir geht es jetzt auch. Auch direkt aus dem Homeegramm und auch wenn ich mit clip ein Jingle vorher abspiele. Bitte entschuldigt die Verwirrung!

2 „Gefällt mir“

Ich habe homeean mit dem Sonos HTTP API installiert, aber steuern kann ich nichts.
Mit http://ip-eures-raspis:5005 komme ich auf die API und kann die Befehle sehen.

Mit sudo tail -f /var/log/syslog kommt immer die selbe Ausgabe:

Apr 14 07:13:31 raspberrypi homeeToMqtt[8638]: 07:13:31 - #033[31merror#033[39m: error in fetch:FetchError: request to http://homee.fritz.box:7681/access_token failed, reason: getaddrinfo ENOTFOUND homee.fritz.box homee.fritz.box:7681
Apr 14 07:13:32 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:32.799Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:32 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:32.799Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:32 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:32.823Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:34 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:34.817Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:34 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:34.817Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:34 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:34.841Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:36 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:36.833Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:36 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:36.833Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:36 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:36.858Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:38 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:38.852Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:38 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:38.853Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:38 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:38.877Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:40 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:40.869Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:40 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:40.869Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:40 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:40.894Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:41 raspberrypi homeeToMqtt[8638]: 07:13:41 - #033[31merror#033[39m: error in fetch:FetchError: request to http://homee.fritz.box:7681/access_token failed, reason: getaddrinfo ENOTFOUND homee.fritz.box homee.fritz.box:7681
Apr 14 07:13:42 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:42.888Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:42 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:42.890Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:42 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:42.915Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:44 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:44.909Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:44 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:44.909Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:44 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:44.935Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:46 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:46.927Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:46 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:46.927Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:46 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:46.952Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:48 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:48.945Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:48 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:48.945Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:48 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:48.969Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:50 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:50.963Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:50 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:50.963Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:50 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:50.988Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:51 raspberrypi homeeToMqtt[8638]: 07:13:51 - #033[31merror#033[39m: error in fetch:FetchError: request to http://homee.fritz.box:7681/access_token failed, reason: getaddrinfo ENOTFOUND homee.fritz.box homee.fritz.box:7681
Apr 14 07:13:52 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:52.980Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:52 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:52.981Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:53 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:53.005Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:54 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:54.998Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:55 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:54.998Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:55 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:55.023Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:57 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:57.016Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:57 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:57.016Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:57 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:57.042Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:13:59 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:59.035Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:13:59 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:59.036Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:13:59 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:13:59.048Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:14:01 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:14:01.046Z #033[36;22m[DEBUG] #033[39;1mSimpleCMDPlugin#033[0m: _checkStatus(false)
Apr 14 07:14:01 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:14:01.046Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Checking status of CMDSwitch.
Apr 14 07:14:01 raspberrypi homeeup[8731]: #033[37m2018-04-14T07:14:01.070Z #033[32;22m[INFO] #033[39;1mSimpleCMDPlugin#033[0m: Status of CMDSwitch has not changed.
Apr 14 07:14:01 raspberrypi homeeToMqtt[8638]: 07:14:01 - #033[31merror#033[39m: error in fetch:FetchError: request to http://homee.fritz.box:7681/access_token failed, reason: getaddrinfo ENOTFOUND homee.fritz.box homee.fritz.box:7681

Also Fritzbox habe ich keine.

Wenn ich im Browser http://192.168.1.34:5005/Büro/say/Hallo%20ein%20Test/de/15
eingebe funktioniert es. Der Webhook im homee geht nicht.

Also Fritzbox habe ich keine. Liegt es daran?

Hi,

sorry für den Delay: Die Fehlermeldungen haben mit der Sonos-API nichts zu tun (wie ich schon am Wochenende mobil kurz angedeutet hatte). Das sind Fehler, die von homeeToMQTT geworfen werden, weil da in der Standardkonfig von einem Fritz-Netzwerk ausgegangen wird. Das Schauspiel kannst Du beenden, indem Du den Dienst anhälst.

Das Say-Issue mit Sonos hat sich inzwischen erledigt?

Welchen Dienst wie beenden? Und was funktioniert danach nicht?
Ja, Sonos spricht jetzt, ein Umlaut in der Raum Bezeichnung war schuld. Danke vorerst einmal.

homeetoMQTT

sudo systemctl stop homeetomqtt

Mehr Details zum Dienstehandling:
https://www.homeepedia.de/books/homeean/page/homeean---hintergrund-installation-und-nutzung#bkmrk-dienste-starten-%26-st

bzw. die config.json von homee2mqtt (vor allem die Werte bei homeeserver) entsprechend ändern, wie hier beschrieben:


und danach neu starten

Ok, wie kann ich in der config meinen Router (192.168.1.1) angeben anstatt der Fritzbox?
“homeeServer”: “homee.fritz.box”,
“mqttServer”: “matt.fritz.box”,

homeeserver: Die IP Deines homees
mqtt: localhost (wenn Du Mosquitto ebenfalls installiert hast).