Autor Thema: [gelöst] Ausgabeprobleme mit Sonos Speak  (Gelesen 1088 mal)

Offline tfriedrich85

  • Full Member
  • ***
  • Beiträge: 193
[gelöst] Ausgabeprobleme mit Sonos Speak
« am: 27 Januar 2022, 21:46:07 »
Hallo zusammen,

ich habe in der ganzen Wohnung Sonos-Speaker verteilt und kann diese auch fast immer über Fhem steuern.
Nun zum Problem ungefähr alle 2 Tage verliert das Fhem Modul Sonos die Verbindung zu den Lautsprechern. Das Problem ist bekannt und auch schon häufig diskutiert.

Dafür habe ich einen manuellen work-around gefunden, den ich gerne automatisieren würde.

Wenn ich über die Fhem Oberfläche im Sonos - Device auf "Def" klicke und ohne Veränderungen vorzunehmen danach zum Besätigen auf "modify Sonos" ist das Problem für die nächsten 2 Tage behoben. Kann man diese manuellen Schritte irgendwie automatisieren?

Vielen Dank
« Letzte Änderung: 31 Januar 2022, 14:42:07 von tfriedrich85 »

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 20829
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #1 am: 27 Januar 2022, 22:17:19 »
Ja geht mW auch anders, so in der Art hat es bei mir funktioniert
defmod di_SonosCheck DOIF ([05:00] and [?Sonos] ne "opened" )(attr Sonos disable 1)(attr Sonos disable 0)
attr di_SonosCheck disable 1
attr di_SonosCheck do always
attr di_SonosCheck wait 0,10

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Offline KölnSolar

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5615
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #2 am: 27 Januar 2022, 22:19:24 »
z.B. täglich 1 Uhr define Reset_Sonos at *01:00:00 defmod DeinSonosdevice SONOS SonosParameters
Besser wär natürlich die Ursache zu lösen.

Ich hätte persönlich Interesse daran, dass ein SONOS.Nutzer mein UPnP-Paket testen würde.

Läuft es überhaupt gleichzeitig ? Welche technischen Probleme(evtl. FHEM Absturz,-Blockierungen) ?
Evtl. ließe sich dort ein Grund erkennen, dass die Verbindung verloren geht. Vermutlich wenigstens den Problemzeitpunkt, so dass der workaround mit einem notify anstatt dem zyklischen at angestoßen werden kann.

Grüße Markus

RPi3/2 buster/stretch-SamsungAV_E/N-RFXTRX-IT-RSL-NC5462-Oregon-CUL433-GT-TMBBQ-01e-CUL868-FS20-EMGZ-1W(GPIO)-DS18B20-CO2-USBRS232-USBRS422-Betty_Boop-EchoDot-OBIS(Easymeter-Q3/EMH-KW8)-PCA301(S'duino)-Deebot(mqtt2)-zigbee2mqtt

Offline tfriedrich85

  • Full Member
  • ***
  • Beiträge: 193
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #3 am: 28 Januar 2022, 11:22:20 »
Ja geht mW auch anders, so in der Art hat es bei mir funktioniert
defmod di_SonosCheck DOIF ([05:00] and [?Sonos] ne "opened" )(attr Sonos disable 1)(attr Sonos disable 0)
attr di_SonosCheck disable 1
attr di_SonosCheck do always
attr di_SonosCheck wait 0,10

Gruß Otto

Danke Otto,

ich probier schon eine Weile herum um die Ursache zu finden und hab auch schon sämtliche Hinweise aus dem Forum ausporbiert. Am meisten hat Used IP gebracht, nur die IPs  der Sonos Lautsprecher verwenden.
In dieser Formusdiskussion finde ich das Verhalten vergleichbar: https://forum.fhem.de/index.php/topic,46058.0.html
Das Sonos Device steht immernoch auf "Open" aber die Player sind nicht mehr erreichbar und damit funtkioniert auch Speak nicht mehr.





List Sonos

Internals:
   DEF        localhost:4711 30 1 5
   DELAYTIME  5
   DeviceName localhost:4711
   FD         13
   FUUID      5cd59b7f-f33f-aed9-81f5-5410c8ea48d9d36b
   INTERVAL   30
   NAME       Sonos
   NOTIFYDEV  global
   NR         621
   NTFY_ORDER 50-Sonos
   PARTIAL   
   STATE      opened
   TYPE       SONOS
   WAITTIME   1
   READINGS:
     2022-01-28 07:27:19   AllPlayer       ['Sonos_Bad','Sonos_KiZ','Sonos_Kueche','Sonos_Schlafzimmer','Sonos_Wohnzimmer']
     2022-01-28 07:27:19   AllPlayerCount  5
     2022-01-28 07:27:19   AllPlayerNotBonded ['Sonos_Bad','Sonos_KiZ','Sonos_Kueche','Sonos_Schlafzimmer','Sonos_Wohnzimmer']
     2022-01-28 07:27:19   AllPlayerNotBondedCount 5
     2022-01-28 11:14:35   LastProcessAnswer 1643364875
     2021-01-18 10:07:20   LineInPlayer    []
     2021-01-18 10:07:20   LineInPlayerList
     2021-01-18 10:07:20   LineInPlayerListAlias
     2022-01-28 07:27:19   MasterPlayer    ['Sonos_Bad','Sonos_KiZ','Sonos_Kueche','Sonos_Schlafzimmer','Sonos_Wohnzimmer']
     2022-01-28 07:27:19   MasterPlayerCount 5
     2022-01-28 11:06:42   MasterPlayerNotPlaying ['Sonos_Bad','Sonos_KiZ','Sonos_Kueche','Sonos_Schlafzimmer','Sonos_Wohnzimmer']
     2022-01-28 11:06:42   MasterPlayerNotPlayingCount 5
     2022-01-28 11:06:42   MasterPlayerPlaying []
     2022-01-28 11:06:42   MasterPlayerPlayingCount 0
     2022-01-27 23:05:40   MusicServicesList {'232' => {'IconRoundURL' => 'http://sonos-logo.w...
...

Attributes:
   DbLogExclude .*
   event-on-change-reading AllPlayer;state;Type
   event-on-update-reading myStatus
   getFavouritesListAtNewVersion 1
   getListsDirectlyToReadings 1
   getPlaylistsListAtNewVersion 1
   getQueueListAtNewVersion 1
   getRadiosListAtNewVersion 1
   pingType   tcp
   room       Sonos
   targetSpeakDir /opt/fhem/SonosSpeak
   targetSpeakFileTimestamp 1
   targetSpeakMP3FileDir /opt/fhem/SonosSpeak
   targetSpeakURL \\192.168.178.101\SonosSpeak
   usedonlyIPs 192.168.178.30,192.168.178.110,192.168.178.51,192.168.178.71,192.168.178.70,192.168.178.67,192.168.178.100,
   verbose    2


Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 20829
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #4 am: 28 Januar 2022, 11:48:24 »
oK dann kannst Du wirklich bloß jede Nacht reset machen. Entweder mit disabled oder Du hast ja probiert mit der DEF, da kannst Du Markus seinen Vorschlag nehmen. defmod macht genau das.
« Letzte Änderung: 28 Januar 2022, 15:10:51 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Offline Elektrolurch

  • Hero Member
  • *****
  • Beiträge: 1620
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #5 am: 28 Januar 2022, 15:01:03 »
Ich hatte auch das Problem, attr Sonos disable 1 1 x Tag hilft da.
configDB und Windows befreite Zone!

Offline tfriedrich85

  • Full Member
  • ***
  • Beiträge: 193
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #6 am: 28 Januar 2022, 22:37:37 »
z.B. täglich 1 Uhr define Reset_Sonos at *01:00:00 defmod DeinSonosdevice SONOS SonosParameters
Grüße Markus

Das hab ich so implementiert und warte mal die nächsten Tage ab, was so passiert. Danke euch

Offline tfriedrich85

  • Full Member
  • ***
  • Beiträge: 193
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #7 am: 28 Januar 2022, 22:41:05 »
Ja geht mW auch anders, so in der Art hat es bei mir funktioniert
defmod di_SonosCheck DOIF ([05:00] and [?Sonos] ne "opened" )(attr Sonos disable 1)(attr Sonos disable 0)
attr di_SonosCheck disable 1
attr di_SonosCheck do always
attr di_SonosCheck wait 0,10

Gruß Otto

@ Otto: Ich hätte noch mal eine ganz andere Frage, weis aber nicht genau wo ich sie am besten platzieren soll.

Ich müchte in der MyUtils mir eine Funktion bauen die ich zum dimmen verwenden kann, aber dazu müsste ich irgendwie auf eine Time.lib zugreifen, damit ich sagen kann starte bei 0% Helligkeit, nach 5 sekunden gehe auf 5% nach weiteren 5 Sekunden....
Gibts da irgendeine Mötlichkeit auf die Systemzeit o.ä. zuzugreifen?

Danke dir.

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 20829
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #8 am: 28 Januar 2022, 23:00:49 »
Hi,
ich weiß zwar nicht genau, was Du mit Time.lib meinst. Aber in der myUtils ist Perl, da gibt es z.B. time() die fortlaufende Zeit seit dem 1.1.1970 siehe
https://perldoc.perl.org/functions/time
localtime() liefert die Systemzeit.

Gruß Otto
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Offline tfriedrich85

  • Full Member
  • ***
  • Beiträge: 193
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #9 am: 28 Januar 2022, 23:22:18 »
Hi,
ich weiß zwar nicht genau, was Du mit Time.lib meinst. Aber in der myUtils ist Perl, da gibt es z.B. time() die fortlaufende Zeit seit dem 1.1.1970 siehe
https://perldoc.perl.org/functions/time
localtime() liefert die Systemzeit.

Gruß Otto
die localtime() kenne ich, aber kann ich damit sowas wie ein delay(2000) machen um 2 Sekunden zu warten um danach den nächsten Befehl auszuführen?

Danke dir!

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 20829
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #10 am: 29 Januar 2022, 00:07:04 »
Das Problem in myUtils ist: Du könntest einfach Perl sleep() verwenden, aber der gesamte Vorgang blockiert FHEM.

andere Idee dazu:
defmod Button_Dim_notify notify MQTT2_mqtt2c:FB12_Btn_02:.trigger:.Long_.*|MQTT2_mqtt2c:FB12_Btn_01:.trigger:.Long_.* { \
if ( $EVENT =~ /Btn_02/ ) { fhem("set HUEGroup4 dimUp") };;\
if ( $EVENT =~ /Btn_01/ ) { fhem("set HUEGroup4 dimDown") }\
}
attr Button_Dim_notify disabledAfterTrigger 6
disabledAfterTrigger verhindert die nächste Stufe für die Zeit von 6 sekunden

Ich habe was anderes in der sonos2mqttUtils verwendet:
for (1..$d) { my $nvol = $arr[1] + $_*$s; fhem("sleep $_;set $NAME volume $nvol") }hier verwende ich FHEM sleep für die nächste Stufe. FHEM sleep blockiert nicht. ;)

« Letzte Änderung: 29 Januar 2022, 00:10:23 von Otto123 »
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2437
  • FHEMinist
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #11 am: 29 Januar 2022, 06:56:54 »
FHEM sleep blockiert nicht. ;)

Aber nur, wenn auf das Sleep, so wie von dir dargestellt direkt ein weiteres Kommando folgt. Alleinstehend würde es sehr wohl blockieren ;)

Ich nutze das übrigens in meinen MyUtils auch so, wenn ich eine Verzögerung o.ä. brauche, da ich zu bequem bin, das über das zugrundeliegende Timerhandling selbst zu machen.

Es müsste sogar so etwas funktionieren:

fhem("sleep 5;{ mySubSomewhere('blah') }");

also perl-Code als nachfolgender Befehl.

gb#
« Letzte Änderung: 29 Januar 2022, 07:03:36 von Benni »

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 20829
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #12 am: 29 Januar 2022, 10:36:25 »
Zitat
Alleinstehend würde es sehr wohl blockieren ;)
allerdings mit Ansage, im Gegensatz zum Perl sleep. Man bekommt einen entsprechenden Hinweis im Log.
Es müsste sogar so etwas funktionieren:
Dazu hat Rudi vor einiger Zeit mal gesagt: die Mischung von FHEM Befehlstypen in einer Kommandozeile kann funktionieren, kann aber auch zu eigenartigen Ergebnissen führen - siehe letzten Satz hier https://fhem.de/commandref_DE.html#command

Aber ich verwende es auch öfters :)
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz
Informativ Informativ x 1 Liste anzeigen

Offline Benni

  • Developer
  • Hero Member
  • ****
  • Beiträge: 2437
  • FHEMinist
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #13 am: 29 Januar 2022, 10:44:34 »
Rudi vor einiger Zeit mal gesagt: die Mischung von FHEM Befehlstypen in einer Kommandozeile kann funktionieren, kann aber auch zu eigenartigen Ergebnissen führen - siehe letzten Satz hier https://fhem.de/commandref_DE.html#command

Danke für den Hinweis!

Das habe ich tatsächlich an einigen stellen seit langem, ohne Probleme in Verwendung. Kommt aber jetzt auf meine Überarbeitungsliste, die ich gerade abarbeite :)

gb#

Offline Otto123

  • Tester
  • Hero Member
  • ****
  • Beiträge: 20829
  • schon mal restore trainiert?
    • Otto's Technik Blog
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #14 am: 29 Januar 2022, 12:07:52 »
rein vom Gefühl her würde ich sagen: die Kombination von - sleep xxx; ein beliebiger FHEM Befehlstyp - ist ok.  ;)
Viele Grüße aus Leipzig
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz
Gefällt mir Gefällt mir x 1 Zustimmung Zustimmung x 1 Liste anzeigen

Offline tfriedrich85

  • Full Member
  • ***
  • Beiträge: 193
Antw:Ausgabeprobleme mit Sonos Speak
« Antwort #15 am: 31 Januar 2022, 14:41:48 »
z.B. täglich 1 Uhr define Reset_Sonos at *01:00:00 defmod DeinSonosdevice SONOS SonosParameters
Besser wär natürlich die Ursache zu lösen.

Ich hätte persönlich Interesse daran, dass ein SONOS.Nutzer mein UPnP-Paket testen würde.

Läuft es überhaupt gleichzeitig ? Welche technischen Probleme(evtl. FHEM Absturz,-Blockierungen) ?
Evtl. ließe sich dort ein Grund erkennen, dass die Verbindung verloren geht. Vermutlich wenigstens den Problemzeitpunkt, so dass der workaround mit einem notify anstatt dem zyklischen at angestoßen werden kann.

Grüße Markus

Danke Markus: Dein Vorschlag läuft seit einigen Tagen gut.