Sonos mittels PHP Skript steuern
Einklappen
X
-
Hallo,
bin geradre dabei mich mit dem Skript vertraut zu machen.
Nun bekomme ich aber folgenden Fehler und kann damit leider nichts anfangen:
2016-07-11 11:02:05 - Fehler: [8], Undefined index: zone in /volume1/web/sonos/sonos2.php in line 163, Variable:Array
In der Config habe ich folgendes angegeben:
'messagespath' => '//nas_tus/web/sonos/tts',
'messageStorePath' => '\\nas_tus\web\sonos\tts',
Ist das so korrekt?
Das Skript läuft auf einem Synology NAS.
Welches ist der User, der die Schreibreche benötigt?
GrüßeZuletzt geändert von Drunkard; 11.07.2016, 13:16.Kommentar
-
Habe mir die Dateien heute runtergeladen. In der config steht 1.1.5 vom 23.06.16
Habe die Pfade gesetzt, wie du geschrieben hast, bekomme jetzt folgenden Fehler:
Fehler: [2], file_put_contents(//nas_tus/web/sonos/ttsd3979963754cb144b9c35e40e4b8006a.mp3): failed to open stream: No such file or directory in /volume1/web/sonos/t2sv.php in line 39, Variable:Array
-
-
Hallo Oliver,
vielen Dank für die neuen Funktionen, leider kann ich sie immer noch nicht nutzen. Das liegt wohl irgendwie an der date.timezone Funktion: Obwohl ich diese Werte in der php.ini auf meiner Buffalo NAS stehen habe:
Bekomme ich immer noch diesen Fehler:
2016-07-11 15:30:49 - Fehler: [2048], date_default_timezone_get() [<a href='function.date-default-timezone-get'>function.date-default-timezone-get</a>]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /mnt/disk1/sonos/htdocs/sonos2.php in line 124, Variable:Array
Was mache ich falsch?
Danke!2 BilderKommentar
-
Da ich das Problem von QNAP Bersitzern kenne habe ich es genauso programmiert, aber anscheinend akzeptieren QNAP und Buffalo es trotzdem nicht.
Schalte doch mal debug ein, gebe das ganze im Browser ein und notiere mal die Meldung.Zuletzt geändert von Liver_64; 11.07.2016, 20:48. -
Hallo Oliver,
ich habe debug angeschmissen und im Browser ausgegeben. Das ist das Ergebnis:
"Ein Fehler trat auf. Bitte Datei /log/sonos_error.log prüfen."
Und Folgendes steht in der Log-File:
2016-07-13 20:59:49 - Fehler: [2048], date_default_timezone_get() [<a href='function.date-default-timezone-get'>function.date-default-timezone-get</a>]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /mnt/disk1/sonos/htdocs/sonos2.php in line 124, Variable:Array
(
[GLOBALS] => Array
*RECURSION*
[_ENV] => Array
(
[TERM] => vt102
[SHELL] => /bin/sh
[USER] => root
[PATH] => /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
[PWD] => /
[HOME] => /
[SHLVL] => 4
[BOOTVER] => 0.21
[_] => /sbin/start-stop-daemon
[PHP_FCGI_CHILDREN] => 1
[FCGI_ROLE] => RESPONDER
[SERVER_SOFTWARE] => lighttpd/1.4.32
[SERVER_NAME] =>
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PORT] =>
[SERVER_ADDR] =>
[REMOTE_PORT] =>
[REMOTE_ADDR] => 1
[SCRIPT_NAME] => /index.php
[PATH_INFO] =>
[SCRIPT_FILENAME] => /mnt/disk1/sonos/htdocs/index.php
[DOCUMENT_ROOT] => /mnt/disk1/sonos/htdocs/
[REQUEST_URI] => /
[QUERY_STRING] =>
[REQUEST_METHOD] => GET
[REDIRECT_STATUS] => 200
[SERVER_PROTOCOL] => HTTP/1.1
[HTTP_HOST] =>
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17
[HTTP_ACCEPT_LANGUAGE] => de-de
[HTTP_DNT] => 1
[HTTP_CONNECTION] => keep-alive
)
[HTTP_ENV_VARS] => Array
(
[TERM] => vt102
[SHELL] => /bin/sh
[USER] => root
[PATH] => /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
[PWD] => /
[HOME] => /
[SHLVL] => 4
[BOOTVER] => 0.21
[_] => /sbin/start-stop-daemon
[PHP_FCGI_CHILDREN] => 1
[FCGI_ROLE] => RESPONDER
[SERVER_SOFTWARE] => lighttpd/1.4.32
[SERVER_NAME] =>
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PORT] =>
[SERVER_ADDR] =>
[REMOTE_PORT] =>
[REMOTE_ADDR] =>
[SCRIPT_NAME] => /index.php
[PATH_INFO] =>
[SCRIPT_FILENAME] => /mnt/disk1/sonos/htdocs/index.php
[DOCUMENT_ROOT] => /mnt/disk1/sonos/htdocs/
[REQUEST_URI] => /
[QUERY_STRING] =>
[REQUEST_METHOD] => GET
[REDIRECT_STATUS] => 200
[SERVER_PROTOCOL] => HTTP/1.1
[HTTP_HOST] =>
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17
[HTTP_ACCEPT_LANGUAGE] => de-de
[HTTP_DNT] => 1
[HTTP_CONNECTION] => keep-alive
)
[_POST] => Array
(
)
[HTTP_POST_VARS] => Array
(
)
[_GET] => Array
(
)
[HTTP_GET_VARS] => Array
(
)
[_COOKIE] => Array
(
)
[HTTP_COOKIE_VARS] => Array
(
)
[_SERVER] => Array
(
[TERM] => vt102
[SHELL] => /bin/sh
[USER] => root
[PATH] => /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
[PWD] => /
[HOME] => /
[SHLVL] => 4
[BOOTVER] => 0.21
[_] => /sbin/start-stop-daemon
[PHP_FCGI_CHILDREN] => 1
[FCGI_ROLE] => RESPONDER
[SERVER_SOFTWARE] => lighttpd/1.4.32
[SERVER_NAME] =>
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PORT] =>
[SERVER_ADDR] =>
[REMOTE_PORT] =>
[REMOTE_ADDR] =>
[SCRIPT_NAME] => /index.php
[PATH_INFO] =>
[SCRIPT_FILENAME] => /mnt/disk1/sonos/htdocs/index.php
[DOCUMENT_ROOT] => /mnt/disk1/sonos/htdocs/
[REQUEST_URI] => /
[QUERY_STRING] =>
[REQUEST_METHOD] => GET
[REDIRECT_STATUS] => 200
[SERVER_PROTOCOL] => HTTP/1.1
[HTTP_HOST] =>
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17
[HTTP_ACCEPT_LANGUAGE] => de-de
[HTTP_DNT] => 1
[HTTP_CONNECTION] => keep-alive
[PHP_SELF] => /index.php
[REQUEST_TIME] => 1468436389
[argv] => Array
(
)
[argc] => 0
)
[HTTP_SERVER_VARS] => Array
(
[TERM] => vt102
[SHELL] => /bin/sh
[USER] => root
[PATH] => /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
[PWD] => /
[HOME] => /
[SHLVL] => 4
[BOOTVER] => 0.21
[_] => /sbin/start-stop-daemon
[PHP_FCGI_CHILDREN] => 1
[FCGI_ROLE] => RESPONDER
[SERVER_SOFTWARE] => lighttpd/1.4.32
[SERVER_NAME] =>
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PORT] =>
[SERVER_ADDR] =>
[REMOTE_PORT] =>
[REMOTE_ADDR] =>
[SCRIPT_NAME] => /index.php
[PATH_INFO] =>
[SCRIPT_FILENAME] => /mnt/disk1/sonos/htdocs/index.php
[DOCUMENT_ROOT] => /mnt/disk1/sonos/htdocs/
[REQUEST_URI] => /
[QUERY_STRING] =>
[REQUEST_METHOD] => GET
[REDIRECT_STATUS] => 200
[SERVER_PROTOCOL] => HTTP/1.1
[HTTP_HOST] =>
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/601.6.17 (KHTML, like Gecko) Version/9.1.1 Safari/601.6.17
[HTTP_ACCEPT_LANGUAGE] => de-de
[HTTP_DNT] => 1
[HTTP_CONNECTION] => keep-alive
[PHP_SELF] => /index.php
[REQUEST_TIME] => 1468436389
[argv] => Array
(
)
[argc] => 0
)
[_FILES] => Array
(
)
[HTTP_POST_FILES] => Array
(
)
[_REQUEST] => Array
(
)
[config] => Array
(
[sonoszone] => Array
(
[bad] => Array
(
[0] => 192.168.178.45
[1] => 30
[2] => 20
)
[kueche] => Array
(
[0] => 192.168.178.44
[1] => 50
[2] => 20
)
[saunabad] => Array
(
[0] => 192.168.178.56
[1] => 50
[2] => 20
)
[wohnzimmer] => Array
(
[0] => 192.168.178.30
[1] => 100
[2] => 60
)
)
[radio_name] => Array
(
[0] => Bayern 2
[1] => Bayern 3
[2] => Antenne Bayern
[3] => SWR3
[4] => FM4
[5] => Klassik Radio
[6] => Bayern 4 Klassik
)
[radio_adresse] => Array
(
[0] => x-rincon-mp3radio://streams.br.de/bayern2_2.m3u
[1] => x-rincon-mp3radio://streams.br.de/bayern3_2.m3u
[2] => x-rincon-mp3radio://www.antenne.de/webradio/antenne.wmx
[3] => x-rincon-mp3radio://mp3-live.swr3.de/swr3_m.m3u
[4] => x-rincon-mp3radio://mp3stream1.apasf.apa.at:8000/listen.pls
[5] => x-rincon-mp3radio://edge.live.mp3.mdn.newmedia.nacamar.net/klassikradio128/livestream.mp3
[6] => x-rincon-mp3radio://streams.br.de/br-klassik_2.m3u
)
[VoiceRSS_key] => xxx
[messageLangV] => de-de
[audiocodec] => 48khz_16bit_stereo
[access_key] => xxxxxxxxxxxxxxxxxxxx
[secret_key] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[messageLangI] => de-DE
[voice] => Hans
[lamePath] => /usr/local/bin/
[t2s_engine] => 1001
[messagespath] =>
[messageStorePath] =>
[filePhpSonos] => PHPSonos.php
[logging] => 1
[volumeup] => 3
[volumedown] => 3
[sleeptimegong] => 2
[sleepgroupmessage] => 5
[file_gong] => einfachgong
[LoxIP] => xxx
[LoxUser] => xxx
[LoxPassword] => xxx
[LoxDaten] => 1
[rampto] => auto
[volrampto] => 35
[fritzboxip] => 192.168.xx.1
[fritzboxpw] => xxxxxxxxxxx
[rufumleitung1] => 017664067xxx
[rufumleitung2] => 017664067xxx
[rufumleitung3] => 016387581yyy
[wgkey] => xxxxxxxxxxxxxxxxx
[wgcity] => Darmstadt
[wgwindschwelle] => 20
[wgregenschwelle] => 25
[debuggen] => 1
)
[debug] => 1
[path] => log
[sonoszone] => Array
(
[bad] => Array
(
[0] => 192.168.178.45
[1] => 30
[2] => 20
)
[kueche] => Array
(
[0] => 192.168.178.44
[1] => 50
[2] => 20
)
[saunabad] => Array
(
[0] => 192.168.178.56
[1] => 50
[2] => 20
)
[wohnzimmer] => Array
(
[0] => 192.168.178.30
[1] => 100
[2] => 60
)
)
[loxip] => xxx
[loxuser] => xxx
[loxpassword] => xxx
[log] => 1
[master] =>
)
Danke und Gruß,
AndreasZuletzt geändert von aer; 13.07.2016, 21:12.
-
-
Hallo Oliver,
danke für die neuen Funktionen.
Ich habe bei sendmessage und sendgroupmessage das Problem, dass meine Playlist immer wieder von Anfang an nach der Durchsage gespielt wir.
Bei Radio ist das kein Problem. Woran liegt das?
Danke!
GrußKommentar
-
Hey,
ich habe eben nochmal in meinen beiden Umgebungen getestet, es funktioniert einwandfrei auch bei Playlisten. Es geht genau da weiter wo es vorher aufgehört hat. Vielleicht gehst du mal in die Sonos App und löscht alles Playlisten, ich hatee auch mal das Problem am Anfang, nach dem einmaligen Löschen funktionierte dann alles.
Gruß Oliver
-
-
Hallo Oliver,
die Playliste wird nur an der richtigen Position weiter gespielt, wenn die Songs lokal abgelegt sind.
GrußKommentar
-
lade doch mal bitte eine Spotify Playliste ohne vorher lokal abzulegen, rufe dann im browser getpositioninfo auf und notiere den Inhalt bzw. die ersten 10 Zeichen von TrackURI. Ich kann dann prüfen ob ich Spotify zum wiederherstellen hinzufügen kann.
Ich selber nutze Napster, von daher bin ich da auf andere angewiesen. Bei Napster geht es einwandfrei.
-
-
-
Hallo Oliver,
nochmals vielen Dank für das Projekt. Die neuen Gruppenfunktionen sind eine echte Bereicherung. Nach den ersten Tests habe ich ein paar Probleme in der Umsetzung der Befehle.
1. Wenn ich einen Befehl der Form http://<IP-ADRESSE>/<DEIN VERZEICHNIS>/index.php/?zone=master&playgong=yes&action=sendgroupmessage& member=wohnen,kueche,schlafen&messegeid=100 absetze, wird die letzte Zone nicht angesprochen. Bisher kann ich das nur durch eine fiktive Zone am Ende umgehen.
2. Bei mir reagiert groupvolume=30 nicht in der erwarteten Form einer Erhöhung des Standardvolume für T2S Ansagen um 30% bei Ansage oder beim Gong. Stattdessen kommt es zu eine sehr kurzen Lautstärkeerhöhung der laufenden Wiedergabe vor der dann leisen message. z.B. bei http://<IP-ADRESSE>/PHPSonos/sonos2.php?zone=kueche&action=sendgroupmessage&mem ber=wohnzimmer,og,bad,terrasse&messageid=100&group volume=30
Viele Grüße RalfKommentar
-
Hallo Ralf,
ich habe mir das mit der letzten Zone mal angeschaut. Ich vermute da das Skript einzelne Funktionen nacheinander aufruft die GroupMute noch nicht abgeschlossen ist bevor die T2S angesagt wird. Bei mir nicht nachvollziehbar, hängt evtl. mit der jeweiligen Performance zusammen.
Füge doch mal bitte bei sonos2.php nach der Zeile 664 folgenden Code ein: sleep(2); Das verzögert die Ansage um 2 Sekunden und ändere ggf. den Wert
Bitte gib mir Feedback ob es das war.
Gruß Oliver -
Hallo Ralf,
ich habe ein Bugfix Update auf Github gepostet welches die Groupvolume und die letzte Mute Zone beheben sollte. Bitte gebe mir mal feedback
Lies dir mal post #287 bzgl. Erläuterung der Nutzung des Parameters durch
Gruß Oliver
-
-
Hallo Oliver,
hier das Getpositoninfo von einer Spotify Playlist:
[position] => 0:02:49 [RelTime] => 0:02:49 [duration] => 0:03:34 [TrackDuration] => 0:03:34 [URI] => x-sonos-spotify:spotify:track:0kloEOuc9uH0qwlBUZbTn3?sid=9 &flags=8224&sn=3 [TrackURI] => x-sonos-spotify:spotify:track:0kloEOuc9uH0qwlBUZbTn3?sid=9 &flags=8224&sn=3 [artist] => L'aupaire [title] => The River [album] => The River [albumArtURI] => http://192.168.2.134:1400/getaa?s=1&...d8224%26sn%3d3 [albumArtist] => [albumTrackNumber] => [streamContent] => [trackURI] => [Track] => 17 ) GrußKommentar
-
Spotify war tatsächlich nicht integriert, jetzt dafür aber :-) Gibt es noch einen User der z.B. Deezer oder andere Streamingdienste nutzt? Wenn ja benötige ich dann eine getpositioninfo während ein Dienst streamt.Anmerkung: Bitte keine Fragen mehr per PN sondern direkt im Forum damit andere mithelfen und mitprofitieren können.
Bzgl. Sonos Plugin supporte ich nur noch die jeweils aktuelle Version NUR auf dem LoxBerry, ich kann keine VM Unterstützung mangels Hardware geben. Herzlichen Dank!Kommentar
-
so hier die getpositioninfo von einer deezer Playlist:
Array ( [position] => 0:00:26 [RelTime] => 0:00:26 [duration] => 0:04:59 [TrackDuration] => 0:04:59 [URI] => x-sonos-http:tr-flac:103900416.flac?sid=2&flags=8224&sn=2 [TrackURI] => x-sonos-http:tr-flac:103900416.flac?sid=2&flags=8224&sn=2 [artist] => Benjamin Blümchen [title] => Folge 109 - Kapitel 1: Tierische Überraschung [album] => Handwerker Box (Benjamin Blümchen als Baggerfahrer & Benjamin Blümchen auf der Baustelle) [albumArtURI] => http://10.0.0.9:1400/getaa?s=1&u=x-s...d8224%26sn%3d2 [albumArtist] => [albumTrackNumber] => [streamContent] => [trackURI] => [Track] => 2 ) lg PS.: konnte nur im Kinderzimmer testen... Sorry für den Titel... ;-)Kommentar
-
Hallo zusammen,
habe das Skript (soweit) ganz gut zum Laufen gebracht.
Mit der Integration der Wetteransagen habe ich noch ein kleines Problem. Vielleicht kann mit da jemand weiterhelfen.
Ich nutze VoiceRSS für die Sprachausgabe und möchte die Wetteransage nutzen.
Folgenden Eintrag im errorlog erhalte ich dazu:
2016-07-18 16:44:00 - Fehler: [2], file_put_contents(//192.168.1.73/Musik/Loxone/ef2266b8a5c13dce3ef31b330193e88e.mp3): failed to open stream: No such file or directory in /volume1/web/Sonos/t2sv.php in line 39, Variable:Array
Zudem kommt darunter Seitenlang folgender "Text":
[mp3] => ID3...(Danach ein Haufen Zeichen die keinen Zusammenhang haben)
Kann mir da jemand weiterhelfen?
Danke!
Update: 17:28: Habe das Ganze nun mal mit IVONA statt VoiceRSS und mit der Uhrzeit getestet.
Die Fehlermeldung ist im Grunde die selbe...
2016-07-18 17:26:56 - Fehler: [2], file_put_contents(//192.168.1.73/Musik/Loxone/d4c56b1c2d4a33dfa7088de99e9e9148.mp3): failed to open stream: No such file or directory in /volume1/web/Sonos/ivona_tts/ivona_tts.php in line 40, Variable:Array
(
[text] => Guten+Abend.+Es+ist+jetzt+17+Uhr+und+26+Minuten.
[filename] => //192.168.1.73/Musik/Loxone/d4c56b1c2d4a33dfa7088de99e9e9148.mp3
[language] => de-DE
[voice] => Hans
[rate] => medium
[volume] => loud
[payload] => {"Input":{"Data":"Guten Abend. Es ist jetzt 17 Uhr und 26 Minuten."},"Parameters":{"Rate":"medium","Volume": "loud"},"Voice":{"Name":"Hans","Language":"de-DE"}}
[mp3] => {"Message":"Authentication failed"}
Zuletzt geändert von philox; 18.07.2016, 17:29.Kommentar
-
Hallo Uli,
hatte keine Zufällige Wiedergabe drin. Hatte Sie aber schon mal drin. Da ist das Skript nicht in der Lage die Meldung zu spielen.
Dann wird die Meldung irgendwo in die Playliste gesteckt und der erste Titel wird als Meldung wiedergegeben.
GrußKommentar
-
Das Skript stellt vor der Durchsage alle Zonen auf Normal und danach wieder auf Shuffle (falls Shuffle aktiviert war). Nur bei den Spotify Playlisten ging es nicht, da Sie für die Wiederherstellung nicht programmiert sind. Die Dienste, Bibliotheken, Playlisten haben eigene Sequenzen bei der Track URI und die muss immer individuell programmiert werden. Bsp.: [TrackURI] => x-sonos-http: --> für Sonos Playliste und Deezer, [TrackURI] => x-sonos-spotify --> für Spotify, [TrackURI] => npsdy --> für Napster usw.
-
-
Danke für das tolle Projekt!!! Absolut klasse!!!
Habe nur ein kleines Problem mit der Wetteransage. Die Zeitansage und die freie Texteingabe funktionieren einwandfrei.
Bei der Wetteransage meckert Sonos der "Titel ist nicht korrekt codiert"
Es wird zwar eine mp3 Datei angelegt, jedoch ist diese nur 1KB groß.
Wo könnte der Fehler liegen?
Gruß
AndyKommentar
-
Bugfix Update posted auf Github mit folgenden Korrekturen/Ergänzungen:
- w2s.php Fehler bei Wetteransage, UTF8 encode fehlte (hatte versehentlich falsche Version gepostet)
- sonos2.php Spotify hinzugefügt damit nach Durchsage wieder die Playliste an gleicher Stelle weiterläuft (bitte feedback ob es klappt)
Gruß OliverAnmerkung: Bitte keine Fragen mehr per PN sondern direkt im Forum damit andere mithelfen und mitprofitieren können.
Bzgl. Sonos Plugin supporte ich nur noch die jeweils aktuelle Version NUR auf dem LoxBerry, ich kann keine VM Unterstützung mangels Hardware geben. Herzlichen Dank!Kommentar
Kommentar