Kurzes Statusupdate, mein VDSL50 ist geschaltet, ich werde heute auch anfangen mit dem programmieren.
Grüsse, Stefan
Ankündigung
Einklappen
Keine Ankündigung bisher.
Sonos Anbindung
Einklappen
X
-
Ich kann zumindest bestätigen, dass es Stefan gelungen ist, im SoCo für einen connect:amp, der ja per se stereo ist, eine Balanceregelung zu implementieren. Von daher dürfte das wohl über kurz oder lang auch bei zu Stereo gruppierten Monolautsprechern und letztlich auch im plugin funktionieren.
Ben
Einen Kommentar schreiben:
-
Hi Bear80,
ich habe zwar keine Speaker als Stereopaar gekoppelt, aber die gleichen Probleme mit Gruppen.
Und leider kann ich den Broker seit den letzten Sonos-Updates irgendwie gar nicht mehr nutzen.
Hoffe gerade auf pfischi, dass er Zeit findet, die Updates alle mit ins Projekt zu nehmen.
Daumen drücken und warten
Einen Kommentar schreiben:
-
Hallo,
erstmal GROSSES LOB für dies grandiose Plugin! So nach und nach wächst mein Smarthome dank smarthome.py perfekt zusammen. Wahrscheinlich besser, als es manche Kauflösung könnte. Seid einer Woche klappt auch die Sonos-Integration und vier meiner sechs Player lassen sich einwandfrei steuern.
Allerdings habe ich im Bad zwei Play:1 als Stereopaar gekoppelt. Diese tauchen in der Speakerliste des Sonos Brokers als ein Player mit der ID des linken Play:1 auf. Leider bekommt der Broker weder Statusupdates von diesem Paar, noch lassen sich Befehle absetzen. Sobald ich das Stereopaar trenne, funktioniert alles einwandfrei.
Habe dann folgendes probiert:
1. Start Broker
2. Trennung des Stereopaars
3. Verbinden des Stereopaars
4. Verbindung über Broker funktioniert
... ca. 2-3 Stunden warten (oder Broker neu starten)
5. Verbindung über Broker zum Stereopaar funktioniert nicht mehr
Hat irgendwer eine Idee oder ist das Problem bekannt?
Danke vorab für die Unterstützung!
Einen Kommentar schreiben:
-
Super! Danke für dein Status-Update. Dann bin ich mal brennend gespannt, was es dann neues gibt
Einen Kommentar schreiben:
-
Zitat von RoyalTS Beitrag anzeigenpfischi Umzug gut überstanden? ;-)
Danke für die Geduld,
Stefan
Einen Kommentar schreiben:
-
Danke Stefan für dein Feedback.
Mit dem Gruppen speichern käme ein nettes Feature dazu. Allerdings kann ich mir noch nicht ganz vorstellen, wie das dann bei "play_snippet" mit dem Status aller einzelner Lautsprecher funktionieren kann. Die Gruppierungen, bzw. die Musik, die Abspielposition, Lautstärken, etc. können ja jedes mal ganz anders sein.
Und wenn man dann zum "play_snippet" den Gesamtstatus speichert, auf einer neuen Gruppe die Wiedergabe startet und im Anschluss alles wieder zum Alten versetzt, dann wäre es schön, wenn die nicht integrierten Lautsprecher davon auch nichts mitbekommen bzw. auch die Nutzer.
Ansonsten könnte dann meine passende Logik wie folgt aussehen, wenn ich deinen Vorschlag aufnehmen:
tuergong.py
Code:from time import sleep sleep(0.2) if sh.EG.Szenen.Klingel() : #Den Status des Sonos-Systems speichern (Playlists, Play-Status, Position, Gruppen, etc.) #bzw. nur den Status der gewünschten Lautsprecher und bei Bedarf der gruppenzugehörigen Lautsprecher sh.sonos.save_status([sh.sonos.Kueche, sh.sonos.GaesteWC, sh.sonos.Lounge, sh.sonos.Esszimmer, sh.sonos.Bad, sh.sonos.Schlafzimmer, sh.sonos.Kinderbad, sh.sonos.Buero]) #Klingel-Lautsprecher-Pause sh.sonos.Kueche.pause() sh.sonos.GaesteWC.pause() sh.sonos.Lounge.pause() sh.sonos.Esszimmer.pause() sh.sonos.Bad.pause() sh.sonos.Schlafzimmer.pause() sh.sonos.Kinderbad.pause() sh.sonos.Buero.pause() #Unjoin alle Klingel-Lautsprecher sh.sonos.Kueche.unjoin() sh.sonos.GaesteWC.unjoin() sh.sonos.Lounge.unjoin() sh.sonos.Esszimmer.unjoin() sh.sonos.Bad.unjoin() sh.sonos.Schlafzimmer.unjoin() sh.sonos.Kinderbad.unjoin() sh.sonos.Buero.unjoin() #Klingel-Join aller Klingel-Lautsprecher sh.sonos.GaesteWC.join('rincon_000e58d290a001400') #Küche sh.sonos.Lounge.join('rincon_000e58d290a001400') #Küche sh.sonos.Esszimmer.join('rincon_000e58d290a001400') #Küche sh.sonos.Bad.join('rincon_000e58d290a001400') #Küche sh.sonos.Schlafzimmer.join('rincon_000e58d290a001400') #Küche sh.sonos.Kinderbad.join('rincon_000e58d290a001400') #Küche sh.sonos.Buero.join('rincon_000e58d290a001400') #Küche #Klingeln lassen sh.sonos.Kueche.play_snippet.group_command(1) sh.sonos.Kueche.play_snippet.volume(20) sh.sonos.Kueche.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3") #Zustand vor dem Klingel wiederherstellen sh.sonos.reload_status([sh.sonos.Kueche, sh.sonos.GaesteWC, sh.sonos.Lounge, sh.sonos.Esszimmer, sh.sonos.Bad, sh.sonos.Schlafzimmer, sh.sonos.Kinderbad, sh.sonos.Buero] #Klingel-Lautsprecher-Play alter Zustand sh.sonos.Kueche.play() sh.sonos.GaesteWC.play() sh.sonos.Lounge.play() sh.sonos.Esszimmer.play() sh.sonos.Bad.play() sh.sonos.Schlafzimmer.play() sh.sonos.Kinderbad.play() sh.sonos.Buero.play()
Thorsten
Einen Kommentar schreiben:
-
@RoyalTS
Danke schon mal für das klasse Feedback und Testen. Umzug ist durch, nun warte ich noch auf Internet. Ich sammle alle Issues und baue die dann schnellstmöglich ab.
Zum Thema GoogleTTS: die ärgern tatsächlich mit dem Captcha, ist mir auch schon passiert, dann geht die Ausgabe natürlich nicht. Generell ist dringendst zu empfehlen, den Broker für GoogleTTS so einzurichten, das er Ansagen offline speichert und wiederverwendet.
Thema Ansage Mobotix:
Ich würde in dem Skript zuerst alle Speaker gruppieren, die die Ansage abspielen sollen. Dann irgendeinen der Speaker mit der Play_Snippet Funktion füttern (inkl group_command=1). Dann sorgt Sonos dafür, das alles synchron abgespielt wird. Danach wieder Gruppe auflösen und neu gruppieren. Ich habe schon etwas vorbereitet, wo man Gruppen speichern kann und bei Bedarf switchen kann, so eine Art Presets.
Beim Volumen bin ich mir nicht ganz sicher, ob ein group_commanf Sinn macht. Die Pegel der einzelnen Lautsprecher sind doch verschieden. Aber im Prinzip sehr einfach zu integrieren, würde für deinen Fall ein paar Zeilen Text im Skript ersparen.
Gruss,
StefanZuletzt geändert von pfischi; 19.08.2015, 17:34.
Einen Kommentar schreiben:
-
Dann sammel ich grad mal weiter, bis wieder alle aus dem Urlaub bzw. Umzug sind
So würde ich mir die Logic vorstellen, die wie Netzwerkbefehl ausgeführt wird. Dafür setzt meine Mobotix-Klingel ein KNX-Item auf 1 und mit autotimer nach ein paar Sekunden wieder auf 0 zurück.
Oder kann man Volume, group_command und play kombinieren?
Und wenn bestimmte Speaker in einer Gruppe sind? Die ist halt nicht immer gleich.
Danke und Grüße
Thorsten
tuergong.py-Logik:
Code:from time import sleep #trigger current_state for this sonos speaker to get the latest play-state #this is necessary to prevent a wrong button state. This happens, if the button was pressed too frequently. sleep(0.2) if sh.EG.Szenen.Klingel() : sh.sonos.Kueche.play_snippet.group_command(1) sh.sonos.GaesteWC.play_snippet.group_command(1) sh.sonos.Lounge.play_snippet.group_command(1) sh.sonos.Bad.play_snippet.group_command(1) sh.sonos.Schlafzimmer.play_snippet.group_command(1) sh.sonos.Esszimmer.play_snippet.group_command(1) sh.sonos.Kind3.play_snippet.group_command(1) sh.sonos.Kinderbad.play_snippet.group_command(1) sh.sonos.Buero.play_snippet.group_command(1) sh.sonos.Kueche.play_snippet.volume(20) sh.sonos.GaesteWC.play_snippet.volume(20) sh.sonos.Lounge.play_snippet.volume(20) sh.sonos.Bad.play_snippet.volume(20) sh.sonos.Schlafzimmer.play_snippet.volume(20) sh.sonos.Esszimmer.play_snippet.volume(20) sh.sonos.Kind3.play_snippet.volume(15) sh.sonos.Kinderbad.play_snippet.volume(15) sh.sonos.Buero.play_snippet.volume(20) sh.sonos.Kueche.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3") sh.sonos.GaesteWC.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3") sh.sonos.Lounge.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3") sh.sonos.Bad.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3") sh.sonos.Schlafzimmer.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3")) sh.sonos.Esszimmer.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3") sh.sonos.Kind3.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3") sh.sonos.Kinderbad.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3") sh.sonos.Buero.play_snippet("x-file-cifs://N5550/MP3/Tuergong.mp3")
Einen Kommentar schreiben:
-
Mach ich mal weiter.
Wollte gerade Google_TTS auf die obigen Symptome testen. Aber bekomm keine Ausgabe
Also auch an einem einzelnen Lautsprecher.
Mit "sonos_broker -d" bekomm ich folgende Ausgabe und nicht mehr
Code:2015-08-05 17:31:05,738 DEBUG Thread-278 COMMAND PlayTts -- attributes: group_command: 0, force_stream_mode: 0, uid: rincon_000e58d290a001400, language: de, tts: Hallo, volume: 20, fade_in: 0 -- sonos_commands.py:run:1480 2015-08-05 17:31:05,750 INFO Thread-278 Starting new HTTP connection (1): translate.google.com -- connectionpool.py:_new_conn:180 2015-08-05 17:32:21,358 DEBUG Thread-290 Server response -- status: True -- response: -- sonos_broker:do_POST:63 2015-08-05 17:33:13,351 DEBUG Thread-278 "GET /translate_tts?ie=UTF-8&tl=de&q=Hallo HTTP/1.1" 302 387 -- connectionpool.py:_make_request:350 2015-08-05 17:33:13,364 INFO Thread-278 Starting new HTTP connection (1): ipv4.google.com -- connectionpool.py:_new_conn:180 2015-08-05 17:33:13,517 DEBUG Thread-278 "GET /sorry/IndexRedirect?continue=http://translate.google.com/translate_tts%3Fie%3DUTF-8%26tl%3Dde%26q%3DHallo&q=CGMSBFeFZOoYudmIrgUiGQDxp4NLQJpoJkhwIDnezxqamPehQg7jpYU HTTP/1.1" 503 2754 -- connectionpool.py:_make_request:350 127.0.0.1 - - [05/Aug/2015 17:33:13] "POST / HTTP/1.1" 400 - 2015-08-05 17:33:13,525 DEBUG Thread-278 Server response -- status: False -- response: exceptions must derive from BaseException -- sonos_broker:do_POST:63
Code:[google_tts] #Enabled Google-Text-To-Speech. Default: false enabled = true #Select the path where sonos broker will save the converted mp3 files #Before a web request is made, sonos broker will check, if the requested file already exists. #Possible paths could be: local webserver, mounted smb share ... save_path = /var/www/google_tts #Specifies the destination url which sonos broker refers to the sonos speakers. This url must point to 'save_path$ server_url = http://192.168.1.55/google_tts #Maximum file size quota in megabytes. Up to this size, sonos broker will save files to 'save_path'. #Default: 100 quota = 200
EDIT: Oh... hab gerade mal https://translate.google.com/transla...&tl=de&q=Hallo manuell ausgeführt. Da kommt nun noch eine Captcha-Abfrage. Kann das wohl daran liegen?Zuletzt geändert von RoyalTS; 05.08.2015, 17:16.
Einen Kommentar schreiben:
-
Ok.... mit play_snippet bissl gespielt.
Aber hab noch Probleme gefunden.
Wenn ich beim Klingeln auf seinem Sonos jetzt was abspielen möchte, dann geht das nur, wenn dieses eine Sonos nicht gruppiert ist.
Beispiel mit "sonos_cmd":
Code:admin@smarthome:/usr/smarthome$ sonos_cmd Connecting to Sonos broker ... done! Welcome to Sonos Broker console! =>> update =>> speaker speaker(s): ----------- (1) rincon_000e58d28e9a01400 [192.168.1.125|Schlafzimmer|Sonos CONNECT:AMP] (2) rincon_000e58a257c401400 [192.168.1.124|Büro|Sonos CONNECT] (3) rincon_000e58d290a001400 [192.168.1.115|Gäste-WC|Sonos CONNECT:AMP] (4) rincon_000e58c373cc01400 [192.168.1.119|Gäste-WC|Sonos PLAY:1] (5) rincon_000e58851b2001400 [192.168.1.112|Gäste-WC|Sonos PLAY:5] (6) rincon_000e582d7aa001400 [192.168.1.120|Gäste-WC|Sonos CONNECT] (7) rincon_000e5876cef201400 [192.168.1.111|Gäste-WC|Sonos PLAY:3] (8) rincon_000e58c7806a01400 [192.168.1.126|Kinderbad|Sonos PLAY:1] (9) rincon_000e58f0a68c01400 [192.168.1.123|Melissa Schlafzi|Sonos PLAY:3] (25) rincon_000e58f0a38401400 [192.168.1.122|Schlafzimmer|Sonos PLAY:3] (26) rincon_000e58716d5801400 [192.168.1.121|A&A Schlafzimmer|Sonos PLAY:3] =>> speaker 3 admin@smarthome:/usr/smarthome$ sonos_cmd Connecting to Sonos broker ... done! Welcome to Sonos Broker console! =>> update =>> speaker speaker(s): ----------- (1) rincon_000e58d28e9a01400 [192.168.1.125|Schlafzimmer|Sonos CONNECT:AMP] (2) rincon_000e58a257c401400 [192.168.1.124|Büro|Sonos CONNECT] (3) rincon_000e58d290a001400 [192.168.1.115|Gäste-WC|Sonos CONNECT:AMP] (4) rincon_000e58c373cc01400 [192.168.1.119|Gäste-WC|Sonos PLAY:1] (5) rincon_000e58851b2001400 [192.168.1.112|Gäste-WC|Sonos PLAY:5] (6) rincon_000e582d7aa001400 [192.168.1.120|Gäste-WC|Sonos CONNECT] (7) rincon_000e5876cef201400 [192.168.1.111|Gäste-WC|Sonos PLAY:3] (8) rincon_000e58c7806a01400 [192.168.1.126|Kinderbad|Sonos PLAY:1] (9) rincon_000e58f0a68c01400 [192.168.1.123|Melissa Schlafzi|Sonos PLAY:3] (25) rincon_000e58f0a38401400 [192.168.1.122|Schlafzimmer|Sonos PLAY:3] (26) rincon_000e58716d5801400 [192.168.1.121|A&A Schlafzimmer|Sonos PLAY:3] =>> speaker 3 rincon_000e58d290a001400 =>> play_snippet Url (http://.. or Sonos url) []:x-file-cifs://N5550/MP3/Tuergong.mp3 snippet volume (-1-100) [-1]:20 fade in (0|1) [0]:0 group command (0|1) [0]:1
Wollte das Türklingel-Signal gerne immer an bestimmte Lautsprecher schicken, egal wie sie gerade gruppiert sind. Danach dann weiter wie zuvor.
Gerne aber auch an alle in der Gruppe, die ansonsten nicht dabei sind.
Hat das Problem schon jemand gehabt? Also dass es nicht geht, wenn Lautsprecher gruppiert sind.
EDIT: Wenn ich an einem einzelnen Lautsprecher eine "normale" Playliste habe, keinen Radio-Stream, dann kommt nach play_snippet die ursprüngliche Musik nicht zurück. Hmm. Ggf. alles eine Ursache des letzten Sonos-Updates?
Danke und Grüße
ThorstenZuletzt geändert von RoyalTS; 05.08.2015, 16:50.
Einen Kommentar schreiben:
-
Mal eine neue Idee gesponnen...
Ich würde gerne, wenn jemand an der Hof- bzw. Haustür klingelt (ich kann mit meiner Mobotix-Anlage Netzwerkbefehle absetzen) gerne bestimmte Sonos-Lautsprecher einen Türgong abspielen lassen.
Aber wie kann ich
- den aktuellen Sonos-Status pausieren,
- feste Lautstärke einstellen (ok, das ist klar),
- Gong abspielen (MP3-Datei mit Gong-Klang) und
- am Ende wieder den Status von zuvor aufnehmen?
Schwerpunkt ist hier auf den Status pausieren (bzw. speichern und wieder aufnehmen).
EDIT: so wie hier dachte ich mir das.
https://www.symcon.de/forum/threads/...280#post116280
Gerade die Speicherung der aktuellen Position im Song, der Liste, etc.
"Ausfaden, Meldung, einfaden."
Wäre doch eine tolle Ergänzung, oder?
EDIT2: Auch unter http://www.fhemwiki.de/wiki/SONOS bei Beispielen gibt es nette Anregungen.
"13.5 Beispiel für eine Stummschaltung bei einem Anruf"
EDIT3: Oh... Docu durchforsten hilft. PLAY_SNIPPET sollte ja helfen
Mal ausprobieren.
Danke!
Grüße
ThorstenZuletzt geändert von RoyalTS; 05.08.2015, 13:38.
Einen Kommentar schreiben:
-
Hi,
ich schaue mir das mal an. Im Moment bin ich mit dem Umzug beschäftigt. Aber ich gebe bald Feedback.
Einen Kommentar schreiben:
-
Hi,
kurze frage läuft bei euch der Plugin noch nach dem neuesten Play1 Update?
Code:2015-07-21 21:53:53,319 INFO sonos-update Starting new HTTP connection (1): x.x.x.x -- connectionpool.py:_new_conn:203 2015-07-21 21:53:53,334 WARNING sonos-update Could not send sonos notification: {'parameter': {'group_command': 0, 'uid': 'rincon_xxxxxxxxxxxxxxxxxxxxx'}, 'command': 'current_state'}. Error: ('Connection aborted.', error(111, 'Connection refused')) -- __init__.py:_send_cmd:464 2015-07-21 21:53:53,719 DEBUG Scheduler sonos-update next time: 2015-07-21 21:55:53+02:00 -- scheduler.py:_next_time:289
Gruß und Danke
Marco
Einen Kommentar schreiben:
Einen Kommentar schreiben: