Sonos mittels PHP Skript steuern

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Liver_64
    MS Profi
    • 07.09.2015
    • 591

    grundsätzlich gibt es 3 Befehle um dir Infos in den MS zu holen:
    - loxgettitel (übergibt dir im Falle einer PL den Titel und Interpret, im Falle von Radio den Sender)
    - loxgettransportinfo (übergibt den Status der Zone (1=Play, 2=Pause, 3=Stop)
    - loxgetvolume (übergibt die gegenwärtige Lautstärke in Prozent)
    Bsp. der Syntax für den virtuellen Ausgangsverbinder ist im Screenshot. Am besten erstelltst du dir einen Impulsgeber und hängst die Ausgangsverbinder dran (je nachdem welche Info du haben möchtest.) Ich habe mir noch eine Schaltuhr bzw. Schalter davor gebaut da ich ja nicht 24 Stunden lang diese Infos benötige (Stichwort: Reduzierung von Netzwerktraffic) und ggf. ganz ausschalten kann.
    Was machen diese 3 Befehle? Der jeweilige Befehl triggert für die angegebene Zone in der Syntax dass die abgerufenen Information in einen virtuellen Texteingangsverbinder (EV) geschrieben werden damit du die Infos im MS weiter verwenden kannst. Die EVs MÜSSEN einer Nomenklatur unterliegen damit sie seitens des PHP Skriptes korrekt gefüllt werden.
    Diese besteht aus einer der 5 gelisteten Namen und zusätzlich die Zone für welche du die Info benötigst. Bsp: Deine gewünschte Zone um die Lautstärke zu übertragen heißt in der config.php "wohnzimmer", ergo lautet die korrekte Benennung für den EV "S-Volumewohnzimmer".
    - S-Titel<NAME DER ZONE AUS CONFIG.PHP>
    - S-Titelinfo<NAME DER ZONE AUS CONFIG.PHP>
    - S-Interpretinfo<NAME DER ZONE AUS CONFIG.PHP>
    - S-TransportInfo<NAME DER ZONE AUS CONFIG.PHP>
    - S-Volume<NAME DER ZONE AUS CONFIG.PHP>

    Was passiert jetzt? Der Impulsgeber sendet gemäß deiner Frequenz (bei mir alle 3 Sekunden) einen Befehl an das php script welches die gewünschte Info in die EV schießt. Diese EVs liegen per Default beim MS im Verzeichnis /dev/sps/io, genau dahin sendet das Script die Info. Um die Titel/Interpret Info zu visualiseren empfehle ich dir den Statusbaustein, für die anderen Infos je nachdem was du damit anstellen willst (Visu oder nur Steuerung)
    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

    • Gast

      Hey

      Danke für die Infos, hab das bei mir so ins Readme kopiert fürs nächste mal..

      Hab das gestern so angepasst. Musste es aber wieder rausnehmen, da mir die ganze Loxone zu Boden ging. Abfrage alle 10 Sekunden in 5 Räumen.. Wenn ich die Musik normal bedienen wollte (via Taster) gab es Verzögerungen von bis zu einer Minute! Kennst du das Problem?
      Läuft dein Script auf einem NAS oder einem PI?
      Läuft bei mir auf einem NAS, ist evtl. das NAS zu schwach und braucht zu lange für die Befehle auszuwerten wenn viele Anfragen kommen?

      Kommentar

      • Liver_64
        MS Profi
        • 07.09.2015
        • 591

        Das mit dem Traffic war klar, das hatten wir schon in einem anderen post diskutiert. Man muss sich halt im klaren sein was wirklich notwendig ist oder was ein Nice-to-have ist, Ich verwende die Infos nur für eine meiner 6 Zonen. Ansonsten nutze ich eher die SonoPhone App, über den Webbaustein, auf die ich vom Raum direkt hin verweise. Finde ich als komfortabler und reduziert die Netzwerklast.

        Mein Produktivscript läuft derzeit auf einer Synology, betreibe aber auch parallel einen PI
        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

        • Gast

          Mehr Traffic im Netzwerk ist auch kein Problem, aber dass gleich der ganze MS lahm liegt überrascht mich..
          Hätte gerne Logiken wie wenn in 2 räumen der selbe sender läuft, Gruppieren, sonst degruppieren etc..
          Scheine wohl doch nicht um das Sonos Gateway von ise GmbH rumzukommen..

          Welches läuft denn flüssiger? Synology oder PI? Hab auch beides in Betrieb..

          Kommentar

          • Liver_64
            MS Profi
            • 07.09.2015
            • 591

            machs dir doch einfach, hänge an den 1. Impulsgeber für jede Zone die gettransportsettings. Nur wenn diese 1 zurückgeben schaltest du einen 2. Impulsgeber für die restlichen Informationen. Somit ist gewährleistet das nur dann Infos kommen wenn eine Zone aktiv ist und reduzierst damit den Traffic.

            Bzgl. deines anderen Wunsches fällt mir adhoc folgende Lösung ein. Basis ist oben und dann prüfst du Titel/Interpret mit gleich Funktion und bedienst damit einen Sequencer der dann gruppiert und ggf wieder auflöst. Müsste meines Erachtens mit Loxone realisierbar sein.

            Wegen MS in die Knie gehen rechne doch mal aus welche Last du ihm aussetzt. alle 10 Sekunden (6x die Minute) x 5 Zonen x 60 Minuten x 24 Stunden x 3 Befehle = 129.600 Netzwerkbefehle am Tag. Ist ein wenig viel, oder...
            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

            • Gast

              danke für den tipp mit 2 Impulsgeber. Werde ich bei gelegenheit mal testen..

              Mit ist bewusst, dass es ein paar telegramme gibt(finde ich nicht übermässig viel und auch nur, tagsdurch wenn Anwesend), da ich aber ebenfalls Pings, CalDav, Wunderground abfragen etc am laufen habe und keine Probleme habe, hat es mich doch sehr irritiert. Auch wenn testweise nur 1. Zone abgefragt wird sind die gleichen Verzögerungen..

              Hab mich deshalb gefragt, ob diese vom NAS und Auslesen der Sonos Geräte kommt, oder von wo auch immer..

              Werde es weiter versuchen :-)

              Kommentar

              • Liver_64
                MS Profi
                • 07.09.2015
                • 591

                Guude zsamme,

                ich habe mal wieder ein etwas größeres Update in post #1 hinterlegt. Einige Probleme habe ich behoben (siehe change history) und einige neue Funktionen.
                Dies sind im Einzelnen:
                - getgroupmute = Gibt den gegenwärtigen Mute Status einer Gruppe zurück
                - setgroupmute = Setzt für eine Gruppe den Mute Status (0=Unmute, 1=Mute)
                - getgroupvolume = Gibt die gegenwärtige Lautstärke einer Gruppe zurück
                - setgroupvolume = Setzt für alle Zonen einer Gruppe die angegebene Lautstärke
                - setrelativegroupvolume = Erhöht für jede Zone in einer Gruppe die Lautstärke relativ in Prozent.
                - becomegroupcoordinator = Nimmt angegebene Zone aus einer Gruppe heraus
                - Sleeptimer = Ausschaltverzögerung in Minuten (1-59 Minuten möglich)
                mehr Details sind in der README.MD bitte nachzulesen. Bitte unbedingt vor Nutzung lesen, auch die Loxone Eingangsinfos sind jetzt darin enthalten.

                Gerade der Befehl setrelativegroupvolume ist tricky, da er er die gegenwärtige Lautstärke einer Zone innerhalb einer Gruppe um den angegebenen Wert xx erhöht. Bsp.: eine Zone läuft mit 20%, eine andere mit 40%. Jetzt wird wir der Wert um 20% erhöht, ergibt dann für die erste Zone 40% und für die zweite Zone 60%. Könnte u.U. unschön werden ;-)

                Mit den Befehlen und der Flexibilität des MS ist meines Erachtens einiges möglich was das Gruppenmanagement von Sonos angeht.
                Als nächstes kommt dann das Erstellen von Gruppen basierend auf Auswahl der Zonen mit anschließendem abspielen einer T2S und wiederherstellen des jeweiligen Ursprungszustandes

                Wenn was nicht nicht klappt bitte Feedback oder auch wenn es positiv ankommt :-)
                Die config.php benötigt keine Anpassungen, das neue monatliche Logfile Format erstellt sich automatisch (log_Juni_16.txt, usw.)

                Gruß Oliver
                Zuletzt geändert von Liver_64; 03.06.2016, 14:51.
                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

                  Update in post #1, hatte leider ein Typo bei T2S drin, Sorry.
                  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

                    Die Scripts sind jetzt auch auf github.com gepostet:
                    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

                    • patriwag
                      LoxBus Spammer
                      • 28.08.2015
                      • 435

                      Ich habe eine Freigabe auf meinem Mac eingerichtet. Der SONOS-Controller verbindet sich ohne Probleme auf dieses Share und listet mir die generierten MP3 Dateien auf. Jedoch kann ich keine Datei abspielen, da er sie anscheinend nicht findet. Hat jemand einen Tipp? Wenn das Verbinden auf das Verzeichnis funktioniert, sollte doch auch das abspielen klappen?!
                      seit 2016 im eigenen LoxHome

                      Kommentar

                      • Gast

                        Funktionieren die Dateien mit einem anderen Player?
                        Stimmen alle Rechte und Pfade?


                        Gesendet von iPhone mit Tapatalk

                        Kommentar

                        • patriwag
                          LoxBus Spammer
                          • 28.08.2015
                          • 435

                          Ja, es sollte alles stimmen. Die Dateien werden generiert und gespeichert. Über den Finder kann ich diese dann mit QuickTime abspielen.

                          Hat von euch Sonos Usern jemand einen Mac und kann mal versuchen ein freigegebenes Verzeichnis an das Sonos zu verbinden? Ich hätte eine Lösung, wie ich OS X zum erstellen der TTS-Files verwende. Damit läuft die Lösung ohne Cloud und Internettraffic.
                          seit 2016 im eigenen LoxHome

                          Kommentar

                          • patriwag
                            LoxBus Spammer
                            • 28.08.2015
                            • 435

                            So, ich habe nun den Fehler gefunden:

                            Tatsächlich gibt es mit OS X 10.11.5 und den SMB-Protokoll Probleme. Auch in der aktuellen 10.11.6 Beta ist der Bug noch vorhanden. Das Sonos und der Sonos-Controller können somit nicht auf eine OS X Netzwerkfreigabe zugreifen. Für diesen Bug gibt es einen Workaround, den ich hier gefunden habe:

                            https://de.community.sonos.com/insta...04/index2.html

                            Kurbeschreibung:

                            1 - Benutzer root in OS X aktivieren
                            2 - Zwei Zeilen in eine plist (Textdatei) einfügen
                            3 - OS X neu starten

                            Ich mache mich jetzt dann mal an die integration der OS X Text to Speech Engine.

                            UPDATE:

                            Ich habe die Mac OS X Integration fertiggestellt und auf Github veröffentlicht.
                            Zuletzt geändert von patriwag; 08.06.2016, 20:43.
                            seit 2016 im eigenen LoxHome

                            Kommentar

                            • Liver_64
                              MS Profi
                              • 07.09.2015
                              • 591

                              Guude zusammen,

                              nachdem ich mich die letzte Zeit noch mal intensiv mit dem Skript beschäftigt habe, dabei nahezu alles umgeschrieben und optimiert habe, und ein lange gewünschte Funktion programmiert habe, benötige ich 2-3 Personen als Beta Tester. Ich denke Anfang n. Woche ist die letzte Feinarbeit erledigt und es könnte dann losgehen.
                              Die Version würde ich ungern für die Tester hier oder auf Github posten, erst wenn sie einwandfrei läuft möchte ich Sie veröffentlichen.
                              Also.... wer Lust und Zeit hat bitte melden.

                              Im wesentlichen ist nur eine Funktion neu, aber diese ist ziemlich umfangreich. Es ist möglich eine T2S an eine frei definierbare Gruppe von Zonen mit individueller Lautstärke je Zone zu schicken :-) Zuerst wird aus den angegebenen Zonen eine Gruppe erstellt und die gegenwärtigen Zustände je Zone gespeichert, dann wird der neue Parameter T2S Lautstärke je Zone aus der config.php eingelesen, die T2S in der Gruppe abgespielt, dann wird die Gruppe wieder aufgelöst und der Ursprungszustand je Zone wieder hergestellt.
                              Das ganze geschieht mit folgender Syntax:
                              http://<IP-ADRESSE>/sonos/index.php/?zone=master&playgong=yes&action=sendgroupmessage& member=wohnen,kueche,schlafen&text=bitte das gartentor schließen
                              In der config.php sind je Zone der Parameter T2S Lautstärke und Sonos Standardlautstärke hinzugekommen

                              Als "Abfallprodukt" sind creategroup and removegroup hinzugekommen, beide Teil der groupmessage Funktion. Mit creategroup wird ebenso basierend auf angegebenen Zonen eine Gruppe erstellt und vorher der Zustand jeder Zone dieser Gruppe gespeichert. Mit removegroup wird die Gruppe aufgelöst und die Originalzustände je Zone wiederhergestellt.

                              Wer mag mit Testen, allein schaffe ich es nicht alle Funktionen/Kombinationen im Browser zu testen.

                              Gruß Oliver
                              Zuletzt geändert von Liver_64; 21.06.2016, 14:44.
                              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


                              • m.haunschmid
                                m.haunschmid kommentierte
                                Kommentar bearbeiten
                                Hallo,
                                wird es dann auch möglich sein, eine mp3 direkt abzuspielen? Würde diese Syntax funktionieren: &quot;....&action=sendgroupmessage&member=wohnen,k ueche,schlafen&messageid=1&quot; ?
                                Möchte das Ganze nämlich als Türklingel nutzen.

                                mfg Michael

                              • Liver_64
                                Liver_64 kommentierte
                                Kommentar bearbeiten
                                Ja, nimm aber bitte als Dateiname die 100.mp3 da diese die Rampto Funktion übergeht.

                              • m.haunschmid
                                m.haunschmid kommentierte
                                Kommentar bearbeiten
                                Aja, stimmt. Danke für die Info
                            • patriwag
                              LoxBus Spammer
                              • 28.08.2015
                              • 435

                              Ich würde testen.
                              seit 2016 im eigenen LoxHome

                              Kommentar

                              Lädt...