Sonos mittels PHP Skript steuern

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

    Sonos mittels PHP Skript steuern

    Hallo an alle Loxnauten und Sonos Besitzer,

    ich eröffne jetzt mal einen Thread in der Hoffnung das sich hier alle diejenigen, die Interesse daran haben ihr Sonos System optimaler in ihr Loxone System zu integrieren. Mit sogenannten Bordmitteln stößt man schnell an seine Grenzen, von daher bin ich vor längerer Zeit schon auf die aus anderen Smart Home Systemen bekannte PHPSonos.inc.php und entsprechende Skripte gestoßen und habe mir vor 2 Wochen einen Raspberry Pi angeschafft um das ganze nun umzusetzen. Ein Pi ist nicht zwingend notwendig, die Skripte laufen auf allen php fähigen Webservern und auch auf php fähigen NAS und werden mittels Ausgangsverbinder per http Befehlen vom MS aufgerufen
    php Skripte für Sonos gibt es ja genug im Netz, manche sind sehr umfassend und dadurch auch komplex, manche sehr rudimentär. Da ich mich selber als Newbie im Bereich Pi, php und Skripte bezeichne habe ich mich darauf konzentriert existierende Skripte für meine Zwecke zu untersuchen, zusammenzufassen und zu optimieren und auch auch ein wenig was hinzuzufügen.

    Vielleicht schaffen wir es ja auch wie in anderen Foren auch (Homematic, IP-Symcon, etc.) das Skript für Loxone zu optimieren, neue Funktionen hinzuzufügen und zu erweitern. Wie gesagt, ich bin kein Experte in scripting, aber die Lernkurve ist relativ gut :-)
    Ich weiß auch aus dem alten Forum das es schon einige User gibt die per Skript ihr Sonos System integriert haben, aber aufgrund der Arbeit die teilweise in den Skripten steckt, diese nicht teilen wollen. Deshalb jetzt mal ein Versuch ob wir es gemeinsam schaffen unser Sonos System integrativer nutzen zu können.

    Jetzt mal zum eigentlichen Thema. Die Skripte bestehen grundsätzlich aus 9 Dateien die alle auf der PHPSonos.inc.php Class beruhen:

    System/PHPSonos.php --> Klasse zum Steuern von Sonos
    README.md --> unbedingt lesen bevor man anfängt
    System/config.php --> Hier wird eure jeweilige Konfiguration eingetragen
    index.php --> Aufruf der Funktionen
    sonos2.php --> Das eigentliche Skript
    Voice_Engines/Ivona --> Das text-to-speech Skript für Ivona.com
    Voice_Engines/VoiceRSS --> Das text-to-speech Skript für VoiceRSS.org
    Voice_Engines/MAC_OSX --> Das text-to-speech Skript für den Mac Server
    weather-to-speech --> Das weather-to-speech Skript
    clock-to-speech --> Das clock-to-speech Skript
    sonos-to-speech --> Das Sonos-to-speech skript

    Zusätzlich wird eine Log Datei erstellt

    Folgende Funktionen stehen derzeit je Sonos Zone zur Verfügung:
    Play, Stop, Pause, nächster Song, vorheriger Song, Song erneut, Toggle Play/Stop, Playmode (Normal, Shuffle, Repeat), Mute, Volume Up, Volume Down, setzen von Volume in Prozent, nächste Radiostation von Liste, vorherige Radiostation von Liste, löschen von Song aus der Playliste, löschen der gesamten Playliste.

    Darüber hinaus Funktionen die für die meisten am Interessantesten sind:
    Abspielen vordefinierter Nachrichten von NAS oder USB Stick
    Ich nutze diese ich um z.B. wiederkehrende Sprachdurchsagen abzuspielen („Waschmaschine ist fertig“, „Das Fenster im Bad ist seid 30 Minuten offen. Bitte umgehend schließen“) oder um einen Telefonanruf oder Klingeln an der Haustür akustisch über Sonos zu singnalisieren. Das kann relativ einfach über Eingangs Trigger im MS bewerkstelligt werden. Die vordefinierten Sprachnachrichten generiere ich mir über die TTS Engine (siehe im nächsten Abschnitt) und benenne dann die zurückkommende gespeicherte Datei einfach um in z.B.: 1.mp3, 2.mp3 um Sie später dann per http Befehl aufzurufen. Wichtig: Nur numerische Dateien sind per Aufruf mit Hilfe des Skriptes möglich

    Abspielen von Text-to-speech Nachrichten
    Mit Hilfe der Online TTS Engine VoiceRSS.org oder Ivona.com könnt ihr eigene Sprachdurchsagen erstellen und nutzen. Dazu benötigt ihr jeweils einen Key, da die Google TTS Engine mittlerweile dicht gemacht hat. Mit Hilfe der TTS Engine bekommt man dann den jeweils eingegeben Text als MP3 File zurück und er wird auf der angegebenen Zone in gewünschter Lautstärke abgespielt.
    Darüberhinaus kann auch der Wert eines Status (v) in die TTS Engine mit eingebunden werden, dieser wird auch in Sprache umgewandelt. In dem angehängten ZIP File habe ich mal eine Beispiel mp3 hinzugefügt damit ihr ein Gefühl für die Qualität der Stimme erhaltet.

    Als Bonbon dieser beiden Funktionen merkt sich das Skript beim Aufruf den Status der jeweiligen Zone (Spielt gerade Playliste/Song/Radiostation und dessen Volume) und ruft den Ursprungszustand nach erfolgter Sprachausgabe anschließend wieder auf. Falls die Zone eine aktive Playliste/Radiostation hat, aber auf Pause/Stop steht, bleibt die Zone nach erfolgter Sprachausgabe weiterhin stumm. Zusätzlich könnt ihr vor der Sprachausgabe noch ein .mp3 file (jingle oder gong) als Art Signalisierung abspielen.

    Die Syntax für die o.g. Befehle befinden sich alle in der README.md Datei, getestet habe ich die Funktionen erfolgreich unter Sonos 7.0 und Loxone Config 8.0.7.19.

    Mich würde es sehr freuen wenn wir im Laufe der Zeit das Skript, wie oben bereits erwähnt, erweitern könnten. Ich selber bin kein php Experte, hangele mich eher so durch, aber mir macht es Spaß und es gibt bestimmt noch einige sinnvolle Funktionen. Ich arbeite gerade am Gruppieren von Zonen und das entsprechende Lösen der Gruppierungen.

    Für Fragen bzw. Anmerkungen bin ich gerne offen, nur kann ich niemanden z.B. bei Inbetriebnahme eines Pi aktiv unterstützen, dafür gibt es auch genügend links im Netz wie man ihn konfiguriert. Alles halb so wild, hatte ihn an 2 Abenden fertig.

    Update: folgende Funktionen sind neu:
    rampto = 3 verschiedene Möglichkeiten der Lautstärkeanhebung
    group/ungroup = gruppieren aller Zonen und vice versa
    addmember/removemember = einzelne Zone hinzufügen und vice versa
    sonosplaylist = laden einer Sonos Playliste (auch nutzbar für Streaming Playlisten vorausgesetzt sie wurde vorher als Sonos Playliste gespeichert)
    radioplaylist = laden eines Radio Senders
    radiourl = Die Radio URL des gegenwärtigen Senders auslesen um den Sender zur Radioliste hinzuzufügen

    Bei den group/addmember funktionen gehen derzeit noch die vorher gespielten Playlisten verloren.

    Außerdem können jetzt folgende Infos an Loxone zur Weiterverarbeitung übertragen werden.
    Titel/Interpret Info, Lautstärke, Play Status (1=Play, 2=Pause, 3=Stop)
    nähere Infos dazu in der README.md
    Auch gibt es jetzt eine Debug und Info Möglichkeit um die Fehleranalyse einfacher zu machen, auch hier mehr dazu in der o.g. Datei

    Da ich nicht alle Syntax Kombination testen kann, empfehle ich euch die Dateien in ein anderes Verzeichnis zu speichern, eure config.php zu kopieren und zu ergänzen, bevor ihr das Skript produktiv in Loxone nutzt. Falls Bugfixes auftreten bitte lasst es mich wissen.

    Auch habe ich einige gemeldete Bugfixes behoben und Wünsche (Titel/Interpret Info, Playstatus für Loxone) realisiert.

    Vielleicht findet sich ja noch der ein oder andere der bereit ist sich mit php auseinanderzusetzen und sich an der Entwicklung zu beteiligen.
    Ansonsten viel Spaß und gebt doch mal ein Feedback ob ihr einen Mehrwert in der Nutzung seht.

    PS: Die Syntax ist jetzt alles in KLEINBUCHSTABEN :-)
    Die Scripts sind ab jetzt nur noch auf github.com verfügbar



    Viel Spaß mit den Skripten
    Oliver

    Change History:
    # 1.2.0 Veröffentlichung des Skriptes
    # 1.2.2 Aufgrund von diverser Groß-/kleinschreibung Problematiken jetzt die komplette Syntax in kleinschreibung
    # 1.3.0 Neue Funktionen hinzugefügt: group/ungroup // Achtung: Playlisten/Radiosender gehen bei ungroup verloren
    # addmember/removemember // zu einer Zone eine weitere hinzufügen
    # Achtung: Playlisten/Radiosender gehen bei removemember von verlassende Zone
    # verloren
    # sonosplaylist // lädt Sonos Playliste und spielt Sie dann ab
    # radiourl // Identifizieren der URL des gegenwärtig spielenden Radiosenders um die URL
    # dann in der config.php zu der Radioliste hinzuzufügen.
    # rampto // Anpassung der Art der Lautstärkeregelung bei Play (3 Varianten möglich)
    #
    # Desweiteren neue Parameter in der config.php:
    # stdvolume // Standardlautstärke wenn nichts anderes mit angegeben wurde
    # messagevolume // Standardlautstärke für Durchsagen wenn nichts anderes angegeben wurde
    # rampto // Standard für den Befehl Play wenn der Parameter rampto in der Syntax nicht
    # angegeben wurde.
    #
    # Details bzgl. Syntax bitte der README.md und der Parameter in config.php entnehmen
    # 1.3.1 Fehler bei Loxone Titelinfo und Volume behoben
    # 1.3.2 Fehler in der Funktion 'ungroup' behoben
    # Rampto default bei gewissen Funktionen geändert, Parameter zu config.php hinzugefügt
    # Fehler in der Funktion 'Logging' in Verbindung mit Loxone Anbindung behoben
    # 1.3.3 Google, Napster und die Sonos TV Bar bei Wiederherstellung nach TTS hinzugefügt
    # 1.4.0 Weather-to-speak und Clock-to-speak Funktionen hinzugefügt
    # Ramp-to-sleep (ca. 16 Sekunden) bei Beginn TTS Ansage und laufender Zone hinzugefügt
    # 1.4.1 w2s aktualisiert, Windstärkenangaben hinzugefügt, Bugfix für Windrichtung wenn Werte in Kürzel
    # zurückgegegben werden,
    # 1.4.2 Funktion softstop hinzugefügt (reduziert die Lautstärke linear in 17 Sekunden
    # auf Null, dann Stop und zurück zur Original Lautstärke
    # 1.4.3 Bugfix in Loxone Titel/Interpret Information behoben, TV Playbar Parameter geändert
    # 1.4.4 Die messageid 100 (File 100.mp3) ist für eine Klingelfunktion reserviert. Wenn Sonos läuft wird somit verhindert
    # das die Ramp-to-sleep Funktion greift und stattdessen das Klingel MP3 file sofort abgespielt wird. (Voraussetzung
    # man ein Klingelsignal an der Loxone)
    # Zusätzlicher Code für Playbar im TV Modus hinzugefügt (muss noch getestet werden)
    # 1.4.5 Code Optimierung und Error handling hinzugefügt (Verzeichnis log wird erstellt und die log dateien dort hineingeschrieben)
    # max. Skript Laufzeit auf 60 Sekunden erhöht (sollte die Fatal Error Probleme mit SonosPHP.inc.php lösen)
    # Funktion Telefonmute hinzugefügt (reduziert Volume langsam auf Wert 5%)
    # TV Playbar funktioniert nicht wenn Playbar im TV Modus ist.
    # 1.4.6 Fixed Problem bei TTS und eingeschaltetem Shuffle
    # Fixed t2s für Playbar im TV Modus
    # folgende Funktion hinzugefügt:
    # - Neuer Online Text-to-speech Provider Ivona.com implementiert:
    # alternativer Anbieter bei dem 2 Stimmen (männlich und weiblich) genutzt werden können. Eine default Stimme kann in der config.php
    # voreingestellt werden, aber in der Syntax individuell angepasst werden. Steuerung welcher Provider genutzt werden soll erfolgt ebenso
    # über die config.php (mehr Details bitte der Readme.md entnehmen)
    # - Zonestatus (prüft ob alle Player Online sind)
    # - beim Errorhandling wird eine Info an Loxone Text Eingangsverbinder S-Error geschickt
    # - clearlox (löscht Fehler in Loxone Benachrichtigung S-Error)
    # - getbass (gibt die Bass Einstellung zurück) + setbass (setzt den Bass auf angegebenen Wert)
    # - gettreble (gibt die Treble Einstellung zurück) + settreble (setzt den Treble auf angegebenen Wert)
    # - getloudness (gibt die Loudness Einstellung zurück [0 oder 1]) + setloudness (setzt den Bass auf angegebenen Wert [0 oder 1])
    # 1.4.7 Fixed Problem mit nextradio und prevradio
    # 1.4.8 Fixed loxgettitelinfo (Bei Radio wird der Sender und nicht mehr Titel/Interpret übergeben)
    # maximale Skriptlaufzeit auf 90 Sekunden erhöht
    # Zeitspanne (10 Sekunden oder abruptes verringern der Lautstärke) vor dem Abspielen der t2s konfigurierbar (config.php)
    # s2s (sonos-to-speech) sagt den laufenden Titel/Interpret kurz an (Titel stoppt abrupt, dann Titel/Interpret Ansage, Titel startet abrupt wieder)
    # Fixed Problem mit w2s und ivona_tts
    # 1.4.9
    # monatliches Logfile wird erstellt
    # Bugfix in weather-to-speech behoben
    # bei nextradio und prevradio die Lautstärke Parameter optimiert. Zone spielt = Volume bleibt, Zone spielt nicht = Volume aus Parameter $Volume wird zum Start verwendet
    # Folgende Funktionen wurden hinzugefügt:
    # - 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 eine Gruppe die angegebene Laustärke gleich
    # - setrelativegroupvolume = Erhöht für eine Gruppe die angegebene Laustärke relativ in Prozent je Zone. ACHTUNG! vorheriges Lautstärkeverhältnis beachten!
    # - becomegroupcoordinator = Nimmt angegebene Zone aus einer Gruppe heraus
    # - Sleeptimer = Ausschaltverzögerung in Minuten (1-59 Minuten möglich)
    # 1.4.9.1
    # Typo in sonos2.php korrigiert (keine T2S möglich)
    # 1.5.0 Offline Mac basierende T2S Engine hinzugefügt (danke schön an Patrick (patriwag))
    # 1.5.1 Erstellen von Gruppen bzw. auflösen einzelner Zonen basierend auf Auswahl der Zonen. Die jeweiligen Zonen müssen mit einem Komma aufgelistet werden, falls nur eine Zone dann ohne Komma
    # - addmember erstellt basierend auf der Auswahl von Zonen eine Gruppe. (inklusive speichern der jeweiligen Zustände)
    # - removemember löscht die angegeben(n) Zone(n) aus einer bestehenden Gruppe. (inklusive des Ladens der Originalzustände)
    # max. Scriptlaufzeit auf 120 Sekunden erhöht
    # Neue Funktion um eine T2S an eine Gruppe zu schicken. Vorher wird je Zone der Zustand gespeichert, dann die gewünschten Zonen
    # gruppiert, die t2s in gewünschter Lautstärke je Zone (siehe config.php) abgespielt und zum Schluß wieder der Originalzustand jeder Zone hergestellt.
    # - sendgroupmessage
    # Zusätzlich gibt es am Ende der Syntax den Parameter "groupvolume", der die Volume default Werte aus der config.php um den angegebenen Prozentwert erhöht.
    # - groupsonosplaylist = spielt eine Sonos Playliste in einer Gruppe von Zonen ab (analog zu sonosplaylist für einzelne Zone)
    # - groupradioplaylist = spielt einen ausgewählten Radiosender in einer Gruppe von Zonen ab (analog zu radioplaylist für einzelne Zone)
    # 1.5.2 Spotify für Wiederherstellung hinzugefügt
    # - Korrektur Groupvolume
    # - Korrektur Play()
    # - Korrektur Playmode (Shuffle ausschalten) vor Gruppendurchsage
    # 1.5.3 neuer Folder für MP3 Dateien hinzugefügt
    # 2.0.5 - Erweiterung Gruppenmanagement (egal ob eine Zone als SingleZone oder in einer Gruppe spielt wird nach einer T2S der Ursprungszustand
    # oder die Gruppenzugehörigkeit wiederhergestellt)
    # - Automatische Löschung der vom T2S Provider erhaltenen MP3 Dateien im Verzeichnis 'messageStorePath'
    # - Korrektur Playmode Shuffle wiederherstellen bei Gruppendurchsagen (nicht 100%ig behoben --> andere Song)
    # - Korrektur Wiederherstellung Radiosender bei Einzeldurchsage
    # - Erweiterung des Error Managements mit individuellen Messages
    # 2.0.6 Bugfix bzgl. Online Status der Zonen hinzugefügt --> nur Zonen die im Netzwerk Online sind werden genutzt, egal ob Sie in der Syntax
    # angegeben sind oder nicht.
    # Bugfix bei T2S Durchsage behoben (Playlist im Shuffle Modus noch in der Queue und Radio läuft)
    # - diverse kleinere Bugfix gelöst (sonos-to-speech, T2S Volume bei Gruppendurchsagezone für Master)
    # 2.0.7 add-/removemember gefixt
    Zuletzt geändert von Liver_64; 21.12.2016, 22:53.
    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!
  • alexmuli
    Dumb Home'r
    • 23.11.2015
    • 10

    #2
    Hi,

    echt gute Idee von dir das hier zu teilen und gemeinsam weiterzuentwickeln. Wie hast du das ganze dann in die Loxone Config mit eingebunden, über den Baustein Music Server Zone?

    Danke Gruß
    Alex

    Kommentar

    • Liver_64
      MS Profi
      • 07.09.2015
      • 591

      #3
      nichts dergleichen. Ganz normal über virtuelle Ausgangsverbinder und dann über http Befehle. Somit kannst du die Sprachdurchsagen für alles mögliche nutzen.
      In dem Screenshot im ZIP file ist es doch ganz gut zu erkennen
      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

        #4
        Noch mal zur Erläuterung bzgl. Nutzung in Loxone. Die angegebene Syntax z.B.:

        http://192.168.50.59/sonos/index.php...ge&messageId=1

        wird in der Loxone getrennt. Ihr legt hierfür einen virtuellen Ausgang an, gebt eure Web Server IP-Adresse (WICHTIG: mit http://) ein, den Haken bei "Verbindung nach senden schließen" setzen
        und dann im "virtuellen Ausgangsbefehl den eigentlichen Befehl:

        /sonos/index.php?zone=Buero&volume=30&playgong=Yes&action =sendMessage&messageId=1

        und verbindet es mit eurem Ausgang:

        Im hier genannten Befehl wird die laufende Playliste/Radiostation in der Sonos Zone "Buero" unterbrochen und die Lautstärke gespeichert. Anschließend wird für die folgende Sprachdurchsage die Lautstärke auf 30% gesetzt (Volume=30), dann wird ein kurzes Jingle gespielt (playgong=Yes) und anschließend das MP3 File "1.mp3" abgespielt. Wenn dieses abgeschlossen ist wird die ursprüngliche Lautstärke wieder gesetzt und die vorher unterbrochene Playliste/Radiostation fortgesetzt.

        Zum testen nehme ich immer die komplette Syntax und kopiere Sie in irgendeinen Browser.

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

Name: virtAusgang.JPG
Ansichten: 3823
Größe: 39,4 KB
ID: 18248 Klicke auf die Grafik für eine vergrößerte Ansicht

Name: virtAusgangBefehl.JPG
Ansichten: 4357
Größe: 47,5 KB
ID: 18249
        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

        • simon_hh
          Lox Guru
          • 18.09.2015
          • 2659

          #5
          ich hänge mich passiv mit rein, weil ich das sehe interessant finde und mitlesen möchte.
          Haus: Bj 1959, gekauft 2011, totale Entkernung, Dachausbau, Erweiterung & Vergrößerung: Start: 2014, Ende: 2050
          Loxone: 1 x Ms Gen.02, 1 x MS Gen.01, 5 x Ext., 4 x Relay Ext., 1 x Dimmer Ext., 2 x 1-wire Ext., 1 x DMX Ext. 1 x TREE Ext. mehr kommt noch
          Licht: DMX LED Beleuchtung (24V), MW HLG Serie und eldoled Dimmer
          Heizung: Brötje WBS 22F, OG Heizkörper und FuBoHeizung über RTL, EG FuBoHeizung

          Kommentar


          • Gast
            Gast kommentierte
            Kommentar bearbeiten
            Oben rechts auf Abonnieren klicken ;-)
        • Drunkard
          LoxBus Spammer
          • 27.08.2015
          • 277

          #6
          Werde das Thema auch verfolgen und dann im nächsten Jahr, wenn mein Loxone System fertig ist, einbinden.
          Gibt es vielleicht eine Schritt für Schritt Anleitung?

          Kommentar

          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7189

            #7
            Hab zwar jetzt kein Sonos mehr.
            Hatte es aber damit realisiert... https://github.com/jishi/node-sonos-http-api

            Funktioniert sehr gut.

            PS: Der gleiche Programmierer hat auch ein gutes Webinterface gebaut.
            Kein Support per PN!

            Kommentar

            • LoxBer
              Smart Home'r
              • 29.10.2015
              • 51

              #8
              Erstmal ein Dickes Danke an Liver_64 für das Engagement zu diesem Thema. Ich quäle mich seit ewig mit der Sonos Lösung von Loxone herum und die funktioniert nicht so dolle. Die PHP Lösung funktioniert bei mir auf Anhieb. Von daher sehe ich hier die finale Lösung für den Einsatz mit Loxone.

              Ich werde mich auch gerne daran beteiligen, sofern es die Zeit zulässt.

              Bei läuft das Ganze auf einer Synolgy unter der Webstation. Das Ganze dauert keine 5 Minuten und es läuft erstmal. Feinschliff muss dann natürlich noch erfolgen.

              Was bei mir aktuell kommt ist fopen(log.txt): failed to open stream: Permission denied in /volume1/web/sonos/sonos.php on line 485. Irgendwie kann er das Log nicht schreiben. Ich habe die Datei log.txt jetzt schonmal händisch angelegt, tut sich aber nichts. Ich vermute das Problem beim den Pfadangaben von mir in der config.

              Schonmal allen einen guten Rutsch!
              Zuletzt geändert von LoxBer; 31.12.2015, 13:48.

              Kommentar

              • Liver_64
                MS Profi
                • 07.09.2015
                • 591

                #9
                Ich vermute mal das dein Web Server User keine Schreibrechte für das Verzeichnis /volume1/web hat. Du kannst ja mal temporär in der config.php den Wert für Logging auf "false" setzen und dann noch mal probieren.

                Oder versuche vorher mal die Funtion "NextRadio", die erstellt nämlich auch ein Log file. Wenn das auch nicht erstellt wird hast du mit Sicherheit ein Berechtigungsproblem.
                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

                • LoxBer
                  Smart Home'r
                  • 29.10.2015
                  • 51

                  #10
                  Jap es war ein Berechtigungsproblem. Mann muss unter spezielle Berechtigungen HTTP das Schreibrecht erteilen. Ich hatte nur GUEST vollen Zugriff gegeben.

                  Was mich jetzt mal interessieren würde ist, wie man die currentRadio.txt auslesen kann um den Radiosender zu visualisieren.
                  Zuletzt geändert von LoxBer; 31.12.2015, 16:30.

                  Kommentar


                  • Liver_64
                    Liver_64 kommentierte
                    Kommentar bearbeiten
                    Die Datei ist eine Temporäre Datei, zum Auslesen kannst du mal den Befehl ... &action=GetMediaInfo in den Browser eingeben.
                    Wobei für mich die Funktion im Vordergrund steht und nicht das Visualisieren von Sonos. Da nutze ich die Sonos App lieber. Man muss ja nicht das Rad neu erfinden...
                • crasythom
                  LoxBus Spammer
                  • 02.10.2015
                  • 297

                  #11
                  Hallo, ich würde das ganze auch gerne testen. Habe das PHP auf mein QNAP geladen und die Config.php angepasst. Anschließend habe ich die Seite erstmal direkt im Browser aufgerufen. Hier gibt es leider schon die ersten Fehlermeldungen.
                  Scheinbar ist das array mit den Zonen leer (Fatal error: Uncaught exception 'Exception' with message 'Missing zone' in ...).

                  Die IP für meinen Play1 habe ich eigentlich eingetragen. Kann mir jemand helfen, was ich falsch mache?

                  Kommentar

                  • Iceman
                    Smart Home'r
                    • 25.08.2015
                    • 34

                    #12
                    Hatte das selbe Problem hast du auf die groß- und kleinschreibung geachtet?

                    Kommentar


                    • Iceman
                      Iceman kommentierte
                      Kommentar bearbeiten
                      Ich hatte einen Fehler bei der Pfad eingabe mit gross- und kleinschreibung. Wo liegt den dein PHP Scribt?

                    • crasythom
                      crasythom kommentierte
                      Kommentar bearbeiten
                      Wie gesagt, bei liegt das ganze auf der QNAP (share/MD0_DATA/Qweb/Sonos/).
                      Die Groß und Kleinschreibung habe ich schon beachtet. Die Fehlermeldung kommt aber schon ohne dass ich eine Aktion angebe.
                      Ich rufe quasi nur die index.php auf und diese hat offensichtlich schon ein Problem das array aus der config.php aufzulösen, weil dann gleich die Fehlermeldung "Missing zone" kommt.

                      OK: Der Play-Befehl zeigt schon mal Wirkung. Aber einen TTS kann ich noch immer nicht abspielen. Der wird zwar am angegebenen Ort gespeichert, aber nicht abgespielt.
                      Zuletzt geändert von crasythom; 02.01.2016, 14:05.

                    • Liver_64
                      Liver_64 kommentierte
                      Kommentar bearbeiten
                      Die index.php ohne irgendwas funktioniert auch nicht, es muss immer eine Zone und eine Action folgen.
                      Schau dir die README.md bitte genau an, da sind ALLE erlaubten Syntax gelistet. Copy/paste in einen Browser und die IP gegen deine tauschen.

                      Außerdem scheinst du ein Berechtigungsproblem deine Web Server User zu haben, kenne mich aber mit QNAP nicht aus.
                  • Gast

                    #13
                    Hallo Liver_64,
                    DANKE für die klasse Beschreibung zu Loxone//Sonos Sprachausgabe!

                    Lg


                    Gesendet von iPad mit Tapatalk

                    Kommentar

                    • Gast

                      #14
                      Hallo zusammen und Frohes neues Jahr euch allen.
                      Ich habe endlich meinen Pi mit Php Apache ect.. am laufen. Aber mit den beiden Dateien (index.php und PHPSonos.inc.php) aus dem alten "HowTo:Sonos Statusrückmeldung" Beitrag vom alten Loxonef Forum.
                      Wenn ich nun z.b http://IP-Phpserver/index.php?zone=W...r&do=GetVolume bekomme ich die aktuelle Lautstärke im Browser gemeldet. Die anderen "Get" abfragen die in der index.php stehen gehen ebenfalls. Nur leider verstehe ich immer noch nicht wie ich diese mit Loxone abfrage bzw. in der Config einbinde.Vielleicht kann mir jemand von euch einen Tip oder ein Beispiel geben.

                      Lg

                      Kommentar

                      • Liver_64
                        MS Profi
                        • 07.09.2015
                        • 591

                        #15
                        Die Frage ist ja eher was möchtest du denn erreichen? Möchtest du aufgrund von einem Wert irgendwas im MS schalten? Für was möchtest du die Werte den verwenden?

                        Mit dem hier veröffentlichten Script wollen wir Sonos komplett steuern d.h. die bekannten Get... Funktionen benötigt man bei jedem Script um die Daten auszulesen, temporär zu speichern und dann unverändert oder ggf. geändert wieder an Sonos zu schicken.

                        Beispiel: GetVolume
                        den Wert speichern in SaveVolume
                        dann Message in Volume xx abspielen und dann
                        Original Volume wieder setzen mit SetVolume = SaveVolume
                        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

                        Lädt...