NEWS
SOLVED Sonos Adapter aktualisiert nur teilweise
-
@cash Hallo cash, es sind zwar 3 Sonos derzeit aufgestellt aber ich habe mittlerweile nur noch eine Play 3 zum testen im Adapter eingetragen. Die ist auch die, die über LAN angeschlossen ist. der Gruppencontroller war eigentlich eine Play 5 aber das ist mittlerweile ja zu Testzwecken geändert. Der Adapter hat bis vor ein paar Tagen auch sehr zuverlässig bei mir funktioniert, aber mittlerweile bleiben einige Datenpunkte einfach mit "Roteintrag" stehen, als wären sie tot. Das sind leiter auch die states. Über Play und stop button lässt sich die Sonos normal über den Adapter steuern, nur bleiben die states auf false bzw. stop stehen. Einige andere Datenpunkte bleiben auch auf rot aber die wären mir nicht wichtig. Ohne states kann ich aber nicht vernünftig steuern.
-
@Bluefox du bist mein Held! Vielen vielen Dank! Mit deiner Überarbeitung für Version 2.0.0 funktioniert bei mir die aktualisierung aller Datenpunkte wieder.
-
OK, jetzt wird es seltsam. Seit eben kann ich über state bzw. state_simple auch die box steuern (mit play/stop bzw. true/false), aber wenn ich sie über andere wege anschalte aktualisieren sie sich noch immer nicht. state_simple bleibt auf false, state auf stop.
-
Kann es sein das Du vorher die Sonos Geräte nicht per Lan angeschlossen hattest und sie da noch funktionierten?
Richte den Sonos mal ohne Kabel ein und ich würde fast wetten das die Datenpunkte dann wieder aktualisiert werden!?
-
Nein, daran hat sich nichts geändert aber ich kann ja das setup mal etwas durchtesten. Nur kurze Frage..."ohne LAN"? Eine muss doch physisch an den Router. Oder eine bridge, korrekt?
-
@TJ1973 Nein musst du nicht. Hab keinen einzigen Speaker (hab Play 1, 3 und one) an LAN angeschlossen. Glaub das gabs früher mal. Seit ein paar Jahren nicht mehr.
Hab irgendwann mal gelesen, dass man ein Sonos System per LAN anschließen kann dann kommuniziert das System über eigenes Funksystem und nicht mehr über WLAN.
Hier der Link
https://gdgts.de/sonosnet-sonos-funknetzwerk/ -
Wenn ein Sonos per Lan angeschlossen ist baut es sein eigenes WLAN auf. Das soll stabiler sein. Allerdings ist es ja dann nicht mehr in Deinem LAN bzw nur der eine. Ich hätte deshalb vermutet das ioBroker dann von den Sonos Geräten nichts mit bekommt.
Ich betreibe alle meine Geräte über das normale WLAN und habe keine Probleme.
Wie gesagt sicher bin ich mir nicht, da ich nicht weiß wie der Adapter technisch die Daten von Sonos bezieht. War nur eine Vermutung.
-
@cash Ich habe den SONOS Adapter seit einigen Jahren problem mit insgesamt 13 Sonos Geräten am laufen. Davon sind 5 per LAN und die anderen im SONOS Mesh eingerichtet.
Über ein Script wird bei jedem SONOS Gerät die Lautstärke gemonitort, bei größer 1 werden die states "play = true", "stop = false" und "state = play" gesetzt.
Bei Laustärke kleiner 2 entsprechend "play = false", "stop = true", und "state = stop".Und seit kurzem erhalte ich hierbei folgende Fehlermeldungen:
Am häufigsten spielen alle SONOS zusammen im "Partymodus" und hierbei ist "SONOS Wohnzimmer" immer der Coordinator.
Und dessen "state" Datenpunkt ist angeblich nicht mehr da.Im Grunde wird beim Aufruf nachwievor dennoch fast alles korrekt gesteuert, nur im SONOS Player kann ich sehen, dass "SONOS Wohnzimmer" nicht in "Stop" geht
-
Also das mit der Lautstärke hab ich mir jetzt abgekupfert....danke. Zumindest kann ich jetzt steuern. Diese Felder werden noch aktualisiert (speaker und group). Fehler gibt es bei mir "noch" keine. Wurde etwas upgedatet? Mir ist nichts bekannt. Letzte Woche kam ein CCU3 update und danach waren im iobroker keine Datenpunkte mehr. Aber auf der Vorgängerversion klappt es sehr gut. Daher habe ich auch den Sonos Adapter unter unterschiedlichen Versionen getestet. Leider hier alles ohne Erfolg.
-
@TJ1973 sagte in Sonos Adapter aktualisiert nur teilweise:
Also das mit der Lautstärke hab ich mir jetzt abgekupfert
Ich hatte hierzu mal ein HowTo verfasst (müßte ich mal aktualisieren
).
Das Script ist übrigens von @pix -
@BBTown Hab das How to gefunden....wie gesagt, gefällt mir gut und funktioniert mit den vorhandenen Datenpunkten. leider ist das Problem noch immer wie gehabt. Ich werde posten, sobald ich verstanden habe was die Datenpunkte "lähmt". Leider hat auch der Wechsel von WLAN auf LAN bzw. umgekehrt nicht geholfen.
-
@TJ1973 hast du eine Lösung gefunden für die nicht statfindende Aktualisierung der Datenpunkte? ich habe eine ähnliches Verhalten ...
-
Habe mal eine komplett neu iobroker installation gemacht und auch die aktuelleste Sonos Adapter Version direkt von Github genommen.
Auch damit werden nur ein paar Datenpunkte aktualisert und auch Weboberfläche vom Adpater funktioniert nicht.
Im LOG sind folgende fehler aufgetaucht:
2019-08-01 20:46:31.869 - info: sonos.0 terminating 2019-08-01 20:46:31.966 - error: Caught by controller[0]: (node:8791) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'startsWith' of undefined 2019-08-01 20:46:31.971 - error: Caught by controller[0]: at isRadio (/opt/iobroker/node_modules/iobroker.sonos/node_modules/sonos-discovery/lib/prototypes/Player/getUriType.js:4:14) 2019-08-01 20:46:31.972 - error: Caught by controller[0]: at Player.getUriType (/opt/iobroker/node_modules/iobroker.sonos/node_modules/sonos-discovery/lib/prototypes/Player/getUriType.js:18:10) 2019-08-01 20:46:31.972 - error: Caught by controller[0]: at parseTrackMetadata.then.track (/opt/iobroker/node_modules/iobroker.sonos/node_modules/sonos-discovery/lib/models/Player.js:243:43) 2019-08-01 20:46:31.972 - error: Caught by controller[0]: at process._tickCallback (internal/process/next_tick.js:68:7) 2019-08-01 20:46:31.972 - error: Caught by controller[1]: (node:8791) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) 2019-08-01 20:46:31.972 - error: Caught by controller[1]: (node:8791) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 2019-08-01 20:46:31.972 - error: Caught by controller[2]: (node:8791) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'startsWith' of undefined 2019-08-01 20:46:31.973 - error: Caught by controller[2]: at isRadio (/opt/iobroker/node_modules/iobroker.sonos/node_modules/sonos-discovery/lib/prototypes/Player/getUriType.js:4:14) 2019-08-01 20:46:31.973 - error: Caught by controller[2]: at Player.getUriType (/opt/iobroker/node_modules/iobroker.sonos/node_modules/sonos-discovery/lib/prototypes/Player/getUriType.js:18:10) 2019-08-01 20:46:31.973 - error: Caught by controller[2]: at parseTrackMetadata.then.track (/opt/iobroker/node_modules/iobroker.sonos/node_modules/sonos-discovery/lib/models/Player.js:243:43) 2019-08-01 20:46:31.973 - error: Caught by controller[2]: at process._tickCallback (internal/process/next_tick.js:68:7) 2019-08-01 20:46:31.973 - error: Caught by controller[3]: (node:8791) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2)
@apollon77 ich denke hier passt der Fehler besser hin, Danke für deine Unterstützung
-
Bitte GitHub neu versuchen
-
@apollon77 Vielen Dank für deine Änderungen und Unterstützung.
Ich habe die aktuelle Version vom GIT installiert, allerdings wurden dann die Datenpunkte immer noch nicht aktualisiert.
Aber es gab auch keine Meldung im LOG
Dann hab ich die Sonos Speaker entfernt und im Adapter nochmal neu hinzu gefügt, dann gab es im LOG folgende Fehlermeldungen:
019-08-02 14:36:27.545 - info: host.iobroker stopInstance system.adapter.sonos.0 2019-08-02 14:36:27.545 - info: host.iobroker stopInstance system.adapter.sonos.0 killing pid 4619 2019-08-02 14:36:27.567 - info: sonos.0 terminating 2019-08-02 14:36:27.624 - error: Caught by controller[0]: (node:4619) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'startsWith' of undefined 2019-08-02 14:36:27.625 - error: Caught by controller[0]: at isRadio (/opt/iobroker/node_modules/sonos-discovery/lib/prototypes/Player/getUriType.js:4:14) 2019-08-02 14:36:27.625 - error: Caught by controller[0]: at Player.getUriType (/opt/iobroker/node_modules/sonos-discovery/lib/prototypes/Player/getUriType.js:18:10) 2019-08-02 14:36:27.626 - error: Caught by controller[0]: at parseTrackMetadata.then.track (/opt/iobroker/node_modules/sonos-discovery/lib/models/Player.js:243:43) 2019-08-02 14:36:27.626 - error: Caught by controller[0]: at process._tickCallback (internal/process/next_tick.js:68:7) 2019-08-02 14:36:27.626 - error: Caught by controller[1]: (node:4619) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1) 2019-08-02 14:36:27.626 - error: Caught by controller[1]: (node:4619) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code. 2019-08-02 14:36:27.627 - error: Caught by controller[2]: (node:4619) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'startsWith' of undefined 2019-08-02 14:36:27.627 - error: Caught by controller[2]: at isRadio (/opt/iobroker/node_modules/sonos-discovery/lib/prototypes/Player/getUriType.js:4:14) 2019-08-02 14:36:27.627 - error: Caught by controller[2]: at Player.getUriType (/opt/iobroker/node_modules/sonos-discovery/lib/prototypes/Player/getUriType.js:18:10) 2019-08-02 14:36:27.627 - error: Caught by controller[2]: at parseTrackMetadata.then.track (/opt/iobroker/node_modules/sonos-discovery/lib/models/Player.js:243:43) 2019-08-02 14:36:27.628 - error: Caught by controller[2]: at process._tickCallback (internal/process/next_tick.js:68:7) 2019-08-02 14:36:27.628 - error: Caught by controller[3]: (node:4619) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) 2019-08-02 14:36:27.628 - info: host.iobroker instance system.adapter.sonos.0 terminated with code 156 () 2019-08-02 14:36:30.079 - info: host.iobroker instance system.adapter.sonos.0 started with pid 5072 2019-08-02 14:36:32.386 - info: sonos.0 starting. Version 1.8.0 in /opt/iobroker/node_modules/iobroker.sonos, node: v10.16.0 2019-08-02 14:36:32.511 - info: sonos.0 http sonos server listening on port 8080
-
Ich habe heute mal test weise in einer Testinstallation, den js-controller per Backup auf Version 1.5.11 "gestellt", direkt wurden alle Datenpunkte aktualisiert.
Es scheint also irgendwas in der Verbindung mit dem js-controller und dem adapter nicht zu passen.
Gibt es denn einen offiziellen Way to go für einen Downgrade vom js-controller?
-
Das kann an sich nicht sein. Die Änderungen zwischen controller 1.5.11 und 14 sind an ganz anderen Stellen.
Der "offizielle" Weg ist ein "npm install iobroker.js-controller@1.5.11 --production" im iobroker Verzeichnis, wbei das nicht hilft. Du bist bisher der einzige der dieses Problem hat ... Ich habe kein Sonos und kann daher nichts prüfen oder nachstellen.
-
@apollon77 Vielen Dank, ich werde noch ein bisschen rum probieren und test. Vlt finde ich ja noch raus, warum es auf einer neuen Installation nicht funktioniert. Auch wenn meine Javascript Kenntnisse etwas begrenzt sind.
Aber irgendwie hat es auch was damit zu tun, dass die Files im SonosCache Verzeichnis nicht angelegt werden..
-
Ok, nun muss ich meine Aussage korrigieren. Nach dem Einspielen des Backups meines Testsystems und anschließendem Update auf js-controller 1.5.14 funktioniert es weiter.
Was ich allerdings immer noch nicht hinbekomme, ist es zum laufen zu bringen auf einer frischen neuen Installation
Eigentlich wollte ich mit iobroker nicht mit dem einspielen eines Backups von meinem zu gemüllten Testsystems ...
Hat noch jemand eine Idee was man testen könnte?
-
@hesse vergleiche doch mal die relevanten files ob und was gleich oder anders ist.
-
@apollon77 Danke für Rückmeldung.
Da bin ich gerade dabei ... Was mir schonmal auffällt ist, dass /opt/iobroker/iobroker-data/sonoscache leer bleibt bei der neuen Installation. Bei der Testinstallation liegen dort mehrere Files drin.
Aber irgendwie blick ich beim Quellcode noch nicht so durch ...
Gibt es einen Grund warum vom sonos-discovery nur Version 1.1.3 verwendet wird, obwohl es schon Version 1.7.3 gibt?