Sonos mittels PHP Skript steuern

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

    Das betrifft leider nahezu alle Streaming Anbieter. Die technischen Adressen dahinter sind meistens dynamisch, da sich ja auch der Inhalt der PL ständig ändert.
    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

    • StoRmtec
      LoxBus Spammer
      • 25.08.2015
      • 346

      Hallo Liver_64
      Habe eine Frage und zwar wenn ich den Gong mit MessageID 100 abspielen lasse dann ist er immer in einer Endlosschleife. Geht das nich anderes wenn er einmal abgespielt wurde das er wieder den Status hernimmt welchen die Box gehabt hat? Danke

      Kommentar


      • Liver_64
        Liver_64 kommentierte
        Kommentar bearbeiten
        Sollte eigentlich nicht der Fall sein weil der Repeat Modus vorher aufgehoben wird und dann wieder aktiviert wird. Lösche ggf. mal in der Sonos App die aktuelle PL.
        Bei mir funktioniert es einwandfrei
    • Gast

      Zitat von StoRmtec
      Hallo Liver_64
      Habe eine Frage und zwar wenn ich den Gong mit MessageID 100 abspielen lasse dann ist er immer in einer Endlosschleife. Geht das nich anderes wenn er einmal abgespielt wurde das er wieder den Status hernimmt welchen die Box gehabt hat? Danke
      Problem habe ich manchmal bei den Sprachansagen. Kommt daher, das du beim Sonos Controller irgendwo ne Wiederhohlfunktion drin hast.
      Schick mal noch ein &action=playmode&playmode=normal dazu. Kannst ja nachher auch wieder ein &action=playmode&playmode=REPEAT_ALL nach dem Gong senden dann sollte es klappen.. (Siehe Readme.md)

      Kommentar

      • Smart
        Extension Master
        • 20.05.2016
        • 130

        Wie visualisiert ihr das ganze?

        Kommentar

        • Gast

          Zitat von Smart
          Wie visualisiert ihr das ganze?
          Eigendlich praktisch nicht. Nutze viele funktionen nicht aktiv, sondern beim Wecker, Abwesend alles aus, Anwesend alles auf Standart Lautstärke etc..
          Rückmeldungen hab ich leider noch keine in Betrieb..

          Kommentar

          • Gast

            Hallo Liver_64,

            erst einmal Respekt und Anerkennung für dieses Projekt.

            Aus meiner Sicht erweitert es den Funktionsumfang und die Interaktionsmöglichkeiten von Loxone / Sonos erheblich.


            Ich habe das ganze mal auf einer Art Raspberry nachgebaut und in der Loxone Config hinterlegt.

            Wenn ich den Server mit dem Script direkt per Browser rufe, dann funktioniert die Ansage des Textes.
            Wenn ich es allerdings über Loxone versuche passiert gar nichts. Es wird kein Temp-MP3 angelegt und auch kein Log geschrieben.

            Hast du bzw. ihr eine Idee für mich wo ich schauen kann?

            Viele Grüße

            Kommentar


            • Rik
              Rik kommentierte
              Kommentar bearbeiten
              Das hab ich beim virtuellen Ausgang stehen:

              /index.php?zone=kueche&volume=30&playgong=yes&actio n=sendmessage&text=Guten Morgen

              Damit funktioniert es bei mir.....

            • Gast
              Gast kommentierte
              Kommentar bearbeiten
              ...ich habe jetzt mal die IP statt dem DNS-Namen verwendet - so klappts!!!

              Danke.
          • Rik
            Extension Master
            • 21.10.2015
            • 115

            Zitat von Diddi
            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.

            Hallo Diddi,

            wie hast Du das mit der Lautstärke gemacht?
            Wenn ich bei mit die Radiosender durchschalte und per Sonos App die Lautstärke korrigiere, wir beim nächsten Radiosender wieder die Standard Lautstärke eingestellt.

            Gruß

            Kommentar

            • Rik
              Extension Master
              • 21.10.2015
              • 115

              Hallo,
              nachfolgend ein kleines HowTo für die Installation.

              Bitte um Rückmeldung ob was ergänzt oder entfernt werden soll.





              Sonos PHP How To auf einem RPI.

              Image herunterladen und auf SD-Karte kopieren:


              Apache und PHP5 nach folgender Anleitung Installieren:
              Der Raspberry Pi ist ein vielseitiger und kostengünstiger Einplatinencomputer, der sich für eine breite Palette von Projekten und Anwendungen eignet.


              WinSCP:
              Mit dem tool den kompletten Ordner von „Liver_64“ nach /home/pi/sonos kopieren.

              Putty und Samba:
              Mit Putty auf das RPI verbinden.

              Samba nach der Anleitung von „scharrin“ installieren und einrichten:
              raspberrypi# sudo apt-get install samba samba-common-bin

              Verzeichnis für die Ablage der MP3-datein anlegen:

              In meinem Fall:
              /var/www/loxone/mp3/

              Folgende Zeile in die Datei /etc/samba/smb.conf eingetragen bzw. angefügt:

              [
              sonosmp3]
              comment = Sonos-Freigabe MP3
              path =
              /var/www/loxone/mp3/
              writeable = yes
              guest ok = yes

              In der config.php benötigt man dann folgende Einträge:

              'messagePath' => '//raspberrypi/
              sonosmp3/',

              'messageStorePath' => '/var/www/loxone/mp3/',

              das funktioniert einwandfrei!

              Im messagePath ist der "raspberrypi" der Hostname (muss im Netzwerk auflösbar sein) oder die IP-Adresse des Raspberry. Dir farblich markierten "Strings" müssen zusammenpassen.

              messagePath ist das Verzeichnis der MP3-Dateien aus Sicht des Sonos.

              messageStorePath ist das selbe Verzeichnis aus Sicht des Raspberry.


              PHP-Dateien kopieren:
              • In das Verzeichnis Sonos wechseln
                • cd /home/pi/sonos
              • sämtliche Dateien nach var/www/html kopieren
                • sudo cp *.* /var/www/html/
              • Rechte vom html Verzeichnis anpassen
                • Sudo chmod 777 html
              • Rechte vom mp3 Verzeichnis anpassen
                • cd /var/www/loxone
                • sudo chmod 777 mp3

              Airport-Gong Datei kopieren:
              • mit google nach der Datei suchen
              • die mp3 Datei mit WinSCP nach /home/pi/mp3 kopieren
              • mit Putty die Datei in das Verzeichnis /var/www/html/ kopieren
                • cd /home/pi/mp3/
                • sudo cp *.* /var/www/html/

              config.php anpassen:
              Wie “Liver_64” schon beschrieben hat, müssen folgende Informationen aktualisiert werden:
              IP Adresse der Sonos-Lautsprecher
              Bezeichnung der Zone
              API-Key von VoicesRSS.org im file eintragen
              file_gong anpassen à entspricht der etwas weiter oben beschriebenen Gong Datei.
              IP-Adresse vom Miniserver anpassen
              TTS Engine anpassen à 1001


              Test der Installation:
              Mit folgendem Befehl kann die Funktion geprüft werden:Es sollte nun ein Gong inkl. des gesprochenen Textes „test“ auf dem Lautsprecher 192.168.2.21 in der Zone kueche ertönen.

              Kommentar


              • Gast
                Gast kommentierte
                Kommentar bearbeiten
                Hi Rik,

                danke für die tolle Aufstellung. Ich habe das ganz vor 2 Tagen, zwar mit einem ODROID, so realisiert.

                Beim ersten Mal hat es wegen den Berechtigungen bzw. Pfaden nicht gleich funktioniert und beim zweiten Mal hat die TTS Engine (1001) noch nicht gepasst.


                Der dritte Versuche war dann erfolgreich. Auf Loxone Seite war noch wichtig nicht den DNS-Namen, sondern die IP des Web-Servers anzugeben und schon funktionierte die erste Ausgabe.

                VG

              • Liver_64
                Liver_64 kommentierte
                Kommentar bearbeiten
                Hi Rik,
                klasse how-to, danke für die Mühe und die Arbeit. Hatte ich schon lange auf der "to-do" Liste.
                VG Oliver
            • Gast

              ...kann man einen Radiosender aus der config direkt per URL starten oder funktioniert das aktuell nur via "nextradio" bzw. "prevradio"?

              VG

              Kommentar

              • Gast

                Kannst du direkt machen, wenn der Radio unter Meine Radiosender drin ist.

                Auszug aus der README Datei. (README = Liesmich :-P)

                ## Lädt die angegebene Radioliste unter "Meine Radiosender" aus Sonos
                http://DEINE_IP/DEIN_VERZEICHNIS/son...TION&volume=15

                Kommentar


                • Gast
                  Gast kommentierte
                  Kommentar bearbeiten
                  Hi climber,

                  Danke für den Tipp. Ich dachte da muss der Name aus der config rein. Jetzt Funktioniert es.

                  VG
              • Gast

                Hi,

                mich würde mal interessieren wie ihr, mal abgesehen von der Musiksteuerung, die SonosPHP in die Logik der Loxone integriert habt.

                Ich habe jetzt erst damit angefangen und habe vor es für:
                - Wecker
                - Sturm- und Regenwarnung
                - Alarmierung

                zu nutzen.

                VG

                Kommentar

                • Liver_64
                  MS Profi
                  • 07.09.2015
                  • 591

                  Hallo Thunder007,

                  die Musiksteuerung habe ich eher vernachlässigt, da benutze ich dann doch die Sonos App. Bei mir steht die Hausautomation und TTS im Vordergrund. Dazu habe ich ca. 15 verschiedene MP3 files als numerische Dateien abgelegt, die ich dann je nach Anwendung aufrufe, generiert habe ich Sie mit der TTS funktion und dann entsprechend umbenannt. Ansonsten gibt es viele TTS Ansagen wie z.B.:

                  - Alarmanlage: Haus verlassen und ein Fenster ist noch auf -> TTS mit Ansage welches Fenster noc hoffen ist, dann Abbruch Alarm scharf schalten
                  - Alarmanlage: Haus verlassen und alle Fenster sind geschlossen -> TTS mit Ansage mit Hinweis das in 5 Minuten Alarm scharf geschaltet wird.
                  - Alarmanlage: Wenn Anwesenheit Scharfstellung und Alarm -> TTS Ansage mit gong welches Fenster betroffen ist (kam noch nie)
                  - Alarmanlage: Statusmeldung der Fenster gegen 22:00h bei Anwesenheit -> TTS Ansage ggf. kann Alarm bei Gute Nacht nicht scharf geschaltet werden da Fenster offen ist/sind
                  - Alarmanlage: Falls bei scharfer Alarmanlage anwesend die HST oder Tür von innen geöffnet wird -> TTS Hinweis dass nach dem Schließen die Alarmanlage in ca. 2 Minuten automatisch scharf geschaltet wird.
                  - Alarmanlage: stiller Alarm und TTS Hinweise wenn Bewegungsmelder deaktiviert wurden und wenn Auto Alarmschaltung deaktiviert wurde.
                  - Alarmanlage: Alarmauslösung akustischer Alarm -> Laden von PL, Volume auf 80% und abspielen Sirene bzw. Hundebellen, dann Rammstein
                  - Wetter: TTS aktuelle Wettervorhersage beim Frühstück
                  - Wetter: TTS Vorhersage für kommenden Tag gegen 22:00h
                  - Wetter: Sturmwarnung
                  - Uhrzeit: fixe Uhrzeitdurchsage mit Text Hinweis um 7:20h wenn Kids zur Schule müssen (nur an Schultagen)
                  - Musik: Bei eintreten morgens in den Wohnraum geht PL an, unterschiedliche Sender je Person
                  - Musik: Beim Betreten des Hauses unterschiedliche PL je nach Person und Tageszeit (iButton)
                  - Hinweise: Wenn Gartentor oder Garage länger als 5 Minuten offen steht, Waschmaschine, Trockner fertig, in Winter nach 30 Minuten welches Fenster offen steht, wenn HST geschlossen wird dann Hinweis das in 10 Minuten der Garten stromloss geschaltet wird (nur abends und anwesend), Türgong, wenn Haustür länger als 20 Minuten offen
                  - Media: TTS Hinweis wenn ich per Visu den TV im OG ausschalte. Dann haben die Kids noch ca. 20 Sekunden bis er ausgeht.
                  - Sonos: TTS Ansage des Titels und des Interpreten per Taster (Kids wollen öfter Infos haben wenn PL läuft)

                  das war es so im Groben
                  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


                  • Liver_64
                    Liver_64 kommentierte
                    Kommentar bearbeiten
                    Hi Marcus,

                    bzgl. Uhrzeit ist die Ansage im Script enthalten. Die Syntax lautet ...&action=sendmessage&clock&volume=35 und nutzt die Uhrzeit deines Webservers, nihct die des MS (Achtung: Uhrzeiten synchronisieren), ebenso die Wettervorhersage, diese lautet ...&action=sendmessage&weather&volume=35. Lies bitte die Readme, da steht alles bzgl. Wetter drin (basierend auf Wunderground), vorher kannst du dir noch den Text ggf. anpassen (Datei: w2s.php).
                    Wegen den Fenstern nutze ich folgende Funktion und hänge am letzten Statusbaustein die TTS dann einfach dran:
                    Ich such noch immer nach einer eleganten Lösung die mir vor verlassen den Hauses anzeigt/ansagt (Tasker) welche meiner Fenster/Türen noch offen sind. Ich hatte

                    Zusätzlich habe ich mir noch eine Funktion erstellt, welche in Kombination mit Bewegungsmeldern mir erlaubt trotz scharf geschalteter Alarmanlage anwesend die HST bzw. die Haustür zu öffnen ohne das Alarm ausgelöst wird (Hintergund ist das ich a: Raucher bin und b: ab und an unseren Hund noch in den Garten lasse). Die BWM sind bei anwesend außer Funktion, von daher kann ich sie dafür klasse nutzen. Die kommen nur bei abwesend und Hund nicht da zum Tragen.

                    Hoffe geholfen zu haben
                    Grüße Oliver

                  • Gast
                    Gast kommentierte
                    Kommentar bearbeiten
                    Danke Oliver, ich probiere die Sachen diese Woche gleich mal aus.

                    Gruß Marcus

                  • baldaum
                    baldaum kommentierte
                    Kommentar bearbeiten
                    Hallo Oliver,

                    Danke für deine ausführliche Beschreibung. Ich habe es geschafft den Miniserver and den Rasperry anzubinden und es funktioniert einwandfrei. Jetzt wollte ich die Alarmanlage mit den gleichen Bedingungen nachbau, wie du es gemacht hast. Ich stoße aber an die Grenze, weil ich nicht ganz weiß, wie ich folgendes umsetzen soll: - Alarmanlage: Haus verlassen und alle Fenster sind geschlossen -> TTS mit Ansage mit Hinweis das in 5 Minuten Alarm scharf geschaltet wird.

                    Wir hast du die TTS Durchsage umgesetzt und vor allem an welchen Ausgang hast du diese angeschlossen. Am Q Ausgang nutzt es mir nichts, da erst in 5 Minuten scharf geschaltet wird. Am AQT nutzt es auch nichts, weil die Alarmanlage keinen Fehler erkennt und somit keinen Text ausgibt.

                    Bitte um Deine Hilfe!

                    Danke
                    Markus
                • Liver_64
                  MS Profi
                  • 07.09.2015
                  • 591

                  Guude zsamme,

                  gibt es denn in unser Community nicht einen php Experten der etwas unterstützend tätig sein könnte? Ich bin mit meinem php Latein am Ende und komme nicht signifikant weiter. Folgende Funktion gilt es zu realisieren:

                  - individuelle Erstellung einer Gruppe aus Liste von Playern
                  - setzen der Lautstärke je Player für TTS
                  - speichern und wiederherstellen des Ursprungzustandes jedes Players der Gruppe
                  - Neue Sonos Funktionen (GroupVolume, GroupMute, SnapshotGroupVolume, RelativeGroupVolume, BecomeCoordinatorOfStandaloneGroup) -> werden für die ersten 2 Punkte benötigt

                  ERGÄNZUNG: Die Codes sind bereits vorhanden, bedürfen aber noch der Fehlersuche bzw.Optimierung da Sie derzeit nicht funktionieren.

                  wäre toll wenn sich jemand melden könnte.
                  Grüße Oliver
                  Zuletzt geändert von Liver_64; 31.05.2016, 09:52.
                  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
                    Gast kommentierte
                    Kommentar bearbeiten
                    Hi Oliver,

                    ich komme zwar ehr aus der Java Ecke, versuche aber gerne dir zu helfen.

                    Wo ist das Problem bzw. wie wollen wir vorgehen?

                    Gruß Marcus

                  • Liver_64
                    Liver_64 kommentierte
                    Kommentar bearbeiten
                    Hallo Marcus,

                    erst einmal danke für dein Angebot, ich bin dann doch ein ganzes Stück weiter gekommen und habe auch ein Update gepostet. Wie sieht es denn generell mit deinen Sonos Kenntnissen aus? Wie fit bist du hier?
                    Das nächste Thema ist aus verschiedenen Zonen eine Gruppe zu erstellen, dann eine T2S spielen und den Zusand der jeweiligen Zone wiederherstellen.
                    Prinzipiell weiß ich wie es mit einer Schleife läuft, nur im Detail steckt mal wieder das Problem ,-)

                    Lieben Gruß Oliver
                • Gast

                  Hey Oliver

                  Kann dir da leide nicht weiterhelfen. Wäre aber Interessiert daran, ob es möglich ist, eine Rückmeldung zu empfangen, ob der Player an ist oder nicht. (Falls mal über Sonos app eingeschaltet wurde..?)

                  Kommentar

                  • Liver_64
                    MS Profi
                    • 07.09.2015
                    • 591

                    bitte lies diesbezüglich die Readme, da steht drin wie es geht. Grundsätzlich gibt es 3 Infos:
                    - Volume
                    - Play/Pause oder Stop
                    - Titel/Interpret
                    anbei noch ein Screenshot meines MS.

                    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Sonos Loxone Input.JPG
Ansichten: 750
Größe: 69,8 KB
ID: 43554
                    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
                      Gast kommentierte
                      Kommentar bearbeiten
                      Ich hab da wohl ein Update verpasst. Habe Version 1.4.8 in der sonos2.php und finde in der Readme nichts zum Auslesen. (resp. nur das, wo steht nur im Browser verwenden)
                      Finde nichts mit loxgettitel oder dergelichen wie du es im Screenshot angegeben hast..

                    • Gast
                      Gast kommentierte
                      Kommentar bearbeiten
                      Habe das ganze in der sonos2.php gefunden, blick aber noch nicht ganz was deine Eingänge machen damit der Text ankommt.. Hast du eine Loxone Beispieldatei?

                    • Gast
                      Gast kommentierte
                      Kommentar bearbeiten
                      Habs geschnalt, läuft alles einwandfrei. Habs in der README aber immernoch nicht gefunden, habs anhand der Sonos2.php und deinem Screenshot reproduziert..
                  Lädt...