Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Schade, also bzgl. Snippet.
Hat TTS das gleiche Problem? Oder kann ich das zur Zeit nutzen?
Sind die ITEM-Dateien anzupassen?
Google-TTS müsste auch betroffen sein, weil intern die gleiche Funktion genutzt wird. Aber ich bin schon dran und debugge schon fleissig.
Die Items müssen nicht geupdatet werden, es sein denn, die neuen Werte und Commands wie "Balance" und "HouseholdID" sollen mit rein.
Achja, Google-TTS hatte ein Problem mit Captchas. Diese wurden vor der Gnerierung des TTS abgefragt, weil ich keinen User-Angent mitgeschickt hatte. Sollte jetzt behoben sein. Wenn nicht, muss ich mir noch was einfallen lassen
Dabei ist es egal, ob ich den Aufruf aus der sh.py oder sonos_cmd starte. Das Speichern der aktuellen Playlist klappt hingegen ohne Probleme.
Das Ganze läuft auf einem Ubuntu, Python (3.2.3), requests (2.9.1), sonos-broker (v0.7.-2016-01-04-)...
Ausgabe aus sonos_cmd:
Code:
Playlist (path to file) []:/tmp/wohn
Play after insert (0|1) [0]:
Invalid status response '400'!
Server message: expected bytes, not str
Invalid status response '400'!
Server message: expected bytes, not str
das Christkind hat mir auch 2 Sonos Play 1 gebracht und somit musste ich natürlich diese auch ins Smarthome einbinden.
...läuft auch (fast) alles Super. Danke fürs tolle Plugin.
Ich habe nur das Problem, dass ich die Steckdose des Sonos Nachts und bei Abwesend abschalte.
Nun zeigt mir der Status immer noch "true" an, obwohl hier eigentlich nichts mehr aktiv ist.
Es bleiben die letzten Zustände in den Variablen, d.h. das Plugin merkt nicht, das der Sonos aus ist.
Schalte ich die Steckdose nach längerer Zeit wieder zu, kann ich nicht mehr über das Plugin auf den Sonos zugreifen.
Kennt hier jemand das Problem oder bin ich der Einzige???
Habe die Vermutung, dass es evtl auch am Sonos_broker liegen könnte???
Starte ich diesen neu, so ist der Zugriff wieder da.
Bzw. denke mal, dass es aber eher mal wieder an mir liegt , doch irgendwie komme ich nicht weiter.
Läuft mit dem original Image auf nem Raspberry....(broker und Plugin sind aktuell)
das Christkind hat mir auch 2 Sonos Play 1 gebracht und somit musste ich natürlich diese auch ins Smarthome einbinden.
...läuft auch (fast) alles Super. Danke fürs tolle Plugin.
Ich habe nur das Problem, dass ich die Steckdose des Sonos Nachts und bei Abwesend abschalte.
Nun zeigt mir der Status immer noch "true" an, obwohl hier eigentlich nichts mehr aktiv ist.
....
Axl
Das der Status nicht sofort umspringt, ist normal. Der Broker sucht per default alle 5 Minuten nach neuen Speakern. Dabei werden Offline-Speaker aus der Liste entfernt und der Status auf "Offline" gesetzt. Im Fall der Fälle braucht es also 5 Minuten zur Aktualisierung des Status. Der Umstand war mit bewusst und habe deswegen ein manuelles "Discovery" implementiert.
Ich selber schalte per Taster den Kanal des Stromaktors (an dem der Lautsprecher hängt" "an" und "aus". Gleichzeitig möchte ich , das der Taster so lange blinkt, wie der Aktor an ist, der Lautsprecher aber noch nicht "Online". Das ganze habe ich folgendermaßen gelöst (ich wolle das auh mal ins Wiki stellen, komplett mit Screenshots von ETS und den Einstellungen des MDT Tasters):
1. Um das ganze etwas dynamischer zu machen, beim zu schaltenden Item des Lautsprechers ein neues Attribut hinzufügen:
Zur Erklärung: "ga_pending" ist die GA, die beim MDT das Blinken der LED auslöst. Kann optional mitgenommen werden, muss aber nicht. In der folgenden Lokig muss es aber dann raus (ich habs markiert). Die knx_listen-GA ist der Kanal des Schaltaktors.
2. Anpassung an /etc/logic.conf:
In der /etc/logic.conf in sh.py folgenden Eintrag hinzufügen:
Hier müssen natürlich die entsprechenden Werte geändert werden, mein Item ist hier Sonos_Kueche, das Trigger-Attribute "on_off", das haben wir oben hinzugefügt.
3. Die Logik an sich:
Befindet sich im Anhang und muss in das logics-Verzeichnis von sh.py. Den Dateinamn entsprechend den Anpassungen in der logic.conf abändern. Standartmäßig gehe ich davon aus, dass das Sonos-Plugin in der plugin.conf von sh.py mit "sonos" benannt wurde. Sollte das nicht der Fall sein, muss in Zeile 45 der Logik der entsprchende Name des Plugins abgeändert werden.
Kurz gesagt macht das Skript folgendes: Wird der Kanal des Schaltaktors auf "On" gesetzt, wird ein manuelles Suchen gestartet (alle 20sek, max. 2Minuten). Dadurch wird automatisch auch der Status des Lautsprechers auf "On" gesetzt (meiner Erfahrung nach dauert das zwischen 30-60sek). Das gleiche passiert bei "Off". Der Broker sucht nach neuen Lautsprechern und sortiert nicht erreichbare aus, der Status des entsprechenden Lautsprechers müsste innerhalb weniger Sekunden auf "Off" gesetzt werden.
Im Anhnag ist die Logik, sowie das Sonos-Item inkl. der hinzugefügten "OnOff"-Eigenschaft als Beispiel.
Dabei ist es egal, ob ich den Aufruf aus der sh.py oder sonos_cmd starte. Das Speichern der aktuellen Playlist klappt hingegen ohne Probleme.
Das Ganze läuft auf einem Ubuntu, Python (3.2.3), requests (2.9.1), sonos-broker (v0.7.-2016-01-04-)...
Ausgabe aus sonos_cmd:
Code:
Playlist (path to file) []:/tmp/wohn
Play after insert (0|1) [0]:
Invalid status response '400'!
Server message: expected bytes, not str
Invalid status response '400'!
Server message: expected bytes, not str
Mittlerweile habe ich per sh.py Logic den SoCo separat angesprochen und aktiviere direkt die auf dem Sonos hinterlegten Playlisten. Funktioniert gut, vielleicht ist das auch eine schöne Funktion für den Broker (clear_queue(), add_to_queue(playlist)).
Ehrlich gesagt, ist das sogar eher die Funktion die ich suche: Bearbeiten von Playlists über die vorhandenen Sonos Apps, danach brauche ich nur die gewünschten Playlists über einen Taster im Raum laden und los gehts. Beispiel: Unterschiedliche Playisten für Männlein und Weiblein für's Bad morgens...
Das wird wohl genau meine benötigte Funktion sein, habe es eben mal getestet.
Leider noch ein kleines Problem, wo ich dachte, dies sei mit der 1.7er version behoben.
Beim Einschalten des Lautsprechers kommt:
Code:
[FONT=Menlo][SIZE=14px]File "/usr/smarthome/logics/sonos_pending_bad.py", line 24, in discover[/SIZE][/FONT]
[FONT=Menlo][SIZE=14px]getattr(sh, plugin_name).discover()[/SIZE][/FONT]
[FONT=Menlo][SIZE=14px]AttributeError: 'Item' object has no attribute 'discover'[/SIZE][/FONT]
Irgendeine Idee?
...habe die aktuellen Versionen vom broker und Plugin.
nochmals ein dickes Danke
Gruß
Axl
Zuletzt geändert von blutwurst; 28.01.2016, 21:09.
Das wird wohl genau meine benötigte Funktion sein, habe es eben mal getestet.
Leider noch ein kleines Problem, wo ich dachte, dies sei mit der 1.7er version behoben.
Beim Einschalten des Lautsprechers kommt:
Code:
[FONT=Menlo][SIZE=14px]File "/usr/smarthome/logics/sonos_pending_bad.py", line 24, in discover[/SIZE][/FONT]
[FONT=Menlo][SIZE=14px]getattr(sh, plugin_name).discover()[/SIZE][/FONT]
[FONT=Menlo][SIZE=14px]AttributeError: 'Item' object has no attribute 'discover'[/SIZE][/FONT]
Irgendeine Idee?
...habe die aktuellen Versionen vom broker und Plugin.
nochmals ein dickes Danke
Gruß
Axl
Es kann eigentlich nur an zwei Sachen liegen:
a. Du benutzt nicht das Sonos-Plugin in v1.7
b. Das Sonos-Plugin in der Plugin.conf von sh.py heißt nicht "sonos"
Ich tippe auf Variante b. Sollte das der Fall sein, dann musst du entweder die Plugin.conf anpassen oder die Logik.
danke für die schnelle Hilfe,
doch leider ist weder a, noch b...schade, daher bin ich mir meinem Latein ziemlich am Ende....
Axl
Das bekommen wir shon gerade.
Kannst du mal den class_name in der plugin.conf auf "Sonos" (Großbuchstabe am Anfang) setzten. Sollte das immer nicht gehen, kannst du mal folgenden Code am Anfang der Logik einfügen und die Ausgabe hier posten:
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar