NEWS
Test/Support Adapter SqueezeboxRPC
-
@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"
-
Ich nutze Firefox 67.0.4 x64. Installiert habe ich Version 0.8.15 per Adapter -> Installieren aus eigener URL -> Beliebig.
Player Widget:
(1)- Widget setzen
- per Button "Id vom Objekt wählen " die "SqueezeboxRPC Instanz:" wählen
- VIS und iobroker Website hängen, keine Ausgabe in der Debug Konsole
(2)
- Widget setzen
- per Copy&Paste "SqueezeboxRPC Instanz:" füllen
- VIS und iobroker Website hängen, keine Ausgabe in der Debug Konsole
1x ist es mir per Button gelungen die Instanz zu setzen. Dabei hatte ich den Objektbaum geöffnet.
Danach hatte ich die nach diversen Versuchen den "Anzeige Index" per Index "0" bzw. "1" bzw. "2" zu setzen aufgegeben. Das meinte ich mit geht es regelmäßig schief.
Aber nach deinen Erläuterungen war die Interpretation des Feldes scheinbar eh nicht korrekt. Hier ist - so interpretiere ich es - eine änderbare Reihenfolge der Player getrennt per Komma gemeint. Korrekt?Das selbe Verhalten habe ich heute auch, VIS hängt sofort beim Wählen der "SqueezeboxRPC Instanz" egal ob per Copy&Paste oder Button.
Da ich weiter nicht komme, kann ich dir leider auch keine Ausgabe der Browser Konsole zukommen lassen. Was kann ich sonst tun um zu helfen?
Nachtrag zum Nachtrag:
"Umbruch von Camelcase" ist aktiviert. -
danke, ich versuche es mal mit dem firefox nachzustellen
Wie heißen deine Player? Da ich einen Mechanismus drin habe, der versucht die ideale Schriftgröße
mit Zeilenumbruch zu ermitteln, kann es auch da evtl. daran liegen. Da könnte auch noch Potential für eine Endlosschleife liegen. -
Ok, ich habe was gefunden, wo der Firefox etwas anders macht als der Chrome.
Ich habe nun alle Widgets im Firefox einmal in eine View eingebunden
und grob getestet. Bisher sind keine weiteren 'Schwierigkeiten aufgefallen.
Version 0.8.16 ist bei npm hochgeladen und auch per github verfügbar.
Ich bin gespannt, ob das problem mit der Auswahl der Instanz sich damit auch behoben hat.
Allerdings hatte ich in meinem Firefox dieses Problem nicht. -
Meine Player heißen wie folgt:
squeezeboxrpc.0.Players.Esszimmer
squeezeboxrpc.0.Players.Esszimmer + Kueche
squeezeboxrpc.0.Players.Esszimmer + Kueche + Terrasse
squeezeboxrpc.0.Players.Esszimmer1
squeezeboxrpc.0.Players.Esszimmer2
squeezeboxrpc.0.Players.Kueche
squeezeboxrpc.0.Players.TerrasseFalls das eine Rollse spielt. Ich habe diverse Player per LMC Plugin Geräte Gruppen v0.9.1 gruppiert:
- Gruppe Esszimmer = Esszimmer1 + Esszimmer2
- Gruppe Esszimmer + Kueche + Terrasse aus denselben Namen
-
Bingo, läuft! Besten Dank dafür.
Musste nach dem Update 1x den Upload anschieben damit die neuen Widgets übernommen wurden - nur zur Info.
Das mit dem Autoscale der Fonts haut bei mir jedoch eher suboptimal hin:
Darf ich noch einmal auf das jqui select hinweisen
Ich hatte vor mir so etwas in der Art damit zu bauen (CSS passt noch nicht):
-
Wenn das automatische nicht funktioniert, kannst du auch selbst den Text zum jeweiligen Knopf erzeugen.
Ausserdem empfehle ich dir noch das zentrieren bei css Text einzustellen.Die 2.Widgetgruppe sind die Favoriten. Da wird nur ein Bild automatisch übernommen, da die Texte idR immer zu lang sind. Auch hier kannst du selbst ein Bild (externer Link geht auch) oder Text definieren oder
in der Favoritendatei das Bild auf dem LMS nachpflegen. Leider wird das durch die Gui nicht unterstützt und man muss selbst Hand an die OPML-Datei anlegen.
Kann dir da ein Beispiel schicken, wie es benannt sein muss, damit es im LMS, aber auch im adapter verwendet wird.dynamische objektID
Ich hatte ja im anderen Thread schon geschrieben, das ich nicht glaube, das das mit den dynamischen Objektids funktioniert. Das Binding schafft das nicht. Aber evtl. weiß aus der Runde hier noch jemand etwas anderes.