Dirk-Peter-md / ioBroker.sprinklecontrol

Control of multiple sprinklers depending on weather condition and pump performance.
16 stars 3 forks source link

Funktioniert auf neuster ioBroker mit aktualisietem JavaScript Controller nicht mehr #187

Closed ingel81 closed 3 months ago

ingel81 commented 3 months ago

Adapterversion (aktuell) : v0.2.13 Node.js : v20.16.0 js-controller (aktuell) : 6.0.10

Mit Node.js in v20 klappte noch alles. Erst beim anschließenden Aktualisieren des js-controllers auf 6.0.10 ergibt sich dann fortlaufend der nachfolgende Fehler im Log.


/opt/iobroker/node_modules/iobroker.sprinklecontrol/main.js:79
    adapter = new utils.Adapter(options);
              ^

TypeError: utils.Adapter is not a constructor
    at startAdapter (/opt/iobroker/node_modules/iobroker.sprinklecontrol/main.js:79:15)
    at Object.<anonymous> (/opt/iobroker/node_modules/iobroker.sprinklecontrol/main.js:1827:5)
    at Module._compile (node:internal/modules/cjs/loader:1358:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
    at Module.load (node:internal/modules/cjs/loader:1208:32)
    at Module._load (node:internal/modules/cjs/loader:1024:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:174:12)
    at node:internal/main/run_main_module:28:49

Node.js v20.16.0`
Dirk-Peter-md commented 3 months ago

Hallo, habe mein Testsystem jetzt mal aktualisiert und dann SprinkleControl 0.2.13 neu installiert.

Platform:

PlatformBetriebssystem: linux, Architektur: x64, Node.js: v20.16.0, NPM: 10.8.1 admin: 7.0.24, js-controller: 6.0.10

den Fehler kann ich aber nicht bestätigen.

Screenshot 2024-08-17 183818

Werde das ganze mal beobachten! Die Zeile

adapter = new utils.Adapter(options);

ist aber meines Wissens immer noch aktuell und wird auch von anderen Adaptern noch verwendet. Vielleicht ist ja auch bei der Installation etwas schiefgegangen! Du bewegst dich ja auf einem Beta System! Also am besten

Hoffe das hilft, Dirk Peter

ingel81 commented 3 months ago

Hallo,

Danke für die schnelle und ausführliche Rückmeldung.

Ich prüfe das nochmals, evtl. habe ich etwas übersehen bzw. teste das mit dem iob fix die Tage einmal.

Ich meine dass zwei weitere Adapter ein ähnliche Fehlermeldung hatten. Ich dachte zunächst dass sich ggfs. eine iobroker API oder Basisklasse hier geändert haben könnte und manche Adapter Entwickler erst noch aktiv werden müssen.

War im Prinzip nur ein Test ob ich updaten könnte (auf einem Klon meines Produktivsystem Containers). Bin jetzt einfach wieder zurück. Ich prüfe das alles einmal die Tage auf Reproduzierbarkeit, etc.

Werde hier berichten.

Grüße Jörg

ingel81 commented 3 months ago

Ok, für die Nachwelt: Folgendermaßen gelöst bekommen für mein Setup:

iobroker buanet image 10.0.0 Beta repository für Adapter (!)

System: image

habe im Container dann folgendes ausgeführt:

iob maintenance on
iob upgrade

letzteres aktualisiert den js.controller (hier auf 6.0.10.) Im Anschluss ist der Container dann automatisch gestoppt (in meinem Fall).

Dann den Container neu gestartet und für sprinklecontrol ein npm install ausgeführt:

/opt/iobroker/node_modules/iobroker.sprinklecontrol# npm install

vis-inventwo war ebenfalls betroffen und zeigt im Prinzip den selben Fehler wie oben inital gepostet. Hier ebenfalls:

/opt/iobroker/node_modules/iobroker.vis-inventwo# npm install

Jetzt läuft alles wieder.

Kann es mir nicht erklären, vermute da lief zuvor beim Wechsel des iobroker Images von 9.x auf 10.x mit dem Upgrade der Node.js Version von 18 auf 20 etwas schief oder ich hätte vor dem Sprung auf Node.js 20 den js.controller updaten müssen oder so etwas.

Danke.

Dirk-Peter-md commented 3 months ago

Dies funktioniert neuerdings auch für ein update auf NodeJS 20 unter ioBroker!

iob stop
iob nodejs-update 20
iob fix
iob start

Danke für die Rückmeldung

ingel81 commented 3 months ago

Dies funktioniert neuerdings auch für ein update auf NodeJS 20 unter ioBroker!

iob stop
iob nodejs-update 20
iob fix
iob start

Danke für die Rückmeldung

ja bei docker kommt das image schon mit der entsprechenden node version...verhält sich dort alles etwas anders. https://docs.buanet.de/iobroker-docker-image/docs/#updates-upgrades