Ich habe ein Paar Aktualisierungen auf meinem Raspberry Pi durchgeführt und dabei auch Node-RED upgedatet. Das dort verwendete Update-Script (update-nodejs-and-nodered), führt auch eine Aktualisierung von node.js und npm durch. Später musste ich dann feststellen, das mein Homebridge nicht mehr läuft. Glücklicherweise konnte ich das Problem schnell beheben.
Updates sind immer auch eine Gefahr , dass neue Fehler auftauchen oder etwas vorher funktionierendes nicht mehr läuft. Daher erstelle ich auch regelmäßig Backups meines Raspberry Pis. Ich hatte mir letztens erst meine Node-RED Installation zerschossen, und war glücklich ein funktionierendes Backup zu haben. Damit war das System in kürzester Zeit wieder einsatzbereit. Also erspart euch die Arbeit euer System wieder komplett neu aufsetzen zu müssen und erstellt regelmäßig Backups insbesonderes wenn ihr Daten verarbeitet und eine Datenbank mit Werten füllt.
Fehlerursache finden
Ein blick auf den Dienst mittels systemctl status homebridge , zeigte dass der Dienst immer wieder neu startete und nicht lange lief. Also stoppte ich Homebridge manuell und startete es danach mittels dem Befehl homebridge. Dadurch sehe ich sofort auf der Konsole was passiert. Homebridge blieb mit folgende Meldung stehen:
Feb 26 08:36:01 raspberrypi homebridge[28490]: /usr/lib/node_modules/homebridge/node_modules/bindings/bindings.js:83
Feb 26 08:36:01 raspberrypi homebridge[28490]: throw e
Feb 26 08:36:01 raspberrypi homebridge[28490]: ^
Feb 26 08:36:01 raspberrypi homebridge[28490]: Error: Module version mismatch. Expected 48, got 51.
Feb 26 08:36:01 raspberrypi homebridge[28490]: at Error (native)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at Object.Module._extensions..node (module.js:604:18)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at Module.load (module.js:494:32)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at tryModuleLoad (module.js:453:12)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at Function.Module._load (module.js:445:3)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at Module.require (module.js:504:17)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at require (internal/module.js:20:19)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at bindings (/usr/lib/node_modules/homebridge/node_modules/bindings/bindings.js:76:44)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at Object. (/usr/lib/node_modules/homebridge/node_modules/ed25519/index.js:1:99)
Feb 26 08:36:01 raspberrypi homebridge[28490]: at Module._compile (module.js:577:32)
Feb 26 08:36:01 raspberrypi systemd[1]: homebridge.service: main process exited, code=exited, status=1/FAILURE
Feb 26 08:36:01 raspberrypi systemd[1]: Unit homebridge.service entered failed state.
Homebridge Fehler beheben
Interessant ist hier die rot markierte Zeile. Google half und so konnte ich relativ zügig die Ursache dafür feststellen und auch eine Lösung finden. Die Module wurden mit einer anderen Version kompiliert und passen nicht mehr zu der aktuellen. Der Fehler lässt sich aber relativ einfach beheben. Ihr geht einfach in den Modul-Ordner und führt ein Rebuild durch.
cd /usr/lib/node_modules/homebridge/node_modules
npm rebuild
Damit startete meine Installation zwar schon etwas weiter, blieb aber wieder mit einem Fehler stecken.
[2/26/2018, 9:45:47 AM] ERROR LOADING PLUGIN homebridge-dash:
[2/26/2018, 9:45:47 AM] Error: Module version mismatch. Expected 48, got 51.
at Error (native)
at Object.Module._extensions..node (module.js:604:18)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
at Object. (/usr/lib/node_modules/homebridge-dash/node_modules/pcap/pcap.js:3:21)
at Module._compile (module.js:577:32)
at Object.Module._extensions..js (module.js:586:10)
Es handelt sich hierbei um den gleichen Fehler, nur explizit für das homebridge-dash Plugin. Ich wiederholte also mein Rebuild, nun jedoch im genannten Plugin-Verzeichnis.
cd /usr/lib/node_modules/homebridge-dash
npm rebuild
Damit waren meine Probleme endlich beseitigt und mein Installation lief wieder durch.
Ich hoffe ich konnte damit jemandem helfen und unnötige Sucherei ersparen.