Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mobby2304
    antwortet
    Der Pfad ist bei alles dreien der selbe. Wenn ich ihn nun von /smartvisu/widgets/... auf /widgets... ändere, schreibt mir die Konsole, dass er die Datei unter dem Pfad nicht findet.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von Mobby2304 Beitrag anzeigen
    Servus zusammen,

    die Dateien findet er jetzt. Jedoch hab ich noch eine Frage:

    Er sucht nun nach jquery. Wird das nicht erst am Smartvisu V2.9 benötigt?
    Du musst die Einträge für den css- und jpg-Pfad in der sonos.html ebenfalls wie oben beschrieben noch anpassen.

    Gruss,

    Stefan

    Einen Kommentar schreiben:


  • Mobby2304
    antwortet
    Servus zusammen,

    die Dateien findet er jetzt. Jedoch hab ich noch eine Frage:

    Er sucht nun nach jquery. Wird das nicht erst am Smartvisu V2.9 benötigt?
    Angehängte Dateien

    Einen Kommentar schreiben:


  • Mobby2304
    antwortet
    Zitat von pfischi Beitrag anzeigen
    Genau. Eventuell auch /smartvisu/widgets. Kommt immer auf die Einstellung des Webservers an.

    Gruss,

    Stefan


    Super. Vielen Dank.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Genau. Eventuell auch /smartvisu/widgets. Kommt immer auf die Einstellung des Webservers an.

    Gruss,

    Stefan

    Einen Kommentar schreiben:


  • Mobby2304
    antwortet
    OK. Danke.
    Nur das ich das richtig verstanden habe: Da ich meine Visu mit 10.0.0.10/smartvisu aufrufe ändert sich der Pfad auf:

    Pfad in der Sonos.html von (Aktuell):
    /var/www/smartvisu/widgets/sonos.js

    auf:
    /widgets/sonos.js


    richtig?

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von Mobby2304 Beitrag anzeigen
    PHP-Code:
    http://10.0.0.10/var/www/smartvisu/pages/base/pics/sonos_empty.jpg 
    Da haben wir auch schon den Fehler. Die Pfade in der
    Code:
    sonos.html
    bezieht sich nicht auf Systempfade, sondern auf Pfade innerhalb deiner Webserver-Installation. Sprich, wenn du deine Smartvisu-Seite mit http://1.1.1.1/smartvisu aufrufst, muss der Pfad
    Code:
    /widgets/...
    heißen, die anderen Pfade entsprechend. Der Root-Pfad müsste also
    Code:
    /
    sein.

    Gruss,

    Stefan

    Einen Kommentar schreiben:


  • Mobby2304
    antwortet
    Servus,

    zu 1. und edit edit: Der Pfad von Smartvisu ist bei mir /var/www/smartvisu/temp heißt das, dass ich nicht den Standartpfad benutze?
    zu edit. : Das ist blos ein Auszug, da ich beim ersten mal einen Fehler mit der Groß und Kleinschreibung des Namens hatte.


    Edit: Es sagt, er findet die Dateien nicht. Ich hab den Pfad mal angepasst, indem sie liegen bekomme aber das selbe Ergebniss:

    PHP-Code:
    GET http://10.0.0.10/var/www/smartvisu/widgets/sonos.css
    index.php:260 GET http://10.0.0.10/var/www/smartvisu/widgets/sonos.js
    index.php:269 GET http://10.0.0.10/var/www/smartvisu/pages/base/pics/sonos_empty.jpg 404 (Not Found)
    io_smarthome.py.min.js:3 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.
    get_visuinfo @ io_smarthome.py.min.js:3
    io.socket.onopen @ io_smarthome.py.min.js:4
    base.min.js:22 Uncaught TypeError: Cannot read property '
    attr' of undefined
        at Object.listeners (base.min.js:22)
        at Object.monitor (io_smarthome.py.min.js:7)
        at WebSocket.io.socket.onopen (io_smarthome.py.min.js:5)
    listeners @ base.min.js:22
    monitor @ io_smarthome.py.min.js:7
    io.socket.onopen @ io_smarthome.py.min.js:5
    index.php?page=room_OGFlur:260 GET http://10.0.0.10/var/www/smartvisu/widgets/sonos.js 404 (Not Found)
    index.php?page=room_OGFlur:261 GET http://10.0.0.10/var/www/smartvisu/widgets/sonos.css
    sonos_empty.jpg:1 GET http://10.0.0.10/var/www/smartvisu/pages/base/pics/sonos_empty.jpg 404 (Not Found) 
    Angehängte Dateien
    Zuletzt geändert von Mobby2304; 02.03.2017, 10:38.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Unter der Voraussetzung, das die css-, js- und png-Datei laut Anleitung im richtigen Verzeichnis sind, kannst du mal überprüfen, ob bei der Einstellung "Pagecache off" das Widget richtig angezeigt wird. Wenn ja, lösche mal den Ordnerinhalt in
    Code:
    /var/www/html/smartvisu/temp
    . Lösche danach auch noch den Browsercache. Ich hatte auch das Problem. Am Anfang dachte ich, ich habe da was falsch gemacht mit dem Widget. Sollte es trotzdem noch nicht funktionieren, kannst du auch nochmal den Output des Browser hier posten.

    Edit:

    Achja, dein Item ist viel zu kurz. Du musst das komplette Sonos-Item übergeben.

    Edit Edit:

    Und überprüfe auch, wie in der Anleitung beschrieben, die Pfade im Widget selbst, also in der
    Code:
    sonos.html
    Gruss,

    Stefan
    Zuletzt geändert von pfischi; 02.03.2017, 07:26.

    Einen Kommentar schreiben:


  • Mobby2304
    antwortet
    Sonos.jpeg Schönen Abend zusammen.

    Ich hab da neue Widget am laufen, jedoch habe ich Probleme mit der Darstellung. Nur der Mute Button und die Lautstärkeeinstellung haben eine Funktion. Das Widget an sich sieht etwas verschoben aus. Play, next usw. sind ohne funktion und das leere Bild zeigt er auch nicht an.

    Mein Standardpfad stimmt mit dem in der Doku überein.

    Aufgerufen wird es wie folgt:

    Code:
    {% import "sonos.html" as sonos %}
    
    
    <div class="block">
      <div class="set-2" data-role="collapsible-set" data-theme="c" data-content-theme="a" data-mini="true">
        <div data-role="collapsible" data-collapsed="false" >
          {{ sonos.player('sonos_bad', 'Bad') }}
        </div>
      </div>
    </div>

    Die Sonos-Config habe ich aus der Doku übernommen, nur den Namen durch Bad und die UID ersetzt:

    Code:
    [Bad]
        sonos_uid = rincon_5caafdc03b3201400
    
        [[mute]]
            type = bool
            enforce_updates = True
            visu_acl = rw
            sonos_recv = mute
            sonos_send = mute
    
            [[[group_command]]]
                type = bool
                value = 0


    Das Widget sieht so auf dem Mac, sowie auf dem Iphone aus.

    Hat jemand eine Idee, woran das liegen kann?
    Angehängte Dateien
    Zuletzt geändert von Mobby2304; 02.03.2017, 02:47. Grund: Screenshot vergessen

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von aschwith Beitrag anzeigen

    1) Warum wartest Du auf ein Event und spielst das Snippet nicht nur einmal ab? Alternativ könnte man sich noch ein "loop" item (True/False) vorstellen.
    Ich spiele intern das Snippet nur einmal.Sonos interpretiert das Ende des Stücks aber als Fehler und startet den Stream neu. Für Radiostreams machts ja Sinn, in unserem Fall nicht. Ich schaue mir nochmal an, ob man beim Starten des Streams noch einen Parameter mitgeben kann, dies nicht zu tun.

    Zitat von aschwith Beitrag anzeigen
    2) Ich nutze für die Snippets gerade den neuen Webserver des Brokers. Ist dies eigentlich zwigend oder kann man alternativ auch snippets von anderen Netzlaufwerken abspielen?
    Prinzipiell ist auch ein cifs-gemountetes Laufwerk möglich. Hatte ich auch mal im Broker drin aber dann wieder rausgenommen. Man könnte die Play-Option hier noch etwas erweitern Ich schreibs auf die To-Do-Liste.

    Zitat von aschwith Beitrag anzeigen
    3) Den Play Parameter hatte ich gesehen, allerdings so interpretiert, dass bei unjoin.play == True nur dann ein Titel weiter abgespielt wird, wenn dem join wirklich einer lief. Was ist sonst der Sinn von unjoin.play? Wenn man definitiv nach dem unjoin einen Titel abspielen will, kann man ja den ganz normalen play Parameter verwenden (mit etwas Zeitversatz gesendet). Momentan merke ich mir den alten Zustand aller Lautsprecher kompliziert in einer Logik und stelle den Zustand nach dem unjoin wieder her.
    Nach einem Unjoin mache ich prinzipiell gar nichts und verlasse mich da auf Sonos. Im Normalfall sollten die Lautsprecher ihren letzten Status vor dem Join wiederherstellen. Leider setzen sie den zuvor gespielten Song/Radio nicht fort. Deshalb der Parameter. So kann man es selber steuern. Muss aber natürlich als Default auf 0, sonst kommts zu ungewolllten Verhalten.

    Ich bleib dran. Der Langzeittest läuft. Und Danke für die Bug-Teports, die helfen ungemein.

    Gruss,

    Stefan

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Hallo Stefan,

    danke für die schnelle Antwort. Ist ja besser hier, als jede Sonos-Supporthotline

    GoogleTTS nutze ich nicht. Das Events über einen längeren Zeitraum irgendwann nicht mehr funktionieren, habe ich bei mir auch schon beobachtet. Ich teste morgen mal, ob das Endlosproblem damit zusammenhängt. Noch eine Frage:

    1) Warum wartest Du auf ein Event und spielst das Snippet nicht nur einmal ab? Alternativ könnte man sich noch ein "loop" item (True/False) vorstellen.

    2) Ich nutze für die Snippets gerade den neuen Webserver des Brokers. Ist dies eigentlich zwigend oder kann man alternativ auch snippets von anderen Netzlaufwerken abspielen?

    3) Den Play Parameter hatte ich gesehen, allerdings so interpretiert, dass bei unjoin.play == True nur dann ein Titel weiter abgespielt wird, wenn dem join wirklich einer lief. Was ist sonst der Sinn von unjoin.play? Wenn man definitiv nach dem unjoin einen Titel abspielen will, kann man ja den ganz normalen play Parameter verwenden (mit etwas Zeitversatz gesendet). Momentan merke ich mir den alten Zustand aller Lautsprecher kompliziert in einer Logik und stelle den Zustand nach dem unjoin wieder her.

    Soweit,
    Viele Grüße
    Alex

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von aschwith Beitrag anzeigen
    Hat jemand von Euch die play_snippet Funktion im produktiven Einsatz? Bei mir gibt es da noch diverse Probleme:

    1) Beim Aufruf von play_snippet wird die Sounddatei mehrmals abgespielt. Ca. 4 mal und mindestens 2 Minuten lang.

    2) Das Fortfahren mit Musik nach dem unjoin Kommando wird auch dann gestartet, wenn vorher gar kein Titel lief. Wird hier der korrekte Status aus play und "is not muted" gespeichert und wiederhergestellt? Ich vermute, der Zustand "is muted" wird momentan noch nicht berrücksichtigt. Damit werden aber Titel wiedergegeben, die vor dem Join nicht gerade gespielt wurde.

    Viele Grüße
    Alex
    Nutzt du auch die GoogleTTS Funktionalität? Verhält es sich mit dem Wiederholen genauso? Tatsächlich ist das Verhalten von den Sonos-Lautsprechern bei den Streaming-Dateien (das ist bei der play_snippet und play_tts Funktion so der Fall) extrem nervig. Sonos behandelt dies immer als Radiostream und denkt beim Ende des Streams immer, es sei ein Fehler aufgetreten und lädt die URL immer wieder neu. Dies dem Lautsprecher auszutreiben ist schwierig. Im Moment höre ich auf entsprechende Events und reagiere darauf.
    Was mir bei meiner Installation aufgefallen ist, ist das nach einer Zeit das Eventhandling nicht mehr funktioniert, d.h. ich bekomme keine Events mehr von den Speakern. Danach kann natürlich nicht mehr auf die oben genannten Events reagiert werden. Kannst du mal den Broker neustarten und schauen, ob sich die snippet-Funktion immer noch problematisch verhält? Ich mache gerade einen Langzeittest um das Problem mit den Events einzugrenzen.


    Zum unjoin-Befehl:

    Der hat einen neuen Parameter mitbekommen:

    Code:
    [[unjoin]]        
        type = foo
        enforce_updates = True
        sonos_send = unjoin
        visu_acl = rw
    
        [[[play]]]
            type = bool
            value = 1
    Der Parameter play ist wahrscheinlich schuld. Der ist per default auf 1, d.h. nach einem unjoin spielt die Gruppe los. Ich ändere das noch auf einen default-Wert von 0.


    Gruss,

    Stefan

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Hat jemand von Euch die play_snippet Funktion im produktiven Einsatz? Bei mir gibt es da noch diverse Probleme:

    1) Beim Aufruf von play_snippet wird die Sounddatei mehrmals abgespielt. Ca. 4 mal und mindestens 2 Minuten lang.

    2) Das Fortfahren mit Musik nach dem unjoin Kommando wird auch dann gestartet, wenn vorher gar kein Titel lief. Wird hier der korrekte Status aus play und "is not muted" gespeichert und wiederhergestellt? Ich vermute, der Zustand "is muted" wird momentan noch nicht berrücksichtigt. Damit werden aber Titel wiedergegeben, die vor dem Join nicht gerade gespielt wurde.

    Viele Grüße
    Alex

    Einen Kommentar schreiben:


  • Max2612
    antwortet
    Sonst scheint alles zu laufen. Ich beobachte weiter.
    Danke!!

    Einen Kommentar schreiben:

Lädt...
X