Sonos mittels PHP Skript steuern

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • baldaum
    Extension Master
    • 24.05.2016
    • 133

    Hallo,

    perfekt.

    Jetzt habe ich noch Ivona TTS getestet. Vorher habe ich immer VoiceRSS verwendet. Da funktioniert alle prima.
    Bei Ivona sind mir 2 Fehler unterkommen:

    1. Erstens sucht er nach dem File ivona_tts.php, welches aber in einem Unterverzeichnis liegt und darum nicht gefunden werden kann. Habs einfach mal ins Root kopiert. So gehts.
    2. Dann kommt aber ein Fehler: Fatal error: Call to undefined function curl_init() in /var/www/html/ivona_tts.php on line 79

    lg
    Markus

    Kommentar


    • Liver_64
      Liver_64 kommentierte
      Kommentar bearbeiten
      Hi Marcus,
      zu 1) seltsam, der Pfad zum Unterverzeichnis ist eigentlich angegeben, so dass das Skript das File finden müsste. Ich schaue es mir mal an, obwohl es bei mir in beiden Umgebungen einwandfrei funktioniert.
      Zu 2) falls du die Scripte von einem Raspi aufrufst musst du ggf. curl nachinstallieren.
      Gruß Oliver

    • baldaum
      baldaum kommentierte
      Kommentar bearbeiten
      Sorry, Nummer 1 war mein Fehler. Hatte das Directory am Rasperry verschoben

      Super!!!
      ​​​​​​​Das wars! An das habe ich nicht gedacht. Curl installiert. Jetzt geht alles perfekt
  • Michael Mausbach
    Dumb Home'r
    • 29.08.2015
    • 12

    Kurze Frage zum ChangeLog in Post1: Ist dieser weiterhin gültig oder wird jetzt auf die Commits History in GitHub verwiesen? Ich fand das grade ein wenig irritierend und denke, es könnte neue Nutzer verwirren.

    Kommentar

    • thomas76ch
      LoxBus Spammer
      • 29.09.2015
      • 286

      Kurze Frage, sind eigentlich Bestrebungen in Gange, welche diese hervorragende Script in den neuen "Loxberry" als Plugin integriert?

      Kommentar

      • Liver_64
        MS Profi
        • 07.09.2015
        • 591

        Ja, zumindest ist das der Plan. Warte aber a: noch auf meinen Raspi und b: bin ich derzeit noch mit neuen Entwicklungen beschäftigt.
        Wenn die abgeschlossen sind habe ich ein Stable Release und integriere dieses dann in Loxberry.

        Es wäre nur sehr schön wenn sich mal jemand zum Testen bereit erklären würde, alleine ist das immer sau viel, gerade nach Release Updates von Sonos + neue Entwicklungen.
        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


        • uli
          uli kommentierte
          Kommentar bearbeiten
          Ich würde mich zum testen bereit erklären...
      • Liver_64
        MS Profi
        • 07.09.2015
        • 591

        Zitat von Michael Mausbach
        Kurze Frage zum ChangeLog in Post1: Ist dieser weiterhin gültig oder wird jetzt auf die Commits History in GitHub verwiesen? Ich fand das grade ein wenig irritierend und denke, es könnte neue Nutzer verwirren.
        Erledigt
        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

        • Michael Mausbach
          Dumb Home'r
          • 29.08.2015
          • 12

          Danke. Im Übrigen möchte ich kurz einen Status über meine Inbetriebnahme geben: Nachdem ich nun doch recht viel ausprobiert hatte, habe ich nun letztendlich einfach die Musikbibliothek in der Sonos APP komplett gelöscht und neu angelegt. Daraufhin funktioniert es nun. Danke für eure Unterstützung, speziell natürlich an Oliver.

          Kommentar


          • Liver_64
            Liver_64 kommentierte
            Kommentar bearbeiten
            sehr verwunderlich das es daran lag, ich habe mein tts Verzeichnis noch nicht einmal in der Sonos Bibliothek.
        • uli
          LoxBus Spammer
          • 30.08.2015
          • 224

          Hallo,

          ich habe mit der neusten Version 1.53 ein kleines Problem.
          Shuffle funktioniert nun wieder wie geschrieben (macht allerdings bei einem anderen Lied weiter, was ja meine ich nicht zu vermeiden ist).

          Wenn ich aber eine Gruppennachricht abspiele passiert folgendes: Wiedergabe stoppt, Wiedergabe des gleichen Liedes startet wieder für ein paar Millisekunden, ein anderes Lied der Shuffle-Playliste startet für ein paar Millisekunden (nicht immer), erst dann wird die Nachricht abgespielt.

          Kann es etwas damit zu tun haben, dass ich die Boxen alle verkabelt und ohne Funk laufen habe und sie so zu schnell reagieren? Ev. hat es auch damit zu tun, dass zwei Lautsprecher vorher schon eine Gruppe sind und für die Nachricht noch einer mit dazu genommen wird!?

          Kommentar


          • uli
            uli kommentierte
            Kommentar bearbeiten
            Sehe gerade, dass in der der sonos2.php Zeile 1511 die Zeile:" #unlink($file); " auskommentiert ist. Soll die tmp_sz.json nicht gelöscht werden?
        • Liver_64
          MS Profi
          • 07.09.2015
          • 591

          Hey,
          das Problem ist mir bekannt. Ursache hierfür ist das Gruppenmanagement in Sonos und hier speziell der Fall wenn deine Zone der Group Coordinator einer Gruppe ist.
          In meiner Entwicklungsumgebung habe ich das Problem bereits gelöst, kämpfe aber noch mit der Wiederherstellung der Zonen nach Gruppendurchsagen wenn die Zone(n) in einer Gruppe
          war(en)
          Bzgl. unlink habe ich es bevorzugt das File nicht zu löschen, falls nämlich ein Problem auftritt mit nachfolgenden Teilen des Scriptes sind die Infos weg. Grundsätzlich kein Problem da das File bei jedem Aufruf wieder überschrieben wird.
          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

          • wrack solutionist
            Extension Master
            • 09.09.2016
            • 183

            Hallo,

            ich habe ein ähnliches Problem, wie baldaum beschrieben hat, jedoch konnte das Problem durch eine curl Installation nicht behoben werden.

            "Die Script-Zeitzone unterschied sich von der ini-set Zeitzone und wurde angepasst.

            Fatal error: Call to undefined function curl_init() in /var/www/html/LoxSonos/ivona_tts/ivona_tts.php on line 79"

            Kann mir jemand bitte einen Tipp geben woran es nocht liegen könnte?

            Danke

            Michael

            Kommentar


            • Liver_64
              Liver_64 kommentierte
              Kommentar bearbeiten
              sehr seltsam, da es ein typischer Fehler von fehlender oder fehlerhafter curl Funktionalität ist.
              Leider weiß ich da auch nicht weiter :-(
          • wrack solutionist
            Extension Master
            • 09.09.2016
            • 183

            Hi Ich habe zwar nun diesen Fehler durch eine Neuinstallation von Curl wegbekommen, hänge jedoch an einer neuen Hürde.

            Folgendes gebe in per Browser an die Pi:
            "http://192.168.0.200/LoxSonos/index.php?zone=wohnzimmer&volume=20&action=sendmes sage&text=Hallo%20Welt"
            Als Fehler in derl og erhalte ich aber das zurück:
            "2016-09-11 18:38:55 - Fehler: [2], file_put_contents(//volume1/music/tts//be8ae19542fd4c6c87a00e96d0bd31a1.mp3): failed to open stream: No such file or directory in /var/www/html/LoxSonos/ivona_tts/ivona_tts.php in line 40, Variable:Array
            (
            [text] => Dies+ist+ein+Test
            [filename] => //volume1/music/tts//be8ae19542fd4c6c87a00e96d0bd31a1.mp3
            [language] => de-DE
            [voice] => Marlene
            [rate] => medium
            [volume] => loud
            [payload] => {"Input":{"Data":"Dies ist ein Test"},"Parameters":{"Rate":"medium","Volume":"lou d"},"Voice":{"Name":"Marlene","Language":"de-DE"}}
            [mp3] => ID3"

            Anscheinend hat er weder meine Pafe noch meinen Befehl entgegen genommen.

            Des Weiteren bin ich absoluter Pii Neuling, wie finde ich den Mountpfad raus?

            Vielen Dank

            Michael

            Kommentar

            • Jedrek
              Smart Home'r
              • 22.06.2016
              • 52

              Hallo,

              Wäre es theoretisch möglich eine Art von Max Volume Limiter damit zu realisieren?
              Also z.B. einen Wert von 20% definieren über Sonos dann nie geht egal über welche App?

              Best Grüße

              Kommentar

              • Liver_64
                MS Profi
                • 07.09.2015
                • 591

                Hey,
                theroretisch wäre es möglich, zumindest in Loxone, in der Sonos App geht es leider nicht, aber wenn dann die Volume Info an Loxone übertragen wird könnte es sofort wieder runtergeregelt werden.
                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

                • wrack solutionist
                  Extension Master
                  • 09.09.2016
                  • 183

                  Hi,
                  gibt es ein Tutorial, wo der Syntax aller Befehle kurz erläutert ist. Leider sind nur die ersten Befehle entsprechend dokumentiert und für mich als Dummy verständlich. DAnke

                  Des Weiteren wäre ein Bespiel, wo die Lautstärke oder Titel in die Loxone übergeben wird hilfreich.


                  Vielen Dank für eure Unterstützung.

                  Michael
                  .
                  Zuletzt geändert von wrack solutionist; 19.09.2016, 19:41.

                  Kommentar


                  • Liver_64
                    Liver_64 kommentierte
                    Kommentar bearbeiten
                    Es sind doch so ziemlich alle Befehle und deren Syntax in der README.MD gelistet, ebenso ist irgendwo auf den ersten Seiten des Threads ein Bsp.für Loxone gepostet wie man die Info erhält.
                • hifimacianer
                  Azubi
                  • 27.08.2015
                  • 5

                  Hallo zusammen,

                  ich bin gerade dabei das Sonos php script bei mir zu integrieren.
                  Die Basis habe ich so weit schon hinbekommen, also Installation auf meiner Synology. Einzelne "einfache" Befehle kann ich auch schon testweise über den Browser ausführen.
                  Also so Dinge wie Lautstärke etc.

                  Bei 2 Dingen komme ich aber einfach nicht weiter.

                  1. Ich würde gerne die Playlist "Songs-Favoriten" laden, also die vordefinierte Favoriten Playlist von Sonos.
                  Wenn ich aber nun den Befehl http://DEINE_IP/DEIN_VERZEICHNIS/ind...ISTE&volume=15
                  eingebe, und hinten bei "NAME_DER_PLAYLISTE" --> Sonos-Favoriten eingebe, wird diese nicht geladen.

                  Wenn ich eine selbst angelegte Playliste "Test" dort angebe, wird diese anstandslos abgespielt.


                  Kennt jemand von Euch den genauen Namen der Songs-Favoriten Playlists, den ich dort eintragen muss?


                  2. Ich möchte die Songs Radioliste laden, bekomme aber auch da einen Fehler angezeigt.
                  Ich nutze den folgenden Befehl: http://DEINE_IP/DEIN_VERZEICHNIS/ind...TION&volume=15

                  Was mich wundert ist, dass man hinten auch noch den Namen einer Radiostation angeben muss.
                  Aber wie lauten denn die korrekten Namen der Radiosender die man dort eintragen muss?

                  Einer der Sender in der Liste heißt z.B. Antenne Mainz 106.6 (Lokale Musik).
                  Aber das kann ich ja so nicht in die http Adresse eingeben.

                  Wie wäre da die korrekte Angabe, bzw. wie bekomme ich die heraus?


                  Grüße, hifimacianer





                  Kommentar


                  • Liver_64
                    Liver_64 kommentierte
                    Kommentar bearbeiten
                    zu den Playlisten Problem: Grundsätzlich ist deine Syntax richtig, nur die Sonos Favoriten lassen sich derzeit nicht laden, nur die Sonos-Playlisten! Rufe mal im Browser ...action=getsonosplaylists auf, dann bekommst du eine komplette Liste von der du dann den [title] als Playlist nimmst. Du kannst logischerweise immer NUR eine Playliste aufrufen, ebenso NUR einen Radiosender. Beides grundsätzlich so wie du es in der Sonos App auch siehst (z.B. der Sender heißt hr3,da auch ...radioplaylist&playlist=hr3)
                    Bsp.: Playlist --> http://<localhost>/sonos/index.php/?zone=master&action=sonosplaylist&playlist=Bjutifu l&volume=10
                    Bei Radio ist es ähnlich, wobei der Sender unter "Mein Radiosender" gespeichert sein muss.
                    Um die URL bzw. den korrekten Sendernamen zu erhalten gebe bitte im Browser...action=radiourl für die korrekte URL und für den Sendernamen ...action=getmediainfo und hier [title] ein.
                    Zuletzt geändert von Liver_64; 23.09.2016, 23:30.

                  • hifimacianer
                    hifimacianer kommentierte
                    Kommentar bearbeiten
                    Danke, das hat mir schon deutlich weiter geholfen.
                    Nun stehe ich aber vor dem nächsten Problem:

                    Wenn ich die Befehle (z.B. toggle, nextradio) auf einen Taster lege, muss ich diesen immer 2x betätigen bis sich was tut.
                    Was könnte hier der Grund sein?

                    Außerdem bleibt er beim "durchzappen" der Radiostationen beim letzten in der config eingetragenen Sender einfach stehen, anstatt dann wieder beim ersten zu beginnen wie vorgesehen.

                    *Edit:

                    Ich glaube ich habe den Grund gefunden. Ich habe die Funktionen an den Lichtbaustein gehängt. Somit wird beim 2. klick auf den Taster wohl eine 0 gesendet, für "Licht aus". Ich hatte bisher noch keine Zeit es in der config auf ein Wischrelais umzuhängen, damit sollte es aber dann funktionieren.
                    Zuletzt geändert von hifimacianer; 09.01.2017, 14:13. Grund: Grund für meinen Fehler wohl selbst gefunden.
                • uli
                  LoxBus Spammer
                  • 30.08.2015
                  • 224

                  Hallo,

                  wie bekomme ich denn in Loxone unterschieden, ob gerade Radio oder lokal abgespielt wird? Ich dachte das ging mit gettransportinfo, aber dort ja nur zwischen Play, Pause und Stop differenziert.

                  Viele Grüße

                  Kommentar


                  • Liver_64
                    Liver_64 kommentierte
                    Kommentar bearbeiten
                    in Loxone derzeit nicht, das bekommst du nur über getpositioninfo raus. Die Info muss dann aus dem Feld [TrackURI] ausgelesen werden und nach gewissen Kriterien gefiltert werden. Ich habe es mir im Skript etwas einfacher gemacht in dem ich das Feld [duration] = leer als Indikator für Radio nehme. Aber wie gesagt getpositioninfo wird nicht nach Loxone übermittelt.
                Lädt...