Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

  • Msinn
    antwortet
    Hi Stefan,

    ich hab' noch ein Finding. Ich habe eine Radio Station gefunden bei der in der Sonos Software Cover-Art angezeigt wird. In smarthome.py kommt die Url dazu allerdings nicht in track_album_art an. Der Sender ist alster radio 106.8. Bei dem Sender werden auch die anderen Daten (radio_station, etc.) nicht gepflegt, obwohl die Sonos Software Infos anzeigt (siehe Bild).
    Angehängte Dateien

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Hi Stefan,

    ich habe nun erstmal auf 0.52 upgedated.

    Für ein Update auf 0.6b0 ist mir leider noch nicht alles klar: Im develop ist das Archiv unter dist noch 0.5.2 und welche Dateien ich im einzelnen austauschen muss, habe ich noch nicht durchschaut.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Danke für die Logs. Ich schaue sie mir im Laufe der Woche an. Im Moment bin ich ein wenig beruflich eingebunden.

    Edit: Achja, bitte update mal auf die Version 0.5.2. (oder am besten du klonst dir den dev-Zweig [aktuell 0.6b0). Ich hatte da Veränderungen an der Event-Subscription-Methode vorgenommen. Damit sollte auch nach längerer Laufzeit des Brokers die Metadaten der Tracks aktualisiert werden. Wenn du damit nochmal ein Log erstellen würdest wäre ich dir dankbar.

    Edit2: Und dickes Danke an dein Radio-Station-Widget. Intresse besteht auf alle Fälle :-)

    Edit3: Wegen den Radio-Informationen: Eigentlich steht im Artist und im Track-Title deine Info drin. Manchmal kann es sein, das die Radiostationen nicht immer konform die Metadaten übertragen. Nenn mir einfach die Stationen wo es nicht klappt, dann baue ich eine entsprechende Logik ein. Wenn du Python und ein wenig Regex kannst, kannst du dir diese Logik unter radio_parser.py selber bauen. Vielleicht kann ich die Info auch "raw" liefern. das schaue ich mir mal an.

    Grüsse,

    Stefan

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Hat jemand Interesse an Radio-Stationstasten für Sonos?

    Hi,

    ich habe mir Stationstasten für TuneIn Radiostationen gebaut (siehe 1. Bild).

    Die Stationen werden durch Klick auf die numerierten Knöpfe aufgerufen. Neue Sender werden über eine Sonos Software (PC, Tablett, Smartphone) ausgewählt. Die spielende Radiostation wird dann durch drücken auf den Speichern-Knopf unter den Stationstasten (2. Bild) und anschließendes drücken der gewünschten Stationstaste abgepeichert.

    Die Lösung besteht aus einer Logik und einer Reihe von items.

    Falls Interesse besteht, würde ich die Lösung so verallgemeinern, dass sie nicht nur auf mein Umfeld passt und möglichst leicht adaptiert werden kann.
    Angehängte Dateien

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Zitat von pfischi Beitrag anzeigen
    Versuche ich mal bitte die Werte auf "100%" zu setzen.
    100% funktioniert auch.

    Wie gesagt, html ist nicht so meins... Ich hatte die 145 nur aus der Größe der TuneIn Radiologos abgelesen.


    Edit:
    Folgende Einschränkung: Wenn die Interpreten-/Titelanzeige über dem Cover aus dem Rahmen läuft (das kommt bei einer Reihe von Radiostationen vor, die die Metadaten etwas seltsam liefern: R.SH liefert z.B. die URL nochmal im Track-Title), wird bei 100% auch das Cover wieder übergroß.

    Hierfür wäre es hilfreich für mich die Widget Informationen selber zusammenbauen zu können. Dafür fehlt mir allerdings eine Info. Die Sonos Programme auf PC, Tablet oder Smartphone liefern mir zur spielenden Station:
    - Sender (radio_station)
    - Sie hören (radio_show)
    - Informationen (?, hier werden häufig der Interpret und der Titel übertragen)

    Wie kommen ich an Infromationen heran?

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Hi Stefan,

    ich habe heute wieder ein aussergewöhnliches Verhalten mit dem Broker gehabt.

    Ich konnte noch aus smarthome.py über play_uri TuneIn Radios aufrufen. Allerdings wurden die Items von Seite des Brokers nicht mehr aktualisert.

    Wenn ich mit einer Sonos Software ein Album startete, sah ich keine Veränderungen mehr in der Visu. Daraufhin habe ich getestet, ob ich mit sonos_cmd aktuelle Werte sehe. Auch dort gab es keine Aktualisierung.

    Darauf habe ich den broker beendet (sonos_broker -s) und neu gestartet. Danach lief alles wieder normal.

    Beim Neustart hat der Broker das Logfile rotiert. Das abgeschlossene Logfile füge ich bei.

    Zusatzinfe: Zum Zeitpunkt des Neustarts spielte aus meiner Musiksammlung ein Stück von Billy Joel und nicht wie angezeigt der Radiostream Dance-1.
    Angehängte Dateien

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Danke fürs Debuggen. Ich werde das beim nächsten Release mit einbauen. Versuche ich mal bitte die Werte auf "100%" zu setzen. Würde mir besser gefallen als absolute Werte. Eventuell wird damit das Problem auch gelöst.

    Grüße,

    Stefan

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Cover Problem gelöst

    Hi,

    nachdem ich mich ein wenig durch das Widget gegraben habe (html ist bisher nicht so auf meinem Speiseplan), habe ich die Stelle gefunden an der ich die Cover 'einsperren' kann.

    Dazu muss sonos.html modifiziert werden. Am Ende steht die Erweiterung zur Anzeige von Cover-Art:

    Code:
    /**
    * Displays the cover-art
    *
    * @param unique id for this widget
    * @param the path/url to the image
    *
    * @author Roland Unterholzer
    */
    {% macro cover(id, src) %}
    
        <img id="{{ uid(page, id) }}" data-widget="sonos.cover" data-item="{{ src }}" src="{{ src|default('pages/base/pics/trans.png') }}" />
    
    {% endmacro %}
    Daa img-Tag muss um width="145" height="145" erweitert werden:

    Code:
    <img id="{{ uid(page, id) }}" data-widget="sonos.cover" data-item="{{ src }}" src="{{ src|default('pages/base/pics/trans.png') }}" width="145" height="145" />
    Dann werden Cover mit max. 145*145 Pixeln dargestellt und nicht in ihrer Originalgröße.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Hi,

    hat niemand eine Idee wie ich das Widet dazu überrede die Cover nur in der vom Widget vorgesehenen Größe darzustellen?

    Wenn in meinen Media Dateien das Cover größer ist als normal, breitet sich das Cover auch mal über die ganze Visu aus.

    Im Post 300 https://knx-user-forum.de/459867-post300.html habe ich ein Bild zur Veranschaulichung angehängt.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Hi Stephan,

    ich habe das merkwürdige Verhalten mitgeschnitten. Um ca. 02:20 heute Nacht spielte der Sonos Connect noch die Radion Station ab.

    Heute vormittag als ich wieder checkte, spielte er nicht mehr. Im SmartVISU Widget wurde nich die Radio Station und das 'Cover' angezeigt.

    Ich habe daraufhin folgendes mit sonos_cmd gecheckt:

    Code:
    smarthome@smarthome:~$ date
    Sa 14. Feb 12:00:54 CET 2015
    smarthome@smarthome:~$ sonos_cmd
    Connecting to Sonos broker ... done!
    
    Welcome to Sonos Broker console!
    =>> update
    =>> list
    
    speaker(s):
    -----------
    (1)        rincon_b8e93792d35401400    [10.0.0.188|B&O Zuspieler|Sonos CONNECT]
    
    
    =>> speaker 1
    
    rincon_b8e93792d35401400 =>> radio_station
    radio_station: Smooth Uptempo on JAZZRADIO.com
    
    rincon_b8e93792d35401400 =>> play get
    play: 0
    
    rincon_b8e93792d35401400 =>> play set
    Play (0|1)                 [0]:1
    play: 1
    
    rincon_b8e93792d35401400 =>> play get
    play: 1
    
    rincon_b8e93792d35401400 =>> play get
    play: 0
    
    rincon_b8e93792d35401400 =>> exit
    =>> exit
    Stopping udp listener ... done!smarthome@smarthome:~$ 
    smarthome@smarthome:~$ date
    Sa 14. Feb 12:02:55 CET 2015
    smarthome@smarthome:~$
    Zwischen den beiden play gets nach dem Play set liegen nur einige Sekunden und keine anderen Aktivitäten.

    Das Log (startend heute Nacht) habe ich angehängt.
    Angehängte Dateien

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Hi Stefan,

    ich wollte nur mal eine Zwischenmeldung geben:

    Ich habe das Verhalten bisher nicht vollständig reproduzieren können.

    Wenn ich in sonso_cmd statt play set 1, play_url und die uri der Radio Station angab begann sie zu spielen.

    Allerdings ist mir schleierhaft, warum Sonos überhaupt aufhörte zu spielen und dabei anscheinend nicht auf Pause ging, sondern auch vergaß, dass er eigentlich eine Radiostation spielte.

    Ich beobachte mal weiter...

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Mach ich. Kann nur etwas dauern, da das Problem max. 1 mal am Tag auftritt.

    Mir ist noch was zu den Radio Streams aufgefallen:

    Ich hatte einen alten Post gefunden, in dem Du empfohlen hattest die URIs mittels CLI auszulesen. sonos.play_uri ist aber immer leer. Und wenn ich sonos.track_uri verwende und damit anschließend sonos.play_uri setze, spielt zwar der richtige Radiosender, allerdings wird der Name der Radiostation und das Icon (Cover) nicht angezeigt. Als Trackname wird nur der URI angezeigt. Das passiert übrigens auch auf der Sonos Applikation (Mac).

    Hast Du noch einen Trisck für mich, wie ich die Radio Favoriten richtig anwählen kann?
    Hallo,

    play_uri gibt keinen Wert zurück, sondern ist tatsächlich nur zum Abspielen eines Tracks / URL vorgesehen.
    Das Problem mit den Cover / Track-Namen ist ein bekanntes Problem. Leider kann ich da nur auf die SoCo-Entwickler warten, diese kennen den Bug. Es scheint so, das sich Sonos nicht ganz and die DIDL - Norm (Digital Item Declaration Language) hält. Dies führt zu dem Probelm mit der Anzeige des Covers und des Namens. Leider werden dadurch auch die Anzeigen auf den anderen Clients (MAC, iPad etc) beeinflusst.
    Ich stehe aber mit den Entwicklern in Verbindung. Sollte es eine Lösung geben, baue ich die umgehend ein.

    An dieser Stelle auch Dir der Dank für das Testen.

    Grüße,

    Stefan

    Edit: unter diesem Link findest du auch die passende Diskussion / Entwicklungsstand für diese Problem.

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Mach ich. Kann nur etwas dauern, da das Problem max. 1 mal am Tag auftritt.

    Mir ist noch was zu den Radio Streams aufgefallen:

    Ich hatte einen alten Post gefunden, in dem Du empfohlen hattest die URIs mittels CLI auszulesen. sonos.play_uri ist aber immer leer. Und wenn ich sonos.track_uri verwende und damit anschließend sonos.play_uri setze, spielt zwar der richtige Radiosender, allerdings wird der Name der Radiostation und das Icon (Cover) nicht angezeigt. Als Trackname wird nur der URI angezeigt. Das passiert übrigens auch auf der Sonos Applikation (Mac).

    Hast Du noch einen Trisck für mich, wie ich die Radio Favoriten richtig anwählen kann?

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von Msinn Beitrag anzeigen
    Hi Stefan,

    ich hab' da noch was gefunden:

    Ich lasse meinen Sonos Connect auch nach der Nutzung (TuneIn Radio) auf Play. Allerdings schaltet er sich dann irgendwann (nachts) aus. Ich bekomme ihn dann aus der Smartvisu nicht wieder gestartet. Mit der Sonos Software auf dem iPad oder auf dem Mac lässt er sich wieder starten.

    Nun habe ich nachden der Sonos Connect sich abgestellt hatte, mal mit sonos_cmd draufgeschaut:
    - sonos_cmd gestartet
    - update Befehl ausgeführt
    - list Befehl ausgeführt, zeigt: (1) rincon_b8e93792d35401400 [10.0.0.188|B&O Zuspieler|Sonos CONNECT]
    - speaker 1 eingegeben, zeigt: rincon_b8e93792d35401400 =>>
    - play get eingegeben, zeigt play: 0
    - play set eingegeben, zeigt: Play (0|1) [0]:
    - 1 eingegeben, danach folgt ein Traceback:

    Code:
    Traceback (most recent call last):
      File "/usr/local/bin/sonos_cmd", line 872, in send
        .format(code=response.status_code, message=response_text))
    Exception: Invalid status response '400'!
    Server message: 
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/local/bin/sonos_cmd", line 1362, in <module>
        broker_cmd.cmdloop()
      File "/usr/lib/python3.2/cmd.py", line 138, in cmdloop
        stop = self.onecmd(line)
      File "/usr/lib/python3.2/cmd.py", line 217, in onecmd
        return func(arg)
      File "/usr/local/bin/sonos_cmd", line 179, in do_speaker
        speaker.cmdloop()
      File "/usr/lib/python3.2/cmd.py", line 138, in cmdloop
        stop = self.onecmd(line)
      File "/usr/lib/python3.2/cmd.py", line 217, in onecmd
        return func(arg)
      File "/usr/local/bin/sonos_cmd", line 398, in do_play
        self.commands.set_play(self.uid, play)
      File "/usr/local/bin/sonos_cmd", line 1038, in set_play
        'play': play,
      File "/usr/local/bin/sonos_cmd", line 873, in send
        except ConnectionError:
    NameError: global name 'ConnectionError' is not defined
    Danke für deinen Hinweis. Kannst du versuchen, diesen Zustand nochmal zu reproduzieren? Bitte trage mal in der sonos_broker.cfg den debug-Modus und einen entsprechenden Dateipfad um Loggen ein. An dem Log wäre ich dann sehr interessiert. Die Fehlermeldung vom cmd-Client ist an sich nicht weiter tragisch (noch ein kleiner copy-paste-Fehler), jedoch als solches aufschlussreich, da anscheinend der Server-Thread vom Broker nicht mehr richtig läuft. Deswegen wäre das Debug-Log sehr hilfreich.

    Schon mal besten Dank im Voraus,

    Stefan

    Einen Kommentar schreiben:


  • Msinn
    antwortet
    Sonos lässt sich nicht mit Play starten

    Hi Stefan,

    ich hab' da noch was gefunden:

    Ich lasse meinen Sonos Connect auch nach der Nutzung (TuneIn Radio) auf Play. Allerdings schaltet er sich dann irgendwann (nachts) aus. Ich bekomme ihn dann aus der Smartvisu nicht wieder gestartet. Mit der Sonos Software auf dem iPad oder auf dem Mac lässt er sich wieder starten.

    Nun habe ich nachden der Sonos Connect sich abgestellt hatte, mal mit sonos_cmd draufgeschaut:
    - sonos_cmd gestartet
    - update Befehl ausgeführt
    - list Befehl ausgeführt, zeigt: (1) rincon_b8e93792d35401400 [10.0.0.188|B&O Zuspieler|Sonos CONNECT]
    - speaker 1 eingegeben, zeigt: rincon_b8e93792d35401400 =>>
    - play get eingegeben, zeigt play: 0
    - play set eingegeben, zeigt: Play (0|1) [0]:
    - 1 eingegeben, danach folgt ein Traceback:

    Code:
    Traceback (most recent call last):
      File "/usr/local/bin/sonos_cmd", line 872, in send
        .format(code=response.status_code, message=response_text))
    Exception: Invalid status response '400'!
    Server message: 
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "/usr/local/bin/sonos_cmd", line 1362, in <module>
        broker_cmd.cmdloop()
      File "/usr/lib/python3.2/cmd.py", line 138, in cmdloop
        stop = self.onecmd(line)
      File "/usr/lib/python3.2/cmd.py", line 217, in onecmd
        return func(arg)
      File "/usr/local/bin/sonos_cmd", line 179, in do_speaker
        speaker.cmdloop()
      File "/usr/lib/python3.2/cmd.py", line 138, in cmdloop
        stop = self.onecmd(line)
      File "/usr/lib/python3.2/cmd.py", line 217, in onecmd
        return func(arg)
      File "/usr/local/bin/sonos_cmd", line 398, in do_play
        self.commands.set_play(self.uid, play)
      File "/usr/local/bin/sonos_cmd", line 1038, in set_play
        'play': play,
      File "/usr/local/bin/sonos_cmd", line 873, in send
        except ConnectionError:
    NameError: global name 'ConnectionError' is not defined

    Einen Kommentar schreiben:

Lädt...
X