Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

JS-Controller RaspberryMatic + IOBroker auf einem PI #9

Open
dominikoyen opened this issue Dec 22, 2019 · 23 comments
Open

JS-Controller RaspberryMatic + IOBroker auf einem PI #9

dominikoyen opened this issue Dec 22, 2019 · 23 comments

Comments

@dominikoyen
Copy link

Hallo zusammen,

ich verzweifle gerade ein wenig. Bisher läuft mein System tadellos zusammen. Leider muss der JS-Controller vom IoBroker geupdated werden, da sonst nicht mehr alle Adapter funktionieren. Ich habe zur Zeit die Version 1.4.2 installiert und ich würde gerne auf die neuste Version 2.1.1 updaten. Leider ist das "automatische" Update nicht möglich.

Er schreibt mir, dass ich das Update "manuell" durchführen muss:

Aufgrund der Vielzahl an Hardware und Plattformen, auf denen ioBroker läuft, muss der js-controller manuell aktualisiert werden. Dazu auf der Konsole des Hosts folgende Kommandos ausführen:
cd /usr/local/addons/hm-iobroker
sudo iobroker stop
sudo iobroker update
sudo iobroker upgrade self
sudo iobroker start

Ich vermute, dass diese Anleitung nur gilt, wenn IOBroker auf einem separaten PI läuft. Ich kann mich zwar per SSH auf dem PI anmelden, jedoch nimmt er keiner der o.g. Befehle an (Ich denke hier läuft keine "Original" PI Software). Eine komplette Erneuerung von IoBroker hat leider auch nicht den gewünschten Erfolg gebracht.

Habt ihr eine Idee, wie ich das Update installiert bekomme, damit ich wieder alle Adapterupdates installieren kann?

Danke und schöne Festtage.

Viele Grüße

Dominik

@libertyx82
Copy link

Die Anleitung gilt für alle Installationen allerdings gibt es beim Update auf die V2 einiges zu beachten z.B. die Reihenfolge wenn mehrere Hosts vorhanden sind.

Schon mal das Installations fixer Script laufen lassen?
Je nachdem wann du deinen iobroker installiert hast muss das zuerst ausgeführt werden.

@dominikoyen
Copy link
Author

Ich habe es probiert, allerdings bekomme ich über SSH nur Fehlermeldungen wenn ich den Aufruf starte:

-sh bash not found

Läuft dieses Script denn auf meinem raspberrymatic, wenn IOBroker "nur" als Addon installiert wird?
Grüße

@libertyx82
Copy link

Kurz nein

Auf der RaspMatic läuft ein Buildroot da gibt es z.B. kein sudo

@dominikoyen
Copy link
Author

Und für das Update ist das die Voraussetzung?

Kann ich sonst irgendwie das Update durchführen ?

@libertyx82
Copy link

siehe https://github.com/zautrix/hm-iobroker/releases

The usage is like a common ioBroker installation, with one difference:
The update of the js-controller is as follows:

Log on as root (via ssh) into console and run the following commands:
(ignore any "gyp ERR! ..." messages during upgrade)
(ignore "npm update check failed" message)

cd /usr/local/addons/hm-iobroker
./iobroker stop
export npm_config_cache=/usr/local/addons/hm-iobroker/npm_io/.npm
export npm_config_userconfig=/usr/local/addons/hm-iobroker/npm_io/.npmrc
./iobroker update
./iobroker upgrade self
./iobroker start

Known issues(will not be fixed, because the issues are caused by limitations of rapsberrymatic):

@dominikoyen
Copy link
Author

Perfekt, hat funktioniert vielen Dank !

@ThomasRi333
Copy link

Wenn du jetzt für einen Laien noch einen Tipp hast, wie man NPM / Node auf die Version 10 downgraden kann, wäre mein Tag perfekt.
Das Addon läuft sehr stabil, der Pi4 mit 4GB Ram ist bei 42-43 Grad; die Auslastung ist minimal.

Ein großes Danke an dich dafür.

@Gharke
Copy link

Gharke commented Feb 7, 2023

Hallo,
habe gestern die aktuelle Raspberrymatic 3.67.10.20230114 mit node 16.18.1, js-controller 1.4.2 und npm 8.19.2 installiert. (Über Raspberry Pi Imager). Dann einige Addon, auch iobroker)
Beim io9broker klappt das Update des js-controllers (und damit verschiedene Adapter) nicht.
Anleitung wie oben, beim Schritt:
./iobroker upgrade self
Kommen einige Fehlermeldungen...

Update js-controller from @1.4.2 to @4.0.24
NPM version: 8.19.2
npm install iobroker.js-controller@4.0.24 --unsafe-perm --production --save --prefix "/usr/local/addons/hm-iobroker" (System call)
npm WARN config production Use --omit=dev instead.
npm WARN deprecated dgram@1.0.1: npm is holding this package for security reasons. As it's a core Node module, we will not transfer it over to other users. You may safely remove the package from your dependencies.
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated json3@3.3.2: Please use the native JSON object instead of JSON 3
npm WARN deprecated passport.socketio@3.7.0: Please check the workaround in jfromaniello/passport.socketio#148
npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated request@2.88.2: request has been deprecated, see request/request#3142
npm ERR! code 1
npm ERR! path /usr/local/addons/hm-iobroker/node_modules/iobroker.js-controller
npm ERR! command failed
npm ERR! command sh -c -- node iobroker.js setup first
npm ERR! /usr/local/addons/hm-iobroker/node_modules/@iobroker/js-controller-common/lib/common/tools.js:44
npm ERR! const FORBIDDEN_CHARS = /[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/gu;
npm ERR! ^
npm ERR!
npm ERR! SyntaxError: Invalid regular expression: /[^._\-/ :!#$%&()+=@^{}|~\p{Ll}\p{Lu}\p{Nd}]+/: Invalid property name in character class
npm ERR! at Object. (/usr/local/addons/hm-iobroker/node_modules/@iobroker/js-controller-common/lib/common/tools.js:44:25)
npm ERR! at Module._compile (node:internal/modules/cjs/loader:1155:14)
npm ERR! at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)
npm ERR! at Module.load (node:internal/modules/cjs/loader:1033:32)
npm ERR! at Function.Module._load (node:internal/modules/cjs/loader:868:12)
npm ERR! at Module.require (node:internal/modules/cjs/loader:1057:19)
npm ERR! at require (node:internal/modules/cjs/helpers:103:18)
npm ERR! at Object. (/usr/local/addons/hm-iobroker/node_modules/@iobroker/js-controller-common/index.js:2:12)
npm ERR! at Module._compile (node:internal/modules/cjs/loader:1155:14)
npm ERR! at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10)

Kann jemand helfen, fehlen Zwischenschritte?
Danke

@Apollon77
Copy link

Das bedeutet das die Node.JS VErsion die auf dem Host ist nicht mit Unicode support für Regex gebaut wurde. Das benmtigt ioBroker aber. Bitte Issue bei Raspberrymatic anlegen das dort eine "korrekte" Nodejs verison genutzt wird.

@jens-maus
Copy link
Collaborator

Das bedeutet das die Node.JS VErsion die auf dem Host ist nicht mit Unicode support für Regex gebaut wurde. Das benmtigt ioBroker aber. Bitte Issue bei Raspberrymatic anlegen das dort eine "korrekte" Nodejs verison genutzt wird.

Da du da mehr Erfahrungswerte hast als ich bzgl. node.js. Was genau fehlt denn da bitte beim kompilieren von nodejs damit die regex unicode-fähig werden? Im Buildroot (welches RaspberryMatic ja nutzt) gibt es da keine zusätzliche Option die man wählen kann um die regex unicode-fähig hinzubekommen. Weil buildroot baut ja die node.js version komplett selbst (aktuell 16.18.1) mit seinen eigenen standard compile parametern. Vllt. hast du ja einen testcase für mich damit ich versuchen kann das zu reproduzieren wenn ich verschiedene compilations von node.js testen will.

@Gharke
Copy link

Gharke commented Feb 9, 2023 via email

@Apollon77
Copy link

@jens-maus Ich erinner emich nur das wir das schonmal bei nem freebesd user hatten der auch nodejs selbst gebaut hat und noch irgendweo ... aber ich finde auch gerade die posts nicht mehr, sorry.

@jens-maus
Copy link
Collaborator

Ok, mit der nächsten RaspberryMatic Version sollte das mitgebrachte nodejs v16 nun auch unicode können und der hier benannte Fehler nicht mehr auftreten...

@Gharke
Copy link

Gharke commented Feb 9, 2023 via email

@jens-maus
Copy link
Collaborator

Herzlichen Dank, super Service…

Kurzer Hinweis: Man replied nicht auf GitHub emails denn sonst landet alles was du da zurückmailst direkt bei GitHub, inkl. deiner Adresse, Realname und Mobilfunknummer.... deshalb bei GitHub die emails nur als notifications sehen und dann auf die webseite wechseln und da kommentieren... (hab deine pers. Daten nun weggelöscht).

@netmic10
Copy link

netmic10 commented Feb 9, 2023

Ok, mit der nächsten RaspberryMatic Version sollte das mitgebrachte nodejs v16 nun auch unicode können und der hier benannte Fehler nicht mehr auftreten...

Vielen Dank, @jens-maus und @Gharke!!
Werde auch testen, sobald du das veröffentlichst. War bisher umständlich, immer die ioBroker add-on Versionen zu finden, die mit js-controller 3.x. und Admin 4.x laufen. Das ist ja dann bald Geschichte und die ioBroker Instanz kann auf den neusten Stand gezogen werden.
Super!

Insgesamt gefällt mir die Lösung mit dem ioBroker Raspberrmatic Add On nämlich sehr - das ganze läuft sehr zuverlässig.

Schönen Abend!

@Bikestuff
Copy link

Hallo zusammen,
ich bekomme auch eine Fehlermeldung, bin aber nicht sicher, ob ich das gleiche Problem vorkiegen habe.
Alle Schritte wie ober ausgeführt, dann aber:

root@Homematic-Raspi_PI4:/usr/local/addons/hm-iobroker# ./iobroker upgrade self
Update js-controller from @3.1.6 to @4.0.24
NPM version: 8.19.2
npm install iobroker.js-controller@4.0.24 --loglevel error --unsafe-perm --prefix "/usr/local/addons/hm-iobroker" (System call)
npm ERR! code EROFS
npm ERR! syscall mkdir
npm ERR! path /root/.npm
npm ERR! errno -30
npm ERR! rofs EROFS: read-only file system, mkdir '/root/.npm'
npm ERR! rofs Often virtualized file systems, or other file systems
npm ERR! rofs that don't support symlinks, give this error.

npm ERR! Log files were not written due to an error writing to the directory: /root/.npm/_logs
npm ERR! You can rerun the command with --loglevel=verbose to see the logs in your terminal
host.Homematic-Raspi_PI4 Cannot install iobroker.js-controller@4.0.24: 226
root@Homematic-Raspi_PI4:/usr/local/addons/hm-iobroker#

Iobroker

@Bikestuff
Copy link

Vielleicht könnt ihr mich auf die richtige Spur bringen...

@Gharke
Copy link

Gharke commented Feb 27, 2023

Die raspberrymatic-node.js ist mit der letzten Version vom 25.02.23 mit Unicode kompiliert/eingebunden worden,
damit sollte das dann klappen. Versuche heute Abend das Update und melde mich dann.

@netmic10
Copy link

@Bikestuff: Es sieht so aus, dass du vergessen hast, vor dem "upgrade"-Befehl die System-Variablen mit den richtigen Dateisystem-Pfaden zu setzen.
Also die Befehle beginnend mit export...
Das muss man hier speziell für das hm-iobroker Addon auf Raspberrymatic bei jeder Terminal-Anmeldung immer wieder machen, bevor man was "upgraden" möchte. Liegt an der besonderen System-Konfiguration.

siehe Eintrag von @libertyx82 :

siehe https://github.com/zautrix/hm-iobroker/releases

The usage is like a common ioBroker installation, with one difference:
The update of the js-controller is as follows:

Log on as root (via ssh) into console and run the following commands:
(ignore any "gyp ERR! ..." messages during upgrade)
(ignore "npm update check failed" message)

cd /usr/local/addons/hm-iobroker
./iobroker stop
export npm_config_cache=/usr/local/addons/hm-iobroker/npm_io/.npm
export npm_config_userconfig=/usr/local/addons/hm-iobroker/npm_io/.npmrc
./iobroker update
./iobroker upgrade self
./iobroker start

Known issues(will not be fixed, because the issues are caused by limitations of rapsberrymatic):

@netmic10
Copy link

netmic10 commented Feb 27, 2023

Habe das Update des js-controller für hm-iobroker nun mit dem Raspberrymatic-Release von Februar erfolgreich durchgeführt.
Einzige Stolperstelle (und deshalb hier der Hinweis): es klappte auf meinem RPI2 erst nach Ausführung dieses Hinweises.
Vermutlich ist der RPI2 etwas zu lahm für den ursprünglichen Timeout-Wert....

Vorher habe ich - wie im selben ioBroker-Forum-Thread beschrieben - alle hm-iobroker Adapter manuell per ssh-Konsole auf den neuesten Stand aktualisiert (muss man bei Abhängigkeiten zu bestimmter js-controller-Version mit Versionsangabe <Adapter-Name>@<x.x.x> erzwingen). Dann in zwei Versions-Schritten (reine Vorsichtsmaßnahme....) js-controller aktualisiert. Den letzten Schritt einfach mit ./iobroker upgrade self

Nun sind alle meine hm-iobroker Adapter auf dem neuesten Stand! Und nach der ersten Betriebsnacht kann ich mitteilen, dass bisher nichts hängengeblieben ist. 😉

Besten Dank an alle Entwickler! 👍🏼

@Bikestuff
Copy link

image

Das scheint ja die aktuellste Version von Raspimatic zu sein.

So, jetzt noch einmal der Reihe nach:

Ich habe alle diese Schritte ausgeführt, (aber den output hier nicht gepastet):

cd /usr/local/addons/hm-iobroker
./iobroker stop
export npm_config_cache=/usr/local/addons/hm-iobroker/npm_io/.npm
export npm_config_userconfig=/usr/local/addons/hm-iobroker/npm_io/.npmrc
./iobroker update
./iobroker upgrade self
./iobroker start

Sieht zwar schon anders aus, das update klappt aber immer noch nicht:

root@Homematic-Raspi_PI4:/usr/local/addons/hm-iobroker# ./iobroker upgrade self
Update js-controller from @3.1.6 to @4.0.24
NPM version: 8.19.2
npm install iobroker.js-controller@4.0.24 --loglevel error --unsafe-perm --prefix "/usr/local/addons/hm-iobroker" (System call)
Objects 127.0.0.1:42488 Error from InMemDB: Error: GET-UNSUPPORTED for namespace cfg.: Data=["meta.objects.features.useSets"]
States 127.0.0.1:34660 Error from InMemDB: Error: GET-UNSUPPORTED for namespace meta.: Data=["meta.states.protocolVersion"]
Objects 127.0.0.1:42488 Error from InMemDB: Error: GET-UNSUPPORTED for namespace cfg.: Data=["meta.objects.protocolVersion"]
Objects 127.0.0.1:42488 Error from InMemDB: Error: scan NOT SUPPORTED
States 127.0.0.1:34666 Error from InMemDB: Error: PSUBSCRIBE-UNSUPPORTED for namespace meta.: Data=["meta."]
npm ERR! code 1
npm ERR! path /usr/local/addons/hm-iobroker/node_modules/iobroker.js-controller
npm ERR! command failed
npm ERR! command sh -c -- node iobroker.js setup first
npm ERR! Cannot write file. Not critical: ENOENT: no such file or directory, open '/usr/local/addons/hm-iobroker/node_modules/iobroker.js-controller/lib/setup/../../../../iob'
npm ERR! /usr/local/addons/hm-iobroker/node_modules/standard-as-callback/built/index.js:6
npm ERR! throw e;
npm ERR! ^
npm ERR!
npm ERR! ReplyError: Error scan NOT SUPPORTED
npm ERR! at parseError (/usr/local/addons/hm-iobroker/node_modules/redis-parser/lib/parser.js:179:12)
npm ERR! at parseType (/usr/local/addons/hm-iobroker/node_modules/redis-parser/lib/parser.js:302:14)
npm ERR! Emitted 'error' event on ScanStream instance at:
npm ERR! at /usr/local/addons/hm-iobroker/node_modules/ioredis/built/ScanStream.js:38:22
npm ERR! at tryCatcher (/usr/local/addons/hm-iobroker/node_modules/standard-as-callback/built/utils.js:12:23)
npm ERR! at /usr/local/addons/hm-iobroker/node_modules/standard-as-callback/built/index.js:33:51
npm ERR! at processTicksAndRejections (node:internal/process/task_queues:96:5) {
npm ERR! command: {
npm ERR! name: 'scan',
npm ERR! args: [ '0', 'MATCH', 'cfg.o.system.host.
', 'COUNT', '250' ]
npm ERR! }
npm ERR! }

npm ERR! A complete log of this run can be found in:
npm ERR! /usr/local/addons/hm-iobroker/npm_io/.npm/_logs/2023-02-27T14_31_16_530Z-debug-0.log
Starting node restart.js
root@Homematic-Raspi_PI4:/usr/local/addons/hm-iobroker# ./iobroker start

@Gharke
Copy link

Gharke commented Mar 6, 2023

Habe das Timeout erhöht... obwohl ein RPI4 mit USB-SSD das eigentlich hinbekommen sollten.
Leider kein Erfolg. (bis auf 10000=10 Sek.)

Habe dann manuell vor dem iobroker-update mit
"npm install iobroker.js-controller"
den js-controller von Version 1.4.2 auf 4.0.24 erfolgreich upgedatet.

Dann noch den Adapter "admin" von Version 3.x auf 6.x upgedatet, beim Öffnen von iobroker wurde ich gefragt, ob eine neuer "info"-Adapter angelegt werden soll (Instanz 0), erledigt und danach war alles da und i.O.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants