Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

  • pfischi
    antwortet
    Kurzes Statusupdate, mein VDSL50 ist geschaltet, ich werde heute auch anfangen mit dem programmieren.

    Grüsse, Stefan

    Einen Kommentar schreiben:


  • bkr
    antwortet
    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:


  • RoyalTS
    antwortet
    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:


  • Bear80
    antwortet
    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:


  • RoyalTS
    antwortet
    Super! Danke für dein Status-Update. Dann bin ich mal brennend gespannt, was es dann neues gibt

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von RoyalTS Beitrag anzeigen
    pfischi Umzug gut überstanden? ;-)
    Ja, danke der Nachfrage. Haus ist bezogen.Smarthome funktioniert. Schalttermin für Internet ist der 22.10., dann geht's aktiv weiter mit dem Projekt. Es hat sich auch viel getan beim zugrundeliegenden SoCo-Projekt, gibt einigiges an Bugfixes.

    Danke für die Geduld,

    Stefan

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    pfischi Umzug gut überstanden? ;-)

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    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()
    Grüße
    Thorsten

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    @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,

    Stefan
    Zuletzt geändert von pfischi; 19.08.2015, 17:34.

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    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:


  • RoyalTS
    antwortet
    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
    Sonos_broker.cfg:
    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:


  • RoyalTS
    antwortet
    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
    Und dann hängt es. Auch mit "group command" = 0.
    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
    Thorsten
    Zuletzt geändert von RoyalTS; 05.08.2015, 16:50.

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    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
    Thorsten
    Zuletzt geändert von RoyalTS; 05.08.2015, 13:38.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Hi,

    ich schaue mir das mal an. Im Moment bin ich mit dem Umzug beschäftigt. Aber ich gebe bald Feedback.

    Einen Kommentar schreiben:


  • MarcoLanghans
    antwortet
    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:

Lädt...
X