NEWS
UNSOLVED HAM adapter Verbindungsprobleme
-
@Thomas-Braun
Also Homebridge (aka Hoobs) ist eine Ergänzung zu HomeKit. Mit Homebridge bringt man Geräte zu HomeKit, die nicht nativ HomeKit fähig sind. Deshalb habe ich eine Homebridge laufen und zusätzlich ioBroker.Ich möchte eigentlich mit dem HAM Adapter meine nicht nativen HomeKit Geräte (Fake Switch zum Beispiel) in ioBroker einbinden. Über diesen Umweg könnte ich Geräte für die es keinen ioBroker Adapter gibt dennoch in ioBroker nutzen. Wie das auf zwei Geräten laufen soll weiß ich aber nicht...
Ich hab nur etwas Panik dass wenn ich Node deinstallieren und neu installiere, installationspfade der alten Version nicht mehr vorhanden sind, aber von Homebridge (hoobs) benötigt werden.
Was mich an der Sache mit den gleichen Ports wundert ist, dass der Adapter anscheinend sogar so gedacht ist, dass er auf dem gleichen System wie Homebridge läuft. Als „Haupt“ Ports habe ich für ioBroker die 8081 und für HOOBS die 8080
-
@suffix
Die Pfade von hoobs oder iobroker werden von nodeJS nicht angefasst. -
@Thomas-Braun
Das nicht, aber wenn node js von HOOBS unter einem bestimmen Pfad gesucht wird und dort nicht mehr zu finden ist, kann das zu Problemen führen? -
@suffix Das wird im $PATH gesucht. Und da hast du im Moment zwei Installationen drin.
-
@Thomas-Braun
Ich habe jetzt diese Befehle ausgeführtsudo apt remove node-* sudo apt remove nodejs sudo apt update sudo apt dist-upgrade sudo reboot
Und bekomme mit der folgenden Abfrage kein Ergebnis mehr
which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
So sollte es ja sein. Wie mach ich nun am besten weiter?
-
@suffix Kannst du bitte die vollständigen Ein- und Ausgaben posten?
-
@Thomas-Braun
Bin jetzt gerade unterwegs. Bei dem letzen Befehl kam keine ausgabe zurückpi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs pi@raspberrypi:~ $
-
@suffix Dann kannst du nach der oben verlinkten Anleitung node12 sauber installieren.
-
@Thomas-Braun
Alles klar, werde es gleich mal probieren -
-
@Thomas-Braun said in HAM adapter Verbindungsprobleme:
apt policy nodejs
Doch, der Befehl alleine liefert das
pi@raspberrypi:~ $ apt policy nodejs nodejs: Installiert: (keine) Installationskandidat: 10.21.0~dfsg-1~deb10u1+rpi1 Versionstabelle: 10.21.0~dfsg-1~deb10u1+rpi1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
-
@suffix
Okay, dann nach der oben verlinkten Anleitung vorgehen und node12 installieren. -
@Thomas-Braun
Ich habe jetzt mit den beiden Befehlencurl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash – sudo apt install nodejs
installiert.
Die Befehle
which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs
geben nunr folgendes zurück:
pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v12.19.0 /usr/bin/node v12.19.0 /usr/local/bin/npm 6.14.5 nodejs: Installiert: 12.19.0-1nodesource1 Installationskandidat: 12.19.0-1nodesource1 Versionstabelle: *** 12.19.0-1nodesource1 500 500 https://deb.nodesource.com/node_12.x buster/main armhf Packages 100 /var/lib/dpkg/status 10.21.0~dfsg-1~deb10u1+rpi1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages pi@raspberrypi:~ $
Ist so alles korrekt?
-
@suffix Da stimmt noch was nicht.
sudo rm /usr/local/bin/npm
-
@Thomas-Braun said in HAM adapter Verbindungsprobleme:
@suffix Da stimmt noch was nicht.
sudo rm /usr/local/bin/npm
Einfach den Befehl ausführen? Wie installier npm ich danach am besten neu?
-
@suffix said in HAM adapter Verbindungsprobleme:
@Thomas-Braun said in HAM adapter Verbindungsprobleme:
@suffix Da stimmt noch was nicht.
sudo rm /usr/local/bin/npm
Einfach den Befehl ausführen? Wie installier npm ich danach am besten neu?
Edit:
Befehl ausgeführt, neue Ausgabe:pi@raspberrypi:~ $ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v12.19.0 /usr/bin/node v12.19.0 /usr/bin/npm 6.14.8 nodejs: Installiert: 12.19.0-1nodesource1 Installationskandidat: 12.19.0-1nodesource1 Versionstabelle: *** 12.19.0-1nodesource1 500 500 https://deb.nodesource.com/node_12.x buster/main armhf Packages 100 /var/lib/dpkg/status 10.21.0~dfsg-1~deb10u1+rpi1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages pi@raspberrypi:~ $
-
@suffix Ja, jetzt passt es soweit.
-
@Thomas-Braun
Super, danke.Leider besteht aber immernoch das Eingangs genannte Problem
Ich frage mich zum Bsiepiel auch, warum immer '/lib/user' im Log hinter meinem angegebenen Pfad steht. Ich gebe im HAM Adapter ja als globalen Homebridge Pfad '/usr/local/lib/node_modules/' an. Im Log macht er daraus '/usr/local/lib/node_modules/lib/user'
Keine Ahnung wo das Problem ist
-
@suffix
Sicher dass der Kram in /usr/local liegt? -
@Thomas-Braun
Nein, aber ich wüsste nicht mehr wo sonst. Es soll der globale Pfad zu den npm Modulen angegeben werden. Den kann man mitnpm root -g
Abrufen. Und dabei bekomme ich den genannten zurück.
Hier nochmal ein etwas ausführlicher Auszug aus dem log, ich versuch’s gleich noch etwas leserlicher zu formatieren:
fo instance system.adapter.ham.0 terminated with code 0 (NO_ERROR) ham.0 2020-10-13 08:53:14.732 info (13119) Terminated (NO_ERROR): Without reason ham.0 2020-10-13 08:53:14.730 info (13119) terminating ham.0 2020-10-13 08:53:14.583 info (13119) cleaned everything up... ham.0 2020-10-13 08:53:14.582 error at checkLocalMode (/opt/iobroker/node_modules/iobroker.ham/main.js:400:25) ham.0 2020-10-13 08:53:14.582 error at /opt/iobroker/node_modules/iobroker.ham/main.js:203:13 ham.0 2020-10-13 08:53:14.582 error at installAllLibraries (/opt/iobroker/node_modules/iobroker.ham/main.js:381:21) ham.0 2020-10-13 08:53:14.582 error at /opt/iobroker/node_modules/iobroker.ham/main.js:217:39 ham.0 2020-10-13 08:53:14.582 error at Object.init (/opt/iobroker/node_modules/iobroker.ham/lib/global-handler.js:63:12) ham.0 2020-10-13 08:53:14.582 error at require (internal/modules/cjs/helpers.js:74:18) ham.0 2020-10-13 08:53:14.582 error at Module.require (internal/modules/cjs/loader.js:903:19) ham.0 2020-10-13 08:53:14.582 error at Function.Module._load (/opt/iobroker/node_modules/mock-require/index.js:30:22) ham.0 2020-10-13 08:53:14.582 error at Function.Module._load (internal/modules/cjs/loader.js:687:27) ham.0 2020-10-13 08:53:14.582 error at Function.Module._resolveFilename (internal/modules/cjs/loader.js:831:15) ham.0 2020-10-13 08:53:14.582 error - /opt/iobroker/node_modules/iobroker.ham/main.js ham.0 2020-10-13 08:53:14.582 error - /opt/iobroker/node_modules/iobroker.ham/lib/global-handler.js ham.0 2020-10-13 08:53:14.582 error Require stack: ham.0 2020-10-13 08:53:14.582 error (13119) Error: Cannot find module 'usr/local/lib/node_modules/lib/user' ham.0 2020-10-13 08:53:14.580 error - /opt/iobroker/node_modules/iobroker.ham/main.js ham.0 2020-10-13 08:53:14.580 error - /opt/iobroker/node_modules/iobroker.ham/lib/global-handler.js ham.0 2020-10-13 08:53:14.580 error Require stack: ham.0 2020-10-13 08:53:14.580 error (13119) unhandled promise rejection: Cannot find module 'usr/local/lib/node_modules/lib/user' Unhandled 2020-10-13 08:53:14.579 error promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). ham.0 2020-10-13 08:53:14.556 info (13119) No additional Libraries to install ... ham.0 2020-10-13 08:53:14.527 info (13119) starting. Version 3.0.1 in /opt/iobroker/node_modules/iobroker.ham, node: v12.19.0, js-controller: 3.1
Hier die Beschreibung von HAM von GitHub (https://github.com/ioBroker/ioBroker.ham#global-homebridge-mode) :
"Global-Homebridge-Mode
If you already use Homebridge (Apple OpenSource SmartHome) to control your devices then you can use this existing Homebridge installation and start this Homebridge installation as ioBroker process. In this case the Homebridge server is started by ioBroker. Additionally all states from Homebridge are available as states in ioBroker and allows to control from ioBroker.For this to work you need to provide the location of the systems global node-modules folder. For this call npm root -g. Additionally you need to privide the path of the homebridge configuration directory (usually .homebridge in the users folder)."