Dann bin ich raus!
Aber ich noch nicht. Ich muss nur mal alles genau lesen und nachdenken.
Dann bin ich raus!
Aber ich noch nicht. Ich muss nur mal alles genau lesen und nachdenken.
Wäre super... würde mich freuen...
So, da läuft ja gewaltig was schief. Ich bin auch der Meinung, dass es an den Pfaden liegt. Auf manchen Systemen liegen die homebridge-Plugins in /usr/lib/node_modules, auf anderen in /usr/local/lib/node_modules, aber auf keinen Fall sollten sie in beiden liegen. Aus deiner homebridge.service-Datei entnehme ich, dass du /usr/local/bin/homebridge startest.
Ich würde schon gern wissen, was die Ausgaben von
which node und
ls -l /usr/local/bin und
ls -l /usr/lib/node_modules und
ls -l /usr/local/lib/node_modules sind.
Mein Ansatz lautet nun, homebridge und alle Module komplett zu entfernen, egal wo sie herumliegen und dann alles neu zu installieren. Die einzige, wirklich wichtige Datei von homebridge ist config.json und die sollte vorher gesichert werden (auch wenn sie beim Entfernen von homebridge nicht verschwinden sollte, aber sicher ist sicher).
Ich würde das komplette homebridge-Config-Verzeichnis sichern mit:
cd
tar cvf homebridge-config.tar .homebridge/*
Das erstellt ein Archiv mit allen relevanten homebridge-Dateien namens /home/pi/homebridge-config.tar. Im Problemfall kann man damit die Config wiederherstellen (cd && tar xvf homebridge-config.tar), aber wie gesagt, eigentlich wird das Verzeichnis .homebridge nicht angefasst.
Die folgende Aktion sollte den Betrieb von pi-hole und piVCCU nicht weiter stören, da beide nicht auf node basieren oder auf irgendwelchen node_modules von node.
Bitte beachte, dass ich nichts von den folgenden Befehlen getestet habe (naja, ein bisschen habe ich schon geschaut, ob das funktioniert), aber möglicherweise geht es so:
Alles als root machen.
sudo su - (in den root-Modus gehen. Ab jetzt sudo nicht mehr verwenden!)
systemctl stop homebridge
export NPM_CONFIG_PREFIX=/usr/local/
npm uninstall -g --unsafe-perm homebridge
npm uninstall -g --unsafe-perm homebridge-hue
npm uninstall -g --unsafe-perm homebridge-lib
npm uninstall -g --unsafe-perm homebridge-config-ui-x
npm uninstall -g --unsafe-perm alle anderen homebridge-Plugins, die du verwendest
Dann:
export NPM_CONFIG_PREFIX=/usr/
npm uninstall -g --unsafe-perm homebridge
npm uninstall -g --unsafe-perm homebridge-hue
npm uninstall -g --unsafe-perm homebridge-lib
npm uninstall -g --unsafe-perm homebridge-config-ui-x
npm uninstall -g --unsafe-perm alle anderen homebridge-Plugins, die du verwendest
Welche homebridge-Plugins überhaupt da sind, kann man mit:
ls -ld /usr/local/lib/node_modules/homebridge* und
ls -ld /usr/lib/node_modules/homebridge*
sehen. Idealerweise sollte nach der großen Aufräumerei dort nichts mehr zu finden sein (no such file or directory).
Node und npm lässt du da, wo sie sind. Jetzt musst du alles neu installieren. Verlasse den root-Modus wieder mit
exit
Und dann geht's los:
sudo npm install -g --unsafe-perm homebridge
sudo npm install -g --unsafe-perm homebridge-config-ui-x
sudo npm install -g --unsafe-perm homebridge-hue
sudo npm install -g --unsafe-perm homebridge-lib
sudo npm install -g --unsafe-perm homebridge-config-ui-x
sudo npm install -g --unsafe-perm alle anderen homebridge-Plugins, die du verwendest
Homebridge starten mit
sudo systemctl start homebridge
Beten hilft nix, aber schadet auch nicht. Wenn ich das machen müsste, würde ich vorher erstmal tief Luft holen. Ich hoffe, ich hab nichts vergessen.
Stefan
Vielen Dank für Deine Mühe... bin heute auf Dienstreise, teste es schnellstmöglich.
Endlich komme ich zeitlich dazu...
Erfolgsmeldung: homebridge läuft... vielen Dank dafür...
Wermutstropfen:
Starte ich "homebridge", so funktioniert es - hier darf ich dann aber das Terminal nicht schliessen, da sich homebridge dann beendet.
Starte ich via "sudo systemctl start homebridge.service" oder "sudo systemctl start homebridge", so läuft homebridge nicht.
homebridge.service sieht folgendermaßen aus:
[Unit]
Description=Node.js HomeKit Server
After=syslog.target network-online.target
[Service]
Type=simple
User=pi
ExecStart=/usr/local/bin/homebridge -I -U /home/pi/.homebridge
Restart=on-failure
RestartSec=10
KillMode=process
[Install]
WantedBy=multi-user.target
Alles anzeigen
"sudo systemctl status homebridge.service" zeigt mir folgendes:
? homebridge.service - Node.js HomeKit Server
Loaded: loaded (/etc/systemd/system/homebridge.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Fri 2019-06-28 16:38:57 CEST; 9s ago
Process: 2906 ExecStart=/usr/local/bin/homebridge -I -U /home/pi/.homebridge (code=exited, status=203/EXEC)
Main PID: 2906 (code=exited, status=203/EXEC)
Memory: 0B
CPU: 0
CGroup: /system.slice/homebridge.service
Jun 28 16:38:57 piVCCU systemd[1]: homebridge.service: Failed with result 'exit-code'.
Hast Du dafür die Lösung ?
Und hier noch die Ausgaben:
pi@piVCCU:~ $ which node
/usr/bin/node
pi@piVCCU:~ $ ls -l /usr/local/bin
insgesamt 16
lrwxrwxrwx 1 root staff 38 Dez 21 2018 npm -> ../lib/node_modules/npm/bin/npm-cli.js
lrwxrwxrwx 1 root staff 38 Dez 21 2018 npx -> ../lib/node_modules/npm/bin/npx-cli.js
-rwxr-xr-x 1 root staff 14637 Mai 29 23:12 pihole
pi@piVCCU:~ $ ls -l /usr/lib/node_modules
insgesamt 44
drwxr-xr-x 7 root root 4096 Jun 28 15:40 homebridge
drwxr-xr-x 6 root root 4096 Jun 28 16:02 homebridge-config-ui-x
drwxr-xr-x 3 root root 4096 Jun 28 15:44 homebridge-dyson-link
drwxr-xr-x 4 root root 4096 Jun 28 15:44 homebridge-homematic
drwxr-xr-x 5 root root 4096 Jun 28 15:42 homebridge-hue
drwxr-xr-x 5 root root 4096 Jun 28 15:43 homebridge-lib
drwxr-xr-x 9 root root 4096 Jun 28 15:45 homebridge-netatmo
drwxr-xr-x 2 root root 4096 Jun 28 15:53 homebridge-rpitemp
drwxr-xr-x 9 root root 4096 Jun 22 17:09 node-gyp
drwxr-xr-x 8 root root 4096 Jun 28 15:57 npm
drwxr-xr-x 3 root root 4096 Jun 22 17:09 rebuild
pi@piVCCU:~ $ ls -l /usr/local/lib/node_modules
insgesamt 156
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 ansi-regex
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 ansi-styles
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 array-flatten
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 bindings
drwxr-sr-x 4 pi pi 4096 Jan 26 19:23 bonjour-hap
drwxr-sr-x 3 pi pi 4096 Jan 26 19:23 buffer-indexof
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 buffer-shims
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 chalk
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 commander
drwxr-sr-x 4 pi pi 4096 Jan 26 19:24 curve25519-n
drwxr-sr-x 3 pi pi 4096 Jan 26 19:23 debug
drwxr-sr-x 3 pi pi 4096 Jan 26 19:23 decimal.js
drwxr-sr-x 5 pi pi 4096 Jan 26 19:23 deep-equal
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 dns-equal
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 dns-packet
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 dns-txt
drwxr-sr-x 5 pi pi 4096 Jan 26 19:24 ed25519-hap
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 escape-string-regexp
drwxr-sr-x 4 pi pi 4096 Jan 26 19:23 fast-srp-hap
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 graceful-readlink
drwxr-sr-x 5 root pi 4096 Jan 26 19:23 hap-nodejs
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 has-ansi
drwxr-sr-x 4 pi pi 4096 Jan 26 19:23 ip
drwxr-sr-x 4 pi pi 4096 Jan 26 19:23 minimist
drwxr-sr-x 5 pi pi 4096 Jan 26 19:23 mkdirp
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 ms
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 multicast-dns
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 multicast-dns-service-types
drwxr-sr-x 4 root pi 4096 Jan 26 19:23 nan
drwxr-sr-x 4 pi pi 4096 Jan 26 19:23 node-persist
drwxr-sr-x 10 nobody pi 4096 Dez 21 2018 npm
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 q
drwxr-sr-x 7 pi pi 4096 Jan 26 19:23 qrcode-terminal
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 safe-buffer
drwxr-sr-x 4 pi pi 4096 Jan 26 19:23 semver
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 strip-ansi
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 supports-color
drwxr-sr-x 2 pi pi 4096 Jan 26 19:23 thunky
drwxr-sr-x 2 root pi 4096 Apr 26 21:33 tweetnacl
Alles anzeigen
Erstmal: super Sache, der dicke Teil ist damit schon mal geschafft.
Es sieht ganz danach aus, als wolltest du homebridge in der homebridge.service starten mit ExecStart=/usr/local/bin/homebridge -I -U /home/pi/.homebridge
Laut deinem ls -l /usr/local/bin befindet sich dort kein homebridge, das gestartet werden könnte, und das erzeugt deinen Fehler. Du musst also deine homebridge.service also so anpassen,. dass dort der richtige Pfad steht. Den bekommst du so heraus:
which homebridge
Wahrscheinlich ist das Ergebnis /usr/bin/homebridge, so dass der Aufruf in homebridge.service dann lautet:
ExecStart=/usr/bin/homebridge -I -U /home/pi/.homebridge
Ändern, abspeichern und dann:
sudo systemctl daemon-reload
und nochmal versuchen:
sudo systemctl start homebridge
Stefan
Nun ggf. am WE auf Raspi4 4GB upgraden... liegt bereit, bin gespannt.
Aber ja doch. Offenbar noch nicht genug herumgefummelt...