NEWS
Adapter für Squeezebox / Logitech Media Server
-
Falls es wen interessiert bzgl Ansteuerung squeezebox: hier eine Türglockensimulation.
Auf Knopfdruck (in meinem Fall ein Dash) werden die aktuellen Einstellungen des Players gelesen (volume,playlist,on/off,shuffle),
dann der Klingelton mit definierter Lautstärke abgespielt und danach wieder alles zurückgestellt (fast alles, der aktuelle Song wird wieder von Anfang gespielt).
[ { "id": "138e678a.c539d8", "type": "tab", "label": "Squeezebox_Dash" }, { "id": "90148afc.654368", "type": "tcp request", "z": "138e678a.c539d8", "server": "big", "port": "9090", "out": "sit", "splitc": "0", "name": "", "x": 905, "y": 137, "wires": [ [ "652e648f.9b6e4c" ] ] }, { "id": "c2dba628.a96608", "type": "function", "z": "138e678a.c539d8", "name": "play sound", "func": "\nmsg.topic = \"playsound\"\nmsg.payload = \"00:04:20:28:87:d3 playlist save aktuell\\n\"\nmsg.payload += \"00:04:20:28:87:d3 playlist play /mnt/sound/system/Doorbell.mp3\\n\"\nmsg.payload += \"00:04:20:28:87:d3 mixer volume 80\\n\"\nreturn msg;", "outputs": 1, "noerr": 0, "x": 496, "y": 119, "wires": [ [ "959c06f9.8736a8" ] ] }, { "id": "652e648f.9b6e4c", "type": "function", "z": "138e678a.c539d8", "name": "buffer to string", "func": "\nmsg.payload = msg.payload.toString()\nreturn msg;\n\n", "outputs": 1, "noerr": 0, "x": 1072, "y": 180, "wires": [ [ "f492629.714d9a" ] ] }, { "id": "5e3aaa47.482454", "type": "ioBroker in", "z": "138e678a.c539d8", "name": "Playdoh", "topic": "amazon-dash.0.ac-63-be-fa-2d-8c.pressed", "payloadType": "value", "onlyack": "", "func": "rbe", "gap": "", "x": 91, "y": 48, "wires": [ [ "318a4c7d.ead9e4" ] ] }, { "id": "318a4c7d.ead9e4", "type": "switch", "z": "138e678a.c539d8", "name": "", "property": "payload", "propertyType": "msg", "rules": [ { "t": "eq", "v": "true", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 244, "y": 69, "wires": [ [ "93ae70d0.75638", "72d723ac.84dedc" ] ] }, { "id": "93ae70d0.75638", "type": "delay", "z": "138e678a.c539d8", "name": "wait", "pauseType": "delay", "timeout": "10", "timeoutUnits": "milliseconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 356, "y": 113, "wires": [ [ "c2dba628.a96608" ] ] }, { "id": "72d723ac.84dedc", "type": "function", "z": "138e678a.c539d8", "name": "read settings", "func": "\nmsg.payload = \"\"\n\nmsg.payload += \"00:04:20:28:87:d3 playlist shuffle ?\\n\"\nmsg.payload += \"00:04:20:28:87:d3 mixer volume ?\\n\"\nmsg.payload += \"00:04:20:28:87:d3 power ?\\n\"\n\nmsg.topic = \"read settings\";\nreturn msg;", "outputs": 1, "noerr": 0, "x": 457, "y": 67, "wires": [ [ "959c06f9.8736a8" ] ] }, { "id": "959c06f9.8736a8", "type": "delay", "z": "138e678a.c539d8", "name": "", "pauseType": "rate", "timeout": "5", "timeoutUnits": "seconds", "rate": "10", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 718, "y": 107, "wires": [ [ "90148afc.654368" ] ] }, { "id": "f492629.714d9a", "type": "switch", "z": "138e678a.c539d8", "name": "only reads", "property": "topic", "propertyType": "msg", "rules": [ { "t": "cont", "v": "read", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 184, "y": 142, "wires": [ [ "703380f0.ca9dc" ] ] }, { "id": "9523aa40.6e2fa8", "type": "delay", "z": "138e678a.c539d8", "name": "", "pauseType": "delay", "timeout": "4", "timeoutUnits": "seconds", "rate": "1", "nbRateUnits": "1", "rateUnits": "second", "randomFirst": "1", "randomLast": "5", "randomUnits": "seconds", "drop": false, "x": 602, "y": 219, "wires": [ [ "959c06f9.8736a8" ] ] }, { "id": "703380f0.ca9dc", "type": "change", "z": "138e678a.c539d8", "name": "restore settings", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "write settings", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 259, "y": 213, "wires": [ [ "9523aa40.6e2fa8", "277e17ad.382578" ] ] }, { "id": "277e17ad.382578", "type": "switch", "z": "138e678a.c539d8", "name": "was playing?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "cont", "v": "power 1", "vt": "str" } ], "checkall": "true", "outputs": 1, "x": 386, "y": 266, "wires": [ [ "80e0ff1b.70fca" ] ] }, { "id": "80e0ff1b.70fca", "type": "function", "z": "138e678a.c539d8", "name": "resume play", "func": "\nmsg.topic = \"resume\"\nmsg.payload = \"00:04:20:28:87:d3 playlist resume aktuell\\n\"\nreturn msg;", "outputs": 1, "noerr": 0, "x": 492, "y": 351, "wires": [ [ "9523aa40.6e2fa8" ] ] } ]
-
@ak1:Sind noch Updates des Adapters geplant? `
Ja, geplant schon… es fehlte nur gerade etwas die Zeit. Meine Haus-Renovation mit kompletter Automation ist etwas aufwändiger als gedachtHab mir deinen Wunsch notiert und werde versuchen, das in einer der nächsten Versionen einzubinden.
-
Hallo,
habe den Adapter installiert und gestartet, er läuft auch, aber ich sehe keine Player, obwohl 5 Player am Server angemeldet sind.
Wo sehe ich am LMS auf welchem Port Telnet läuft? Ich vermute dass dies nicht 9090 bei mir ist.
Danke
-
Hi,
ich habe den Fehler gefunden. Aus verschiedenen Gründen ist mein LMS mit Benutzername und Passwort geschützt! Sobald ich in den LMS Eigenschaften "Erweitert" -> "Sicherheit" den Kennwortschutz abschalte bekomme ich die Player wieder angezeigt!
Könnte der Adapter zwei Felder für Benutzername und Passwort bekommen?
Gruß
Mafl
-
Könnte der Adapter zwei Felder für Benutzername und Passwort bekommen? `
Das ist sicherlich machbar (den Port zu ändern wäre schwieriger gewesen ;-). Ich habe mir das deinen Wunsch notiert./UncleSam
-
Super Supi
vollkommen verrückt, dass ich wieder mal der Erste bin, der sowas findet…
Hoffe die Bude ist fertig und du darfst wieder an die Tasten...
Gruß
Mafl
-
Es hat sich herausgestellt, dass auch Benutzername und Passwort in der von mir verwendeten Library nicht konfigurierbar sind.
Ich habe ein https://github.com/mozz100/node-logitechmediaserver/issues/1 eröffnet und hoffe bald eine neue Version zu erhalten, die ich dann einbinden kann.
-
Version 0.2.0 des Adapters ist ab sofort verfügbar und unterstützt nun (optional) Benutzername und Passwort sowie andere Ports als 9090.
-
Hallo,
erstmal vielen Dank für den super Adapter.
Leider kämpfe ich nun schon einige Tage mit einem Problemchen, dem ich erst nach und nach auf die Spur komme.
Die Installation verlief reibungslos. An meinem Server hingen 11 Clients (Radio, Touch, Raspi usw.).
Der Adapter erhielt nach dem Start leider nur ein Client, legte entsprechende Objekte mit dem richtigen Inhalt an, aktualisierte diese aber nicht mehr. Wenn ich nun den LMS gestoppt und wieder gestartet habe, kam jeweils eine neuer Client dazu, oder es wurde der gleiche wieder gefunden. Also immer nur ein Client und danach keinerlei Aktualisierung mehr.
Nachdem ich nun einen Raspi mit einem zweiten LMS installiert hatte, habe ich einzelne Clients vom ursprünglichen LMS auf diesen Neuen geschaltet. Alles lief problemlos. Also habe ich alle Clients umgeschaltet, hatte nun aber wieder das gleiche Problem. Der Adapter erkennt jeweils nur einen Client und aktualisiert die Daten nicht mehr.
Ich hatte nun eine Problem mit einem bestimmten Client vermutet und habe alle einzeln nacheinander mit dem LMS verbunden.
Das Problem liegt aber anscheinend nicht an einem bestimmten Client, sondern an der Anzahl. Sobald der 10te Client mit dem LMS verbunden ist, funktioniert der Adapter nicht mehr. Das ganze ist unabhängig davon, ob LMS 7.7… auf Synology, oder 7.9 auf Raspi.
Gibt es hier eine bekannte Beschränkung der Anzahl, oder liegt evtl. noch ein kleiner Bug vor?
Gruß
joesilver8
-
Hat wirklich keiner das Problem?
Ich habe nun ioBroker noch mal komplett neu aufgesetzt. Alles ist nun auf aktuellster Version.
Aber der Fehler bleibt. Sobald der 10te Squeezeboxclient dran hängt, wird nur noch einer erkannt.
Bis zum neunten Client läuft alles top. Entferne ich den 10ten wieder, läuft auch wieder allles.
Hier mal das Log
squeezebox.1 2017-10-05 21:47:29.234 info Found player 00:04:20:1f:91:19 squeezebox.1 2017-10-05 21:47:29.233 info Found player b8:27:eb:9b:5e:63 squeezebox.1 2017-10-05 21:47:29.232 info Found player 00:04:20:2a:98:6c squeezebox.1 2017-10-05 21:47:29.231 info Found player 00:04:20:1a:ea:44 squeezebox.1 2017-10-05 21:47:29.230 info Found player 00:04:20:2c:39:3a squeezebox.1 2017-10-05 21:47:29.230 info Found player 00:04:20:17:4b:d4 squeezebox.1 2017-10-05 21:47:29.229 info Found player 00:04:20:27:83:44 squeezebox.1 2017-10-05 21:47:29.228 info Found player 00:04:20:27:83:34 squeezebox.1 2017-10-05 21:47:29.226 info Found player b8:27:eb:ee:9a:9d squeezebox.1 2017-10-05 21:47:29.223 info creating/updating player channels squeezebox.1 2017-10-05 21:47:29.102 info starting. Version 0.2.0 in /opt/iobroker/node_modules/iobroker.squeezebox, node: v6.11.3 squeezebox.1 2017-10-05 21:47:23.296 info terminating squeezebox.1 2017-10-05 21:46:03.190 info Found player b8:27:eb:ee:9a:9d squeezebox.1 2017-10-05 21:46:03.186 info creating/updating player channels squeezebox.1 2017-10-05 21:46:02.294 info starting. Version 0.2.0 in /opt/iobroker/node_modules/iobroker.squeezebox, node: v6.11.3
Für mich sieht das eigentlich alles gut aus, aber man sieht halt im unteren Teil (Versuch mit 10 Clients), dass er nur einen Client findet.
Anschließend hab ich den Adapter gestoppt, den 10 Client wieder entfernt und neu gestartet. Alle 9 werden erkannt.
Gruß
joesilver8
-
Sobald der 10te Squeezeboxclient dran hängt, wird nur noch einer erkannt.
Bis zum neunten Client läuft alles top. Entferne ich den 10ten wieder, läuft auch wieder allles. ` Hallo joesilver8
Ich habe das Problem in einem NPM-Package, das ich referenziere, gefunden und konnte es beheben.
Version 0.2.1 unterstützt nun mehr als 9 Geräte.
Darf ich dich bitten, dies zu testen und mir Bescheid zu geben, wenn es funktioniert?
/UncleSam
-
Vielen Dank.
Funktioniert einwandfrei. Danke
Gruß
joesilver
-
Könnte man noch einen Datenpunkt ElapsedTimePercent anlegen? Dann könnte man da prima nen Slider für bauen. Am besten auch einen Datenpunkt der geschrieben werden kann, dann kann man mit dem Slider auch im Song umherspringen.
Ich könnte das ganze zwar auch über eigene Datenpunkte und Operationen nachbauen, aber ich könnte mir vorstellen, dass auch andere Leute diese Funktion interessant finden.
Edit: Sehe gerade: die ElapsedTime bezieht sich nicht auf den aktuelle Song! Also brauche ich auch mindestens noch currentelapsedTime
-
Danke für den tollen Adapter!
Läuft sehr gut - gute Arbeit!
Ich hab es aber schon richtig verstanden, dass man die Oberfläche dazu selbst erstellen muss?
Also: "Ein-/Ausschalten, Stop/Play, Lauter/Leiser, Next, Aktuelle Daten anzeigen" usw.
Wäre es nicht möglich dafür ein vorgefertigtes Widget zu erstellen, welches die 80% Fälle schon einmal abdeckt?
-
Könnte man noch einen Datenpunkt ElapsedTimePercent anlegen? Dann könnte man da prima nen Slider für bauen. Am besten auch einen Datenpunkt der geschrieben werden kann, dann kann man mit dem Slider auch im Song umherspringen.
Ich könnte das ganze zwar auch über eigene Datenpunkte und Operationen nachbauen, aber ich könnte mir vorstellen, dass auch andere Leute diese Funktion interessant finden.
Edit: Sehe gerade: die ElapsedTime bezieht sich nicht auf den aktuelle Song! Also brauche ich auch mindestens noch currentelapsedTime ` Mhmm… Ist wohl eher eine inkompatiblität zum spotty Plugin. Das ist natürlich ein stream und da wird anscheinend nicht erkannt wann ein neuer Song beginnt.
Schade.
Gesendet von meinem ONEPLUS A3003 mit Tapatalk
-
Wäre es nicht möglich dafür ein vorgefertigtes Widget zu erstellen, welches die 80% Fälle schon einmal abdeckt? ` Hi BlueBook,
danke für das Kompliment. Es wäre definitiv möglich, ein Widget zu programmieren. Allerdings muss ich da an andere Entwickler verweisen, da ich kein HTML und CSS Spezialist bin.
Es würde sowieso mehr Sinn machen, ein allgemeines "Multimedia Player" Widget zu schreiben.
/UncleSam
-
Hallo UncleSam,
ich habe dem Entwickler des Spotty Plugins geschrieben, wie man die Probleme mit dem Current_Titel beim Spotty beseitigen. Dabei ist aufgefallen, dass alle Streams (auch Tidal, SomaFM & Bandcamp) dieses Problem mit dem Iobroker-adapter haben. Er fragte auch wie die Anbindung an den LMS stattfindet, weil andere Uis diese Probleme mit dem Title nicht haben. Ich, als nicht Programmierer, habe nur was von Telnet im code gefunden:
Telnet?… sounds scary. I only had a quick look at that code. So this
is not 100% certain. But I think he's using the current_title query
(didn't even know this existed...) plus a bunch others to get current
status. IIRC current_title is supposed to return the title information
on an internet radio stream (or something similar if playing other
content). The plugin should be using the status query, which would
return track, artist, and album information (if available)
independently. It's more work parsing the results, but more accurate. `
Was meinst du? Könnte man diesen status query verwenden?
-
` > The plugin should be using the status query, which would
return track, artist, and album information (if available)
independently. It's more work parsing the results, but more accurate. ` Hallo mrMuppet,
Das muss ich mir anschauen. Das Plugin benutzt nur die Telnet-Verbindung (die übrigens auch die Hardware-Player von Logitech verwenden) um die Informationen zu bekommen. Sofern ich darüber die richtigen Informationen bekomme, kann ich es machen; wenn ich dann auch noch Web-Anfragen machen muss, wird es schon sehr kompliziert.
/UncleSam
-
Hallo zusammen,
ich versuche seit ein paar Abende einen Squeezebox Player auf meiner iObroker Installation zu konfigurieren. Der Server läuft auf einer Diskstation. Diese findet andere Player im Netzwerk. In der Konfiguration konnte ich keine Fehler entdecken ( Sicherheit - Netzwerk IPs geblockt etc. ). Die Firewall auf der Diskstaton habe ich entsprechend konfiguriert und auch mal deaktiviert - leider ohne Erfolg.
Im iObroker unter Instanzen bekomme ich bei Squeezebox "verbunden" und "Lebenszeichen" als wahr angezeigt. "Verbunden mit Squeezebox" nein. Unter Objekte wurden keine neuen Einträge erstellt. Ist das korrekt?
Folgende Meldungen erhalte ich im Log:
squeezebox.0 2017-11-30 20:58:03.866 info starting. Version 0.2.1 in /opt/iobroker/node_modules/iobroker.squeezebox, node: v6.11.2 squeezebox.0 2017-11-30 20:58:03.792 info States connected to redis: 0.0.0.0:6379 host.ioBroker-Pi3 2017-11-30 20:58:01.977 info instance system.adapter.squeezebox.0 started with pid 5560 host.ioBroker-Pi3 2017-11-30 20:58:01.954 info object change system.adapter.squeezebox.0 host.ioBroker-Pi3 2017-11-30 20:58:00.719 info Restart adapter system.adapter.squeezebox.0 because enabled
Hat vllt. noch jemand einen Tipp?
-
Hey,
wie sieht's aus mit dem Adapter, wird der noch weiter entwickelt?
Es wäre toll wenn man die Gruppen des ändern könnte, oder besteht da die Möglichkeit schon?
LG
Martin