Sonos mittels PHP Skript steuern

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    #16
    Super wichtig ist für mich erst mal eine Rückmeldung für die Lautstärke. Ich habe Gira SPS Taster für Lauter Leise Play Stop (also Loxone), es wird aber auch öfter über TV oder App geschaltet.
    Wenn das lafen würde, wäre mein nächster Wunsch auch Einbindung in Alarm und Klingel. Alles andere ist für mich nur sekundär Wichtig. Da ich in Sachen Php und Pi noch anfäger bin war ich schon froh das die Sache über den Broswer geht bzw die Komunikation zwischen Pi und Sonos geht. Jetzt verstehe ich die Geschichte mit Virtuellen Ein/Ausgängen nicht so richtig und was dort genau eingetragen werden muss.

    Kommentar

    • Liver_64
      MS Profi
      • 07.09.2015
      • 591

      #17
      siehe post #4, da habe ich beschrieben wie du einen virtuellen Ausgang anlegst und wie du die Browser Syntax aufteilst. Versuche doch einfach mal an deinen SPS Taster einen Ausgangsverbinder gemäß der Beschreibung anzuhängen. Habe mir mal das Posting im alten Forum kurz angesehen, es beeinhaltet schon einige Möglichkeiten zur Integration.

      Probiere doch mal folgendes aus:
      Erstelle einen Ausgangsverbinder, in den trägst du deine Raspberry IP-Addresse ein (inkl. http://) und den Haken bei "Verbindung nach senden schließen" setzen
      Erstelle dann einen Ausgangsbefehl mit der restlichen Syntax aus dem Browserbefehl:
      /index.php?zone=Wohnzimmer&do=VolumeUp --> für lauter
      /index.php?zone=Wohnzimmer&do=VolumeDown --> für leiser

      Speichere das ganze und betätige deinen Taster, dann sollte die Musik für die angegebene Zone lauter oder leiser werden. Gemäß der index.php sthen dir folgende Befehle zur Verfügung:
      /index.php?zone=Wohnzimmer&do=mute&mute=true --> setzt mute
      /index.php?zone=Wohnzimmer&do=mute&mute=false --> nimmt mute zurück
      /index.php?zone=Wohnzimmer&do=Play
      /index.php?zone=Wohnzimmer&do=Stop
      /index.php?zone=Wohnzimmer&do=Next --> nächster Song in Playliste
      /index.php?zone=Wohnzimmer&do=Previous --> vorheriger Song aus der Playliste
      /index.php?zone=Wohnzimmer&do=TogglePlayStop --> wechselt zwischen Play und Stop
      /index.php?zone=Wohnzimmer&do=playmode&playmode=SHU FFLE --> setzt Zone auf zufälliges abspielen (NORMAL und REPEAT_ALL sind auch möglich)
      /index.php?zone=Wohnzimmer&do=Volume=30 --> setzt die Lautstärke auf 30%
      /index.php?zone=Wohnzimmer&do=sendMessage&mesageId= Dateiname MP3&Volume=20 --> spielt mp3 (von deinem Speichermedium) in Laustärke 20% ab
      /index.php?zone=Wohnzimmer&do=nextRadio --> wählt den nächsten Radio Sender aus (index.php)

      Hoffe ein wenig geholfen zu haben.
      Gruß Oliver
      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

      • RocknRollArmy
        Smart Home'r
        • 05.11.2015
        • 45

        #18
        Hallo Oliver,

        da ich aktuell zu Hause Sonos im Einsatz habe und aktuell den Neubau mit Loxone plane finde ich es natürlich grandios dass es hier schon gute Resourcen diesbezüglich gibt! Chapeau!

        So wie es aussieht basiert Deine Veröffentlichung hier zum grössten Teil auf dem verlinkten Script, korrekt? Was hälst Du davon die Scripte auf Github zu veröffentlichen? Da wäre eine Zusammenarbeit ein wenig einfacher als über das Forum mit zip Dateien. Hängt allerdings davon ab ob Du z.B. mit git arbeiten möchtest/kannst. Nur ein Vorschlag.

        Kommentar

        • Gast

          #19
          Hallo Oliver,
          erst schon mal Danke für deine Unterstützung. Nur wie gebe ich die aktuelle Lautstärke (GetVolume) an meinen Lautstärkebaustein weiter? In dem alten Post wird ja geschrieben man soll einen Virtuellen Analogen Eingang anlegen und den "S-GetVolumeWohnzimmer" nennen + einen Virtuellen Ausgangsbefehl erstellen der den Pi (http://IP_vom Ras/index.php) jede Sekunde abfragt. Und da liegt mein Problem. Virtueller Ausgang erstellt mit http://ip_Pi:80 dann in Eigenschaften bei Befehl Ein : /index.php Http Methode Ein/Aus auf Get sonst alles leer. Danach einen Virtuellen Eingang erstellt, Scaliert, Umbenannt auf Analog gestellt. Sowie alternativ Virtuellen Texteingang erstellt und sogar noch einen Virtuellen Http Eingang mit Pi Ip und bei Befehlserkennung /v. Funktionieren tut so leider nix.
          Was mach ich Falsch
          Lg
          Daniel

          Kommentar

          • LoxBer
            Smart Home'r
            • 29.10.2015
            • 51

            #20
            Ich würde auch gern den Status z.B. weiterverarbeiten (http://IP/sonos/index.php?zone=Schla...tTransportInfo). Ich habe schon etliches mit der Befehlserkennung ausprobiert, leider alles ohne Erfolg. Vll. verstehe ich diese Befehlserkennung auch nicht. Gibt man den Befehl im Browser ein, kommt ja nur eine von 3 Zahlen.

            \v Bringt aber immer nur die 0. Wenn man im Firefox auf Seitenquelltext anzeigen geht kommt <PRE>3</PRE>. Auch <PRE>\v bringt nichts.

            Hat da jemand eine Idee zu?

            Kommentar


            • LoxBer
              LoxBer kommentierte
              Kommentar bearbeiten
              So nach langem probieren habe ich es geschafft den Status auszulesen Bei Befehlserkennung muss \s5\v stehen. Das Ganze dann mit dem Statusbaustein übersetzen und fertig.

            • Gast
              Gast kommentierte
              Kommentar bearbeiten
              Hi, probiere jetzt auch schon ein bisschen .... aber es geht leider nicht ... könntest Du mir deine Config schicken? keine Ahnung wo Du das \s5\v ? danke ... glg
          • Gast

            #21
            ja klar das Problem lag wieder zwischen den Ohren So geht`s. Super !!! Jetzt gehts direkt nach Sonos und die Lautstärkedifferenz beim unterschiedlichen bedienen ist weg.
            Mich würde aber trotzdem noch interessieren wie ich GetMedia, GetPositionInfo, Status, GetTransportSettings noch einbinde.


            Kommentar

            • doc-brown
              Lox Guru
              • 13.09.2015
              • 1456

              #22
              hallo an euch,

              ich habe probleme mit dem RSS - den key habe ich eingetragen....
              wenn ich einen test starte bekomme ich in der sonos controller app eine fehlermeldung angezeigt, dass das mp3 nicht gefunden wird... es ist auch keins da mit diesem namen (siehe screenshot)

              wie kann ich testen wo der fehler liegt... kann ich die api auch über den browser testen?

              Kommentar

              • RocknRollArmy
                Smart Home'r
                • 05.11.2015
                • 45

                #23
                Ich bin mir nicht sicher da ich das Thema bisher nur lesend ohne hands-on Erfahrung verfolgt habe, aber im Intro Post ist folgendes zu lesen

                Wichtig: Nur numerische Dateien sind per Aufruf mit Hilfe des Skriptes möglich
                Dein Dateiname sieht ziemlich alphanumerisch aus. Vlt. liegt es daran.
                Zuletzt geändert von RocknRollArmy; 05.01.2016, 09:09.

                Kommentar


                • doc-brown
                  doc-brown kommentierte
                  Kommentar bearbeiten
                  hmmm... hast recht... der name kommt aber automatisch - woher er wirklich kommt weiss ich auch nicht ?!?

                • Liver_64
                  Liver_64 kommentierte
                  Kommentar bearbeiten
                  Der Dateiname wird automatisch von VoiceRSS erzeugt und ist OK so. Ich vermute dein Problem ist das Sonos kein Zugriff auf deinen Speicherpfad hat. Der Pfad zum Abspielen von Dateien muss innerhalb deiner Musikbibliothek sein, ergo auch dein Speicherpfad der Datei.

                  Bsp.: Synology Speicherpfad
                  //SYN/music/tts
                  Sonos Bibliothek
                  //SYN/music

                  Es kann aber auch sein das dein Web Server User keine Schreibberechtigungen für das Verzeichnis hat.
              • G A
                Smart Home'r
                • 27.08.2015
                • 94

                #24
                Servus Oliver,

                ich kämpfe auch gerade mit einem Berechtigungsproblem. Mit dem Sonos komme ich ohne Probleme in mein music Verzeichnis auf der Synology. Aber der darunter liegende Ordner tts macht anscheinend Probleme. Eine darin liegende Datei (z.B. 1.mp3) kann ich mittels Befehl im Browser abspielen. Muss also wie von dir schon im vorangegangen Kommentar erwähnt, ein Problem mit der Schreibberechtigung des Raspberry auf der Synology sein.

                Kannst du mir sagen wie du das genau eingestellt hast?

                Fehlermeldung bei Aufruf von http://192.168.178.108/Sonos/index.p...sage&text=Dies ist ein Test
                Warning: file_put_contents(//192.168.178.60/music/tts/be8ae19542fd4c6c87a00e96d0bd31a1.mp3): failed to open stream: No such file or directory in /var/www/Sonos/sonos.php on line 401

                Wenn der Gong mit aufgerufen wird kommt auch noch ein:
                Fatal error: Uncaught exception 'Exception' with message 'Error sending command: HTTP/1.1 500 Internal Server Error CONTENT-LENGTH: 347 CONTENT-TYPE: text/xml; charset="utf-8" EXT: Server: Linux UPnP/1.0 Sonos/31.8-24090 (ZPS1) Connection: close s:ClientUPnPError' in /var/www/Sonos/PHPSonos.inc.php:2308 Stack trace: #0 /var/www/Sonos/PHPSonos.inc.php(965): PHPSonos->sendPacket('POST /MediaRend...') #1 /var/www/Sonos/sonos.php(443): PHPSonos->Play() #2 /var/www/Sonos/sonos.php(108): Sonos->_actionSendMessage() #3 /var/www/Sonos/sonos.php(80): Sonos->_assertAction('sendMessage') #4 /var/www/Sonos/sonos.php(27): Sonos->_main() #5 /var/www/Sonos/index.php(8): Sonos->__construct() #6 {main} thrown in /var/www/Sonos/PHPSonos.inc.php on line 2308

                Vielen Dank!
                LG
                Günter

                Kommentar

                • uli
                  LoxBus Spammer
                  • 30.08.2015
                  • 224

                  #25
                  Gibt es eigentlich die Möglichkeit den Interpreten und Titel über das Skript auszulesen?

                  Kommentar

                  • Drunkard
                    LoxBus Spammer
                    • 27.08.2015
                    • 277

                    #26
                    Kann man auch Streaming Dienste über das Script steuern? In meinem Fall wäre das der von Google.

                    Mfg

                    Kommentar

                    • doc-brown
                      Lox Guru
                      • 13.09.2015
                      • 1456

                      #27
                      ich komm einfach mit dem TTS nicht weiter...
                      habe nochmal zwei bilder reingehängt

                      habe auf der DS412 den webserver mit dem web verz. am laufen. diesen habe ich dann als teil der musik-bib in der sonos admin software eingetragen.
                      bin ich hier auf dem holzweg???

                      mein zweites problem ist, dass nach der testdurchsage 1.mp3 - der vorher gehörte radiosender nicht wieder gestartet wird ?!?!

                      danke euch für ein paar tips

                      Kommentar

                      • Liver_64
                        MS Profi
                        • 07.09.2015
                        • 591

                        #28
                        Guude,

                        ich fange mal mit den einfachen Antworten an bevor es komplizierter wird.
                        - Bezüglich Hostingprobleme auf der NAS kann ich nicht helfen, da ich den Raspberry für die Scripte nutze. Grundsätzlich sollte es aber auch auf eienr NAS möglich sein. Wichtig auch hier das der Script User des Web Servers Schreibberechtigungen für euer Verzeichnis hat.
                        - Streaming Dienste wären theoretisch auch machbar, nur ist meine Intension nicht die Funktionen der Sonos App in Loxone zu reproduzieren, sondern Funktion für die Hausautomation zu nutzen.
                        - Titel bzw. Interpret auslesen ist möglich, aber nicht auf Prio 1
                        - Das mit dem Radio ist mir bekannt, wird mit der nächsen Version behoben

                        @Günter,

                        du hast in der Tat ein Berechtigungsproblem. Bei der Installation des Raspberry habe ich folgendes how-to genutzt: http://www.stuffaboutcode.com/2012/05/raspberry-pi-connect-nas-windows-share.html?m=1
                        Du musst über den mount Eintrag in der fstab einen User + Pw mitgeben und dieser User + Pw muss auch auf der Synology Schreibrechte für deinen Ordner haben
                        Mein fstab Eintrag sieht folgendermaßen aus:
                        //192.168.50.60/music /home/pi/NAS/music nfs defaults,uid=1000,gid=1000,file_mode=0770,dir_mode =0770,username=pi,password=C3po2paul!,workgroup=da haam,users,auto,user_xattr 0 0

                        Wichtig ist das nach user_xattr und nach der zweiten Null am Ende 2 Leerstellen sind

                        Viel Spaß weiterhin
                        Olli
                        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


                        • doc-brown
                          doc-brown kommentierte
                          Kommentar bearbeiten
                          sag mal - nur kurz - kann man einen radiosender direkt starten - so in der art als action: play SWR3
                      • Iceman
                        Smart Home'r
                        • 25.08.2015
                        • 34

                        #29
                        Liver_64
                        Weisst du wie man das macht, das der Script User des Web Servers Schreibberechtigungen für mein Verzeichnis hat.
                        Ich habe keine Ahnung wie ich dem die Schreibberechtigung erteile bei einer Synology Diskstation.

                        Kommentar


                        • doc-brown
                          doc-brown kommentierte
                          Kommentar bearbeiten
                          ich verwende aber keinen raspberry (bis jetzt) ;-) nur die DS mit dem eingebauten webserver... der hatte zumindest bis gestern noch funktioniert dass ich das test mp3 abspielen konnte... übernacht ist wohl irgendetwas passiert - das das jetzt auch nicht mehr funktioniert. bin schon seit drei std am suchen weil der sonos angeblich das mp3 file nicht mehr findet

                        • Iceman
                          Iceman kommentierte
                          Kommentar bearbeiten
                          Ich verwende auch kein Raspberry und es funktioniert eigentlich alles wunderbar bis auf das abspielen von Text-to-speech Nachrichten.
                          Der Gong funktioniert noch, jedoch wird keine mp3 datei erstellt. Der Pfad in der Config Datei ist auch korrekt.
                          Irgendwie scheint VoiceRSS.org kein Schreibberechtigung zu haben, ich habe jedoch keine Ahnung wie ich die erteilen kann.

                        • Liver_64
                          Liver_64 kommentierte
                          Kommentar bearbeiten
                          kämpfe auch gerade mit der Migration auf die Synology und Schreibrechten. Ist echt zum verweifeln :-( das Script will einfach nicht das zurückommende MP3 file speichern wegen Berechtigungsproblemen.
                          Mittlerweile habe ich herausgefunden das der Benutzer des Scriptes mein persönlicher User ist der ein Password hat, aber das Script kein Password (was auch so richtig ist). Den Ordner web/sonos habe ich schon dem User &quot;http&quot; zugeordnet, aber am User des Scriptes hat sich leider nichts geändert.
                      • doc-brown
                        Lox Guru
                        • 13.09.2015
                        • 1456

                        #30
                        hi iceman,

                        hast du den pfad in dem z.b. die 1.mp3 liegt bei deinem sonos als pfad der musikbibliothek eingetragen? sprich bei mir ist das WEB verzeichnis der DS auch in den sonos einstellungen zur musikbib eingetragen.
                        ich glaube wir sind ungefähr gleich weit :-)
                        weisst du ob man das RSS irgendwie testen kann? mit testen meine ich die API irgendwie anzusprechen um das MP3 file zu bekommen? nur um z.b. mal auszuschliessen, dass mit dem RSS key was nicht stimmt o.ä.

                        grüsse
                        v.

                        Kommentar


                        • Iceman
                          Iceman kommentierte
                          Kommentar bearbeiten
                          Ja und ich habs noch mit ca. 10 anderen Pfaden versucht.
                          Ich denke das sollte nicht das Problem sein. Ich werde das ganze am weekend mal mit einem Raspberry testen. Ich kann mir nur noch vorstellen das irgend ein Berrechtigungsproblem verhindert das Voice RSS auf die Synology schreiben kann.
                          Am anfang als die config noch nicht ganz korrekt war schrieb voice RSS komischerweise die mp3 noch ins diskstation/web/sonos verzeichnis, und das obwohl ein komplett anderer Pfad angegeben war.
                          Zuletzt geändert von Iceman; 08.01.2016, 17:38.

                        • doc-brown
                          doc-brown kommentierte
                          Kommentar bearbeiten
                          hast du was zum testen des RSS - ohne loxone und oder sonos? so mit nativen mitteln?
                      Lädt...