Ankündigung

Einklappen
Keine Ankündigung bisher.

Sonos Anbindung

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

  • pfischi
    antwortet
    Version v0.3 im Developer-Zweig

    Abend allerseits,

    die letzten Wochen habe ich fleissig an der neuen Version gearbeitet, Diese ist nun soweit fertig und steht im Dev-Zweig bereit.

    https://github.com/pfischi/shSonos/tree/develop

    Download Installer: https://github.com/pfischi/shSonos/b...ar.gz?raw=true

    Das ist bis hierher das grösste Update. Unter der Haube ist einiges passiert. Die wichtigsten Änderungen:
    • JSON-Format für Kommandos
      • viel flexibler, neue Features besser implementierbar
      • !! keine Kommandos mehr über die Broser-URL, Readme beachten

      • Netzwerk-Traffic:
      • nur noch Daten die sich verändert haben, werdem auch übertragen
      • dadurch viel weniger Daten
    • Gruppen-Funktionen:
      • einige Kommandos haben Gruppen-Funktionen bekommen, wie z.B, 'mute', 'volume', 'led' etc --> siehe Doku
      • dadurch noch flexiblere Steuerung der Lautsprecher
    • GoogleTTS:
      • Queue-System implementiert
      • es können nun nacheinander mehrere TTS-Kommandos ausgeführt werden; während noch eine Ausgabe läuft, wird die nächste Anfrage in die Warteschlange verfrachtet
      • Originaltitel wird nun zuverlässig fortgesetzt (hoffentlich )
    • Verbesserte Doku:
      • die Kommands sind nun alle aufgeführt und einzelne Paramter beschrieben
    • vieles mehr



    Da sich das Broker-Interface geändert hat, muss ZWINGEND auch das Plugin für smarthome.py aktualisiert werden (aktuell v1.1).


    https://github.com/pfischi/shSonos/b...os/__init__.py


    Bitte beachtet auch, das ein paar Items innerhalb der sonos.conf (für das Plugin) hinzugekommen sind; ich empfehle auch diese nocheinmal zu erneuern.


    https://github.com/pfischi/shSonos/b...les/sonos.conf


    Ich erwarte gerade bei dieser Version noch einige Bugs, also seid ein wenig frustresistent ^^. In vielen Dingen hilft aber auch die Doku weiter, also bitte lesen.


    In zwei bis drei Wochen geht die neue Version des Brokers, sowie das Plugin in den Master-Zweig.





    Gruss,



    Stefan

    Einen Kommentar schreiben:


  • hoggle
    antwortet
    cool

    P.S: Ich bin schon seit Wochen fleissig am neuen Rlease dran und wir in ca. 2 Wochen veröffentlicht.
    Ich schmeiss ne Kiste Bier wenn's fertig ist

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von RoyalTS Beitrag anzeigen
    Hmm, mal eine Grundsatzfrage (vielleicht hilft mir das):
    Wie starte ich den Broker?

    a) sonos_broker (ohne adminrechte, dann muss ich die Rechte von Log-Files anpassen, sonst Fehler)
    b) sudo sonos_broker

    oder sonst wie?

    Alles geht ja soweit, nur die Statusrückmeldung, wenn von ein Sonos per KNX oder App oder oder gestartet wird, will nicht.

    Einmal ging's, dann musste ich das System leider mal neu starten und seit dem will es nicht mehr.

    Play, Stop, etc. senden geht. Nur der Status nicht
    Darüber regel ich halt Play/Stop über einen KNX-Schalter.

    Danke für Tips.

    Grüße
    Thorsten

    PS: hatte jetzt leider erst wieder Zeit zum Testen.
    Kannst du mir bitte ein Debug-Log anhängen, wo du ein paar Aktionen ausführts? 5-10min sollten ausreichen. Dann kann ich den Fehler einschränken. Ic hhabe eine Vermutung, die ich aber mit Logs hinterlegen muss

    Gruss,

    Stefan


    P.S: Ich bin schon seit Wochen fleissig am neuen Rlease dran und wir in ca. 2 Wochen veröffentlicht.

    Einen Kommentar schreiben:


  • RoyalTS
    antwortet
    Hmm, mal eine Grundsatzfrage (vielleicht hilft mir das):
    Wie starte ich den Broker?

    a) sonos_broker (ohne adminrechte, dann muss ich die Rechte von Log-Files anpassen, sonst Fehler)
    b) sudo sonos_broker

    oder sonst wie?

    Alles geht ja soweit, nur die Statusrückmeldung, wenn von ein Sonos per KNX oder App oder oder gestartet wird, will nicht.

    Einmal ging's, dann musste ich das System leider mal neu starten und seit dem will es nicht mehr.

    Play, Stop, etc. senden geht. Nur der Status nicht
    Darüber regel ich halt Play/Stop über einen KNX-Schalter.

    Danke für Tips.

    Grüße
    Thorsten

    PS: hatte jetzt leider erst wieder Zeit zum Testen.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von hoggle Beitrag anzeigen
    Hallo Stefan,

    jetzt habe ich auf einmal doch das Problem dass die aktuelle Wiedergabe nach der TTS Durchsage nicht mehr weiter läuft.

    Eigentlich habe ich nichts nennenswertes geändert außer einen weiteren Speaker in den sh items zu registrieren.

    Bevor ich anfange zu suchen: Hattest Du das Problem schon Mal ?

    Danke Dir schon Mal vorab.
    Ja, hatte ich auch schon. Tatsächlich ist der GoogleTTS-Code noch ein wenig "Proof-Of-Concept". Ich vermute, das Threads sich da gegenseitig in die Quere kommen. Sobald ich die JSON-Implementierung fertig habe, werde ich den den GoogleTTS-Code nochmal überarbeiten. Deinen damaligen Hinweis mit den Queues werde ich dann einbauen, sowie ein ordentliches Threadhandling an dieser Stelle implementieren, Wenn du Lust hast, kannst du aber gerne schauen, wo genau das Problem im Moment liegt.

    Grüsse,

    Stefan

    Einen Kommentar schreiben:


  • hoggle
    antwortet
    Wiedergabe stoppt nach TTS

    Hallo Stefan,

    jetzt habe ich auf einmal doch das Problem dass die aktuelle Wiedergabe nach der TTS Durchsage nicht mehr weiter läuft.

    Eigentlich habe ich nichts nennenswertes geändert außer einen weiteren Speaker in den sh items zu registrieren.

    Bevor ich anfange zu suchen: Hattest Du das Problem schon Mal ?

    Danke Dir schon Mal vorab.

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von buffi Beitrag anzeigen
    Hi.
    Das ging ja aber fix
    Ich habe allerdings noch das Problem, dass sie die items play/stop sich nicht (von aussen) aktualisieren.
    ein sonos.play(1) oder sonos.stop(1) funktioniert. Play/Stop über den SonosClient werden jedoch nicht ans Plugin propagiert.
    PS: Dieses Problem habe ich nicht erst seit dieser Version.

    Das Log zeigt auch nichts aussergwöhnliches..
    Hat sonst noch jemand das Problem?


    gruss Buffi
    Also prinzipiell kann es nur an zwei Dingen liegen:

    1. Der Broker registriert keine Events bei den Sonos-Lautsprechern, bzw. verarbeitet die nicht richtig

    2. die UDP-Pakete des Brokers erreichen nicht das Plugin (dort ist ein Listener gestartet, der auf diese Pakete wartet)

    Zur Fehleranalyse brauche ich von dir ein Debug-Log, vom Broker UND von smarthome.py. Beim Broker kannst du in der Konfiguration das Logfile festlegen und den Loglevel auf Debug setzen. Am bestn du lässt den Broker mal ca. 10min laufen und machst dann ein paar Aktionen in der Sonos-App. Zusammen mit dem Log von sh.py können wir zumindestens feststellen, ob Pkt. 1 oder 2. zutrifft.



    Stefan

    Einen Kommentar schreiben:


  • buffi
    antwortet
    Hi.
    Das ging ja aber fix
    Ich habe allerdings noch das Problem, dass sie die items play/stop sich nicht (von aussen) aktualisieren.
    ein sonos.play(1) oder sonos.stop(1) funktioniert. Play/Stop über den SonosClient werden jedoch nicht ans Plugin propagiert.
    PS: Dieses Problem habe ich nicht erst seit dieser Version.

    Das Log zeigt auch nichts aussergwöhnliches..
    Hat sonst noch jemand das Problem?


    gruss Buffi

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Mini-Update

    Ich habe im Dev-Zweig am Plugin einen kleinen Bug gefixt. Es werden jetzt auch die im Alarm-Einstellungen des Speakers mit ausgeliefert (Voraussetzung ist hier der aktuelle Broker aus dem Dev-Zweig bei Github).
    Im Moment lassen sich die Alarmeinstellungen noch nicht über den Broker / Plugin setzen. Das folgt noch.

    https://github.com/pfischi/shSonos/b...os/__init__.py

    Ich bin gerade dabei die Kommandos auf das JSON-Format umzustellen, dann gibts auch wieder ein Installer-Package.

    Grüsse,

    Stefan

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von Martin_8 Beitrag anzeigen
    Hallo,

    wie kann ich auf Änderungen durch die Android Sonos APP an den GA weitergeben?
    z.B. Play und Stopp

    Gruss,
    Martin
    Wenn du die Sonos-Lautsprecher richtig in sh.py integriert hast, dann werden die Änderung aller Apps, aber auch die der direkten Bedienung an den Lautsprechern selbst, an den Broker und dann an die sh.py-Instanz übermittelt. Der Broker registriert sich automatisch an die Events, die jeder Lautsprecher per UPnP übermittelt. Die Werte selbst (die jedes Sonos-Items) müssen dann z.B. über eine Logik an deine KNX-Items gekoppelt werden.

    Code:
    if [URL="http://redaktion.knx-user-forum.de/lexikon/sh/"]sh[/URL].sonos_kueche.play():         
       [URL="http://redaktion.knx-user-forum.de/lexikon/sh/"]sh[/URL].your_knx_item()
    else:
       ...
    Gruss,

    Stefan

    Einen Kommentar schreiben:


  • Martin_8
    antwortet
    Sonos APP

    Hallo,

    wie kann ich auf Änderungen durch die Android Sonos APP an den GA weitergeben?
    z.B. Play und Stopp

    Gruss,
    Martin

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von hoggle Beitrag anzeigen
    Hi Stefan,

    hab ich mittlerweile auch festgestellt

    Eine andere Sache ist mir noch aufgefallen:
    Wenn 2 oder mehr TTS-Requests an den Broker geschickt werden, ist das Verhalten nicht ganz sauber denke ich.

    Zum einen ist es so dass die erste Nachricht abrupt abgewürgt wird und die neue Nachricht gesprochen wird. Gut - darüber lässt sich streiten.

    Was aber dann auch passiert ist, das der zuvor eingestellte Sender nicht wieder anläuft. Ich denke dass das damit zusammenhängt dass der Broker bei einer TTS Ansage zunächst den aktuell laufenden Track speichert um diesen nach der Ansage wieder anlaufen zu lassen.

    Im oben genannten Fall ist das dann die vorhergehende TTS-Nachricht.

    Könnte man nicht so eine Art Incoming Queue implementieren, die der Broker, eins nach dem anderen, abarbeitet ?

    Also wenn Du Lust und Zeit hast meine ich ....
    Lust immer, Zeit ist das Problem

    Aber danke für den Hinweis mit der TTS. Das Verhalten wie von dir vermutet ist exakt so. Der letzte Track wird gespeichert und später an der gleichen Stelle fortgesetzt. So ganz gefallen tut mir das auch nicht. An das Queue-System habe ich auch schon gedacht. Die Implementierung sollte schnell gehen. Ich schau das mir mal genauer an und gebe ein Feedback. Du bist aber auch gerne zum Mitentwickeln eingeladen

    Gruss,

    Stefan

    Einen Kommentar schreiben:


  • hoggle
    antwortet
    Hi Stefan,

    hab ich mittlerweile auch festgestellt

    Eine andere Sache ist mir noch aufgefallen:
    Wenn 2 oder mehr TTS-Requests an den Broker geschickt werden, ist das Verhalten nicht ganz sauber denke ich.

    Zum einen ist es so dass die erste Nachricht abrupt abgewürgt wird und die neue Nachricht gesprochen wird. Gut - darüber lässt sich streiten.

    Was aber dann auch passiert ist, das der zuvor eingestellte Sender nicht wieder anläuft. Ich denke dass das damit zusammenhängt dass der Broker bei einer TTS Ansage zunächst den aktuell laufenden Track speichert um diesen nach der Ansage wieder anlaufen zu lassen.

    Im oben genannten Fall ist das dann die vorhergehende TTS-Nachricht.

    Könnte man nicht so eine Art Incoming Queue implementieren, die der Broker, eins nach dem anderen, abarbeitet ?

    Also wenn Du Lust und Zeit hast meine ich ....

    Einen Kommentar schreiben:


  • pfischi
    antwortet
    Zitat von hoggle Beitrag anzeigen
    Hallo Stefan,

    kann ich da eigentlich direkt die Lautstärke mitangeben ?

    Das scheint nicht zu funktionieren:

    Code:
     sh.Kueche.play_tts('Lüftung im Erdgeschoss jetzt aus', 10)
    So gehts auch nicht

    Per smarthome.py gehts so:

    sh.Kueche.play_tts.volume(10)
    sh.Kueche.play_tts('Your String here')

    Gruß,

    Stefan

    Einen Kommentar schreiben:


  • hoggle
    antwortet
    play_tts mit Angabe der Lautstärke

    Hallo Stefan,

    kann ich da eigentlich direkt die Lautstärke mitangeben ?

    Das scheint nicht zu funktionieren:

    Code:
     sh.Kueche.play_tts('Lüftung im Erdgeschoss jetzt aus', 10)

    Einen Kommentar schreiben:

Lädt...
X