Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

  • manu241
    antwortet
    Moin aschwith


    super besten Dank

    Gruß Manuel

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Moin manu241,

    das Problem ist bei mir auch vor einigen Tagen aufgetaucht. Ich habe auch schon einen Fix, der seit mehreren Tagen im Test ist. Ich schiebe den am WE in den Develop Zweig. Dort müsstest Du ihn Dir dann ziehen.

    Besten Gruß

    Einen Kommentar schreiben:


  • manu241
    antwortet
    Moin moin,

    ich habe heute auch auf die neue Version 1.9.2 (Image von Onkelandy) gewechselt. Allerdings habe ich noch Probleme mit dem Sonos-Plugin.
    Dort bekomme ich folgende Fehlermeldung:

    Code:
    2022-06-03 06:06:19 ERROR lib.item.item Item MySonos.Bad.play_tunein: problem running <bound method Sonos.update_item of <plugins.sonos.Sonos object at 0x657186b8>>: __init__() got an unexpected keyword argument 'account'
    > Traceback (most recent call last):
    > File "/usr/local/smarthome/lib/item/item.py", line 1571, in __update
    > method(self, caller, source, dest)
    > File "/usr/local/smarthome/plugins/sonos/__init__.py", line 2783, in update_item
    > sonos_speaker[uid].play_tunein(item(), start)
    > File "/usr/local/smarthome/plugins/sonos/__init__.py", line 2175, in play_tunein
    > cls.from_music_service(MusicService(service_name=' TuneIn', account=Account()), raw_item))
    > TypeError: __init__() got an unexpected keyword argument 'account'
    Was ist dort falsch gelaufen?

    Gruß und danke Manuel

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Guter Hinweis. Ja, muss dann wohl mit aufgenommen werden. Ich füge das die Tage mit ein. Grüße

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Ich habe ein update gemacht auf SmartHomeNG Version: 1.9.2-master. Danach gibt es bei mir Probleme mit dem Sonos Plugin aufgrund eines nicht installierten Moduls 'appdirs':

    Code:
    ERROR lib.plugin Plugin 'Sonos' error importing Python package: No module named 'appdirs'
    ERROR lib.plugin Plugin 'Sonos' initialization failed, plugin not loaded

    in der 'requirements.txt des Sonos Plugins wird das Modul 'appdirs' NICHT gelistet:
    Code:
    #requests requirement moved to core
    xmltodict>=0.11.0
    tinytag>=0.18.0
    gtts
    #
    # ifaddr is used by soco
    ifaddr

    allerdings in der requirements.txt des SoCo wird es genannt:
    Code:
    requests
    xmltodict
    ifaddr
    appdirs

    Muss das fehlende Modul in die 'requirements.txt des Sonos Plugins nachgetragen werden, oder liegt der Fehler woanders?

    Gruß, Marcus
    Zuletzt geändert von SMarcus; 16.05.2022, 14:52.

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Danke Alex, ja das war auch mein Gedanke das ich das besser mit der 1.8.1 teste. Ich komme allerdings erst in 2 Wochen dazu das System upzudaten, da ich das dann gleich auf ein neues System installiere. Vielleicht ist m4ttb1ss ja schneller mit testen, er scheint das gleiche Setup zu haben.

    Melde mich wenn ich Ergebnisse habe.

    VG

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Ich empfehle Dir, erst Dein smarthomeNG auf Version 1.8.1 hochzuziehen. Hier gab es nochmal deutliche Verbesserungen bei dem automatischen Nachinstallieren von benötigten libs.
    Anschließend separat den Develop Branch der plugins auschecken und nur den gesamten plugin/sonos Ordner in Dein Produktivsystem rüberkopieren.

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    So, jetzt muss ich mich mal wieder als Amateur outen...
    Ich hätte jetzt das Develop Pluginverzeichnis rüberkopiert, aber ich denke da im Delevlop noch mehrere Änderungen sind (Änderung auf Pythonlib gtts) .... sollte ich wahrscheinlich mit 'git checkout develop' arbeiten?

    Bin noch auf SHNG 1.7.1. Werden die fehlenden libs automatisch beim Neustart installiert? Kann ich das 'git checkout develop' auf das Sonos Plugin beschränken?

    Gruß
    Marcus

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Alles klar. So hatte ich es auch verstanden. Dann probiere mal die neue Version des Plugins im Develop aus. Hier werden alle Speaker, die aktuell sop() nicht unterstützen übersprungen. Dabei ist es unerheblich, aus welchem Grund stop() gerade nicht verfügbar ist (TV Mode etc.)

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Wenn Du mehrere Speaker gekoppelt hast, werden die Befehle immer über den Coordinator gesteuert. Wenn also der Coordinator im TV Modus ist, dürfte TTS auch bei den gekoppelten Slaves auch nicht funktionieren, oder?
    Ich versuche mal zu vermeiden das wir aneinander vorbeireden. Hoffe die Infos helfen:

    1 - Sobald Geräte in einer 'TV Gruppe' konfiguriert werden, ist nur die IP der Playbar ansprechbar (search_uids.py). Alle anderen Geräte ('Slaves') in dieser 'TV Gruppe' werden anscheinend über die Playbar direkt angesteuert und sind von aussen generell nicht ansprechbar.

    2 - Wenn diese 'TV Gruppe' im TV Moduls läuft (bei mir mittels optischem toslink input), dann sind andere Geräte ausserhalb dieser 'TV Gruppe' trotzdem TTS fähig. Bei mir sind das meist einzelne Play:1 oder ONE Geräte.

    3 - Die 'current_transport_actions' in den verschiedenen Szenarien habe ich mal tabellarisch gelistet. Insofern kann ich bestätigen, das im aktive TV Modus die jeweilige Gruppe (und nur diese) kein Stop() in den 'current_transport_actions' gelistet hat. Geräte außerhalb der 'TV-Gruppe' können TTS wiedergeben auch wenn die 'TV Gruppe' im TV Modus läuft:
    table.JPG








    Gruß
    Marcus

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    SMarcus , einfacher als den SoCo Befehl zu nutzen, ist es, direkt in SmarthomNG in das Item current_tranport_actions zu schauen. Sehr einfach geht das z.B. über das admin Interface.

    Wenn Du mehrere Speaker gekoppelt hast, werden die Befehle immer über den Coordinator gesteuert. Wenn also der Coordinator im TV Modus ist, dürfte TTS auch bei den gekoppelten Slaves auch nicht funktionieren, oder?

    Ich pushe gleich eine Testversion in das Develop Repository. Damit kannst Du testen, ob der Fehler sauber abgefangen wird. Ich überprüfe dazu, ob sop() aktuell untertützt wird, wenn nicht wird play_tts (oder auch play_snippet) nicht ausgeführt.

    Bitte um Rückmeldung. VG

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Aus meiner Sicht wäre es das primäre Ziel, den Fehler abzufangen. Wenn im TV Modus systembedingt keine TTS Wiedergabe möglich ist (weder durch stop(), noch durch Überlagerung beider Eingänge) dann ist das so. Ich habe damit nun schon seit 3 Jahren leben können, andere die außerhalb des Wohnzimmers keine Sonos Geräte haben werden damit eher ein Problem haben.

    Ich schau welche Optionen 'GetCurrentTransportActions' anbietet.

    Allerdings muß mir kurz jemand sagen wie ich die InstanceID ermitteln kann ... 😕

    Gruß
    Marcus

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    Hallo SMarcus ,

    ich habe Deinen Post bei SoCo gesehen. Wenn sich herausstellt, dass die Exception absichtlich geworfen wird, weil in dem von Euch beschriebenen Zustand der Befehl stop() nicht unterstützt wird, müssen wir uns überlegen, wie das Sollverhalten sein soll.

    Die aktuell verfügbaren TransportActions (bedeutet einfach nur, welche Befehle im aktuellen Zustand unterstützt werden) kannst Du auch in einem Sonos item sehen. Schau mal nach, ob stop() hier in diesem Zustand auftaucht.

    Wir könnten das Problem dann abfangen, in dem wir bei Speakern, die sich aktuell nicht stoppen lassen (oder die sich im TV Modus befinden), das Ausführen von TTS nicht zulassen. Wäre das für Euch ok?

    Einen Kommentar schreiben:


  • aschwith
    antwortet
    stoepf , danke für den sehr guten Hinweis. Habe ich direkt so übernommen, getestet und ins Develop geschoben.

    SMarcus : ok, meine Vermutung ist, dass stop() im TV Modus nicht unterstützt wird. Man kann ja nicht den TV Sound direkt abschalten. Das Problem aber bitte wie gesagt bei SoCo vorstellen und dort beheben lassen.

    Einen Kommentar schreiben:


  • SMarcus
    antwortet
    Hallo aschwith,

    Meinst Du die play_snippet Funktion oder wirklich die play_tts?


    Snippets benutze ich gar nicht, aber die TTS Funktion erhöht den WAF durch verschiedene Ansagen (Kühlschrank zu warm, Waschmaschine ist fertig oder neue Post im Briefkasten).

    Code:
    sh.sonos.kueche.play_tts('Der Kühlschrank ist zu warm. Er hat {0:.0f} Grad Innentemperatur'.format(t_ist))
    Gruß,
    Marcus

    Einen Kommentar schreiben:

Lädt...
X