Sonos mittels PHP Skript steuern

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

    Guude zusammen,

    in post #1 habe ich ein Update gepostet. Wesentliche Neuerung ist ein alternativer Text-to-speech Anbieter (IVONA.com) der eine männliche und auch weibliche Stimme liefert.
    Ähnlich wie bei VoiceRSS.org muss man sich registrieren und erhält 2 Keys die man in der config eingeben muss, ebenso wie die default Stimme, die wiederum in der Syntax per Aufruf individuell angegeben werden können. Ich habe mal je Stimme ein Beispiel reingepackt.
    WICHTIG: Das Verzeichnis ivona_tts MUSS bestehen bleiben (Raspberry Nutzer bitte die php ausführbar machen: sudo chmod +x <PFAD>ivona_tts.php)

    Ansonsten ist folgendes neu:
    - 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])

    Bugfixes:
    - Fixed Problem bei TTS und eingeschaltetem Shuffle
    - Fixed t2s für Playbar im TV Modus

    Viel Spaß und Gruß
    Oliver
    Zuletzt geändert von Liver_64; 09.03.2016, 10:13.
    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

    • daintree
      Smart Home'r
      • 30.08.2015
      • 34

      Seit ca einer Woche läuft bei mir die Interpreteninfo (loxgettitel) nicht mehr in der Loxone Visu. Ich erhalte folgende Fehlermeldungen im sonos_error.log:
      2016-03-09 22:29:10 - Fehler: [8], Undefined variable: valuesplitted in /var/www/html/sonos/sonos2.php in line 925, Variable:Array

      Passiert mit der neusten Version wie auch mit der Vorgänger Version.

      loxgetvolume, loxgetmute etc. funktionieren alle einwandfrei.

      Mache ich das ganze im Browser => http://10.251.10.16/sonos/sonos2.php...on=loxgettitel, erhalte ich folgende Meldung im Browser
      Ein Fehler trat auf. Bitte Datei /log/sonos_error.log pruefen.

      Jemand eine Idee?

      Kommentar


      • daintree
        daintree kommentierte
        Kommentar bearbeiten
        So wie ich das sehe, tritt es bei allen Radiosendern auf.

        Hier noch ein Auszug aus dem sonos_error.log. Es scheint das er da die Interpreteninfo auslesen kann.


        2016-03-16 21:39:52 - Fehler: [8], Undefined variable: valuesplitted in /var/www/html/sonos/sonos2.php in line 925, Variable:Array
        (
        ......





        [gettransportinfo] => 1
        [temp] => Array
        (
        [position] => 0:00:33
        [RelTime] => 0:00:33
        [duration] =>
        [TrackDuration] =>
        [URI] => x-rincon-mp3radio://radiopilatus.ice.infomaniak.ch/pilatus192.mp3
        [TrackURI] => x-rincon-mp3radio://radiopilatus.ice.infomaniak.ch/pilatus192.mp3
        [artist] =>
        [title] => pilatus192.mp3
        [album] =>
        [albumArtURI] =>
        [albumArtist] =>
        [albumTrackNumber] =>
        [streamContent] => REVOLVERHELD - LASS UNS GEHEN
        [trackURI] =>
        [Track] => 1
        )

        [value] => REVOLVERHELD - LASS UNS GEHEN
        [valuesplit] => Array
        (
        [0] => REVOLVERHELD
        [1] => LASS UNS GEHEN
        )

        [valueurl] => REVOLVERHELD%20-%20LASS%20UNS%20GEHEN

      • Liver_64
        Liver_64 kommentierte
        Kommentar bearbeiten
        Der Fehler ist mehr als Hinweis zu betrachten, die Funktion wird trotzdem korrekt ausgeführt. Sieht du ja auch am Ergebnis.
        (0) = Interpret
        (1) = Titel
        valueurl = beides zusammen

      • daintree
        daintree kommentierte
        Kommentar bearbeiten
        Aber genau diese Command nutze ich ja auch in der LoxoneConfig um die Info auszulesen:
        => http://10.251.10.16/sonos/sonos2.php...on=loxgettitel

        Wie kann der Texteingangsverbinder abgefüllt werden, wenn ich eine Fehlermeldung bekomme über diesen Command?
        Das ist ja auch genau das Problem welches ich habe. Sämtliche Texteingangsverbinder werden mit der Interpreteninfo nicht mehr abefüllt, seit ich dieses Problem habe.

        Gruess Daintree
    • Gast

      Ich bekomme beim Ivona TTS keine Ansage abgespielt - die Sonos App meint "Kann nicht abgespielt werden. Titel ist nicht korrekt kodiert". Woran liegt das? File ist auch nur 1KB groß. Mit VoiceRSS geht alles einwandfrei.

      Nachtrag: freier Text geht, C2S geht, bei Weather gefällt ihm was nicht
      Zuletzt geändert von Gast; 10.03.2016, 21:48.

      Kommentar


      • verdammt
        verdammt kommentierte
        Kommentar bearbeiten
        Hi Liver_64,

        sorry hab jetzt erst deine Antwort gelesen.

        Ich rufe die Sachen über die http:192.168.178.xx/sonos/... auf
        In der config habe ich die Keys von Underground eingetragen.

        In der mp3 Verzeichnis wird auch eine weather_rar_data Datei erzeugt und eine mp3, die hat aber immer nur 118 KB.

        Im Browser kommt mit folgendes im Debug Modus &quot;1&quot; es wird nur nicht abgespielt.

        Gesamter Text zur Uebergabe an T2S:
        Hallo zusammen. Heute Mittag, beziehungsweise heute Nachmittag, wird das Wetter Gewitter. Die momentane Au�entemperatur betr�gt 17 Grad. . . Es weht ein steifer Wind aus Richtung s�ds�dwest mit Geschwindigkeiten bis zu 56 km/h. Ich w�nsche euch noch einen sch�nen Nachmitag.

        Hoechsttemperatur heute:18
        Tiefsttemperatur heute:3
        Hoechsttemperatur morgen:9
        Tiefsttemperatur morgen:1
        Wetterkonditionen fuer die naechste Stunde:Gewitter
        aktuelle Wetterkonditionen:Bedeckt
        max. Windgeschwindigkeit fuer die naechste Stunde:56
        allgemeine Wetterdaten heute:Gewitter
        allgemeine Wetterdaten morgen:Teils Wolkig
        Wetterlage heute:Windig mit Gewittern. Höchsttemperatur 18C. Wind aus SSW mit 40 bis 55 km/h. Regenrisiko 90 %. Windböen mit einer Stärke von stellenweise über 80 km/h.
        Wetterlage morgen:Zunächst windig mit Gewittern. Tiefsttemperatur 3C. Wind aus W mit 30 bis 50 km/h. Regenrisiko 90 %. Windböen mit einer Stärke von stellenweise über 65 km/h.
        Regenwahrscheinlichkeit heute:
        Regenwahrscheinlichkeit morgen:10
        Zwischen START und ENDE des Skripts sind 15.25 Sekunden vergangen
        Zuletzt geändert von verdammt; 24.03.2016, 14:18.

      • Ralf
        Ralf kommentierte
        Kommentar bearbeiten
        Hallo Oliver,
        ich hatte das gleiche Problem. Kann es sein, dass in der Zeile 162 der w2s.php
        $text = utf8_encode($text); statt
        $wtext = utf8_encode($text);
        heißen sollte?
        Beste Ostergrüße und viel Respekt für die fleißige Arbeit und die super Unterstützung
        Ralf

      • Liver_64
        Liver_64 kommentierte
        Kommentar bearbeiten
        in der von mir geposteten Version steht
        $wtext = utf8_encode($wtext);
        drin, und so ist es auch richtig
    • Ralf
      Dumb Home'r
      • 15.09.2015
      • 15

      Guten Tag Oliver,
      guten Tag die Nutzer,

      zunächst vielen Dank für die tolle Arbeit. Es ist eine echte Bereicherung der Möglichkeiten von Loxone. Das Script nutze ich inzwischen auf einer Synology DS und parallel auf einem Raspberrypi für Testzwecke. Bis zum letzten Update liefen beide ohne Probleme.

      Auf dem Raspberrypi tritt nun bei der Nutzung von IVONA folgender Fehler auf:
      Fatal error: Class 'IVONA_TTS' not found in /var/www/html/PHPSonos/t2si.php on line 27

      Nach Änderung
      der erste Zeile in ivona_tts.php geändert auf
      <?php statt <?

      ergibt sich
      Fatal error
      : Call to undefined function curl_init() in /var/www/html/PHPSonos/ivona_tts/ivona_tts.php on line 77

      Ich hoffe, dass Oliver an dem Projekt möglichst weiterarbeitet.
      Viele Grüße
      Ralf



      Kommentar


      • Liver_64
        Liver_64 kommentierte
        Kommentar bearbeiten
        ich vermute das der Owner des Verzeichnisses nicht die entsprechenden Rechte hat. Prüfe mal Rechte und korrigiere sie, bei mir hat es dann funktioniert.
        sudo chown -R USER:USER <VERZEICHNIS>
    • lox4fun
      Smart Home'r
      • 02.09.2015
      • 51

      Hi,

      Super Projekt!!

      Problem mit nextradio bzw. prevradio

      Problembeschreibung:
      Wenn beim Befehl nextradio der letzte Sender der Liste erreicht wird oder beim Befehl prevradio der erste Sender tritt ein Fehler auf

      Ich denke, dass die beiden unte angeführten IF-Befehle geändert gehören.
      Ich hab die sonos2.php entsprechend dem unten stehenden Vorschlag verändert, gespeichert - dann funktioniert aber gar nichts mehr (auch andere Befehle)

      IF in sonos2-php v1.4.6

      ORIGINAL
      Zeile 429 if ($senderaktuell < ($radioanzahl) ) {
      Zeile 452 if ($senderaktuell <= ($radioanzahl - 1) ) {

      MEIN VORSCHLAG
      Zeile 429 if ($senderaktuell < ($radioanzahl-1) ) {
      Zeile 452 if ($senderaktuell > 0 ) {

      In der READE.md sollte am Ende der Zeile previousradio durch prevradio ersetzt werden
      ## Spielt vorherigen Radio Sender aus der Liste in config.php
      http://DEINE_IP/DEIN_VERZEICHNIS/son...=previousradio

      Kommentar

      • Gast

        Hallo ralf. Offensichtlich fehlt dir die curl library. Einfach mit sudo apt-get install curl nachinstallieren

        Gesendet von meinem SM-G928F mit Tapatalk

        Kommentar

        • Ralf
          Dumb Home'r
          • 15.09.2015
          • 15

          Leider war es das noch nicht.
          "curl ist schon die neueste Version"

          Kommentar

          • Liver_64
            MS Profi
            • 07.09.2015
            • 591

            prevradio und nextradio habe ich korrigiert (hatte ich nie getestet da ich es selber nicht nutze), fängt dann wieder am Anfang bzw. am Ende an. Mit Raspi muss ich noch nachschauen was es ist, habe den gleichen Fehler auch, lieget aber am Raspi
            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

              Error fixing in post #1. nextradio und prevradio läuft jetzt in Schleife.
              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

                Guude zusammen,

                wer Problem mit der Ivona Engine hat, speziell Raspi User (inklusive mir), machen bitte folgendes:
                Öffnen der t2si.php mit einem Editor (Windows Notepad oder Notepad ++) und folgende Zeile ändern:

                Zeile 8 Original: set_include_path(__DIR__ . '/ivona_tts');
                Zeile 8 Neu: # set_include_path(__DIR__ . '/ivona_tts');

                und speichern.

                Dann verschieben der Datei ivona_tts.php in euer Sonos Verzeichnis, öffnen der ivona_tts.php mit einem Editor (Windows Notepad oder Notepad ++) und folgende Zeile ändern:

                Zeile 17 Original: include './config.php';
                Zeile 17 Neu: include 'config.php';

                und ebenfalls speichern.
                Danach sollte es auch mit dem Nachbarn klappen :-)

                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
                  hast du sudo apt-get install curl oder sudo apt-get install php5-curl installiert? Was steht in der php.ini?

                • Ralf
                  Ralf kommentierte
                  Kommentar bearbeiten
                  Ja, jeweils wird gemeldet, dass es schon die neueste Version ist.
                  Die php.ini ist bisher nicht verändert worden. Muss ich da etwas anpassen?
                  Zuletzt geändert von Ralf; 16.03.2016, 13:04.

                • Ralf
                  Ralf kommentierte
                  Kommentar bearbeiten
                  Mein Problem hat sich nach einem Reboot erledigt. Danke für die Unterstützung
                  Ralf
              • technikblog
                LoxBus Spammer
                • 13.01.2016
                • 277

                Mal ein grosses Kompliment hier! Läuft alles soweit ich gerade beurteilen kann. Habe es in kurzer Zeit ready gehabt, Sonos macht mit. Kommt gut... danke
                Nachrüster-EFH: MS, Extension, EnOcean, Awaptec Switches, Loxberry, Zählterinterface Air, 2 Loxone 3 Phasenzähler, Eastron Sdm630 Modbus, Photovoltaik 9.82kWp, Eigenverbrauchsoptimierung mit Loxone

                Projekte: Photovoltaik-Anlage, Keba P30 Wallbox, VW e-Golf Test, myStrom WiFi Switch einbinden

                Kommentar

                • Matt
                  Dumb Home'r
                  • 15.12.2015
                  • 23

                  Hallo Oliver,

                  ich würde gerne Sonos auch als Türklingel verwenden. Habe nun aber das Problem, wenn jemand klingelt, dann fährt die Musik langsam zurück. Würde es aber bei Klingeln gerne sprunghaft haben, da man sonst eher zu lange warten muss. Kann man diese Zeit irgendwo einstellen oder habe ich einfach irgendetwas übersehen?

                  Kommentar


                  • Liver_64
                    Liver_64 kommentierte
                    Kommentar bearbeiten
                    Du hast was übersehen ;-) ab V1.4.5 ist die Datei 100.mp3 für die Türklingel reserviert, da die Datei das herunterfahren der Laustärke umgeht und sofort abgespielt wird.

                  • Matt
                    Matt kommentierte
                    Kommentar bearbeiten
                    Super! Funktioniert einwandfrei. ;-) Vielen Dank
                • Matt
                  Dumb Home'r
                  • 15.12.2015
                  • 23

                  Habe heute die Playbar getestet und es funktioniert perfekt! Vielen Dank dafür. Eine Frage hätte ich aber noch und zwar: Kann man nach einer Nachricht die Zeit für die Lautstärkenanhebung verändern?

                  Kommentar

                  • Liver_64
                    MS Profi
                    • 07.09.2015
                    • 591

                    Es ist schon die schnellste Anhebung eingestellt. Wieviel Sekunden hast du denn in der config als sleeptimegong eingestellt? Vielleicht hilft es mit dem Parameter runter zu gehen!
                    Zuletzt geändert von Liver_64; 17.03.2016, 12:37.
                    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


                    • Matt
                      Matt kommentierte
                      Kommentar bearbeiten
                      Hallo
                      habe bei sleeptimegong 1 Sekunde eingestellt. Dauert etwas lang, aber egal, ansonsten alles super. Danke.
                  • deepinpowder
                    LoxBus Spammer
                    • 07.03.2016
                    • 412

                    Zitat von StoRmtec
                    Auch kann man einen Radiosender übergeben bzw wechseln.
                    Danke
                    @Liver_64
                    Hallo,

                    leider finde ich die Doku nicht auf der Loxone Seite.

                    Ich habe in der Playlist nur einen Radiosender. Ich möchte nur gerne (am besten ohne PHPSonos.inc.php) durch druck auf einen Taster den Radiosender x mit Lautstärke y abspielen.

                    Danke

                    Wo finde ich die aktuelle PHPSonos.inc.php ? Der Link auf Seite 1 funktioniert leider nicht und auf Github finde ich nur etwas sehr alte Files.

                    Kommentar

                    Lädt...