NEWS
Test/Support Adapter SqueezeboxRPC
-
@Eisbaeeer hast du nur eine squeezebox oder auch einen LMS-Server?
Die squeezeboxen gehen auch ohne Server zu Hause, dann läuft aber alles über die Logitech Server.Der Adapter steuert nur den LMS-Server zuhause.
Welches Widget meinst du? In dem Bild oben sind nur Standard-Widgets verbaut.
- Die Lautstärkesteuerung ist der Circle-Knob aus den hqwidgets
- Die Playbuttons sind die On/Off-Buttonsaus hqwidgets mit Icons, die ich bei Iconfinder gefunden hab und etwas nachbearbeitet habe
- Das Bild ist das basic string img src, welches sich aus meinem Artwork-State befüttert, was sich passend zur Station oder Album entsprechend ändert
- Datum und Zeit ist SimpleClock und SimpleDate aus timeandweather
'Aktuell bin ich aber dabei Widgets für die Favoriten und die Playerauswahl zu bauen
-
Danke dass ihr euch die Mühe macht das zu testen.
-
Habe die 0.8.8 geladen.
Der Adapter läuft und tut was er soll.
Ein echter Fortschritt zum bisherigen Media Server Adapter.
Vielen Dank dafür! -
@zahnheinrich danke für den test. hast du es nochmal mit dem discovery probiert? oder komplett ohne getestet?
ich muss mal schauen, vor 2 jahren habe ich in Verbindung mit einem LMS-Plugin mir ein synology-image für virtualbox (ist glaub ich nicht ganz offiziell) gebaut um da drin was mit LMS zu testen. Ist natürlich nicht so wie mit echter Hardware.
-
@OliverW
@OliverW sagte in Neuer Adapter SqueezeboxRPC:
hast du nur eine squeezebox oder auch einen LMS-Server?
Jep, der läuft auf der gleichen Maschine. Und das bringt mich gleich zu dem Problem, dass dein Adapter den Port nutzen möchte, den Squeezebox wohl schon nutzt?
Ich bekomme folgende Meldung im log von iobroker:host.NAS 2019-05-15 11:27:45.513 error instance system.adapter.squeezeboxrpc.0 terminated with code 0 (OK) host.NAS 2019-05-15 11:27:45.513 error Caught by controller[4]: at process._tickCallback (internal/process/next_tick.js:104:9) host.NAS 2019-05-15 11:27:45.513 error Caught by controller[4]: at _combinedTickCallback (internal/process/next_tick.js:83:11) host.NAS 2019-05-15 11:27:45.513 error Caught by controller[4]: at _handle.lookup (dgram.js:219:18) host.NAS 2019-05-15 11:27:45.512 error Caught by controller[4]: at exports._exceptionWithHostPort (util.js:1043:20) host.NAS 2019-05-15 11:27:45.512 error Caught by controller[4]: at Object.exports._errnoException (util.js:1020:11) host.NAS 2019-05-15 11:27:45.512 error Caught by controller[4]: 2019-05-15 11:27:45.422 - squeezeboxrpc.0 Error: bind EADDRINUSE 0.0.0.0:3483 host.NAS 2019-05-15 11:27:45.512 error Caught by controller[3]: 2019-05-15 11:27:45.422 - squeezeboxrpc.0 uncaught exception: bind EADDRINUSE 0.0.0.0:3483 host.NAS 2019-05-15 11:27:45.510 error Caught by controller[2]: port: 3483 } host.NAS 2019-05-15 11:27:45.510 error Caught by controller[2]: address: '0.0.0.0', host.NAS 2019-05-15 11:27:45.510 error Caught by controller[2]: syscall: 'bind', host.NAS 2019-05-15 11:27:45.510 error Caught by controller[2]: errno: 'EADDRINUSE', host.NAS 2019-05-15 11:27:45.510 error Caught by controller[2]: code: 'EADDRINUSE', host.NAS 2019-05-15 11:27:45.509 error Caught by controller[2]: at process._tickCallback (internal/process/next_tick.js:104:9) host.NAS 2019-05-15 11:27:45.509 error Caught by controller[2]: at _combinedTickCallback (internal/process/next_tick.js:83:11) host.NAS 2019-05-15 11:27:45.509 error Caught by controller[2]: at _handle.lookup (dgram.js:219:18) host.NAS 2019-05-15 11:27:45.509 error Caught by controller[2]: at exports._exceptionWithHostPort (util.js:1043:20) host.NAS 2019-05-15 11:27:45.509 error Caught by controller[2]: at Object.exports._errnoException (util.js:1020:11) host.NAS 2019-05-15 11:27:45.509 error Caught by controller[2]: { Error: bind EADDRINUSE 0.0.0.0:3483 host.NAS 2019-05-15 11:27:45.508 error Caught by controller[1]: 2019-05-15 11:27:45.299 - debug: squeezeboxrpc.0 statesDB connected host.NAS 2019-05-15 11:27:45.508 error Caught by controller[0]: 2019-05-15 11:27:45.264 - debug: squeezeboxrpc.0 objectDB connected
bind EADDRINUSE 0.0.0.0:3483 --> ist schon belegt.
Hier noch der netstat mit laufendem LMS und gestoppten LMS.
root@NAS:~# netstat -al |grep 3483 tcp 0 0 *:3483 *:* LISTEN tcp 0 0 NAS.fritz.box:3483 SqueezeboxRadio.f:36193 VERBUNDEN udp 0 0 *:3483 *:* root@NAS:~# service logitechmediaserver stop root@NAS:~# netstat -al |grep 3483 tcp 0 0 NAS.fritz.box:3483 SqueezeboxRadio.f:36193 TIME_WAIT
Gruß Eisbaeeer
-
@Eisbaeeer
Danke Eisbaeeer, das war der richtige Hinweis. Eigentlich sollte es beim hören auf Broadcasts nicht zu diesen Konflikten kommen. Dafür gibt es bei beim einrichten ne eigene Option, die nicht gesetzt war (reuseaddr). Bei einem lokalen Test hat das funktioniert. Die Wildnis ist aber immer eine eigene Herausforderung.
Nach dem der Build bei Travis durch ist (diesmal dann auch schon mit node 12 Test),
wird die v0.8.9 nach npm gepublised
Für einen weiteren Test wäre ich dankbar. -
@OliverW sagte in Neuer Adapter SqueezeboxRPC:
@Eisbaeeer
Danke Eisbaeeer, das war der richtige Hinweis. Eigentlich sollte es beim hören auf Broadcasts nicht zu diesen Konflikten kommen. Dafür gibt es bei beim einrichten ne eigene Option, die nicht gesetzt war (reuseaddr). Bei einem lokalen Test hat das funktioniert. Die Wildnis ist aber immer eine eigene Herausforderung.
Nach dem der Build bei Travis durch ist (diesmal dann auch schon mit node 12 Test),
wird die v0.8.9 nach npm gepublised
Für einen weiteren Test wäre ich dankbar.Ich installiere mal direkt von Git, dann bekommst du gleich ne Rückmeldung
-
@OliverW sagte in Neuer Adapter SqueezeboxRPC:
Für einen weiteren Test wäre ich dankbar.
Hab eben mal die neue Version getestet. Mit diesen Einstellungen:
Leider geht der Prozess gleich auf die Bretter. Nicht entmutigen lassen. Das wird schon. Spreche da aus Erfahrung
host.NAS 2019-05-15 14:09:33.302 info object change system.adapter.squeezeboxrpc.0 host.NAS 2019-05-15 14:09:27.017 info Restart adapter system.adapter.squeezeboxrpc.0 because enabled host.NAS 2019-05-15 14:09:27.017 error instance system.adapter.squeezeboxrpc.0 terminated with code 0 (OK) Caught 2019-05-15 14:09:27.017 error by controller[4]: at process._tickCallback (internal/process/next_tick.js:104:9) Caught 2019-05-15 14:09:27.016 error by controller[4]: at _combinedTickCallback (internal/process/next_tick.js:83:11) Caught 2019-05-15 14:09:27.016 error by controller[4]: at _handle.lookup (dgram.js:220:14) Caught 2019-05-15 14:09:27.016 error by controller[4]: at Socket.emit (events.js:188:7) Caught 2019-05-15 14:09:27.016 error by controller[4]: at emitOne (events.js:96:13) Caught 2019-05-15 14:09:27.016 error by controller[4]: at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.squeezeboxrpc/lib/iosbserver.js:291:21) Caught 2019-05-15 14:09:27.016 error by controller[4]: 2019-05-15 14:09:26.960 - squeezeboxrpc.0 TypeError: Cannot read property 'error' of undefined Caught 2019-05-15 14:09:27.016 error by controller[3]: 2019-05-15 14:09:26.960 - squeezeboxrpc.0 uncaught exception: Cannot read property 'error' of undefined Caught 2019-05-15 14:09:27.015 error by controller[2]: at process._tickCallback (internal/process/next_tick.js:104:9) Caught 2019-05-15 14:09:27.015 error by controller[2]: at _combinedTickCallback (internal/process/next_tick.js:83:11) Caught 2019-05-15 14:09:27.015 error by controller[2]: at _handle.lookup (dgram.js:220:14) Caught 2019-05-15 14:09:27.015 error by controller[2]: at Socket.emit (events.js:188:7) Caught 2019-05-15 14:09:27.015 error by controller[2]: at emitOne (events.js:96:13) Caught 2019-05-15 14:09:27.015 error by controller[2]: at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.squeezeboxrpc/lib/iosbserver.js:291:21) Caught 2019-05-15 14:09:27.015 error by controller[2]: TypeError: Cannot read property 'error' of undefined Caught 2019-05-15 14:09:27.015 error by controller[1]: 2019-05-15 14:09:26.814 - debug: squeezeboxrpc.0 statesDB connected Caught 2019-05-15 14:09:27.014 error by controller[0]: 2019-05-15 14:09:26.773 - debug: squeezeboxrpc.0 objectDB connected squeezeboxrpc.0 2019-05-15 14:09:26.995 info terminating squeezeboxrpc.0 2019-05-15 14:09:26.961 info squeezeboxrpc unloaded squeezeboxrpc.0 2019-05-15 14:09:26.960 error at process._tickCallback (internal/process/next_tick.js:104:9) squeezeboxrpc.0 2019-05-15 14:09:26.960 error at _combinedTickCallback (internal/process/next_tick.js:83:11) squeezeboxrpc.0 2019-05-15 14:09:26.960 error at _handle.lookup (dgram.js:220:14) squeezeboxrpc.0 2019-05-15 14:09:26.960 error at Socket.emit (events.js:188:7) squeezeboxrpc.0 2019-05-15 14:09:26.960 error at emitOne (events.js:96:13) squeezeboxrpc.0 2019-05-15 14:09:26.960 error at Socket.<anonymous> (/opt/iobroker/node_modules/iobroker.squeezeboxrpc/lib/iosbserver.js:291:21) squeezeboxrpc.0 2019-05-15 14:09:26.960 error TypeError: Cannot read property 'error' of undefined squeezeboxrpc.0 2019-05-15 14:09:26.959 error uncaught exception: Cannot read property 'error' of undefined squeezeboxrpc.0 2019-05-15 14:09:26.891 info starting. Version 0.8.9 in /opt/iobroker/node_modules/iobroker.squeezeboxrpc, node: v6.17.1 squeezeboxrpc.0 2019-05-15 14:09:26.813 debug statesDB connected squeezeboxrpc.0 2019-05-15 14:09:26.766 debug objectDB connected host.NAS 2019-05-15 14:09:25.763 info instance system.adapter.squeezeboxrpc.0 started with pid 21339
-
Bei mir läuft der LMS auch auf der selben Maschine als Dienst.
Habe im Adapter von Hand als IP den localhost und als Port 9002.
Damit geht's einwandfrei. -
@zahnheinrich sagte in Neuer Adapter SqueezeboxRPC:
Bei mir läuft der LMS auch auf der selben Maschine als Dienst.
Habe im Adapter von Hand als IP den localhost und als Port 9002.
Damit geht's einwandfrei.Hmm, bei mir horcht der LMS auf default 9000 TCP. Hast du deinen auf 9002 geändert?
Laut den Logfiles liegt es ja auch nicht am Port 9000 sondern an der Autodiscover Funktionalität. Auf TCP 3483 horcht auch der LMS und somit kann der Adapter diesen Port nicht binden. Welche Version des Adapters hast du am laufen?
Gruß Eisbaeeer -
konnte nun noch den ein oder anderen Fehler in der Fehlerbehandlung des
server discoverys finden.
Auch konnte ich hier lokal nun testen, was passiert, wenn weitere services den port benutzen.
Auf ein neues mit der Version 0.8.10 die nun auf npm verfügbar ist. -
Hallo,
ich habe die discovery Funktion nochmal getestet, ohne Erfolg. Der Adapter wird nicht grün.
Der LMS läuft bei mir wie gesagt auf der Synology als Paket installiert (nicht als Container) mit den Standarteinstellungen, ich habe da nichts geändert.
So erreiche ich die LMS GUI über <Synology-IP>:9002, nur mit der Einstellung läuft auch dein Adapter (auch der "alte" Squeezebox-Adapter).
Über mein Handy steuere ich die Clients (alles Raspis) über die App Squeezer, hier allerdings über den Server-Port 9090.Edit: Mit der 8.10 geht der Adapter mit aktiviertem discovery auf grün, es wird jedoch kein gefundener Server angezeigt.
-
ok, dann stört das discovery wenigstens dort nicht wo es nicht funktioniert.
schön wäre es natürlich schon wenn wir raus finden an was es liegt.
ich gehe davon aus, dass du in den Einstellungen in die dropbox hineingeschaut hast?
Standardmäßig zeigt es dort erst einmal leer an, erst durch die Auswahl des Eintrags werden die Daten in die eigentlichen Felder übernommen.
Könntest du mir bitte auch ein Abzug deines Logfiles aus der Zeit machen,
In den Einstellungen sollte zuvor "Create debug output for server" angekreuzt sein. -
@OliverIO: Funktioniert einwandfrei ohne über Wochen schon stabil! Danke für den Adapter.
Da du nach einer Wunschliste fragst:
Ich bin aktuell noch "Anti-Alexa" würde aber gerne eine einseitige Kommunikation erlauben. Beispiel: Es klingelt. => LMS-Player spielen eine ausgewählte MP3 ab und danach wieder die vorherige Playlist an der selben Stelle. => Das als Feature wäre schon cool...Dann könnte man das noch weiter denken: Der Sayit-Adapter kann eine .mp3 erstellen. Diese kann man per Skript auf den Media-Pfad für LMS kopieren. Diese soll dann wiedergegeben werden und danach wieder die vorherige Playlist.
Ich denke alle die LMS nutzen könnten so von einer Sprachausgabe profitieren.
Vielleicht hast du ja eine Idee das umzusetzen.
-
@iobroker_Alex genau die gleiche Anforderung hatte ich auch schon im Sinn.
https://forums.slimdevices.com/showthread.php?110527-2nd-Stream-to-mix-into-the-main-streamzwar nicht so wie ich mir das idealerweise vorstellen würde gibt es eine Alternative
Das Announcement-Plugin für den LMS
https://forums.slimdevices.com/showthread.php?109096-Announce-LMS-Announce-play-announcements-notifications -
@iobroker_Alex Wenn du möchtest kannst du gerne auch mal mein widgetset ausprobieren.
Das befindet sich aktuell noch in alpha und ist noch nicht über das repository installierbar, sonder nur direkt aus github heraus:https://forum.iobroker.net/topic/22859/neues-widgetset-für-squeezeboxrpc-bitte-testen
und
https://github.com/oweitman/ioBroker.squeezeboxrpcwidgets -
Version 0.8.13 nun verfügbar im latest.
Dies umfasst ein grösseres Update in dem nun einige Widgets hinzugefügt wurden,
um relativ schnell eine eigene Visualisierung zur Steuerung seiner Player aufzubauen.
Aktuall vorhanden sind folgende Widgets:
Player-Auswahl
Favoriten-Auswahl
Play, Fwd, Rew-Knöpfe
Repeat-Button zur Ansteuerung von Titel oder Playlist-Wiederholung
Shuffle-Button für Zufallasuwahl aus Playlist oder AlbenWas noch fehlt:
- Playlist-Widget (zur Anzeige der aktuellen Playlist)
- Syncgroup-widget (zur Änderung der Syncgruppen der verschiedenen Playern)
Bitte gerne Testen und Rückmeldung hier im Forum oder im github Repo als Issue
-
Version 0.8.15 nun verfügbar im latest
Es kam nun das SyncGroup-Widget dazu, mit dem man die Synchronisation verschiedener
Player steuern kann.
Umfangreiche Anpassungsmöglichkeiten der Farben und des Layouts sind möglich.
Hier eine aktuelle Übersicht über die vorhandenen Widgets
-
@OliverIO
Der Adapter funktioniert einwandfrei, vielen Dank dafür. Allerdings habe ich Probleme mit den Widgets.Das Hinzufügen des "Players" Widget funktioniert. Das Auswählen der "SqueezeboxRPC Instanz" (squeezeboxrpc.0) funktioniert manchmal, manchmal nicht.
Hat das Widget dann doch die "SqueezeboxRPC Instanz" angenommen geht es bei Auswahl des "Anzeige Index" regelmäßig schief.Mit geht nicht meine ich, dass die VIS Gui komplett hängt. Wenn ich parallel noch die iobroker Website offen habe, hängt auch diese. Dann hilft nur ein Reload beider Seiten mit anschließendem Relogin.
Kennst du das Problem?
-
hast du die aktuellste Version 0.8.15?
ja ich kenne das Problem.
Das liegt daran, wenn die widgets sich in einer endlosschleife befinden,
weil etwas auf das sie warten nicht verfügbar ist.
beschreib mir nochmal genau deinen ablauf:- Player widget setzen
- dann die squeezeboxrpc.0 Instanz auswählen
Hier den Objekt-Editor öffnen und squeezeboxrpc.0 wählen
Danach sollten Knöpfe mit allen Playern erscheinen, die im Adapter bereits vorhanden sind.
Was meinst du mit
Hat das Widget dann doch die "SqueezeboxRPC Instanz" angenommen geht es bei Auswahl des "Anzeige Index" regelmäßig schief.
Gibt es Probleme beim bearbeiten des Anzeigeindexes? Hier gibt es das Problem, das vis einen automatischen Reload durchführt, sobald man ein paar Zeichen geändert hat. Am besten den Inhalt woanders aufbereiten und dann auf einmal einkopieren.
Format dieses Feldes sind Zahlen getrennt mit , (Komma)
Welche Browser benutzt du?
Wenn du Chrome oder Firefox benutzt, dann könntest du bitte mal die Consolenausgabe mir übermitteln
Chrome: rechte Maustaste im rechten Bereich des vis-Editors und dann "Untersuchen" auswählen.
Im dann öffnenden Bereich den Reiter "Console" öffnen.
Das am besten bereits vor dem hinzufügen des Widgets machen.Nachtrag: Ich habe gerade festgestellt, dass es unter besonderen Umständen mit der Texterzeugung noch Probleme gibt. Aktiviere bitte vor Auswahl der Instanz das Kästchen "CamelCase"