Open rookie50 opened 3 years ago
Hallo Robert, habe einen Adapter für die Bluesound Player erstellt. Ist mein erster selbst geschriebener Adapter, aber er erfüllt schon mal die Hauptfunktionalitäten (Play, Stop, Pause, Volume, Start Preset'x'). Bei Bedarf bitte melden, ich würde Ihn Dir zur Verfügung stellen. Vielleicht kannst Du mir dann noch ein paar Anregungen geben. Ich steuere damit über vis meine zwei Player. Gruß Uwe
Hallo Robert und Uwe. Ich habe bei mir ebenfalls ein Bluesound Player (NAD T778) und würde diesen ebenfalls gerne über IoBroker steuern können. Die API dazu hatte ich mir auch schon angeschaut. Leider bin ich absoluter Noob was Linux, Java, Node usw. angeht und wüsste Gar nicht wo ich anfangen müsste, um so einen Adapter zu schreiben. @Uwe1958 könntest du mir freundlicherweise deinen Adapter zur Verfügung stellen? Das wäre Klasse von dir! Du hast nicht zufällig auch eine Neeo Remote? Für diese suche ich nämlich auch noch ein Treiber um Bluesound zu steuern :-)
Gruß Pierre
Hallo Pierre Ich kann Dir gerne die Software zur Verfügung stellen, möchte aber zuvor noch etwas klarstellen: Ich habe bisher lediglich die Steuerung von Presets (bei mir hauptsächlich TuneIn bzw. Wiedergabelisten) implementiert. Die Library Funktionen sind nicht programmiert. Dazu benutze ich (noch) die BluOS Software (ist aber auch wirklich gut hierfür). Mit dem realisierten Adapter kann man beim Player von ioBroker aus das entsprechende Preset starten, stoppen bzw. pausieren. Die Presets werden beim Start des Adapters automatisch übernommen. Lautstärkeregelung vom ioBroker aus ist möglich (macht bei einem externen Verstärker aber normalerweise keinen Sinn). Die vom Player gelieferten Infozeilen werden abgefragt und können am ioBroker visualisiert werden. Sollte das dennoch für Dich interessant sein, stelle ich den Adapter gerne zur Verfügung. Gruß Uwe
Ja aufjedenfall ist das interessant für mich! Ist das der gleiche der hier unter dein Nick Name auf GitHub verfügbar ist oder schon eine andere/neuere Version? Vielen dank und noch ein schönes Restwochenende
Gruß Pierre
Das ist die letzte Version, kannst Du sie runterladen? Wahrscheinlich muss ich Dich noch freigeben.
Die Zip konnte ich ohne Probleme runterladen! Allerdings habe ich den Adapter noch nicht installiert. Da muss ich mich jetzt erstmal einlesen;-)
Bei Problemen einfach melden!
Schaut mal im Forum: Bluesound Library Browser
Wie schon berichtet habe ich einen Adapter gebaut, der allerdings nicht die Library Funktionalitäten enthält. Ist glaube ich besser über die App zu machen. Sollte dennoch Interesse bestehen, einfach nochmal melden.
Hi Uwe1958, vielleicht kannst Du die Library Funktionen in Deinen Adapter integrieren? Einen Adapter für BluOS fände ich schon interessant. Mit den Scripten kannst Du nicht nur die Bibliothek durchsuchen, sondern auch Titel, Alben und Presets auswählen und abspielen. Es wird dafür auch "nur" die HTTP-API benutzt. Man könnte das ganze auch noch um die Gruppierungsfunktion erweitern.
Hallo @Uwe1958 !
Hab es leider nicht eher geschafft und wollte jetzt mal dein Adapter installieren. Hab die Instanz über Github installiert und im Adapter die IP meines NAD eingegeben.
Als Pollingzeit (ich gehe von Sekunden aus) habe ich 5,10,20 probiert.
Im Log Bekomme ich folgendes angezeigt: `
host.IoBrokerMaster | 2022-10-01 23:38:19.319 | info | Rebuild for adapter system.adapter.bluesound.0 not successful in 3 tries. Adapter will not be restarted again. Please execute "npm install --production" in adapter directory manually. |
---|---|---|---|
host.IoBrokerMaster | 2022-10-01 23:38:19.319 | error | instance system.adapter.bluesound.0 terminated with code 1 (JS_CONTROLLER_STOPPED) |
host.IoBrokerMaster | 2022-10-01 23:38:19.319 | error | Caught by controller[0]: } |
host.IoBrokerMaster | 2022-10-01 23:38:19.319 | error | Caught by controller[0]: requireStack: [ '/opt/iobroker/node_modules/iobroker.bluesound/main.js' ] |
host.IoBrokerMaster | 2022-10-01 23:38:19.319 | error | Caught by controller[0]: code: 'MODULE_NOT_FOUND', |
host.IoBrokerMaster | 2022-10-01 23:38:19.319 | error | Caught by controller[0]: at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) { |
host.IoBrokerMaster | 2022-10-01 23:38:19.319 | error | Caught by controller[0]: at Function.Module._load (node:internal/modules/cjs/loader:839:12) |
host.IoBrokerMaster | 2022-10-01 23:38:19.319 | error | Caught by controller[0]: at Module.load (node:internal/modules/cjs/loader:1004:32) |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10) |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: at Module._compile (node:internal/modules/cjs/loader:1126:14) |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: at Object. |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: at require (node:internal/modules/cjs/helpers:102:18) |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: at Module.require (node:internal/modules/cjs/loader:1028:19) |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: at Function.Module._load (node:internal/modules/cjs/loader:804:27) |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: at Function.Module._resolveFilename (node:internal/modules/cjs/loader:956:15) |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: - /opt/iobroker/node_modules/iobroker.bluesound/main.js |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: Require stack: |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: Error: Cannot find module 'request-promise-native' |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: ^ |
host.IoBrokerMaster | 2022-10-01 23:38:19.318 | error | Caught by controller[0]: throw err; |
host.IoBrokerMaster | 2022-10-01 23:38:19.317 | error | Caught by controller[0]: node:internal/modules/cjs/loader:959 |
host.IoBrokerMaster | 2022-10-01 23:38:18.200 | info | instance system.adapter.bluesound.0 started with pid 6298 |
`
Kannst du damit was anfangen? Vielen Dank.
LG Pierre
Hallo Pierre
Habe nun den Adapter neu aufgebaut und das veraltete Paket 'request-promise-native' durch äquivalente 'axios' calls im Code ersetzt. Vielleicht kannst Du die neue Version vom Github holen und installieren.
Würde mich freuen, wenn es nun funktioniert.
Die PollingTime kannst Du übrigens freilassen. Dann wird der Standard 30.000 msec genommen.
Nach Installation sollte der Loglevel auf warn gesetzt werden, da ansonsten alle Statusänderungen ins Logfile gelangen und dort viele Zeilen erzeugen. Wenn man natürlich alle Änderungen aufgezeichnet haben möchte, ist dies zu unterlassen.
Ich bin gespannt auf Deinen Bericht.
LG
Uwe
Hallo Pierre
Habe nun den Adapter neu aufgebaut und das veraltete Paket 'request-promise-native' durch äquivalente 'axios' calls im Code ersetzt. Vielleicht kannst Du die neue Version vom Github holen und installieren.
Würde mich freuen, wenn es nun funktioniert.
Die PollingTime kannst Du übrigens freilassen. Dann wird der Standard 30.000 msec genommen.
Nach Installation sollte der Loglevel auf warn gesetzt werden, da ansonsten alle Statusänderungen ins Logfile gelangen und dort viele Zeilen erzeugen. Wenn man natürlich alle Änderungen aufgezeichnet haben möchte, ist dies zu unterlassen.
Ich bin gespannt auf Deinen Bericht.
LG
Uwe
Hallo Uwe,
Vielen dank! jetzt geht der Adapter nicht mehr in Störung und ich kann meinen NAD T778 bedienen!
Aber eine kleine Kritik: die Objekte "pause,play,stop und volume" werden nicht aktualisiert und "verharren" in den zuletzt geschaltenen Zustand. Dementsprechend fehlt in den Objekten auch der Bestätigt-Flag. Lässt sich das noch ändern oder ist das Gewollt?
Und noch eine andere Frage: Über die HTTP-API Response bekommt man ja noch viele weitere Informationen zurück geliefert, wie das aktuelle Cover vom Lied, gespielte Zeit, gesamt Spielzeit etc. Wie Aufwendig ist das noch weitere Informationen zu implementieren?
Damit meine ich aber nicht, dass du das machen sollst. Mein Ansatz war, bevor du jetzt den Adapter geupdatet hast den Adapter "Parser" zu nutzen. Dort habe ich einfach die passenden XML-Tags wie
Bis hierhin schon vielen Dank. Gruß Pierre.
Hallo Pierre,
erst einmal freut es mich, dass der Adapter prinzipiell läuft.
Zu Deinen Anregungen/Kommentaren:
Der Status steht in bluesound.0.control.state und wird auch aktualisiert (pause, stop, play, ...). Genauso wird bluesound.0.control.volume aktualisiert.
Die weiteren Informationen zum gerade gespielten Stück liessen sich tatsächlich holen. Ich mache ja nichts anderes als die Status Information zu parsen. Habe halt lediglich diese Teile noch nicht bearbeitet. Steht nun aber auf der ToDo- Liste.
Gruß
Uwe
Ok verstehe. Also nutzt du die Datenpunkte nur als Trigger und holst dir dann den aktuellen Wert über das state-Objekt.
Steht auf der ToDo liste klingt hervorragend! Ich freue mich auf ein Update und teste gerne wieder :-)
Wie gesagt wenn ich irgendwo behilflich sein kann, einfach bescheid geben!
Ich weiß ja nicht, was für einen BluOS Player du nutzt. Ich wälze gerade die Unterlagen vom T778, weil ich auch gerne die Funktionen An-/Ausschalten, Auflösung, Channels usw. mit implementieren möchte. Mal schauen ob ich dort was nützliches finde!
Hallo Uwe,
hier nochmal Ich:-) Ich habe für den NAD noch einige kommandos gefunden unter anderen die oben erwähnten. Jetzt ist es aber so, dass die Befehle über Telnet gesendet werden, über putty oder die CMD von Windows kann ich die Befehle absetzen und sie funktionieren auch. Hast du eine Idee wie ich über IoBroker die Telnet Befehle senden kann und auch möglichst eine Response dazu bekomme? Habe mal versucht die Befehle über http://--playerAPI--:11000/xxx abzusenden aber das funktioniert leider nicht.
Gruß Pierre.
Hallo Pierre,
ich bin nun endlich dazugekommen, die versprochenen Features einzubauen.
Es gibt jetzt im Github eine neue Version (0.1.1), die die folgende Änderungen beinhaltet:
Ich habe ja keinen NAD sondern BlueSound player. Diese haben gar keinen ansteuerbaren Ausschalter. Wie man Telnet Befehle über IoBroker sendet habe ich noch nicht versucht. Hier kann ich Dir leider nicht weiterhelfen.
Würde mich freuen, wenn Du mit der geänderten Version was anfangen könntest und bin gespannt auf Dein Feedback.
Gruß
Uwe
Ich habe den Adapter noch einmal komplett überarbeitet und ein offizielles Release v1.0.0 erstellt.
https://github.com/Uwe1958/ioBroker.bluesound
Der Adapter wurde auch in npm veröffentlicht und ist von dort aus installierbar.
Ich hoffe, der Adapter ist für viele brauchbar und bin gespannt auf Kommentare. Issues bitte in github hinterlegen.
I suggest to create a thread at https://forum.iobroker.net/category/91/tester titled like "Test Adapter " to collect some user feedback and provide a link to this topic when requesting addition to repository later.
If you are not able to open a topic at tester area, please contact HOMORAN at forum - you will be added to testers area very fast.
And THANKS VERY MUCH for spending your time and providing a new adapter !
Hallo, ich könnte einen Adapter für das Multiroom System mit Bluos gebrauchen. Es gibt einen inoffiziellen Thread zu dem Thema. HTTP API
Leider fehlt mir die Zeit und Programmiererfahrung, um selber einen Adapter zu bauen. Es wäre toll, wenn das jemand bauen könnte. Gruß und guten Rutsch Robert