Sonos mittels PHP Skript steuern

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • G A
    Smart Home'r
    • 27.08.2015
    • 89

    #31
    Danke erstmal für deinen Hinweis Oliver! Ich komme leider trotzdem nicht weiter...

    Die fstab am Raspberry (etc/fstab) habe ich um den von dir geposteten Eintrag erweitert. Geprüft mit "sudo mount -a" - hat nicht funktioniert. Ich musste den Pfad wie folgt anpassen:

    192.168.178.60:/volume2/music /home/pi/NAS/music nfs defaults,uid=1000,gid=1000,file_mode=0770,dir_mode =0770,username=sonos,password=sonos,users,auto,use r_xattr 0 0


    (192.168.178.60 ist meine Synology Diskstation, Benutzer sonos mit Passwort sonos ist dort angelegt)

    Auf dem Raspberry sehe ich dann im Verzeichnis NAS/music die entsprechende Musikdateien der Synology. Soweit eigentlich okay. Ich kann auch die dort liegenden mp3 files mit den entsprechenden Befehlen am Sonos abspielen. Der Gong geht mittlerweile auch, lag daran, dass das mp3 file mit dem Airport Gong nicht vorhanden war.

    Was aber noch immer nicht funktioniert ist das Schreiben der VoiceRSS auf den dafür angelegten Ordner auf der Synology. Der Benutzer "sonos" hat bei mir auf der Diskstation in der Systemsteuerung die Berechtigung für "music" lesen/schreiben einge
    tragen.

    Mein Berechtigungsproblem existiert anscheinend nach wie vor. Wie kann ich prüfen, ob der Raspberry tatsächlich auf der Diskstation einen file ablegen kann/darf?

    LG
    Günter



    doc-brown RSS kann man ganz einfach über den Browser testen:
    https://api.voicerss.org/?key=<deinenkeyeinsetzen>c=mp3&hl=de-de&f=48khz_8bit_stereo&src=Loxone Forum Testansage

    Kommentar

    • Liver_64
      MS Profi
      • 07.09.2015
      • 591

      #32
      Hast du denn auf der Synology NFS aktiviert? In der fstab hast du es nämlich angegeben.
      Prüfe auf der Synology unter "Systemsteuerung" --> "Dateidienste" unter Win/Mac/NFS ob es aktiviert ist und mache die Einstellungen gemäß Anhang.

      Alternativ kannst du auch das "nfs" durch "cifs" in der fstab ersetzen.

      Vielleicht hilft es ja...
      Gruß Oliver

      NFS Synology.pdf
      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

      • G A
        Smart Home'r
        • 27.08.2015
        • 89

        #33
        Ja, NFS ist auf der Synology aktiviert. Wenn ich auf dem Raspberry den Befehl "df -h" ausführe, sieht man auch, dass die Diskstation korrekt auf den Raspberry eingehängt wurde. Daher funktionert auch der Zugriff auf die vorhandenen mp3 Dateien. Ich habe in der fstab kurz mal auf CIFS umgestellt, hat aber nix gebracht.

        Das Problem ist wirklich "nur", dass die generierte MP3 Datei nicht in das Verzeichnis /music/tts geschrieben wird und eben auch nicht auffindbar ist (siehe Fehlermeldung). Was mich wundert ist, dass ich nicht schon vorher eine Meldung bekomme, dass die Datei nicht geschrieben werden kann.

        Kennst du eine Möglichkeit das noch irgenwie zu debuggen?

        LG
        Günter

        PS: Hast du bei der DSM noch eine Version 4 oder schon 5 am Laufen? Wie sehen deine Einstellungen bei der NFS Regel aus?
        Hostname/IP: *
        Privileg: lesen/schreiben
        Squasch: keine Zuordnung
        Sicherheit: sys
        Alle Optionen darunter sind bei mir angehakt...

        Kommentar

        • Liver_64
          MS Profi
          • 07.09.2015
          • 591

          #34
          siehe mein pdf im Anhang. Ich habe bei Squasch noch "Alle benutzer zu Admin..." als setting.Es ist irgendein problem mit den Schreibrechten...
          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

          • Liver_64
            MS Profi
            • 07.09.2015
            • 591

            #35
            hast du dein Verzeicnis auf dem PI "/home/pi/NAS/music" mit den Berechtiungen versorgt?
            sudo chmod 777 /home/pi/NAS/music
            und den "Squasch" auf der Synology setzen. Dann sollte es eigentlich gehe,

            Kannst du auf dem PI irgendeine Datei manuell in dein Verzeichnis speichern?
            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

            • G A
              Smart Home'r
              • 27.08.2015
              • 89

              #36
              Sorry, habe erst jetzt dein PDF geöffnet. Ich habe (wieder) bei Squash "Alle Benutzer zu Admin" eingestellt, bringt aber leider auch nix. Schreibrechte sind definitiv die richtige Spur, ich weiß nur schön langsam nicht mehr wo ich noch schrauben und drehen könnte...

              Kann man vom Raspberry aus versuchen eine Datei auf die Diskstation zu kopieren? Bin leider nicht so firm mit der Konsole vom Raspi...

              Kommentar

              • Liver_64
                MS Profi
                • 07.09.2015
                • 591

                #37
                einfach über den Dateimanager eine Datei copy/paste vom Pi in dein /home/pi/nas/music Verzeichnis kopieren
                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

                • G A
                  Smart Home'r
                  • 27.08.2015
                  • 89

                  #38
                  chmod: Beim Setzen der Zugriffsrechte für "home/pi/NAS/music": Die Operation ist nicht erlaubt

                  Für das Verzeichnis NAS geht's noch, für music nicht mehr???

                  Edit:
                  /home/pi/NAS/music liegt doch auf dem Pi - du meinst vom Pi auf die Diskstation, oder?

                  Edit2:
                  Habe home/pi/NAS/music mit WinSCP angeschaut: Gruppe/Eigentümer = root/root und Rechte stehen auf 0777
                  Zuletzt geändert von G A; 08.01.2016, 14:51.

                  Kommentar

                  • Iceman
                    Smart Home'r
                    • 25.08.2015
                    • 34

                    #39
                    Bei mir funktioniert voice RSS nicht wenn ich es über den Browser aufrufe. Mit meinem Key erhalte ich,
                    ERROR: The API key is not available. Ist das nur bei mir so?

                    Kommentar


                    • doc-brown
                      doc-brown kommentierte
                      Kommentar bearbeiten
                      nein - ist bei mir auch so :-(
                  • G A
                    Smart Home'r
                    • 27.08.2015
                    • 89

                    #40
                    Melde dich einfach nochmal mit deinen Zugangsdaten bei RSS an. Unter dem Menü "My Profile" kannst du einen neuen API Key erstellen.

                    Kommentar


                    • doc-brown
                      doc-brown kommentierte
                      Kommentar bearbeiten
                      muss ich mal testen - sieht man das sofort wenn du deine statistik nach einem test aufrufst?

                      nachtrag; habs getestet - ist bei mir auch so ... statistik zaehlt hoch
                      Zuletzt geändert von doc-brown; 08.01.2016, 19:25.

                    • G A
                      G A kommentierte
                      Kommentar bearbeiten
                      Hab gerade bemerkt, dass in meinem Link oben ein & fehlt...(nach dem key&c) - <deinenkeyeinsetzen> vollständig durch den key ersetzen, also inklusive der < > Zeichen...
                      Probiert es bitte nochmal aus. Bei geht's sowohl in Safari als auch Firefox. Ich kann auch gerne versuchen euren key zu testen wenn ihr den per PN schickt.

                      https://api.voicerss.org/?key=<deinenkeyeinsetzen>&c=mp3&hl=de-de&f=48khz_8bit_stereo&src=Loxone Forum Testansage

                    • Gast
                      Gast kommentierte
                      Kommentar bearbeiten
                      Hallo
                      Bin dran das ganze einzurichten. Wenn ich mit dem Link von G A versuche abzurufen steht immer:
                      ERROR: The API key is not available!

                      Mein Link: https://api.voicerss.org/?key=<a7e901bba84a4abf8c74e14b257b6405>&c=mp3&hl=d e-de&f=48khz_8bit_stereo&src=test

                      Was mache ich falsch? Soweit kann man doch noch gar nichts falsch machen?

                      Hat sich erledigt, die Klammern müssen weg..
                  • BigRitschi
                    Dumb Home'r
                    • 25.08.2015
                    • 13

                    #41
                    Hallo!

                    Zur Info, falls es für weh'n Hilfreich ist.
                    Habe das Script auf einem QNAP am laufen, hat mir etliche Stunden gekostet bis ich drauf gekommen bin.
                    'messageStorePath' => '/ip.des.qnap/USBSTICK/sonosphp/tts/',
                    in
                    'messageStorePath' => '/share/USBSTICK/sonosphp/tts/',
                    zu ändern, siehe da die mp3 wird gespeichert.
                    Was ich zuvor alles mit den Berechtigungen rumexperimentiert habe.

                    Mit meinen Sonos kann ich es direkt vom NAS abspielen, aber nicht mit dem Script, da kommt der Fehler:

                    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 (ZP120) Connection: close s:ClientUPnPError' in /share/CACHEDEV1_DATA/Web/PHPSonos.inc.php:2308 Stack trace: #0 /share/CACHEDEV1_DATA/Web/PHPSonos.inc.php(1674): PHPSonos->sendPacket('POST /MediaRend...') #1 /share/CACHEDEV1_DATA/Web/sonos.php(439): PHPSonos->SetAVTransportURI('x-file-cifs:/sh...') #2 /share/CACHEDEV1_DATA/Web/sonos.php(108): Sonos->_actionSendMessage() #3 /share/CACHEDEV1_DATA/Web/sonos.php(80): Sonos->_assertAction('sendMessage') #4 /share/CACHEDEV1_DATA/Web/sonos.php(27): Sonos->_main() #5 /share/CACHEDEV1_DATA/Web/index.php(8): Sonos->__construct() #6 {main} thrown in /share/CACHEDEV1_DATA/Web/PHPSonos.inc.php on line 2308

                    lg, richard

                    Kommentar


                    • Gast
                      Gast kommentierte
                      Kommentar bearbeiten
                      Was für ein Webuser? Es wird ja im Script nirgends ein user definiert..
                      Erscheint das mp3 erst nach Aufruf des Links? Oder müsste das sofort kommen?
                      Werde das mit dem Sonos testen wenn ich im Internen Netzwerk bin. Bin zur Zeit im Büro..
                      Dein Link wurde irgendwie abgekürzt und ist nicht sichtbar (im Browser kommt about:blank in der Adresszeile)

                    • Liver_64
                      Liver_64 kommentierte
                      Kommentar bearbeiten
                      mache mal einen Rechtsklick auf das Verzeichnis in dem du deine Scripte gespeichert hast, dann auf Eigenschaften und da sollte ein Besitzer stehen.
                      Dieser muss der Gruppe http zugeordnet werden!
                      Alternativ erstelle mit Notepad eine Datei, schreibe folgendes hinein:

                      <?php
                      print shell_exec('whoami');
                      ?>

                      speichere die Datei dann mit der Endung php in dein Verzeichnis in dem die Scripte liegen und rufe Sie über den Browser auf.
                      Der dann angezeigte Username muss der Gruppe http zugeordnet werden und Schreibrechte für, in deinem Fall, das Verzeichnis music erhalten.

                      Bis das mp3 zurückkommt dauert es ein wenig, erst wird der Text aufbereitet, dann an VoiceRSS verschickt, dann kommt ein File zurück welches dann gespeichert wird. Die Syntax für den genauen Aufruf kannst du der README.md Datei entnehmen.
                      Zuletzt geändert von Liver_64; 04.02.2016, 17:27.

                    • Gast
                      Gast kommentierte
                      Kommentar bearbeiten
                      Ich glaube ich bin einfach zu dämmlich für das. Ich habe alles genau nach deiner Anleitung gemacht aber die Datei wird einfach nicht in den Pfad geschrieben.
                      Das Verzeichnis wurde von meinem admin Account angelegt, welcher alle Zugriffe hat und auch in der http Gruppe ist (welche auch Zugriff hat)..
                      Ich schnalls einfach nich wos noch liegt.
                      Das file ist auf api.irgendwas erreichbar, aber es wird mir nicht aufs NAS geschrieben..
                      bye the way: gibt's einen Grund, weshalb im php script die Namensauflösung und nicht die IP vom nas angegeben wird?
                  • doc-brown
                    Lox Guru
                    • 13.09.2015
                    • 1454

                    #42
                    hi günter,

                    es funktioniert - link im browser eingetragen und der mediaplayer öffnet sich und spielt das file ab :-)

                    danke erst mal - jetzt sind wir (ich auf jeden fall) schon mal einen schritt weiter :-)

                    Kommentar

                    • doc-brown
                      Lox Guru
                      • 13.09.2015
                      • 1454

                      #43
                      also bei mir würde es abspielen wenn es denn ankommen würde... habe mal zum test manuell ein MP3 file so benannt wie das, was automatisch kommen müsste - und dann wird alles abgespielt wie es soll

                      Kommentar

                      • G A
                        Smart Home'r
                        • 27.08.2015
                        • 89

                        #44
                        Somit hätten wir zumindestens Gleichstand ;-))
                        ...wenn es denn ankommen würde... das ist wahrer Loxonauten Humor!

                        @crasythom
                        Bei dir kommt die Datei an und wird ins angegebene Verzeichnis gespielt? Ich hab übrigens noch einen Versuch gemacht bei Pfade auf den Raspberry (also /home/pi/NAS/music in meinem Fall) zu legen. Hat aber auch nix gebracht.

                        Kommentar


                        • crasythom
                          crasythom kommentierte
                          Kommentar bearbeiten
                          Ja. Bei mir wird die MP3 abgespeichert. Ich habe direkt den Pfad für Multimediadateien eingegeben, weil diese Musikbibliothek im SONOS bekannt ist. Ich habe daher den Pfad /share/Qmultimedia/Sonos/tts verwendet. Ich bekomme die Datei aber nicht abgespielt.

                        • Iceman
                          Iceman kommentierte
                          Kommentar bearbeiten
                          Bei mir funktioniert es nur wenn die MP3 im selben Ordner gespeichert wird wie das Script liegt.
                      • Iceman
                        Smart Home'r
                        • 25.08.2015
                        • 34

                        #45
                        Bei mir funktioniert es jetzt. Wie BigRitschi geschriben hat muss der Pfad //volume1/web/sonos// lauten.

                        Kommentar


                        • doc-brown
                          doc-brown kommentierte
                          Kommentar bearbeiten
                          welchen pfad meinst du jetzt messagepath oder messagestorepath?

                          koenntest du mal den abschnitt deines config files posten bitte?
                          Zuletzt geändert von doc-brown; 08.01.2016, 22:54.

                        • Iceman
                          Iceman kommentierte
                          Kommentar bearbeiten
                          'messagePath' => '//diskstation/web/sonos/',

                          # Enter your message path where Text-to-speech (TTS) messages should be saved
                          # This is due to usage of Raspberry Server and mountig NAS to Raspberry
                          # If you use eg. Synology as Server the path could be the same as

                          'messagePath'
                          # The 'messagestorepath' equals exactly the 'messgapath'
                          'messageStorePath' => '//volume1/web/sonos/',
                          Zuletzt geändert von Iceman; 08.01.2016, 23:04.
                      Lädt...