31-01-2017, 11:16:36
(Dieser Beitrag wurde zuletzt bearbeitet: 31-01-2017, 11:19:42 von CooperCologne.)
Da mich das Sonos doch ziemlich begeistert, habe ich noch zwei weitere Play 1 geholt. Natürlich wollte ich das ganze über Smarthome automatisieren und bin dabei auf folgende Problematik gestoße: man kann in einer Szenario-Regel jeden HTTP Request nur einmal einbinden. Genauer gesagt, ich wollte morgens einen Favoriten und die Lautstärke auf allen Sonos einstellen - geht nicht!
Ich habe jetzt meine ganze erste Idee mit den vielen HTTP Geräten verworfen, es gibt nur noch ein Gerät 'Sonos Steuerung' welches ein PHP Script auf dem meinem lokalen Webserver aufruft. Im Szenario selber übergebe ich dann eine Variable 'routine', diese wird vom script ausgewertet und ruft eine gleichnamige JSON Datei auf. Diese JSON Dateien sind im Prinzip reine Auflistungen von abzuarbeitenden URLs Anhängseln, die an die node.js Komponente geschickt werden. Die Struktur entspricht dabei den Vorgaben auf der GitHub Seite.
Beispiel:
Say Befehle sollten am Ende stehen, die werden mit 10 Sekunden Verzögerung abgearbeitet, um sicher zu stellen, dass die node.js den Status der Sonos wieder herstellen kann. Wer es schneller haben will, kann /sayall/text verwenden, sayall wird sofort abgearbeitet, man läuft aber eben Gefahr, dass die Musik anschließend nicht wieder startet.
Der Aufruf im HTTP Request sieht dann wie folgt aus: URL = http://IPwebServer/SonosBatch.php. Im Szenario trägt man dann als Variablen einfach "routine=tag" ein (ohne Anführungszeichen und ohne Dateiendung json). Man kann sich so unendlich viele Routinen erstellen und erstickt nicht in einem Wust von Geräten in der Innogy Oberfläche.
Im Anhang PHP Script und Beispiel Datei
Ich habe jetzt meine ganze erste Idee mit den vielen HTTP Geräten verworfen, es gibt nur noch ein Gerät 'Sonos Steuerung' welches ein PHP Script auf dem meinem lokalen Webserver aufruft. Im Szenario selber übergebe ich dann eine Variable 'routine', diese wird vom script ausgewertet und ruft eine gleichnamige JSON Datei auf. Diese JSON Dateien sind im Prinzip reine Auflistungen von abzuarbeitenden URLs Anhängseln, die an die node.js Komponente geschickt werden. Die Struktur entspricht dabei den Vorgaben auf der GitHub Seite.
Beispiel:
Code:
[
"/Wohnzimmer/Favorite/1Live",
"/Wohnzimmer/Volume/10",
"/Schlafzimmer/Favorite/1Live",
"/Schlafzimmer/Volume/10",
"/Wohnzimmer/Say/Guten Morgen/20"
]
Say Befehle sollten am Ende stehen, die werden mit 10 Sekunden Verzögerung abgearbeitet, um sicher zu stellen, dass die node.js den Status der Sonos wieder herstellen kann. Wer es schneller haben will, kann /sayall/text verwenden, sayall wird sofort abgearbeitet, man läuft aber eben Gefahr, dass die Musik anschließend nicht wieder startet.
Der Aufruf im HTTP Request sieht dann wie folgt aus: URL = http://IPwebServer/SonosBatch.php. Im Szenario trägt man dann als Variablen einfach "routine=tag" ein (ohne Anführungszeichen und ohne Dateiendung json). Man kann sich so unendlich viele Routinen erstellen und erstickt nicht in einem Wust von Geräten in der Innogy Oberfläche.
Im Anhang PHP Script und Beispiel Datei
1 Innogy Smarthome Zentrale, Fußbodenheizung, diverse UP-Schalter, Dimmer, Taster, Bewegungsmelder, Fenster/Türkontakte, Philips Hue, Netatmo, Anbindung von Sonos, Nuki Smartlock und LaMetric Time, Neato Botvac D5 Connected