Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

    Zitat von mwagner Beitrag anzeigen

    Das klingt super!

    Mittlerweile habe ich per sh.py Logic den SoCo separat angesprochen und aktiviere direkt die auf dem Sonos hinterlegten Playlisten. Funktioniert gut, vielleicht ist das auch eine schöne Funktion für den Broker (clear_queue(), add_to_queue(playlist)).

    Ehrlich gesagt, ist das sogar eher die Funktion die ich suche: Bearbeiten von Playlists über die vorhandenen Sonos Apps, danach brauche ich nur die gewünschten Playlists über einen Taster im Raum laden und los gehts. Beispiel: Unterschiedliche Playisten für Männlein und Weiblein für's Bad morgens...

    VG,
    Marcus
    Die Jungs vom SoCo-Team haben tatsächlich die Playlist-Funktionalität start erweitert. Deswegen nehme ich deinen Vorschlag gerne auf und stelle das ganze auf die Sonos-Playlist-Verwaltung um.

    Gruss,

    Stefan
    Sonos

    Kommentar


      Zitat von pfischi Beitrag anzeigen



      Kannst du mal den class_name in der plugin.conf auf "Sonos" (Großbuchstabe am Anfang) setzten.


      Gruss,

      Stefan
      ...Hallo Stefan,

      scheint nun zu klappen, hab nur den Anfangsbuchstaben geändert.
      Wenn das weiter stabil läuft, bist Du unser Februarheld ...... Danke, DANKE
      ....was war ich am verzweifeln.
      Verdammt und es steht sogar noch so in Deinem read.me.
      (nee,nee,nee.......)

      ...nächste mal wird kopiert...
      Sorry!

      ich beobachte es mal und nochmals Danke

      Gruß

      Axl


      kleiner Nachtrag:
      leider zu früh gefreut.....Problem besteht weiterhin.


      Das Ursprungsproblem, das der Broker einen restart braucht, besteht leider auch noch.
      Ich werde es aber mal auf einem frisch installierten System testen.
      Es scheint wohl nur bei längeren spannungslosen Phasen der Sonos Lautsprecher aufzutreten.

      anbei noch das erzeugte Log:
      Code:
       [FONT=Menlo][SIZE=14px]_SmartHome__children[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_SmartHome__event_listeners[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_SmartHome__item_dict[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_SmartHome__items[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_SmartHome__logs[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__class__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__delattr__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__dict__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__doc__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__eq__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__format__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__ge__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__getattribute__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__gt__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__hash__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__init__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__iter__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__le__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__lt__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__module__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__ne__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__new__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__reduce__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__reduce_ex__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__repr__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__setattr__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__sizeof__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__str__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__subclasshook__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]__weakref__[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_cache_dir[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_elev[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_env_dir[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_env_logic_conf[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_excepthook[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_garbage_collection[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_items_dir[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_lat[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_log_buffer[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_logfile[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_logic_conf[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]2016-02-03 21:26:41,150 DEBUG    Main         knx: 1.1.106 set 1/3/98 to 01 -- __init__.py:parse_telegram:181[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_logic_dir[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_logics[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_lon[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_maintenance[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_object_refcount[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_plugin_conf[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_plugins[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_starttime[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_tzinfo[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]_utctz[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]add_event_listener[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]add_item[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]add_log[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]alive[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]aussen[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]base_dir[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]carport[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]cli[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]connections[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]denon[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]dreambox[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]eg[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]ema[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]env[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]example[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]find_children[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]find_items[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]fritzbox[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]funk[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]garage[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]heizung[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]irtrans_senden[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]item_count[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]jalousie[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]knx[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]log[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]mail[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]match_items[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]moon[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]myradio[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]netzwerk[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]now[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]object_refcount[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]og[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]ow[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]pushbullet[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]reload_logics[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]return_event_listeners[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]return_item[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]return_items[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]return_logic[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]return_logics[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]return_logs[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]return_plugins[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]rrd[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]runtime[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]scheduler[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]sonos[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]sonos_thread_lock[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]sql[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]start[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]steuer[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]stop[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]string2bool[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]sun[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]tools[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]trigger[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]tz[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]tzinfo[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]ug[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]utcinfo[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]utcnow[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]uzsu[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]version[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]visu[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]wp[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]ws[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]2016-02-03 21:26:41,255 DEBUG    sonos_bad_an On_Off triggered by sonos.bad.on_off -- sonos_pending_bad.py:<module>:51[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]Exception in thread Thread-8:[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]Traceback (most recent call last):[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]  File "/usr/lib/python3.2/threading.py", line 740, in _bootstrap_inner[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]    self.run()[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]  File "/usr/lib/python3.2/threading.py", line 693, in run[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]    self._target(*self._args, **self._kwargs)[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]  File "/usr/smarthome/logics/sonos_pending_bad.py", line 25, in discover[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]    getattr(sh, plugin_name).discover()[/SIZE][/FONT]
        [FONT=Menlo][SIZE=14px]AttributeError: 'Item' object has no attribute 'discover'[/SIZE][/FONT]
      Zuletzt geändert von blutwurst; 03.02.2016, 21:30.

      Kommentar


        @blutwurst

        würde es dir etwas ausmachen mir deinen kompletten smarthome Ordner zukommen zu lassen (gerne auch als PM). Dann kopier ich den mal in meine Entwicklungsumgebung, dann finde ich den Fehler schneller.

        Gruss,
        Stefan
        Sonos

        Kommentar


          Hi Stefan,

          bin seit dem Wochenende auch dabei, mir deine Sonos Integration anzusehen - super Sache.

          Bei play_tts ist mir allerdings wieder das capcha von Google dazwischen gekommen - kein Feedback von Google Seite und damit kein mp3 file. Die Anpassung mit dem User-Agent hat bei mir nicht gewirkt, Google war wohl der Meinung, ich wär ein Robot...

          Hatte ein wenig mit Alternativen experimentiert und bin auf gTTS (https://pypi.python.org/pypi/gTTS) gestossen und das Paket dann installiert. Habe mal quick and dirty in utils.py die Erzeugung des files geändert:

          Code:
          from gtts import gTTS
          
          ...
          
              try:
                  tts = gTTS(text=(tts_string), lang=tts_language)
                  tts.save(abs_fname)
              except Exception as e:
                  raise ("Couldn't obtain TTS from Google.\nError: {}".format(e.errno))
          Damit funktionierte die Erzeugung des mp3's zumindest ohne Probleme. Mit gTTS sind auch Texte mit mehr als 100 Zeichen möglich.

          Gruss
          Holger

          Kommentar


            Hallo liebes Forum,

            die Sonos Anbindung läuft bei mir mit Smarhome.py und SmartVISU super.
            Lediglich das Album Cover will nicht.
            Ich habe alles installiert und konfiguriert wie beschrieben (kann jeder sagen )
            Das SmartVISU Widget will aber irgendwie das Album nicht auflösen.

            Diese Zeile im sonos.html
            {{ sonos.cover(id~'cover', gad_cover) }}
            wird bei mir in ein broken Image mit der Adresse "http://<IP>/smartVISU/SONOS_Testboard.track_album_art" aufgelöst.

            Wenn ich gad_cover im sonos.html testweise per {{ basic.value(id~'test',gad_cover) }} ausgebe, bekomme ich die richtige Cover URL.

            Hat jemand eine Ahnung woran das liegen kann?

            Vielen lieben Dank,
            Thomas

            Kommentar


              Zitat von DerTomsn Beitrag anzeigen
              Hallo liebes Forum,

              die Sonos Anbindung läuft bei mir mit Smarhome.py und SmartVISU super.
              Lediglich das Album Cover will nicht.
              Ich habe alles installiert und konfiguriert wie beschrieben (kann jeder sagen )
              Das SmartVISU Widget will aber irgendwie das Album nicht auflösen.

              Diese Zeile im sonos.html
              {{ sonos.cover(id~'cover', gad_cover) }}
              wird bei mir in ein broken Image mit der Adresse "http://<IP>/smartVISU/SONOS_Testboard.track_album_art" aufgelöst.

              Wenn ich gad_cover im sonos.html testweise per {{ basic.value(id~'test',gad_cover) }} ausgebe, bekomme ich die richtige Cover URL.

              Hat jemand eine Ahnung woran das liegen kann?

              Vielen lieben Dank,
              Thomas
              Leider (noch) nicht so wirklich. Am Wochende hab ich das neue Release fertig, dann schau ich mir mal das Widget an. Bisher hatte ich das private noch nicht im Einsatz. Falls sich hier aus dem Forum jemand berufen fühlt, beim Widget zu helfen, dann immer her damit

              Gruss,

              Stefan
              Sonos

              Kommentar


                Hallo zusammen,
                ich habe heute mit der Sonoseinbindung weitergemacht. Play, Stopp und Mute funktioniert schon mal. Bei play_snippet verstehe ich die Syntax nicht wirklich. Ich bekomme mit sonos_cmd und track_url leider nur immer einen leeren Eintrag.

                Hat jemand ein Beispiel aus der Praxis mit play_snippet für mich?

                Dankeschön!

                Grüße
                Dieter
                Viele Grüße
                Dieter

                Kommentar


                  Astrafahrer Ein Beispiel für play_snippet ist in der Doku: https://github.com/pfischi/shSonos#p_snippet. Den Zusammenhang mit sonos_cmd bzw. track_url verstehe ich leider nicht.
                  pfischi Hast du eine Idee, was mein Problem beim Cover auslösen könnte?

                  Danke!
                  Grüße,
                  Thomas

                  Kommentar


                    Zitat von Astrafahrer Beitrag anzeigen
                    Hallo zusammen,
                    ich habe heute mit der Sonoseinbindung weitergemacht. Play, Stopp und Mute funktioniert schon mal. Bei play_snippet verstehe ich die Syntax nicht wirklich. Ich bekomme mit sonos_cmd und track_url leider nur immer einen leeren Eintrag.

                    Hat jemand ein Beispiel aus der Praxis mit play_snippet für mich?

                    Dankeschön!

                    Grüße
                    Dieter
                    Also wenn du play_snippet per sonos_cmd aufrufst, dann kannst du eine direkte URL einfügen und abspielen.

                    1. direkt als Links aus dem Netz oder von einem deiner Server (z.B. als vordefinierte Ansage. Beispiel: http://192.168.178.2/snippets/Warnung.mp3)
                    2. als Sonos-spezifischer Link. Den kann man nur bekommen, wenn man einen entsprechenden Titel sich normal anhört (z.B. von Deezer) und sich den entsprechenden Link aus dem Attribute "track_url" notiert (z.B. x-sonos-spotify:spotify%3atrack%3a3xCk8npVehdV55KuPdjrmZ?s id=9&flags=3

                    "play_snippet" und "play_tts" setzen nach Abspielen des Samples die vorhergespielte Playlist / Musik an der Stelle fort, wo sie unterbrochen wurde. "play_uri" (von den Parameter identisch zu "play_snippet", tut das nicht.

                    Grüße,

                    Stefan

                    Sonos

                    Kommentar


                      In dem dev-branch des Brokers gibt es wieder ein relativ großes Update des Brokers. Wie immer bleibt es ca. 3-4 Wochen im Developer-Zweig, danach gibt es ein Release.

                      Hier kurz die Änderungen neben zahlreichen Bugfixes:
                      • GoogleTTS neu implementiert, funktioniert nun zuverlässig ohne nervige Captchas
                      • nur noch der "locale"-Mode wird unterstützt, d.h. es muss ein entsprechender Pfad für den Broker vorhanden sein, wo dieser die lokal gespeicherten mp3 abruft (siehe Doku)
                      • Playlisten wurden nun komplett auf die sogenannten "Sonos-Playlists" umgestellt
                      • neues Sonos_item-Attribute "sonos_playlists", damit erhält man alle Playlisten durch ',' getrennt (diese Listen muss man noch auf einem entsprechenden Sonos-Client, wie z.B. iPad erstellen, hier überlege ich mir noch was)
                      • neue Funktion "load_sonos_playlist" zum Laden einer Playlist hinzugefügt (siehe Doku zur Implementation)
                      • die alten Aufrufe "set_playlist" und "get_playlist" wurden entfernt

                      Ich habe die entsprechenden Beispiele der Items bereinigt und ergänzt. Bei Fragen zur Implementation stehe ich gerne mit Rat und Tat zur Seite.


                      Sonos Broker v0.8b
                      sh-Plugin v1.8b


                      Grüsse,

                      Stefan
                      Zuletzt geändert von pfischi; 06.03.2016, 16:30.
                      Sonos

                      Kommentar


                        Hallo Stefan!

                        Hast du dir schon Gedanken bzgl. Port zum "neuen" Callidomus gemacht?
                        Ich bin gerade hin und her gerissen, ob ich auf Callidomus oder doch gleich komplett auf OpenHAB wechsel.

                        Grüße
                        Thorsten

                        Kommentar


                          Ich bin in Kontakt mit Marcus. Nach der L+B weiß ich auch mehr. Prinzipiell kann das Grundgerüst so bleiben, der Broker ist ja Plattform unabhängig. Jedoch weiß ich nicht, wie weit der Broker als eigener Daemon auf dem gleichen System laufen kann. Jedenfalls ist eine Umsetzung fest geplant. Im schlimmsten Fall kann der Broker auf einem Raspi laufen.

                          Grüsse,

                          Stefan
                          Zuletzt geändert von pfischi; 11.03.2016, 11:29.
                          Sonos

                          Kommentar


                            Zitat von RoyalTS Beitrag anzeigen


                            Ich bin gerade hin und her gerissen, ob ich auf Callidomus oder doch gleich komplett auf OpenHAB wechsel.

                            Grüße
                            Thorsten
                            Hallo,

                            Stehe auch grade vor dieser Qual der Wahl.....eigentlich mag ich ja mein Sh.py.
                            So wie ich das sehe, wird es woh openHAB werden.
                            Aber wenn ich sehe, was openHAB alles schon mitbringt..... hätte ich wohl früher etwas mehr Schlaf haben können.

                            mhh, mal sehen, wo die Reise hingeht.
                            Daher hab ich mein kleines "sonos discover Problemchen" momentan mal etwas weiter hinten angesiedelt....


                            Gruß

                            AXL

                            Kommentar


                              Ist schon wirklich verlockend...
                              Den Raspberry behalten, Sonos, Logitech Harmoney, etc. sind bei openHAB mittlerweile auch dabei.

                              Bei Callidomus kommt halt auch noch die Anschaffung neuer Hardware dazu. Nochmal 300 Euro +/- für einen NUC o.ä.

                              Haaach....

                              Kommentar


                                Kleines Beta-Release-Update (v0.8b1):

                                - kleinere Updates
                                - Deezer-Titel werden jetzt korrekt angezeigt (da hatte Sonos was geändert)
                                - Sonos-Kommandozeilen-Tool kann jetzt mit Parametern gestartet werden ("sonos_cmd -h" für Hilfe)

                                HIER gibts die neue Version.


                                Grüsse,

                                Stefan
                                Sonos

                                Kommentar

                                Lädt...
                                X