Hauptmenü

Sonos disappeared

Begonnen von hanami, 21 Februar 2017, 12:02:50

Vorheriges Thema - Nächstes Thema

hanami

Hallo zusammen,

seitdem ich mein Sonos in FHEM integriert habe, hab ich leider alle 2-3 Tage das Problem das ein oder beide SonosPlayer auf disappeared springen und aus FHEM nicht mehr steuerbar sind. Über das SonosApp lassen sich die Player anstandslos weiter ansteuern.
Nach ein wenig recherche zu dem Thema und ein paar Tips die Reinerlein bereits anderen usern gab, konne ich den Fehler jedoch leider nicht eingrenzen.

Nun wollte ich mich eines DOIF`s als Workaround behelfen welcher den disappeared Lautsprecher erkennt und dann den Sonos SubProzess neu startet.

Leider funktioniert dies jedoch nicht so wirklich wie ich will mit folgendem Code:

([Sonos_Kueche:presence] eq "disappeared" or [Sonos_Bad:presence] eq "disappeared") (attr Sonos disable 1; sleep 90; deleteattr Sonos disable; save)

Vielleicht hat jemand eine Idee wo der Fehler steckt, sicher ist es nur eine Kleinigkeit, ein Anfänger (Perl) Fehler oder dergleichen :-(

Freue mich über Unterstützung und neues Wissen.  ;)

beste Grüße
Patrick

l2r

Wissen ist Macht.
Ich weiß nix.
Macht nix.

Devender

Der Wikieintrag ist von mir  :D
Das disable muss auf das Sonos Device und nicht den darunter hängendem Player gesetzt werden.

Läuft bei mir seit Monaten perfekt :)
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

hanami

Hallo Devender,
Hallo l2r,

vielen Dank für eure Rückmeldungen.

Ja, so nutze ich es auch z.Z. als AT

*03:10 attr Sonos disable 1; sleep 90; delete attr Sonos disable; save

Das funktioniert sehr gut, möchte das Rad auch nicht neu erfinden - aber dachte
mir das es vielleicht als DOIF schicker geht und somit "auslöst" nachdem der disappear Zustand eintritt
und nicht bis 03:10 gewartet wird.
Hatte letztens Nachmittags einen disappear, da war leider Essig mit der Begrüßung nach Feierabend :-(

Somit entstand die Idee.

beste Grüße
Patrick

Devender

Mein Beispiel ist doch ein Doif  ;)


define RebootSonosDOIF DOIF ([FunksteckerSonos:state] eq "on" )(deleteattr MeinSonosDevice disable) (save)
                       DOELSEIF ([FunksteckerSonos:state] eq "off" )(attr MeinSonosDevice disable 1)(save)
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

l2r

#5
@Devender: ok dann hatte ich das wohl falsch verstanden... Wäre zumindest ne Erklärung warum das bei mir nicht ganz sauber lief....;-)
Könntest du dann in dem WIKI-Eintrag da explizit drauf hinweisen? Nicht dass es noch andere Leute gibt, die das so wie ich interpretieren....

Dazu habe ich noch eine Frage:
Ich habe aktuell 4 Sonos-Player im Einsatz. Einer davon wir regelmäßig vom Strom getrennt. Wenn ich aber jetzt dass Sonos-Device auf disable setze, dann können doch die anderen Player auch nicht mehr angesprochen werden, da das Sonos-Device ja für alle Sonos-Player zuständig ist!? Oder was bewirkt das disable-Attribut? Bzw. bewirkt
set Sonos RescanNetwork das gleiche wie
attr Sonos disable 1; sleep 90; delete attr Sonos disable; save?

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

hanami

Guten Morgen,

ich habe das mal als DOIF übernommen.
define SonosReconnect DOIF ([Sonos_Kueche:presence] eq "disappeared" or [Sonos_Bad:presence] eq "disappeared") (attr Sonos disable 1) (sleep 90) (deleteattr Sonos disable) (save)

Irgendwie verhält sich meine DOIF Definition  aber anders als die AT variante.
Bei der AT variante funktioniert es, bei der DOIF variante bleiben die Player auf disappeared obwohl die Definition ausgeführt wird.

Kann es sein das durch den obigen Befehl das Ding in eine Dauerschleife rennt da nach dem Löschen des disable weiterhin die Player als disappeared angezeigt werden?
Es fühlt sich zumindest so an.

Grüße Patrick

Devender

Nur kurze Antwort fuer den Moment.
Entferne mal das Sleep. Das koennte dein Problem sein.
Ist in meiner DEF auch nicht noetig.
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul

hanami

Guten Morgen miteinander,

vielen Dank für die Antwort.

Ich habe das "sleep" auf Deinen Rat hin entfernt und mir das mal ein wenig angeschaut.
So richtig möchte das jedoch nicht funktionieren wie ich
Gestern erst wieder feststellen musste.

Die Player bleiben trotzalledem disappeared ;(

Wo kann ich denn noch ansetzen um das Problem zu eruieren? Gefühlt triggert
das DOIF nicht wie sobald ein Player auf disappeared geht.

beste Grüße

Devender

Ich hab bei mir noch mal geschaut:

Mein DOIF sieht so aus:

([Sonos:state] eq "on" )(deleteattr Play3WZ disable) (save) DOELSEIF ([Sonos:state] eq "off" )(attr Play3WZ disable 1)(save)


Das "Sonos:state"  ist meine Funksteckdose. Sprich wenn die angeschaltet/ ausgeschaltet  wird triggert das DOIF.
Du triggerst ja auf den Player selbst mit seinem Status. Ich vermute daher klappt das bei dir nicht.

Passe das gleich mal im Wiki an und hoffe es wird dann klarer.

Falls es bei dir so auch nicht klappt, poste mal ein Log von dem Zeitpunkt wenn es triggert bzw. nicht triggert.
FHEM 5.8 auf RasPi mit Jessy - CUL868, JeeLink Lacrosse
Komponenten: HM, IT, ELV, FB7390, FritzPL543,Sonos Play3
Mehrere Wandtablets sowie einen Smart Mirror
https://wiki.fhem.de/wiki/Anwesenheitserkennung#PRESENCE-Modul