Node.js und npm Update auf Raspberry Pi mit Homebridge (so Klappt´s auf alle Fälle)

  • Der Zeitpunkt kann ich nur schätzen, oder kann man das sehen?

    müsste am 15 oder 16 September gewesen sein. Ist das wichtig für die Updates? Oder welche bewandtnis hat das genau :) ?

    Schon gut. ich wollte wissen, ob das jetzt zwei Monate her ist oder drei Jahre. Prima, ich weiß jetzt, was du benutzt. Du verwendest die offizielle Homebridge und da hat sich im letzten Jahr wahnsinnig viel getan. Daher schreib dir jetzt mal diese Befehle auf:


    • hb-service stop: stoppt die Homebridge
    • hb-service start: startet die Homebridge
    • hb-service restart: stoppt und startet die Homebridge sofort wieder neu
    • hb-service logs: zeigt die Logs an
    • hb-service update-node: macht ein node-Update


    Und vergiss schlichtweg alle anderen Hinweise. Die oben genannten hb-service-Befehle sind neu und sie hat es früher nicht so gegeben. Ich würde sie an deiner Stelle bevorzugt verwenden, denn das ist die offizielle Vorgehensweise.


    Ich weise mal auf die Forenanleitung zur Installation von Homebridge hin. Das ist genau das, was du auch installiert hast, nur halt in deutscher Sprache und deutlich ausführlicher. Vielleicht sind da ja noch ein paar Tipps für dich dabei. Siehe hier: https://smartapfel.de/homebridge/installieren/

  • Hallo, ich habe bereits alles versucht jedoch ohne erfolg. Sowohl über die beschriebenen befehle als auch über „sudo hb-config“ war es mir nicht möglich node zu updated. Wenn ich sudo hb-config update-node mache steht da ewig downloading und dann der link aber nix tut sich, bzw ich sehe keinen fortschritt


    pi@homebridge:~ $ sudo hb-config

    Updating Node.js to LTS, please wait...

    Installed: v10.24.1

    Current Node.js LTS: v14.18.1

    Updating Node.js to v14.18.1...

    Downloading to /tmp/tmp.k88zxPV5g4/node-v14.18.1-linux-armv6l.tar.gz ...

    -=O#- # # #

    curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to unofficial-builds.nodejs.org:443

    Failed to download node-v14.18.1-linux-armv6l.tar.gz. See logs above.

    pi@homebridge:~ $

    node -v v10.24.1

    npm -v 6.14.12

    pi@homebridge:~ $ homebridge -V

    Initializing HAP-NodeJS v0.9.6...

    1.3.5

    hb-service -v v4.41.2

  • curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to unofficial-builds.nodejs.org:443

    Möglicherweise liegt es daran. Es könnte sein, dass dein curl-Version zu alt ist. Vielleicht solltest du deinen Raspi insgesamt updaten, bevor du das Node-Update machst.


    sudo apt-get update

    sudo apt-get upgrade


    Das kann einige Minuten dauern. Danach versuchst du dein Node-Update noch einmal. Das wäre der erste Schritt, den ich unternehmen würde.


    Ansonsten kannst du es mal mit n versuchen. Erst

    sudo npm install n, dann

    sudo n lts

  • Hab ich alles probiert aber bleibt beim selben Fehler.

    und bei " sudo n lts " kommt folgendes (siehe ende des logs)


    pi@homebridge:~ $ sudo hb-config

    Updating Node.js to LTS, please wait...

    Installed: v10.24.1

    Current Node.js LTS: v14.18.1

    Updating Node.js to v14.18.1...

    Downloading to /tmp/tmp.InTxYLPpEj/node-v14.18.1-linux-armv6l.tar.gz ...

    -=O#- # # #

    curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to unofficial-builds.nodejs.org:443

    Failed to download node-v14.18.1-linux-armv6l.tar.gz. See logs above.

    pi@homebridge:~ $ sudo npm install n

    npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json'

    npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json'

    npm WARN pi No description

    npm WARN pi No repository field.

    npm WARN pi No README data

    npm WARN pi No license field.


    + [email protected]

    added 1 package from 2 contributors and audited 7 packages in 31.988s

    found 0 vulnerabilities


    pi@homebridge:~ $ sudo n lts

       installed : v10.24.1 (with npm 6.14.12)

    pi@homebridge:~ $

  • sschuste sollte es nicht eher global mit sudo npm install -g n installiert werden?

  • Jaja. Ich bin ein Depp und hab was Falsches behauptet. Machs wieder weg:

    sudo npm uninstall n


    und dann

    sudo npm install -g --unsafe-perm n


    Sorry. Patrick_ hat's ja auch schon gesagt.

    pi@homebridge:~ $ sudo n lts

    installed : v10.24.1 (with npm 6.14.12)

    pi@homebridge:~ $

    Ich verstehe. Der Raspi ist zu alt. Was für ein Modell hast du da? Für die älteren Modelle ist das nämlich die neueste Node-Version.

  • Es ist zwar ein Raspberry Pi 1 b+ aber davor lief er, zwar etwas langsam, auf node 14.irgendwas, ich habe nur downgegradet wegen einem eq3 plugin und den dafür benötigten bluetooth hci socket, was leider immernoch nicht installiert werden kann. Ich habe die befehle nochmal ausprobiert, ohne erfolg, noch eine andere Idee? Danke schonmal für die Hilfe bis hier hin.

  • Moin Moin.


    aktuell habe ich das Problem, dass ich kein Plugin mehr updaten kann über config-ui-x

    Log zeigt folgendes.



    Ich vermute, dass es mit node und/oder npm im Zusammenhang steht.

    Update ist wie immer erfolgt sudo hb-service update-node und im Anschluss sudo npm install -g [email protected]


    Die Homebridge funktioniert, nur eben immer diese Meldung und keine Möglichkeit Plugins zu aktualisieren.


    Auch npm zurück auf 7.24.1 brachte keine Abhilfe.



    Jemand an ähnliche Problem, oder sschuste help? 🥺😅 [email protected] das generelle Problem?

    Danke vorab.

  • npm ERR! gyp ERR! find Python You need to install the latest version of Python.

    Ich würd mal da ansetzen.

    sudo apt-get update

    sudo apt-get upgrade

  • Ich würd mal da ansetzen.

    sudo apt-get update

    sudo apt-get upgrade

    Dank Dir. Das hat zwar nichts geschadet, aber auch nichts gebracht.

    Erst zurück auf Npm Version v7.24.1 zeigt keinen Fehler mehr, wenn ich ein beliebiges Plugin update.

    Zurück auf 8.0.0 kommt gleich wieder die Meldung wie oben. 🤷‍♂️

  • npm 8.1.0 ist nun auch da, allerdings brachte das auch bei mir keine Lösung des Problems. ;(

    Zurück auf 7.24.1 und ein Update/Installation von Plugins funktioniert wieder.



  • Muss man npm unbedingt Updaten? Ich nutze noch 6.14.15

    Ich habe es so verstanden, das npm "nur" ein Hilfsprogramm ist. Solange alles läuft, gibt es keine Not zu aktualisieren.


    Wobei ich Heute nach der Anleitung hier im Forum vorgegangen bin Node update und voher den Rat von sschuste befolgt habe (sudo get-apt update und get-apt upgrade).


    Lief alles durch und habe jetzt


    node auf 14.18.1

    npm 8.1.0

    Homebridge 1.3.5


    Probleme sind glücklicherweise ausgeblieben, da ich dann sonst wieder Hilfe im Forum hätte suchen müssen ;)


    Gruß

  • Muss man npm unbedingt Updaten?

    Nein.

  • Hallo zusammen,


    irgendwie habe ich gerade Schwierigkeiten den Conbee II Stick an den RB4 zu installieren. Ich gehe nach der Anleitung, welche auf der Phoscon Seite steht.

    Jetzt wollte ich anschließen meine Node updaten, da ich noch eine 14er Version habe. und bekommen folgende Fehlermeldung:


    ## Installing the NodeSource Node.js 16.x repo...



    ## Populating apt-get cache...


    + apt-get update

    OK:1 http://archive.raspberrypi.org/debian buster InRelease

    OK:2 http://raspbian.raspberrypi.org/raspbian buster InRelease

    Ign:3 http://phoscon.de/apt/deconz -beta InRelease

    Fehl:4 http://phoscon.de/apt/deconz -beta Release

    404 Not Found [IP: 144.76.96.194 80]

    OK:5 https://deb.nodesource.com/node_14.x buster InRelease

    Paketlisten werden gelesen... Fertig

    E: Das Depot »http://phoscon.de/apt/deconz -beta Release« enthält keine Release-Datei.

    N: Eine Aktualisierung von solch einem Depot kann nicht auf eine sichere Art durchgeführt werden, daher ist es standardmäßig deaktiviert.

    N: Weitere Details zur Erzeugung von Paketdepots sowie zu deren Benutzerkonfiguration finden Sie in der Handbuchseite apt-secure(8).

    Error executing command, exiting

    Failed to update Node.js: Command failed: curl -sL https://deb.nodesource.com/setup_16.x | bash -

    pi@raspberrypi:~ $




    Was mache ich hier falsch, bzw. wie kann ich den ganzen ConBee II Kram Rückgängig machen?


    Danke im Voraus für eure Hilfe.


    Ich muss noch einmal hinzufügen, nach dem Update auf Node 17.0.1 kann ich auf meine Homebridge gar nicht mehr zugreifen. Sie ist praktisch gar nicht mehr unter der bekannten ip Adresse verfügbar?


    Was habe ich falsch gemacht? Ich hoffe, dass mir jemand von euch helfen kann, damit ich nicht alle Geräte wieder neu einrichten muss. -_-

    Telekom DSL 50.000

    RP3 + Homebridge / ConBee 2

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

  • Ein Tipp für die Zukunft: vor jedem Update ein Backup anlegen!

    Ich habe bei mir ein "Autobackup" nach einer Anleitung sschuste eingerichtet, ist sehr praktisch.

    Kann man hier nachlesen

    Einmal editiert, zuletzt von Vollerpla ()

  • Wenn ich das richtig verstanden habe sind die geraden Versionen (12, 14, 16) die stabilen Versionen und die Ungeraden Betas. Du solltest also auf die 16.x downgraden. Wie? Frag mich nicht …


    Ein Tipp für die Zukunft: vor jedem Update ein Backup anlegen!

    Hat wunderbar geklappt. Danke dir

    Telekom DSL 50.000

    RP3 + Homebridge / ConBee 2

  • Moin,


    ich bin neu hier und das ist mein erster Post – ich hoffe ich bin hier so richtig ;)


    Auf meinem Raspberry Pi Model B+ mit Raspbian Buster läuft CUPS, Pihole, Homebridge und etwas, um die Sonos Boxen anzusteuern. Das lief bisher auch immer sehr gut und ich habe einmal alle paar Wochen folgendermaßen Updates durchgeführt:


    1. Generelle Updates für den Raspberry, wie man es kennt (apt-get update / apt-get full-upgrade) und für Pihole


    2. Anschließend habe ich die Node Version überprüft mit "node -v" und habe es mit der LTS Version auf der Website abgeglichen. Falls die nicht übereinstimmte, habe ich das Update so durchgeführt

    Code
    cd Downloads
    wget https://unofficial-builds.nodejs.org/download/release/v16.13.1/node-v16.13.1-linux-armv6l.tar.xz
    sudo tar -C /usr/local --strip-components 1 -xJf node-v*.tar.xz
    rm -r node-v*


    3. Anschließend bin ich für Homebridge und alle Plugins folgendermaßen vorgegangen:

    Code
    cd Downloads
    sudo npm outdated -g
    sudo npm cache clean -f
    sudo npm install npm@latest -g
    sudo npm update -g

    Bisher lief das einwandfrei und nach einem Neustart lief alles immer noch – bis vor ein paar Wochen. Seitdem zerschießt mir jedes Update Homebridge. Konkret: Beim Installieren der aktuellsten Version von npm über den Befehl oben hängt sich das Ganze auf und es tut sich teilweise über Stunden nichts – das Einzige, was dann etwas hilft, ist es den Raspberry Pi vom Strom zu nehmen (worunter die SD Karte bekanntlich massiv leidet).


    Wenn ich ihn anschließend starte, dann:

    • Fehlt npm komplett (also command not found)
    • Fehlt pm2
    • Läuft Homebridge nicht

    Also fange ich wieder mit Schritt 2) an, um mir die aktuellste Version von Node zu holen. Anschließend klappt auch "sudo npm outdated -g" und zeigt mir die Plugins an – allerdings steht bei allen "MISSING". In /usr/local/lib/node_modules sind sie zwar noch vorhanden; scheinbar aber irgendwie nicht mehr auffindbar oder verknüpft.


    Nach jedem Update darf ich jetzt also diese Prozedur starten:

    Code
    sudo rm -r /usr/local/lib/node_modules
    cd Downloads
    wget https://unofficial-builds.nodejs.org/download/release/v16.13.1/node-v16.13.1-linux-armv6l.tar.xz

    sudo tar -C /usr/local --strip-components 1 -xJf node-v*.tar.xz
    rm -r node-v*

    sudo npm install --verbose npm@latest -g && sudo npm install --verbose -g -unsafe-perm homebridge@latest -g && sudo npm install --verbose homebridge-config-ui-x@latest -g && sudo npm install --verbose homebridge-fritz-platform@latest -g && sudo npm install --verbose homebridge-sonos@latest -g && sudo npm install --verbose homebridge-zp@latest -g && sudo npm install --verbose pm2@latest -g
    sudo npm audit fix --force

    Anschließend wieder Sonos und Homebridge starten, in pm2 einbinden und neustarten. Das dauert alles ewig und kostet viel Zeit... und zusätzlich sind in Homebridge bzw. der Home App alle Geräte durcheinandergewürfelt und Szenen/Automationen auch gelöscht.


    Hat jemand irgendeine Idee, was hier falsch laufen könnte? Wie kann ich Node/npm/Homebridge sicher aktualisieren; oder liegt der Fehler woanders?


    Über jegliche Hinweise wäre ich dankbar ;)

    Einmal editiert, zuletzt von ModelB+ ()

  • Falls die nicht übereinstimmte, habe ich das Update so durchgeführt

    So kann man das machen. Warum auch nicht, wenn man auf den totalen Umstand steht. Es gibt aber deutlich einfachere Möglichkeiten.


    Ich empfehle die Verwendung von n. Nach einer Installation von Node kann das installiert werden mit dem Befehl sudo npm install -g --unsafe-perm n. Danach ruft man's mit dem leicht zu merkenden Befehl sudo n auf.


    Damit kann man dann folgendes machen:

    • sudo n ruft n in einer interaktiven Shell auf. Hier kann man alle installierten Node-Versionen sehen und zwischen ihnen wechseln
    • sudo n lts installiert die LTS-Version
    • sudo n 14.13.12installiert die Version 14.13.12
    • n --help zeigt an, was noch so geht.

    Ich benutze n seit langem ohne jede Probleme für alle Node-Updates.


    Auch ganz nett ist npm-check, das mit dem Befehl sudo npm-check -gu eine interaktive Shell zur Node-Modules-Pflege anbietet, sozusagen sudo npm outdated -g in Schön. Allerdings bin ich damit sehr vorsichtig und mache damit eigentlich nur Updates von Node Red, aber nie von Plugin-Bestandteilen (Angst essen Seele auf). Wenn ich das Zeugs nicht kenne und zweifelsfrei zuordnen kann, dann lasse ich die Finger von Updates.


    Installieren mitsudo npm install -g --unsafe-perm npm-check.


    Um den Node-Installer npm kümmere ich mich gar nicht, außer er fängt an, Mist zu bauen, weil er zu alt ist. Ich benutze einfach immer das npm, das die Node-Installation mitliefert. Oft genug habe ich npm auch gar nicht updaten können und dann heißt es bei mir nach kurzer Zeit: "mir doch egal".


    pm2 habe ich noch nie benutzt.

    Hat jemand irgendeine Idee, was hier falsch laufen könnte? Wie kann ich Node/npm/Homebridge sicher aktualisieren; oder liegt der Fehler woanders?

    Ich weiß es nicht. Wie gesagt, mache ich keine Updates von npm mehr und halte npm auch nicht für so superwichtig. Ist für mich halt nur ein Installer, der mit dem normalen Betrieb der Node-Programme nichts zu tun hat.

  • Danke für deinen ausführlichen Beitrag und die Tipps!

    Ich empfehle die Verwendung von n. Nach einer Installation von Node kann das installiert werden mit dem Befehl sudo npm install -g --unsafe-perm n. Danach ruft man's mit dem leicht zu merkenden Befehl sudo n auf.

    Ich kannte die Anleitung zu n hier vorher gar nicht – werde ich in Zukunft dann mal so probieren, vielen Dank!

    Auch ganz nett ist npm-check, das mit dem Befehl sudo npm-check -gu eine interaktive Shell zur Node-Modules-Pflege anbietet, sozusagen sudo npm outdated -g in Schön.

    Danke – werde ich mir ansehen!

    Um den Node-Installer npm kümmere ich mich gar nicht, außer er fängt an, Mist zu bauen, weil er zu alt ist. Ich benutze einfach immer das npm, das die Node-Installation mitliefert. Oft genug habe ich npm auch gar nicht updaten können und dann heißt es bei mir nach kurzer Zeit: "mir doch egal".

    Okay – grundsätzlich natürlich auch ein Ansatz, wenn man npm einfach nur immer über die node lts Version aktualisiert. Werde ich in Zukunft wohl auch so machen! Sonst bin ich grundsätzlich ein Freund davon, Updates möglichst bald einzuspielen (schließlich werden Lücken geschlossen, v.a. auch Sicherheitslücken, ...).


    Allerdings ist dann meine Frage, wie ich die Plugins aktualisiere? Muss ich dann jedes Mal nach dem Update von node/npm über n manuell erst die veralteten Plugins anzeigen lassen und dann jedes einzeln aktualisieren? Also:

    Code
    sudo npm outdated -g
    sudo npm cache clean -f
    sudo npm install -g homebridge-plugin1@latest
    sudo npm install -g homebridge-plugin2@latest
    sudo npm install -g homebridge-plugin3@latest

    Denn wenn ich einfach sudo npm update -g laufen lasse und es ein Update für npm gibt (was darüber ja auch gefunden wird), dann wird es wohl wieder ein Problem mit dem Update für npm geben und meine Homebridge-Installation zerschieden. Wie aktualisierst du in deiner Routine die Plugins, oder nutzt du die grafische Oberfläche im Browser? Ich bin eigentlich über alles froh, was ich gleich im Terminal mit erledigen kann.


    Edit: Ggf. kann ich mir die letzte Frage selbst beantworten: Wenn ich npm-check nutze, dann sollte ich damit doch auch die Homebridge Plugins aktualisieren können (und npm einfach auslassen, da man damit ja auswählen kann, was aktualisiert werden soll und was nicht), richtig?

    Einmal editiert, zuletzt von ModelB+ ()