Unterschiedliche Homebridge Pfade

  • Liebe Leute,


    nachdem ich HomeBridge problemlos auf meinen neuen Raspi 4 übersiedeln konnte und auch alle Plugins problemlos liefen (und sogar neue Plugins problemlos installiert werden konnten) habe ich aus purem Übermut vermutlich einigen Blödsinn angerichtet.


    • Ich habe mir aus purer Langeweile n installiert und mit n dann node v14.3.0 installiert
    • Danach habe ich mittels sudo npm i npm@latest -g die letzte Version von npm installiert
    • Nach einem reboot ging erstmal gar nichts mehr, HomeBridge lief zwar problemlos, neue Plugins konnten mangels Berechtigung (User homebridge fehlte auf einmal ein Passwort) nicht installiert werden

    Nachdem ich HomeBridge nun nochmal nach Step 1 und 2 dieser Anleitung über das bestehende Setup drüberinstalliert habe funktioniert soweit wieder alles, ich kann Plugins installieren, deinstallieren.


    Aber das Log zeit mir nunmehr, dass Homebridge auf folgende Pfade verweist:

    Code
    [30/05/2020, 07:08:39] [HB Supervisor] Homebridge Path: /usr/lib/node_modules/homebridge/bin/homebridge
    [30/05/2020, 07:08:39] [HB Supervisor] UI Path: /usr/lib/node_modules/homebridge-config-ui-x/dist/bin/standalone.js


    Das Verzeichnis:

    Code
    /usr/lib/node_modules/homebridge/bin/homebridge

    gibt es nicht.


    Das Verzeichnis:

    Code
    /usr/lib/node_modules/homebridge-config-ui-x/dist/bin/

    gibt es. Dort liegt neben anderen Dateien auch die im Bootlog oben angezeigte standalone.js Datei.


    Interessanterweise zeigt mir homebridge-config-ui-x im Webinterface (links unten im Browserfenster:


    Speicherpfad /var/lib/homebridge

    Konfigurationspfad /var/lib/homebridge/config.json


    In /var/lib/homebridge findet sich auch die richtige config.json, das hab ich geprüft.


    Ist das nur eine optische Unschönheit dass im Bootlog das (nicht existierende) Verzeichnis /usr/lib/node_modules/homebridge/bin/homebridge angezeigt wird und in homebridge-config-ui-x der Speicherpfad /var/lib/homebridge?


    Kann / soll ich das geradebiegen? Falls ja, wie geh ich das am besten an? Oder ist das pure Kosmetik und eigentlich völlig egal?


    Liebe Grüße

    Michael

    • Hilfreich

    Deine Analyse ist schon mal großartig. Ich will noch was hinzufügen:


    • /usr/lib/node_modules/homebridge/bin/homebridge sollte der Pfad zum Programm homebridge sein. Also das Ding, das den Homebridge-Programmcode enthält.
    • /var/lib/homebridge ist der Pfad zum Homebridge-Verzeichnis, in dem alles mögliche gespeichert wird, beispielsweise die config.json und cachedAccessories. Also die Dateien, die das Programm homebridge benötigt, um überhaupt zu funktionieren.

    Das sind also zwei völlig unterschiedliche Sachen. Du kannst sie nachprüfen mit dem Befehl file. Dieser Befehl zeigt dir, um was für einen Dateityp es sich handelt.

    • file /usr/lib/node_modules/homebridge/bin/homebridge (aber du sagst ja, diese Datei existiert nicht, daher versuche mal file /usr/local/lib/node_modules/homebridge/bin/homebridge
    • file /var/lib/homebridge
    • file /var/lib/homebridge/config.json

    Nun weichen die Pfade in oznus Homebridge-Installation von den Pfaden der Smartapfel-Installation ab. Ich kann sehen, dass bei oznu das Homebridge-Verzeichnis /var/lib/homebridge ist, bei Smartapfel dagegen /var/homebridge. Das haben wir hier damals so gemacht, um kompatibel zu den Tools von det zu sein. Dass diese Pfade unterschiedlich sind, spielt für die Funktion der Homebridge keine Rolle außer zur Verwirrung beizutragen: bei dem einen liegt die config.json hier, bei dem anderen dort und es gibt in diesem Forum sogar noch dritte Pfade (/home/pi/.homebridge/config.json) und vierte (/root/.homebridge/config.json). Und Hoobs hat es noch anders gemacht.


    Was ein Durcheinander. Hier ist es nur wichtig, dass man seinen eigenen Pfad weiß, in deinem Falle /var/lib/homebridge, und darauf immer alles bezieht, auch wenn die Installationsanleitungen der Plugins was anderes behaupten wollen. Ich muss mich halt immer auf /var/homebridge beziehen.


    Eine wichtige Frage aber ist: wo befinden sich die Plugins? Dieser Pfad wird von npm gewählt, und hier haben hier in letzter Zeit zunehmend Fälle, bei denen die Plugins an zwei verschiedenen Orten installiert werden, wo es doch nur einer sein sollte. Wo sind deine Plugins?


    Meine liegen ausnahmslos in /usr/local/lib/node_modules. Die sind deshalb dort, weil ich nach Smartapfel-Anleitung das benötigte Programm node in /usr/local installiert habe. Wie die Pfade bei oznus Installation sind, weiß ich nicht.


    Solange die Plugins an einer bestimmten Stelle installiert sind, und zwar alle, ist gegen diese Stelle nichts einzuwenden. Aber wenn sie an zwei verschiedenen Orten liegen, wird es blöd. Sie sollten entweder


    hier: /usr/local/lib/node_modules oder

    hier: /usr/lib/node_modules liegen


    Aber nicht an beiden Orten. Wo sind deine?


    ls -ld /usr/local/lib/node_modules/homebridge*

    pi@homepi:~ $ ls -ld /usr/local/lib/node_modules/homebridge*

    drwxr-xr-x 5 root root 4096 May 17 14:41 /usr/local/lib/node_modules/homebridge

    drwxr-xr-x 4 root root 4096 May 3 10:18 /usr/local/lib/node_modules/homebridge-alexa

    drwxr-xr-x 6 root root 4096 May 11 00:45 /usr/local/lib/node_modules/homebridge-apple-tv-remote

    drwxr-xr-x 6 root root 4096 Jan 27 23:51 /usr/local/lib/node_modules/homebridge-broadlink-rm

    drwxr-xr-x 5 root root 4096 Aug 23 2019 /usr/local/lib/node_modules/homebridge-calendar

    drwxr-xr-x 2 root root 4096 May 27 14:41 /usr/local/lib/node_modules/homebridge-cmdswitch2

    drwxr-xr-x 3 root root 4096 Aug 23 2019 /usr/local/lib/node_modules/homebridge-cmdtrigger

    drwxr-xr-x 6 root root 4096 May 27 14:38 /usr/local/lib/node_modules/homebridge-config-ui-x

    drwxr-xr-x 2 root root 4096 May 2 09:01 /usr/local/lib/node_modules/homebridge-delay-switch

    drwxr-xr-x 3 root root 4096 Aug 23 2019 /usr/local/lib/node_modules/homebridge-http

    drwxr-xr-x 5 root root 4096 May 18 00:19 /usr/local/lib/node_modules/homebridge-hue

    drwxr-xr-x 10 root root 4096 May 19 13:55 /usr/local/lib/node_modules/homebridge-mqttthing

    drwxr-xr-x 4 root root 4096 Aug 23 2019 /usr/local/lib/node_modules/homebridge-omxplayer

    drwxr-xr-x 3 root root 4096 Apr 7 16:35 /usr/local/lib/node_modules/homebridge-people

    drwxr-xr-x 6 root root 4096 May 28 08:47 /usr/local/lib/node_modules/homebridge-weather-plus

    drwxr-xr-x 4 root root 4096 May 6 14:22 /usr/local/lib/node_modules/homebridge-website-to-camera

    drwxr-xr-x 5 root root 4096 May 23 15:26 /usr/local/lib/node_modules/homebridge-zp


    ls -ld /usr/lib/node_modules/homebridge*

    pi@homepi:~ $ ls -ld /usr/lib/node_modules/homebridge*

    ls: cannot access '/usr/lib/node_modules/homebridge*': No such file or directory

  • sschuste zuerst mal vielen Dank, dass Du mir hilfst mein selbstverursachtes Chaos zu beseitigen. Ich geh die Punkte am besten Schritt für Schritt durch.


    Also, im Verzeichnis /usr/lib/node_modules/homebridge/bin liegt bei mir die Datei homebridge (grün und fett im Terminalfenster, das dürfte also das Programm sein.


    file /var/lib/homebridge liefert mir folgendes zurück: /var/lib/homebridge: directory


    In /var/lib/homebridge liegt eine Unzahl von config.json Dateien sowie die Verzeichnisse node-persist und persist. In node-persist liegen einige json Dateien, in erzeichnis persist liegt ein Verzeichnis storage in darin einige Dateien (scheinbar gehören die zu zum Homebridge People Guest Mode Plugin).


    file /usr/lib/node_modules/homebridge/bin/homebridge liefert mir folgendes zurück:

    /usr/lib/node_modules/homebridge/bin/homebridge: a /usr/bin/env node script, ASCII text executable


    file /usr/local/lib/node_modules/homebridge/bin/homebridge liefert mir folgendes zurück:

    /usr/local/lib/node_modules/homebridge/bin/homebridge: cannot open `/usr/local/lib/node_modules/homebridge/bin/homebridge' (No such file or directory)


    file /var/lib/homebridge/config.json liefert mir folgendes zurück: /var/lib/homebridge/config.json: JSON data. Das ist die richtige und einzige config.json Datei die ich auch in homebridge-config-ui-x ändern kann. Gerade gegengecheckt.


    Im Verzeichnis /usr/local/lib/node_modules liegt einmal die Datei n und einmal npm (das stammt vermutlich von meinen Stümpereien n zu installieren). ls -ld /usr/local/lib/node_modules/homebridge* liefert richtigerweise "No such file or directory" zurück.


    Im Verzeichnis /usr/lib/node_modules liegen alle Plugins UND die Dateien n und npm.


    ls -ld /usr/lib/node_modules/homebridge* liefert die einzelnen Plugins zurück:


    drwxr-xr-x 5 root root 4096 May 29 09:59 /usr/lib/node_modules/homebridge

    drwxr-xr-x 5 root root 4096 May 29 10:07 /usr/lib/node_modules/homebridge-camera-ffmpeg

    drwxr-xr-x 6 root root 4096 May 29 09:59 /usr/lib/node_modules/homebridge-config-ui-x

    drwxr-xr-x 4 root root 4096 May 29 10:07 /usr/lib/node_modules/homebridge-daikin-local

    drwxr-xr-x 9 root root 4096 May 29 10:07 /usr/lib/node_modules/homebridge-eveatmo

    drwxr-xr-x 4 root root 4096 May 29 10:08 /usr/lib/node_modules/homebridge-nest

    drwxr-xr-x 3 root root 4096 May 29 12:51 /usr/lib/node_modules/homebridge-people-guest-mode

    drwxr-xr-x 3 root root 4096 May 29 10:08 /usr/lib/node_modules/homebridge-platform-maxcube

    drwxr-xr-x 2 root root 4096 May 29 10:08 /usr/lib/node_modules/homebridge-raspberrypi-temperature

    drwxr-xr-x 9 root root 4096 May 29 10:08 /usr/lib/node_modules/homebridge-shelly

    drwxr-xr-x 4 root root 4096 May 29 10:09 /usr/lib/node_modules/homebridge-smappee-platform

    drwxr-xr-x 3 root root 4096 May 29 10:09 /usr/lib/node_modules/homebridge-sonoff-tasmota-http

    drwxr-xr-x 4 root root 4096 May 29 10:09 /usr/lib/node_modules/homebridge-telegram

    drwxr-xr-x 4 root root 4096 May 29 10:09 /usr/lib/node_modules/homebridge-tplink-smarthome

    drwxr-xr-x 6 root root 4096 May 29 11:14 /usr/lib/node_modules/homebridge-weather-plus

    drwxr-xr-x 5 root root 4096 May 30 09:40 /usr/lib/node_modules/homebridge-wol


    npm -v liefert 6.14.5 zurück.


    In hombridge-config-ui-x wird aber angezeigt, dass v6.14.4 in Verwendung ist. Ich hab durch meine Stümperei also scheinbar zweimal n und npm auf dem Raspi, einmal in /usr/lib/node_modules neben den Homebridge Plugins und einmal in /usr/local/lib/node_modules. Dort irgendwie liegt vermutlich der Hund begraben. Diese npm Version schaffe ich auch nicht zu aktualisieren. Weil wenn ich sudo npm i npm@latest -g starte wird scheinbar die nicht von homebridge-config-ui-x verwendete Version in /usr/local/lib aktualisiert.


    Gebe ich sudo npm list -g --depth=0 ein kriege ich auch nur noch folgendes zurück (bisher konnte ich auch hier immer alle homebridge Plugins auflisten). Derzeit gibt dieser Befehl folgendes zurück:

    /usr/local/lib

    ├── [email protected]

    └── [email protected]


    Kann ich das irgendwie wieder geradebiegen? Wie krieg ich das überschüssige n und npm wieder runter und die Konfiguration wieder richtig?

  • Also, dann sieht es so aus:


    Deine Homebridge-Installation befindet sich in /usr/lib. Daher scheinen die beiden n und npm in /usr/local/lib überflüssig zu sein. Hübscher Satz: sie scheinen überflüssig zu sein.


    Ob sie es sind, findest du heraus mit

    ls -l $(which n) und

    ls -l $(which npm)

    Was kommt dabei heraus?


    Dann geht noch npm -g root, das zeigt an, wohin npm überhaupt was hininstallieren will.

  • ls -l $(which n)

    lrwxrwxrwx 1 root root 27 May 30 08:45 /usr/local/bin/n -> ../lib/node_modules/n/bin/n


    ls -l $(which npm)

    lrwxrwxrwx 1 root root 38 May 30 09:33 /usr/local/bin/npm -> ../lib/node_modules/npm/bin/npm-cli.js


    npm -g root

    /usr/local/lib/node_modules


    Übrigens, wenn ich direkt im Webbrowser über homebridge-config-ui-x ein Plugin installiere funktioniert das problemlos und landet auch im richtigen Verzeichnis. Auch konfigurieren und config.json erweitern passt und das neue Plugin läuft dann auch problemlos. In diesem Umfeld ist also denke ich alles bestens.


    Wie krieg ich aber jetzt die überflüssigen n und npm am richtigsten weg? Löschen wird wohl nicht der richtige Ansatz sein.


    Das ganze "Unglück" hat ja seinen Lauf genommen als ich n im Nachhinein installiert habe weil ich mir eingebildet habe, dass es gut wäre bei Bedarf node.js "fliegend" damit wechseln zu können. Brauch ich aber eigentlich eh nicht denk ich, oder?

  • Wie krieg ich die überflüssigen n und npm jetzt am richtigsten weg? Löschen wird wohl nicht der richtige Ansatz sein.

    Doch, eigentlich schon. Nur leider killst du dir dann dein npm, was dann richtig Ärger bedeutet.


    Also: hol schon mal Heftpflaster, wir operieren am offenen Herzen. Und ich bin dabei blind und kann nix sehen. Das sind keine guten Voraussetzungen.


    Ich weiß jetzt, dass du /usr/local/bin/npm startest. Wie du oben siehst, ist das nur ein Link zu /usr/local/lib/node_modules/npm/bin/npm-cli.js. Ein Link ist so etwas wie ein Alias auf einem Mac oder eine Verknüpfung auf einem Windows-PC. Sozusagen ein Verweis auf das, was wirklich gestartet werden soll.


    Dieser Link verweist also jetzt auf /usr/local/lib/node_modules/npm/bin/npm-cli.js. Er sollte aber verweisen auf /usr/lib/node_modules/npm/bin/npm-cli.js. Daher will ich den jetzigen Link löschen und durch einen besseren ersetzen. Ab jetzt wird's spannend.


    Aktuellen Link löschen:

    cd /usr/local/bin

    sudo rm npm


    Neuen Link setzen:

    sudo ln -s /usr/lib/node_modules/npm/bin/npm-cli.js .


    Dieser Befehl kann funktionieren, muss es aber nicht. Wie gesagt: ich bin blind und habe den Befehl schlichtweg geraten. Es gibt also zwei Möglichkeiten:

    • Das klappt. Dann kannst du mit npm -v checken, ob jetzt die gleiche npm-Version erscheint wie in homebridge-config-ui-x und du kannst checken, ob npm -g root als Ergebnis /usr/lib/node_modules hat. Der Patient lebt und ist wohlauf und wie sind auf einem sehr guten Weg.
    • Es klappt nicht. Dann machst du das Löschen des alten Links wieder rückgängig mit sudo ln -s /usr/local/lib/node_modules/npm/bin/npm-cli.js .. Aber das wäre dann wirklich äußerst unschön. Dem Patienten geht's genau wie vorher und ich weiß dann nicht mehr weiter.

    Erstmal bis hierhin.

  • Ähem, kaum gibt man es richtig ein ...


    pi@raspberrypi:/ $ sudo ln -s /usr/lib/node_modules/npm/bin/npm-cli.js .

    pi@raspberrypi:/ $

    pi@raspberrypi:/ $ npm -v

    6.14.4

    pi@raspberrypi:/ $ npm -g root

    /usr/local/lib/node_modules



    sudo npm install -g npm@latest

    /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js

    /usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js

    + [email protected]

    updated 1 package in 16.34s


    Trotzdem bleibt es im homebridge-config-ui-x die Version 6.14.4 angezeigt?

  • Ich glaub ich habs gelöst. Ich hab die Verzeichnisse n und npm aus dem Verzeichnis /usr/lib/node_modules gelöscht.


    n und npm liegen im Verzeichnis /usr/local/lib/node_modules und

    npm -g root zeigt auch richtig auf dieses Verzeichnis.


    Und jetzt passt auch die Version in homebridge-config-ui-x, scheinbar würde die Version die im Verzeichnis der homebridge Programme liegt von denen die im Pfad angegeben sind bevorzugt werden.


    Jetzt passten die Pfade, die Versionen und alles läuft rund.


    Diese Dateien im Verzeichnis

    /usr/local/bin

    kann ich jetzt eigentlich löschen, oder?


    Code
    lrwxrwxrwx  1 root root       65 May 30 07:42 hb-service -> ../lib/node_modules/homebridge-config-ui-x/dist/bin/hb-service.js
    lrwxrwxrwx  1 root root       45 May 30 07:42 homebridge -> ../lib/node_modules/homebridge/bin/homebridge
    lrwxrwxrwx  1 root root       65 May 30 07:42 homebridge-config-ui-x -> ../lib/node_modules/homebridge-config-ui-x/dist/bin/standalone.js
    lrwxrwxrwx  1 root root       27 May 30 08:45 n -> ../lib/node_modules/n/bin/n
    -rwxr-xr-x  1 root root 66809156 May 30 08:49 node
    lrwxrwxrwx  1 root root       38 May 31 15:09 npm -> ../lib/node_modules/npm/bin/npm-cli.js
    lrwxrwxrwx  1 root root       40 May 31 14:28 npm-cli.js -> /usr/lib/node_modules/npm/bin/npm-cli.js
    lrwxrwxrwx  1 root root       38 May 31 15:09 npx -> ../lib/node_modules/npm/bin/npx-cli.js


    Danke Dir :)

  • Eines ist mir noch aufgefallen. sudo npm list -g --depth=0 gibt mir nach wie vor nur n und npm zurück, nicht (wie ich mich zu erinnern glaube) alle homebridge-plugins. Ist das eher eine kosmetische Sache? Weil laufen tut ja alles rund.


    pi@raspberrypi:/ $ sudo npm list -g --depth=0

    /usr/local/lib

    ├── [email protected]

    └── [email protected]


    In /usr/lib/node_modules liegen also alle homebridge-plugins sowie Node-red


    In /usr/local/lib liegen die Verzeichnisse node_modules und python2.7 und python3.7

    In /usr/local/lib/node_modules liegen n und npm


    npm -g root liefert richtigerweise /usr/local/lib/node_modules


    Passt so denke ich, oder? Dass das sudo npm list -g --depth=0 nur n und npm zurückgibt ist Kosmetik, oder?

  • npm -g root liefert richtigerweise /usr/local/lib/node_modules

    Nein, das ist eigentlich falsch, weil deine Plugins ja in /usr/lib/node_modules liegen. Neue Plugins sollten ebenfalls dorthin, aber dein npm wird sie nach /usr/local/lib/node_modulues installieren und das Durcheinander geht weiter.


    Nachdem du meiner Meinung nach das falsche npm gelöscht hast, stimmt der Pfad für zukünftige Installationen nicht mehr. Ein npm install -g wird dir garantiert neue Plugins an die falsche Stelle installieren. Falls das der Fall ist, kannst du den richtigen Pfad mit sudo npm -g config set prefix /usr setzen.

  • Also, ich hab gerade was probiert.


    Wenn ich im Webfrontend homebridge-config-ui-x ein Plugin installiere landet es richtig in

    /usr/lib/node_modules


    Dann lässt sich das Plugin auch problemlos konfigurieren und nützen.



    Wenn ich im Terminalfenster ein Plugin installiere landet es in

    /node_modules. (ja ich hab im Root scheinbar jetzt ein solches Verzeichnis mit etlichen weiteren - nicht Homebridge spezifischen - files drin)


    und ein derartig installiertes Plugin ist natürlich nicht von Homebridge erreichbar


    OMG :rolleyes:

  • So, hab jetzt den Prefix geändert


    sudo npm -g config set prefix /usr

    pi@raspberrypi:/usr/lib/node_modules $ npm -g root

    /usr/lib/node_modules


    Es läuft alles, auch alle Plugins. Interessanterweise zeigt mir Homebridge jetzt neu im Log beim Neustart folgende Meldung:

    [01/06/2020, 11:36:42] Plugin /node_modules/homebridge-http-base package.json does not contain the keyword 'homebridge-plugin'.

    [01/06/2020, 11:36:42] Plugin /node_modules/homebridge-lib package.json does not contain the keyword 'homebridge-plugin'.


    Funktionieren tut ja alles, ich werd mal weiter analytisch versuchen das Thema für mich auch noch näher zu analysieren. Irgendwie ist wohl noch ein Hund drin (der sich glücklicherweise auf die Funktionalität von Homebridge und node-red nicht auswirkt).

  • [01/06/2020, 11:36:42] Plugin /node_modules/homebridge-http-base package.json does not contain the keyword 'homebridge-plugin'.

    Schönheitsfehler, einfach ignorieren.

  • Hi sschuste, ich klinke mich auch mal in den doch schon sehr alten Thread ein.


    Meine Homebridge läuft ohne Schwierigkeiten. Ich habe aber auch ein kleines Durcheinander bei den Pfaden und vermute, dass das mal durch ein manuelles Update von Node.js mit u.a. diesem Befehl kam:

    "sudo cp -R node-v16.17.0-linux-armv6l/* /usr/local" (nutze noch einen Pi 1B, deswegen noch armv6)


    Im Homebridge UI sieht es bei mir so aus.


    Bei mir gibt es nun auch unterschiedliche Pfade, wobei "/usr/local/lib/node_modules/" sicherlich der nicht verwendete ist und eigentlich alles da drin raus kann.


    "/var/lib/homebridge/node_modules/" hingegen enthält all meine installierten und konfigurierten Plugins.



    "node -v" liefert allerdings eine alte Node.js Version zurück, während in der Homebridge UI die passende angelegt wird, welche auch beim Start von Homebridge geladen wird.


    Ich würde nun gerne diesen falschen Pfad "/usr/local/lib/node_modules/" loswerden, denn der sorgt nur für Verwirrung bei mir. Ist aber alles nur ein Schönheitsfehler, denn Homebridge läuft ja wie bereits erwähnt problemlos.


    Node.js aktualisere ich in Zukunft nur noch über "sudo hb-config". Und Plugins aktualisiere ich nur noch über das Homebridge UI.


    Was muss ich nun tun, damit ich "/usr/local/lib/node_modules/" loswerde und auch z.B. der Befehl "node -v" das passende Ergebnis liefert?

    Außerdem liefert mir z.B. "sudo npm outdated --location=global" Ergebnisse vom falschen Pfad (/usr/local/lib/node_modules/). Auch das verwirrt mich immer wieder.


    Ich sage jetzt schon mal vielen Dank für deine Hilfe und Unterstützung :thumbup:

  • Was muss ich nun tun, damit ich "/usr/local/lib/node_modules/" loswerde und auch z.B. der Befehl "node -v" das passende Ergebnis liefert?

    Möglicherweise hilft einfach das Löschen des Verzeichnisses. Bevor du das tust, solltest du du dir aber sicher sein, dass da keine Probleme macht. Ein Löschen ist nicht rückgängig machbar.


    Wenn du das Verzeichnis erst einmal umbenennst, dann kannst du testen, ob es von deiner Homebridge benötigt wird (ich behaupte hier mal: nein). Das machst du mit:


    sudo mv /usr/local/lib/node_modules/ /usr/local/lib/.kanndasweg


    und startest deine Homebridge neu. Wenn da immer noch alles geht: gut. Dann rebootest du deinen Raspi und testest erneut. Wenn immer noch alles geht: besser. Danach lässt du dein Vorhaben mal für eine Woche ruhen und wartest auf etwaige Spätfolgen.


    Wenn es Probleme gibt, dann musst du das Verzeichnis auf den alten Namen zurück umbenennen:


    sudo mv /usr/local/lib/kanndasweg/ /usr/local/lib/.node_modules


    Während du die Woche wartest, könntest du mal mitteilen, welche alte Versionsnummer node -v zurückgibt. Auch die Ausgabe von which node gibt vielleicht ein paar Hinweise, was das ist und wo es herkommt.


    Um das node_modules-Verzeichnis endgültig zu löschen, gibst du

    sudo rm -rf /usr/local/lib/node_modules ein.

  • Danke schon mal für deine schnellen Antworten.


    node -v und which node liefern folgendes zurück.


    Den Befehl zum Umbenennen des Verzeichnisses probiere ich später mal aus aktualisiere diese Antwort dann nochmals.


    Also, das Umbenennen mit sudo mv /usr/local/lib/node_modules/ /usr/local/lib/.kanndasweg und der anschließende Homebridge Neustart haben funktioniert.

    Homebridge läuft immer noch fehlerfrei.


    Werde jetzt mal den Pi komplett neu starten und schauen was passiert...


    Der komplette Neustart des Pi führte dazu, dass ich zwar auf das Homebridge UI komme, aber das homebridge-hue Plugin beim Laden einen Fehler bringt. Der Homebridge Server kann nicht zu Ende laden und das Zahnrädchen im UI dreht sich munter immer weiter.


    Das homebridge-hue Plugin war als einzigstes auch unter " /usr/local/lib/node_modules/" zu finden.

    Scheinbar nutzt die Homebridge also das Hue Plugin aus dem falschen Pfad.


    Edit 1:

    Homebridge nochmals neu gestartet und jetzt ist sie fehlerfrei hochgefahren.

    Zumindest auf den ersten Blick sieht bis jetzt alles gut aus.

    Jetzt warte ich mal die vorgeschlagene Woche ab. Sollte dann immer noch alles funktionieren, mache ich ein SD-Card Backup und lösche den umbenannten Ordner komplett.


    Edit 2:

    node -v und which node liefern immer noch die Werte vom obigen Screenshot zurück.

    node -v und npm -v scheinen irgendwie auf einen falschen Suchpfad zu gehen.

    Laut Homebridge Konsole liegt Node.js hier: "/opt/homebridge/bin/"


    Edit 3:

    npm -v und sudo npm outdated --location=global gehen jetzt allerdings z.B. nicht mehr habe ich eben festgestellt. Irgendwas passt nun mit NPM nicht mehr. Plugins oder Ähnliches könnte ich dann im aktuellen Zustand nicht mehr installieren/updaten oder?



    NPM war unter dem umbenannten Pfad "/usr/local/lib/node_modules/" als Ordner vorhanden.

    Unter dem eigentlichen Pfad der Plugins "/var/lib/homebridge/node_modules/" gibt es keinen NPM Ordner.

    Zur Info noch: Ich habe meine Homebridge über den Pi Imager mit dem Homebridge Raspbian Image installiert.

    12 Mal editiert, zuletzt von _cl4udiu5_ ()

  • Habe eben einen sehr interessanten Artikel auf Reddit von @oznu selbst gefunden.

    Das klärt sicher viele Fragen zum Thema Homebridge, wenn diese über das entsprechende Image installiert wurde.

    r/homebridge auf Reddit: Homebridge and npm / node locations on Raspberry Pi OS / Ubuntu
    Gepostet von u/dev_oznu – 10 Votes und 3 Kommentare
    www.reddit.com


    Hi sschuste


    bisher hatte ich nicht immer nur über die Homebridge UI nach Updates gesucht und diese dort installiert.

    Auch habe ich viel über SSH im macOS Terminal gemacht. Die ganzen NPM Befehle (z.B. sudo npm outdated --location=global) gehen ja dann nicht mehr, da der Pfad zu Node.js und NPM nicht mehr global unter /usr/local/lib/node_modules/ liegt.

    Das liegt ja jetzt alles gesammelt unter /var/lib/homebridge/node_modules/ und ist nur noch für Homebridge zugänglich.


    Mit was für Befehlen kann ich denn dann in Zukunft über Terminal z.B. nach Updates suchen und diese installieren?

    Oder geht das alles jetzt einfach nur noch über die Homebridge UI?

    Einmal editiert, zuletzt von Spy () aus folgendem Grund: Ein Beitrag von _cl4udiu5_ mit diesem Beitrag zusammengefügt.