Node v16.x und npm: TypeError bei Plugin De-/Installation/Update

  • Angeblich ist das Problem jetzt mit HomeBridge UI 4.41.3 gelöst. Beim Update von node 14.18.1 auf 16.13.0 kann die npm Installation zerstört werden(, oder so ähnlich). Mal sehen, ob man nach Installation von 4.41.3 dann noch einmal node zurück und wieder hochstufen muss. Beim nächsten Plugin Update werde ich es sehen.

  • Mal sehen, ob man nach Installation von 4.41.3 dann noch einmal node zurück und wieder hochstufen muss.

    Nein. Scheint alles zu funktionieren.

  • Hallo,


    nach einem node Update startet m eine Homebridge nicht mehr und hängt sich auf. Je nach eingegebenen sudo command lese ich


    TypeError: Class extends value undefined is not a constructor or null

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/agent.js:114:44)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/index.js:5:33)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/lib/agent.js:161:25)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)


    ich vermute ich muss mein Node wechseln, leider klappen die befehle nicht. bzw. die Bridge wirft mir Fehler aus. ich hab mich regulär über ssh und die Standard Zugangsdaten verbunden. Bei den meisten hb-service Kommandos meldet die Bridge diese seien unbekannt.


    Hat jemand einen Tipp?

  • GinormousLemon Ich habe deinen Beitrag hierhin verschoben, lies dir diesen Thread bzw. den als hilfreich markierten Beitrag durch.

  • Danke fürs verschieben, passt tatsächlich besser. Leider bleibt mein leider wohl grundlegendes Problem: ich kann keiner sudo hb-service commands ausführen. Fehlermeldung

    sudo: hb-service: command not found


    leider finde ich hier keine Lösung die sich mir als Laie erschließt :D

  • Dann ist deine Homebridge noch nach der "alten" Anleitung installiert, als es noch kein hb-service gab.

    Siehe auch hier Wichtig: Wechsel der Node LTS-Version von 14 auf 16


    Ich bilde mir ein, dass man mit sudo n 14.18.1 wieder auf Node.js 14.8.1 zurück kommt.

    Einmal editiert, zuletzt von Patrick_ ()

  • Vor einigen Tagen wurde ich in Homebridge Oberfläche darauf hingewiesen nodejs zu aktualisieren um ein Plugin-Update durchführen zu können.

    Gesagt, getan. Nun geht nichts mehr bzw. ich kann kein Plugin mehr installieren oder updaten. Erhalte folgende Fehlermeldung:


    pi@raspberrypi:~ $ sudo -E -n npm install -g homebridge-config-ui-x@latest

    TypeError: Class extends value undefined is not a constructor or null

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/agent.js:114:44)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/index.js:5:33)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/lib/agent.js:161:25)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)


    Hat jemand eine Idee was ich tun kann?


    >Folgende Node Versionen

    pi@raspberrypi:~ $ node -v

    v17.2.0

    pi@raspberrypi:~ $ nodejs -v

    v10.24.0

    pi@raspberrypi:~ $ npm -v

    8.1.4


    Ich würde mich sehr über Unterstützung freuen. Muss dazu sagen, dass ich ein absoluter Neuling im Gebiet bin.

    Besten Dank im Voraus

  • CrazyRaspiNewbee deinen Beitrag habe ich hierhin verschoben, bitte das Thema durchlesen, vor allem den als "Hilfreich" markierten Beitrag.


    Bitte niemals eine ungerade Version von Node.js verwenden, niemals. Das sind unfertige Versionen, die sich noch in der Entwicklung befinden und für Programmierer gedacht. Für uns Endnutzer sind nur die geraden Versionen (12, 14, 16) relevant. Homebridge unterstützt diese Versionen gar nicht:

    https://github.com/homebridge/…iki/How-To-Update-Node.js


    Zitat

    Homebridge (and verified plugins) support all current Active and Maintenance LTS releases of Node.js. At the time of writing, this means we will support:

    • Node.js 10.x until April 2021
    • Node.js 12.x until April 2022
    • Node.js 14.x until April 2023
    • Node.js 16.x until April 2024

    Homebridge does not support odd-numbered releases of Node.js, such as 11.x, 13.x, 15.x or 17.x.

  • CrazyRaspiNewbee deinen Beitrag habe ich hierhin verschoben, bitte das Thema durchlesen, vor allem den als "Hilfreich" markierten Beitrag.


    Bitte niemals eine ungerade Version von Node.js verwenden, niemals. Das sind unfertige Versionen, die sich noch in der Entwicklung befinden und für Programmierer gedacht. Für uns Endnutzer sind nur die geraden Versionen (12, 14, 16) relevant. Homebridge unterstützt diese Versionen gar nicht:

    https://github.com/homebridge/…iki/How-To-Update-Node.js

    Erst einmal besten Dank für die Links. Ja das hatte ich leider erst zu spät entdeckt mit der ungeraden Version und habe es leider nicht mehr hinbekommen eine ältere Version darüber zu stülpen....

    Ich habe dann in den sauren Apfel gebissen und Homebridge komplett neu installiert.

    Besten Dank

  • Ok ich denke jetzt habe ich mir meine Homebridge "zerschossen" bzw. kann ich mich nicht mehr über den Browser einloggen, da der Server nicht gefunden wird.


    Nachdem mir das Homebridge-Hue Plugin vor dem letzten Update empfahl meine Node Version upzudaten habe ich das über's Terminal getan.


    Mit

    Code
    sudo hb-config

    habe ich das "Configuration Tool" aufgerufen und dort die Node Version auf v16.3.2 erfolgreich installiert. Anschließend wurde mir im Terminal empfohlen auch meine NPM Version zu aktualisieren, ich glaube auf 8.3.2?.


    Ich habe leider den Befehl nicht mehr zur Verfügung, der mir im Terminal empfohlen wurde. Jedenfalls kam dann

    Code
    npm: command not found

    zum Vorschein.


    Code
    npm -v

    bestätigt meine Befürchtung, dass ich zwar die aktuelle Node Version installiert habe, allerdings dabei NPM gelöscht wurde?!


    Das Problem hierbei ich letztlich das ich mich nicht mehr bei meiner Homebridge einloggen kann. Auch antworten sämtliche Geräte in der Home App nicht was mir sagt, dass die IP oder wohl eher der Port geändert worden? Wenn ja, wie ist das möglich und kann man das wieder "fixen"?


    Die Homebridge selbst dürfte ja nicht gelöscht sein, da ich mir weiterhin per SSH mit der bisherigen IP an meinem Raspi einloggen kann und dort wird mir auch weiterhin die IP samt Port gezeigt unter der meine Homebridge erreichbar sein soll.


    Ich hoffe ihr könnt mein Dilemma nachvollziehen :rolleyes:.


    Edit:


    Soeben habe ich gemerkt das auch die

    Code
    hb-service

    Befehle wie bspw.


    Code
    sudo hb-service logs

    oder

    Code
    sudo hb-service restart

    ebenfalls nicht funktionieren.

    Code
    hb-service: command not found

    Command not found ist auch hier das Ergebnis.

  • Such zuerst mal im Router nach deinem Raspberry. Sollte er gefunden werden.

    Versuch ihn an zu Pingen. Verbinde im Browser, mit der im Router stehende IP,
    den Pi. So solltest Du auf die Oberfläche vom Raspberry kommen.

    Ich führe Update mit "sudo hb-service update-Node" durch.

  • Such zuerst mal im Router nach deinem Raspberry. Sollte er gefunden werden.

    Versuch ihn an zu Pingen. Verbinde im Browser, mit der im Router stehende IP,
    den Pi. So solltest Du auf die Oberfläche vom Raspberry kommen.

    Ich führe Update mit "sudo hb-service update-Node" durch.

    IP ist die Gleiche. Meine Geräte haben alle eine feste IP. Hab die Homebridge komplett neu aufgesetzt inklusive deCONZ / Phoscon. Alle Updates eingespielt und es flutscht wieder.


    Wie gesagt die "hb-service" Befehle haben nicht funktioniert. Habe das aktuelleste Homebridge Images genommen, vom 20.01.22. Node Version ist 16.3.2 und NPM 8.3.1.


    Wie oben beschrieben wurde mir nach dem manuellen updaten allerdings die NPM 8.3.2 "empfohlen". Naja, nun läuft's wieder. Hat man die nötigen Backups ist das neu aufsetzender HB schneller und nervenschonender als die Fehlersuche :P.


    Trotzdem danke für die schnelle Rückmeldung Macom.

  • Sehr lobenswert Regelmäßig Backups zu erstellen. Ist wie eine „Lebensversicherung“.👍

  • Hallo zusammen,


    habe mit meiner Homebridge NUR Probleme! Ich muss sie im schnitt alle 3 Monate neu aufsetzen weil sie immer Probleme macht. Aber jetzt möchte ich wissen was das Problem ist und wie ich nicht schon wieder ein ganzes Wochenende aufwenden muss um alles neu einzurichten.


    Habe Homebridge auf einem Pi Zero installiert. Seid Wochen verweigert er von 6 meiner Plugins die Updates. Zudem auch ein Homebridge Update. Er schließt es nicht ab und bricht mit einem Fehler ab. Der Fehler lautet ich soll im Protokoll nachsehen. Da werde ich aber nicht schlau. Nach einem Neustart Bootet Homebridge jetzt bis ins unendliche. Per SSH habe ich noch zugriff aber da verweigert er auch irgendwie sämtliche befehle. Hier ein Auszug:


    pi@homebridge:~ $ sudo npm update -g

    TypeError: Class extends value undefined is not a constructor or null

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/agent.js:114:44)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/index.js:5:33)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/lib/agent.js:161:25)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)



    Jemand eine Idee was ich machen kann? finde es absolut nervig mich nie auf Homebridge verlassen zu können und immer im Hinterkopf zu haben: wer weiß wann ich das nächste mal von 0 anfangen darf.



    Danke euch!

  • kalle.b1 Deinen Beitrag habe ich hierhin verschoben. Welche NPM und Node.js Version nutzt du? Bitte den als Hilfreich markierten Beitrag lesen.

  • Ok und wenn ich hb-service nicht nutze? Wenn ich die befehle angebe kommt entweder meinen klassischer Fehler:


    TypeError: Class extends value undefined is not a constructor or null

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/agent.js:114:44)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/socks-proxy-agent/dist/index.js:5:33)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/make-fetch-happen/lib/agent.js:161:25)

    at Module._compile (node:internal/modules/cjs/loader:1101:14)



    oder bei hb-service:


    pi@homebridge:~ $ sudo hb-service update-node 14.18.

    sudo: hb-service: command not found

  • Wenn du noch nach der alten Smartapfel-Anleitung (Vor März 2021) deine Homebridge aufgesetzt hast, dann müsstest du das Programm n drauf haben.


    Sollte dann mit einem sudo n 14.18.1 gehen um auf eine ältere Version zurückzukommen.

  • Wenn du noch nach der alten Smartapfel-Anleitung (Vor März 2021) deine Homebridge aufgesetzt hast, dann müsstest du das Programm n drauf haben.


    Sollte dann mit einem sudo n 14.18.1 gehen um auf eine ältere Version zurückzukommen.

    Ich habe es anhand einer YouTube Anleitung aufgesetzt. Keine Ahnung was ich für Programme drauf habe oder nicht. Dein tip bringt aber folgendes:


    sudo: n: command not found