Hallo zusammen,
sorry für die späte Reaktion - hatte ein sehr großes fhem-Projekt auf shNG zu portieren.
Für mein Sonos-Paar habe ich auch eine Lösung gefunden: Wenn ich die IP-Adressen für BEIDE Lautsprecher in der plugin.yaml angebe, funktioniert es.
speaker_ips:
- xx.yy.zz.2 # Kueche Slave
- xx.yy.zz.12 # Kueche Master
Ferner habe ich festgestellt, wenn ich per tts Sprachdurchsagen während der Radio-Wiedergabe mache, nach Beenden der Sprachdurchsage nur noch der rechte Lautsprecher wieder das Radioprogramm spielt. Ein Verändern der Lautstärke erweckt diesen wieder zum Leben.
Als Work-Around setze ich einfach die alte Lautstärke aus dem item "volume" neu als "volume", d.h. volume vor der tts-Durchsage merken und nach erfolgter Durchsage wieder setzen. Funktioniert damit einwandfrei.
VG
Jörk
Ankündigung
Einklappen
Keine Ankündigung bisher.
Sonos Anbindung
Einklappen
X
-
Hallo Jörk, jksd,
ich habe bei mir zwei Sonos Speaker zu einem Stereopaar gekoppelt. Bei mir funktioniert alles einwandfrei:- Setzen von Play/Pause via Item von Speaker links
- Setzen von Play/Pause via Item von Speaker rechts
- Statusupdate des jeweiligen anderen Speakers
- Setzen von Play/Pause via Taster auf dem Speaker -> der andere Speaker übernimmt. -> beide Items werden aktualisiert
- Setzen des Status via SonosApp -> beide Speaker items werden aktualisiert.
Ich kann also kein Problem feststellen. Eine wichtige Info:
Ich teste bei mir mit der Sonos plugin Version 1.6.5, die ich gleich ins Develop Repo schiebe. Dort hat sich bzgl. Stereopaaren nichts geändert. Hier wurden- Das SoCo Framework auf V 0.28.1 hochgezogen.
- Ein Bug im Plugin gefixt, der Auftritt, wenn einzelne Speaker gerade offline sind.
Viele Grüße
AlexZuletzt geändert von aschwith; 26.10.2022, 20:11.
Einen Kommentar schreiben:
-
Hallo Alex,
danke für dein schnelles Feedback. Nachdem ich für meine Wetterstation gerade erst ein eigenes Plugin schreiben musste, hatte ich gehofft, nicht der erste mit Sonos-Stereopaar zu sein …
@alle: Betreibt wirklich niemand ein Sonos-Stereopaar ?
Viele Grüsse
Jörk
Einen Kommentar schreiben:
-
Hallo jksd,
ich bin mir sicher, dass hier noch was in der Implementierung fehlt. Ich kann es bei mir mangels Stereopaar auch nicht nachstellen.
Weißt Du, wie Stereopaare prinzipiell behandelt werden? Bei Speaker Gruppen ist ja immer einer der Master (==Coordinator) und die anderen die Slaves. Ich weiß nicht, wie das bei Stereopaaren aussieht.
Da der ursprüngliche Plugin Autor hier nicht mehr aktiv ist, wirst Du Dir leider selber helfen müssen. Dazu erstmal das Log Level für das Sonos plugin in der logging.yaml auf Debug Level erhöhen und eine per Sonos App ausgelöste Änderung (z.B. play/pause) im Log nachverfolgen.
Besten Gruß
Alex
Einen Kommentar schreiben:
-
Hallo, brauche Eure Hilfe.
Habe bisher Sonos in FHEM eingebunden gehabt und mittels smartVISU gesteuert. Ich portiere gerade von FHEM nach smarthomeNG und hänge beim Sonos-Plugin an folgendem Problem:
Ich habe Sonos in 3 Räumen verbaut (IPs und IDs neutralisiert):
Code:python3 search_uids.py --------------------------------------------------------- rincon_<id-Buero> ip : x.y.z.4 speaker name : Büro speaker model: Sonos One --------------------------------------------------------- rincon_<id-Gästebad> ip : x.y.z.3 speaker name : Gästebad speaker model: Sonos One --------------------------------------------------------- rincon_<id-Kueche> ip : x.y.z.12 speaker name : Küche speaker model: Sonos Play:3 ---------------------------------------------------------
Was funktioniert ?
- Büro und Gästebad lassen sich über den Item-Baum problemlos steuern. Auch die Bedienung per Sonos-Smartphone-App wird korrekt abgebildet.
D.h.: Play und Stop werden korrekt aktualisiert. Aktivieren von Play setzt hier Stop automatisch zurück und anders herum.
Was funktioniert nicht ?
- Beim Stereopaar der Küche wird der Play/Stop-Status nicht aktualisiert.
- Dabei ist es egal, ob Play/Stop per Item-Baum gesetzt werden oder per Sonos-Smartphone-App.
- Die Funktion selbst ist gegeben, d.h. die Lautsprecher reagieren bei Setzen des Status im Icon-Baum.
- Nur fehlt das Rücksetzen des jeweils anderen Items und die Status-Anpassung bei Änderungen per Sonos-App.
- is_initialized: True (ok)
Versionen:
- smarthomeNG: v1.9.2-master (cc57a0ad6)
- Sonos-Plugin: V1.6.4
- Python: 3.8.10 final
- Linux auf NUC11: Ubuntu 20.04.5 LTS
Code:Konfig des Sonos-Plugins: Sonos: class_name: Sonos class_path: plugins.sonos tts: true local_webservice_path: /tmp
Code:Sonos: Kueche: sonos_uid: rincon_<id-Kueche> is_initialized: type: bool sonos_recv: is_initialized visu_acl: rw play: type: bool sonos_recv: play sonos_send: play visu_acl: rw stop: type: bool sonos_recv: stop sonos_send: stop visu_acl: rw # Gleiche Konfig für die beiden anderen Sonos-Instanzen Gästebad und Büro, bis auf die IDs
Das Plugin Log zeigt (mir) hier keine Unterschiede. Bei Play/Stop am Smartphone sind Stream-Aktualisierungen zu sehen.
Einen Kommentar schreiben:
-
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'
Gruß und danke Manuel
Einen Kommentar schreiben:
-
Guter Hinweis. Ja, muss dann wohl mit aufgenommen werden. Ich füge das die Tage mit ein. Grüße
Einen Kommentar schreiben:
-
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ß, MarcusZuletzt geändert von SMarcus; 16.05.2022, 14:52.
Einen Kommentar schreiben:
-
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
- Likes 1
Einen Kommentar schreiben:
-
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:
-
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:
-
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:
-
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?
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:
Einen Kommentar schreiben: