Sonos modul zurücksetzen / neu installieren

Begonnen von willib, 27 Juni 2017, 14:26:59

Vorheriges Thema - Nächstes Thema

willib

 Am Wochenende habe ich mir mein Sonos Modul zerschossen. Ich habe einen neuen Player in mein Netzwerk eingebunden ohne das Modul auf disabled zu setzen. Zu allem Überfluss habe ich dann noch alle Player von meinem WLAN ins SONOSNET geschoben als ich ein LAN Kabel an den neuen Player angeschlossen habe. Jetzt habe ich einen unnamed Room in FHEM und meine 3 alten Player stehen auf disappeared. Egal ob ich das LAN Kabel dran habe oder nicht.
Was ist nun die beste Lösung? Soweit ich weiß kann man das Modul nicht einfach zurücksetzen. Ich würde alles was das Modul betrifft aus der config löschen und dann neu definieren. Ist das der richtige Weg? Hat jemand dazu Tipps?   
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Otto123

Hi,

ich will nicht sagen es ist der richtige Weg, den kenne ich nicht.

Aber was Du vorhast ist sicher pragmatisch. delete Sonos.* Würde es ziemlich schnell machen.
Du solltest den Server neu starten um den UPNP Prozess zu beenden.

Aber: ungeprüft und ohne Garantie!

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

willib

Danke.
Würde das auch meine notifies mit Sonos im Namen löschen?

Ich habe mein Problem vermutlich gelöst indem ich den Befehl
set Sonos RescanNetwork
ausgeführt habe.
Ich habe noch nicht alles getestet aber es scheint wieder alles zu gehen.
FHEM in Debian 10 LXC unter Proxmox auf NUC, Homematic, Hue, Intertechno, Jeelink, RFXTRX, Harmony Hub, VU+ Uno 4K, Sonos, AMAD

Otto123

Moin,

ich wollte nur vor Augen führen, dass Du es nicht "zu Fuß" machen musst. Es gibt mehrer Möglichkeiten. Der list Befehl, regEx und der FILTER bietet Dir jede Möglichkeit es ohne Konsequenz zu Testen, bevor Du Tastsachen schaffst. 8)
list Sonos.*
list .*:FILTER=TYPE=SONOS.*


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

DeeSPe

Zitat von: Otto123 am 29 Juni 2017, 11:39:41
Moin,

ich wollte nur vor Augen führen, dass Du es nicht "zu Fuß" machen musst. Es gibt mehrer Möglichkeiten. Der list Befehl, regEx und der FILTER bietet Dir jede Möglichkeit es ohne Konsequenz zu Testen, bevor Du Tastsachen schaffst. 8)
list Sonos.*
list .*:FILTER=TYPE=SONOS.*


Gruß Otto

Geht auch ohne FILTER!
list TYPE=SONOS.*

Oder gleich alle löschen mit:
delete TYPE=SONOS.*

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Otto123

#5
Moin,

im übrigen kann ich nur davor warnen, mit dem hier diskutierten wirklich zu expermentieren. Ich habe einen delete Sonos_.*abgesetzt um alle Player zu löschen um sie anschließend neu definieren zu lassen.
Das endet mit 100 % CPU Last für Perl und drei letzten Einträgen im Log
2017.07.14 09:42:29 1: PERL WARNING: Deep recursion on subroutine "main::SONOS_getSonosPlayerByUDN" at ./FHEM/00_SONOS.pm line 9870.
2017.07.14 09:42:29 1: PERL WARNING: Deep recursion on subroutine "main::SONOS_Log" at ./FHEM/00_SONOS.pm line 9619.
Out of memory!


Nach 15 min habe ich dann neu gestartet.

Danach habe ich meine Sonos define Zeilen über Raw Definition gesichert und ein delete Sonos.* abgesetzt.
Anschließend die define Zeilen wieder ausgeführt. Auch dieser Versuch endet mit den oben genannten Zeilen.

Was offenbar als "sauberer Weg" funktioniert:
attr Sonos disable 1

Damit wird der Subprozesse offenbar sauber beendet. Man sollte etwas warten, dass auch der Prozess wirklich beendet ist -> Eintrag im Logfile
Dann kann man die Sonos Definitionen löschen und mit seinen vorher kopierten Raw Def Anweisungen neu anlegendelete Sonos.*
defmod Sonos SONOS ...
...


Im Übrigen führt auch ein einfaches defmod Sonos SONOS ... zu 100 % CPU Last. In dem Fall kann man den Subprozess mit  attr Sonos disable 1 aber noch stoppen und mit attr Sonos disable 0 wieder starten.

Meine Modulversion mit der ich dies durchgeführt habe:00_SONOS.pm           14551 2017-06-21 13:12:15Z Reinerlein
21_SONOSPLAYER.pm     14546 2017-06-20 11:45:17Z Reinerlein


Der Grund für meine Aktion war eine "Doppeldarstelllung" aller Player die nach einem der letzten Updates passiert war. Ich hatte quasi die alte Ansicht mit 3D Knöpfen und eine neue Ansicht mit 2D Knöpfen übereinander.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Reinerlein

Hallo Otto,

im Normalfall wird das von mir automatisch angelegte auch wieder automatisch gelöscht.

Das bedeutet, wenn ich einen SonosPlayer-Device lösche, dann werden auch die automatisch erzeugten ReadingsGroups (für die Listendarstellungen) mit gelöscht.

Wenn ich das Sonos-Device lösche, werden erst alle Playerdevices gelöscht (und damit auch die Readingsgroups daran), und dann erst das Sonos-Device.
Und wenn man gerade viel aktiv im Sonossystem laufen hat (aktive Musikwiedergabe halt :) ), dann empfiehlt sich u.U. vorher ein

attr Sonos disable 1
In meinen Tests brauchte ich das nicht, da es so schnell erledigt war, dass keinerlei Mitteilung vom SubProzess mehr dazwischen kam...

In der aktuellen Version wird dabei auch der SubProzess sauber beendet. Das war vorher, glaube ich, noch ein Problem...
Auch deinen Hinweis mit dem defmod werde ich versuchen nachzustellen (kann allerdings noch etwas dauern, da ich gerade etwas länger im Urlaub bin :) ). Kommt das Problem auch mit der aktuellsten Version?
Ich hatte da gerade in diesen CPU-Dingen ein paar Sachen gefixt...

Danach sollte man dann bei Bedarf die ganzen selber angelegten Devices, die von Sonos abhängig sind, entfernen...

Grüße
Reiner

Reinerlein

Hallo Otto,

das mit der 100% CPU-Last bei defmod habe ich gefixt. Siehe https://forum.fhem.de/index.php/topic,74242.0.html

Grüße
Reiner

Otto123

Hallo Reiner,

ich habe oben noch der Vollständigkeithalber meine Version eingetragen. Ich werde morgen ein update machen und alles nochmal testen.

Für mich heißt Deine Antwort im Umkehrschluss: Ich habe meine Sonos Landschaft mit define Sonos SONOS implementiert, die hat alles automatisch gemacht, also muss der Abriss auch wieder einfach mit einem delete Sonos erfolgen und alles passiert automatisch. Wäre soweit die korrekte Vorgehensweise? Dann war mein Fehler die automatisch erzeugten Devices "von Hand" zu löschen.

Ich habe mit der etwas älteren Version jetzt genau dies probiert, Ergebnis: list Sonos.*
Sonos_BadRG_Queue
Sonos_BadWanneRG_Queue
Sonos_BueroRG_Queue
Sonos_KuecheRG_Queue
Sonos_WohnzimmerRG_Queue


Hat also so nicht vollständig geklappt, ich werde bis morgen warten und dann nochmal probieren.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Reinerlein

Hi Otto,

ja, die Queues blieben in der etwas älteren Version noch übrig. Das hatte ich mit dem Update vom 5.7.2017 nachgezogen :)

Grüße
Reiner

Axel_S

#10
Hallo,

nachdem mein FHEM auf dem Raspi inklusive 3 Sonos-Playern (2x Play1, 1x Bridge) seit mehr als einem Jahr völlig problemlos läuft, sind seit 2 Tagen plötzlich alle 3 Player "disappeared". Neustart (sowohl FHEM als auch der kpl. Raspi) sowie disable/enable des Sonos-Moduls haben nichts gebracht. Aufgefallen ist mir, das bei "LastProcessAnswer" im Sonos-Modul steht: "2100-01-01 00:00:00     2017-08-06 10:02:13"

Probehalber habe ich ein Update vom Juni eingespielt (Komplettbackup Raspi - nicht nur FHEM) auch dort kann ich die Player nicht wieder zum Leben erwecken. Ein Löschen aller Sonos-Devices und neuanlegen (define Sonos SONOS) erzeugt zwar eine Sonos-Instanz, aber die Player werden nicht erkannt. Ich hab gerade mal den Loglevel auf verbose=5 gestellt und folgendes erhalten:

2017.08.06 11:04:27 0: SONOS0: Retries left (wait 30s): 9
2017.08.06 11:04:32 3: Opening Sonos device localhost:4711
2017.08.06 11:04:32 3: Can't connect to localhost:4711: Verbindungsaufbau abgelehnt
2017.08.06 11:04:57 0: SONOS0: Can't bind Port 4711: Bind failed: Die Adresse wird bereits verwendet at ./FHEM/00_SONOS.pm line 10054.

2017.08.06 11:04:57 0: SONOS0: Retries left (wait 30s): 8
2017.08.06 11:04:58 3: Abfahrt: Read response to get01 didn't match any Reading
2017.08.06 11:05:27 1: SONOS0: ./FHEM/00_SONOS.pm is listening to Port 4711
2017.08.06 11:05:32 3: SONOS0: Connection accepted from localhost:34101
2017.08.06 11:05:32 5: SW: Establish connection

2017.08.06 11:05:32 1: localhost:4711 reappeared (Sonos)
2017.08.06 11:05:33 5: SONOS0: SetData:Sonos:5:-:syn:::0:Sonos_Kueche,Sonos_Schlafzimmer,Sonos_Wohnzimmer:RINCON_949F3E04173E01400_MR,RINCON_949F3E70B1E601400_MR,RINCON_000E58AAE03C01400_MR
2017.08.06 11:05:33 5: SW: SetData:Sonos:5:-:syn:::0:Sonos_Kueche,Sonos_Schlafzimmer,Sonos_Wohnzimmer:RINCON_949F3E04173E01400_MR,RINCON_949F3E70B1E601400_MR,RINCON_000E58AAE03C01400_MR

2017.08.06 11:05:33 5: SONOS0: Received: 'SetData:Sonos:5:-:syn:::0:Sonos_Kueche,Sonos_Schlafzimmer,Sonos_Wohnzimmer:RINCON_949F3E04173E01400_MR,RINCON_949F3E70B1E601400_MR,RINCON_000E58AAE03C01400_MR'
2017.08.06 11:05:33 5: SONOS0: SetValues:SONOS:INTERVAL=30|targetSpeakURL=%5C%5C192.168.100.83%5CSonosSpeak|NAME=Sonos|targetSpeakDir=%2Fmnt%2FSonosSpeak|targetSpeakFileTimestamp=1|targetSpeakMP3FileDir=%2Fmnt%2FSonosSpeak
2017.08.06 11:05:33 5: SW: SetValues:SONOS:INTERVAL=30|targetSpeakURL=%5C%5C192.168.100.83%5CSonosSpeak|NAME=Sonos|targetSpeakDir=%2Fmnt%2FSonosSpeak|targetSpeakFileTimestamp=1|targetSpeakMP3FileDir=%2Fmnt%2FSonosSpeak

2017.08.06 11:05:33 5: SONOS0: Received: 'SetValues:SONOS:INTERVAL=30|targetSpeakURL=%5C%5C192.168.100.83%5CSonosSpeak|NAME=Sonos|targetSpeakDir=%2Fmnt%2FSonosSpeak|targetSpeakFileTimestamp=1|targetSpeakMP3FileDir=%2Fmnt%2FSonosSpeak'
2017.08.06 11:05:33 5: SONOS0: SetValues:RINCON_949F3E04173E01400_MR:presence=disappeared|minVolume=0|transportState=STOPPED|getAlarms=1|NAME=Sonos_Kueche
2017.08.06 11:05:33 5: SW: SetValues:RINCON_949F3E04173E01400_MR:presence=disappeared|minVolume=0|transportState=STOPPED|getAlarms=1|NAME=Sonos_Kueche

2017.08.06 11:05:33 5: SONOS0: Received: 'SetValues:RINCON_949F3E04173E01400_MR:presence=disappeared|minVolume=0|transportState=STOPPED|getAlarms=1|NAME=Sonos_Kueche'
2017.08.06 11:05:33 5: SONOS0: SetValues:RINCON_949F3E70B1E601400_MR:transportState=STOPPED|presence=disappeared|minVolume=0|NAME=Sonos_Schlafzimmer|getAlarms=1
2017.08.06 11:05:33 5: SW: SetValues:RINCON_949F3E70B1E601400_MR:transportState=STOPPED|presence=disappeared|minVolume=0|NAME=Sonos_Schlafzimmer|getAlarms=1

2017.08.06 11:05:33 5: SONOS0: Received: 'SetValues:RINCON_949F3E70B1E601400_MR:transportState=STOPPED|presence=disappeared|minVolume=0|NAME=Sonos_Schlafzimmer|getAlarms=1'
2017.08.06 11:05:33 5: SONOS0: SetValues:RINCON_000E58AAE03C01400_MR:getAlarms=1|NAME=Sonos_Wohnzimmer|presence=disappeared|transportState=STOPPED|minVolume=0
2017.08.06 11:05:33 5: SW: SetValues:RINCON_000E58AAE03C01400_MR:getAlarms=1|NAME=Sonos_Wohnzimmer|presence=disappeared|transportState=STOPPED|minVolume=0

2017.08.06 11:05:33 5: SONOS0: Received: 'SetValues:RINCON_000E58AAE03C01400_MR:getAlarms=1|NAME=Sonos_Wohnzimmer|presence=disappeared|transportState=STOPPED|minVolume=0'
2017.08.06 11:05:33 5: SW: StartThread

2017.08.06 11:05:33 5: SONOS0: Received: 'StartThread'
2017.08.06 11:05:33 3: SONOS1: UPnP-Thread gestartet.
2017.08.06 11:05:33 4: SONOS1: SONOS_Client_Data_Retreive(SONOS, attr, bookmarkSaveDir, .) -> DEFAULT
2017.08.06 11:05:33 4: SONOS1: Calling SONOS_LoadBookmarkValues("undef", "undef") ~ SaveDir: "."
2017.08.06 11:05:33 4: SONOS2: SONOS_Client_Data_Retreive(SONOS, def, INTERVAL, 0) -> 30
2017.08.06 11:05:33 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...
2017.08.06 11:05:33 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...


So langsam bin ich etwas ratlos. Hat jemand eine Idee woran das liegen könnte? Bin für jeden Tip dankbar.

Gruß Axel