daniel-2k / ioBroker.nanoleaf-lightpanels

ioBroker Adapter for nanoleaf Light Panels / Canvas
MIT License
11 stars 4 forks source link

Support für js-controller 5 #114

Closed kopierschnitte closed 1 year ago

kopierschnitte commented 1 year ago

Hallo!

Der Adapter funktioniert leider nicht mehr unter der 5er Version des js-controllers. Beim Start versucht iob zwar einen Rebuild, der scheitert aber an der Abhängigkeit einer bestimmten Version des Admin-Adapters...

TheBigS1981 commented 1 year ago

Ich kann den Fehler leider bestätigen. Anbei ein paar Informationen aus dem Log:

`node:internal/modules/cjs/loader:1078 throw err; ^ Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js' Require stack:

Bulls91 commented 1 year ago

ich habe das gleiche Problem. Würde mich freuen, wenn es ein Update gibt, welches das Problem behebt

brkai commented 1 year ago

Moin zusammen,

nach meiner gestrigen Rückkehr aus dem Urlaub habe ich jetzt auch den 2. Versuch gemacht auf IOB 5.x upzugraden: Von der 4.x auf die 5.x haben sich anscheinend Pfade gändert: Der Nanoleaf-Adapter sucht ja nach '/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js' es existiert aber (zumindest bei mir) "nur" noch '/opt/iobroker/node_modules/iobroker.js-controller/build/lib/'.

Zum testen habe ich einfach mal den ordner komplett von '....build/lib' eine Ebenee höher kopiert und die beiden Adapter die nicht mit dem 5.x Host wollten, laufen jetzt auch.

Meiner Vermutung nach liegt das Prob im Modul 'https://github.com/daniel-2k/ioBroker.nanoleaf-lightpanels/blob/master/lib/utils.js' in der Zeile 63 'exports.Adapter = require(controllerDir + '/lib/adapter.js');'

Ich habe aktuell leider keine Zeit, mich damit weiter auseinanderzusetzen.....

brkai commented 1 year ago

Nachtrag: in der Datei /opt/iobroker/node_modules/iobroker.nanoleaf-lightpanels/lib/utils.js die Zeile 63 ändern klappt auch: exports.Adapter = require(controllerDir + '/build/lib/adapter.js');

kopierschnitte commented 1 year ago

Hmm, das Problem ist, dass der Adapter dann mit den älteren JS-Versionen nicht mehr klappt. Aber danke für's Herausfinden!

Vielleicht finden wir in Zukunft eine Lösung, die universeller ist. Die anderen Adapter müssen das ja auch irgendwie gelöst kriegen.

daniel-2k commented 1 year ago

Hallo zusammen, in der js-Controller 5.x Version gibt es Änderungen, die den Adapter inkompatibel machen. Das hab ich vor einiger Zeit in einer Ankündigung schon mal mit bekommen, aber noch nicht geschafft den Adapter vorzubereiten. Man muss jetzt adapter-core nutzen anstatt der utils vom js-controller direkt. Deswegen findet er die adapter-utils aus adapter.js nicht mehr. Ich werde das bei Gelegenheit in einer neuen Version fixen.

An der Stelle sei auch darauf hingewiesen, dass der js-Controller 5 noch in einem Beta-Stadium ist und noch nicht im latest Repo. Also somit immer eigenes Risiko.

kopierschnitte commented 1 year ago

Prima, dass Du Dir mal anschauen magst. Wollte auch keinen Stress machen ... hatte völlig vergessen, dass der js-Controller ja Beta ist!

brkai commented 1 year ago

Moin, es eilt ja auch nicht mit der Anpassung, der Workaround funktioniert. Auch von mir ein Danke! Gruß Kai

Bulls91 commented 1 year ago

der Workaround klappt bei mir auch! Vielen Dank dafür!

mcm1957 commented 1 year ago

Hallo zusammen, in der js-Controller 5.x Version gibt es Änderungen, die den Adapter inkompatibel machen. Das hab ich vor einiger Zeit in einer Ankündigung schon mal mit bekommen, aber noch nicht geschafft den Adapter vorzubereiten. Man muss jetzt adapter-core nutzen anstatt der utils vom js-controller direkt. Deswegen findet er die adapter-utils aus adapter.js nicht mehr. Ich werde das bei Gelegenheit in einer neuen Version fixen.

An der Stelle sei auch darauf hingewiesen, dass der js-Controller 5 noch in einem Beta-Stadium ist und noch nicht im latest Repo. Also somit immer eigenes Risiko.

Hi, Die notwendige Anpassung besteht eigentlich nur aus ca 2 Zeilen. Infos dazu findest du unter https://github.com/ioBroker/adapter-core (+ adapter core installieren / utils löschen)

Falls du Hilfe benötigt bitte im Forum oder auf Telegramm melden.

Und was js-controller 5.x betrifft. Der controller ist noch in beta, aber primär nur mehr aus Rücksicht auf existierende Adapter. Der Controller selbst hat schon seit einiger Zeit keine nenneswerten Probleme mehr erkennen lassen. Es ist noch nicht entschieden wann er in stable wandert - aber es sind eher Tage/Wochen denn Monate.

Ergo - wenn es sich einteilen läßt, pass den Adapter bitte an. Danke

daniel-2k commented 1 year ago

Sooo. Ich habe den Adapter auf adapter-core umgestellt. Aktuelle Version 1.4.0 hier im Master und published auf npm. Getestet mit js-Controller 4 und 5. 3 sollte auch noch gehen, aber nicht getestet. Tests gegen nodejs 20 ist auch gemacht.

Bitte mal testen.

brkai commented 1 year ago

Moin, ich habe mich zufällig gerade an den Rechner gesetzt und die Benachrichtigung gelesen; Den Adapter 1.4.0 habe ich aus GitHub installiert und rudimentär getestet: Mit dem Controller 5.0.8 scheint es einwandfrei zu laufen, der Adapter startet sauber und das Panel lässt sich ein / aus schalten. Also, höchstwahrscheinlich alles gut ;-)

DANKE für die schnelle Bereitstellung!

Gruß und ein schönes Rest-WE Kai

kopierschnitte commented 1 year ago

Sieht hier auch gut aus. Würde dann erstmal schließen...

Vielen Dank!!