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

  • Am 26. Oktober wird sich die Node LTS-Version von Version 14 auf Version 16 verändern. Was das bedeutet, will ich im Folgenden kurz darlegen.


    Was ist Node?

    Node ist eine Basis-Software, um Javascript-Programme auf einem Computer laufen zu lassen. Da die Homebridge und ihre Plugins zum größten Teil in Javascript geschrieben sind, wird Node immer benötigt, damit überhaupt etwas geht.


    Was bedeutet Node LTS?

    LTS ist die Abkürzung für Long Time Support und bezeichnet Software-Versionen, die der Hersteller über eine längere Zeit pflegt. Das ist sozusagen die Haupt-Version von Node. Hier wird garantiert, dass alle kritischen Fehler über 30 Monate repariert werden. Der wesentliche Punkt dabei ist, dass es keine funktionalen Änderungen mehr gibt, egal was dem Hersteller einfällt, an Node noch zu schrauben. Das heißt, dass Plugins, die beispielsweise für Node 14.0 geschrieben wurden, auch unter Node 14.11.7 laufen. Der wichtige Teil der Versionsnummer ist hier die 14.


    Was sind funktionale Änderungen?

    Node stellt Funktionen (oder Methoden) bereit, die Programmierer benötigen, damit ihr Programmcode funktioniert. Ein Hersteller kann sich entscheiden, derartige Funktionen umzugestalten, so dass sie anders verwendet werden müssen, oder er kann sich sogar entscheiden, bestimmte Funktionen nicht weiter anzubieten. Plugins, die derartige Funktionen verwenden, würden dann im besten Fall abstürzen und im schlimmsten Fall falsche Ergebnisse liefern. Tatsächlich kommt aber kein Software-Hersteller auf die Idee, das einfach so zu machen. Solche Änderungen werden sehr lange vorher angekündigt, so dass jeder Programmierer die Möglichkeit hat, seinen Programmcode an die neuen Gegebenheiten anzupassen.


    Hier kann man sehen, dass die Node-Entwickler schon lange vorher wissen, wann sie eine Version auf den Markt werfen: https://nodejs.org/en/about/releases/

    Da steht beispielsweise, dass die älteste Version, die sich noch in irgendeiner Pflege befindet, die Version 12 ist, dass die Version 14 die aktive LTS-Version ist, dass in ein paar Tagen die Version 16 die aktive LTS-Version werden wird und somit die 14er-Version ablöst.


    Was sagt die Versionsnummer?

    Zunächst mal: die Node-Versionen, die wir benutzen sollten, haben alle gerade Nummern (10, 12, 14, 16...). Die ungraden Versionen befinden sich in der Entwicklung, sind im Test, verändern sich möglicherweise stark oder sind nicht vollständig. Gar nicht weiter beachten.


    Die Node-Programmierer verwenden wie viele andere Programmierer ein System für ihre Versionsnummern. Die Versionsnummer besteht da aus drei Teilen, die durch einen Punkt getrennt sind. Die Teile haben Namen, die MAJOR, MINOR und PATCH heißen. Am Beispiel von Node 14.18.1 bedeutet das:

    • 14: MAJOR. In der Version 14 hat es vielleicht manche Änderungen gegeben, die nicht kompatibel zur Version 12 sind. Damit das jeder kapiert, hat sich die erste Nummer geändert (von 12 auf 14).
    • 18: MINOR. In der Version 14.18 hat es Änderungen gegeben, die aber nicht inkompatibel sind zu allen anderen 14er-Versionen. Möglicherweise wurde etwas hinzugefügt, aber auf keinen Fall wurde etwas entfernt oder in seiner Funktion verändert. Plugins für Version 14 laufen weiterhin ohne Einschränkungen.
    • 1: PATCH. In der Version 14.18.0 hat es einen Programmierfehler gegeben, der ausgebügelt wurde. Auch hier laufen Plugins für Version 14 ohne Einschränkungen.

    Viele Plugin-Programmierer machen es mit ihren Versionsnummern übrigens ganz genauso.


    Na schön, und was hab ich jetzt davon?

    Am 26. Oktober wird sich die LTS-Version von 14.x.x auf 16.x.x verändern. Alle diejenigen, die bislang ihr Node auf der neuesten LTS-Version gehalten haben, werden nun eine neue Version bekommen, die sich im MAJOR verändert hat. Eine Änderung im MAJOR kann dazu führen, dass manche Plugins nicht mehr laufen werden. Das betrifft möglicherweise Plugins, die schon lange nicht mehr von ihren Programmierern gepflegt wurden. Dass muss nicht zwingend so sein, aber es kann sein.


    Was nun? Profis nehmen nun einen neuen Raspi, duplizieren darauf ihre laufende Homebridge, unterziehen sie einem Update auf die neue MAJOR-Versionen und sehen, was geht und was nicht. Typen wie ich knallen die neue Version einfach drauf und nehmen eine Unterbrechung ihrer Homebridge in Kauf. Etwas Ängstlichere machen lieber gar kein Update und begründen das mit der alten Wahrheit "never change a running system". Jede dieser Vorgehensweisen hat etwas für sich, wobei die erste und die letzte von äußerster Vorsicht zeugen und meine Holzhammer-Methode eher nicht.


    Wie vorgehen?

    Wichtig: niemand muss jetzt updaten. Damit kann man sich erstmal schön Zeit lassen und dem Forum lauschen. Es gibt hier im Forum einige, die bereits seit einer geraumen Zeit die Version 16 einsetzen. Man hört wenig Drama aus dieser Richtung, eigentlich gar nichts, aber vielleicht gibt es ja schlechte Erfahrungen mit dem einen oder anderen Plugin. Wär schön, wenn wir da mal was hören würden.


    Update des offiziellen Homebridge-Images (auch nach Startapfel-Anleitung ab März 2021) :

    • Auf dem Raspi per ssh einloggen und dort den Befehl sudo hb-service update-node eingeben. Bei Problemen kann man das Update rückgängig machen mit
      sudo hb-service update-node 14.18.1


    Update älterer Homebridge-Installation (nach Startapfel-Anleitung bis Ende Februar 2021) :

    • Wer eine Installation hat, die manuell aufgesetzt worden ist (so wie sie die alte Smartapfel-Anleitung bis Februar 2021 beschrieb), sollte zum Update die Software n verwenden. Wenn man sie nicht schon installiert hat, dann erledigt das der Befehl:
      sudo npm install -g --unsafe-perm n

      Wenn man sudo n aufruft, wird einem die aktuell installierte Version angezeigt. Hat man n bereits früher verwendet, um Node-Versionen upzudaten, dann werden einem alle damit installierten Versionen angezeigt. Hier kann man ein Node-Update auf einfache Art und Weise wieder rückgängig machen, indem man mit dem Cursor auf die gewünschte Node-Version geht und dann dort die Entertaste drückt.

      Das Updaten geht so:
      sudo n lts (installiert die neueste Node LTS-Version)

    4 Mal editiert, zuletzt von sschuste ()

  • Immer wieder ein Verfügen deine Posts zu lesen ... danke dafür!

    //.ichael

    -----------------------------------


  • Der Wechsel hat hier unterDocker auf Synology einwandfrei funktioniert.

    Alle Plugins laufen!


  • Ich habe mal mit Hbservice meine Node Version hochgezogen. Erst mal ohne Stress und Probleme:

    Ich musste die HB nur einmal nachstarten, weil Sie irgendwie hing.


    Die Plugins laufen mal.

    //.ichael

    -----------------------------------


  • Hier ebenfalls keinerlei Probleme aufgrund Node v16.13.0

    Hilfreich?

  • Moin Leute, ich habe heute mal wieder auf der Weboberfläche meiner HB vorbeigeschaut und habe gesehen, dass einNode.js Update ansteht. Vorsichtshalber habe ich noch ein Backup heruntergeladen.

    Update über die Konsole mit dem Befehl sudo hb-service update-node ausgeführt und das Update lief.

    Bei den letzten Schriftzügen konnte ich sehen, dass da ganz viel "ERROR" stand und das wars dann.

    HB war von da an tot ;(

    Habe das Raspbian-Homebridge-imgage neu auf den USB Stick geschrieben und das Backup zurückgespielt.

    Einmal editiert, zuletzt von Vollerpla ()

  • Vollerpla


    Ich hab deinen Beitrag mal in diesen bestehenden verschoben

  • Ich hab vor zwei Tagen das Hue-Plugin installiert. Nachdem ich das tat, gab es eine Fehlermeldung, dass mein Node nicht kompatibel sei, oder sowas. Hab gesehen, dass das Hue-Plugin 14.xx benötigt und ich hatte eine neuere Version installiert. Frage, wenn ich jetzt die 16.xx installiere, läuft das Aue-Plugin dann?

  • Es gilt das oben beschriebene:

    Eine Änderung im MAJOR kann dazu führen, dass manche Plugins nicht mehr laufen werden. Das betrifft möglicherweise Plugins, die schon lange nicht mehr von ihren Programmierern gepflegt wurden. Dass muss nicht zwingend so sein, aber es kann sein.

    Wichtig: niemand muss jetzt updaten.

    und zu guter letzt:

    Bei Problemen kann man das Update rückgängig machen mit
    sudo hb-service update-node 14.18.1



    Bei mir läuft Homebridge-Hue problemlos unter Node 16.

  • Vollerpla


    Ich hab deinen Beitrag mal in diesen bestehenden verschoben

    Oh, ok habe nicht gesehen, dass es dazu schon einen Thread gab


    Und was mache ich jetzt ??? Gar keine Updates mehr ???:/

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

  • Keiner zwingt dich jetzt schon auf Node.JS 16 umzusteigen! Abwarten und Tee trinken, solang alles mit 14.18.1 läuft.


    Ansonsten kann man dir schlecht mit der Info "dass da ganz viel "ERROR" stand" weiterhelfen.

  • Ansonsten kann man dir schlecht mit der Info "dass da ganz viel "ERROR" stand" weiterhelfen.

    Ich werde das Update heute Nachmittag nochmal anstoßen und schauen, ob ich einen Screenshot von den „ERRORS“ machen kann

  • Frage, wenn ich jetzt die 16.xx installiere, läuft das Aue-Plugin dann?

    Ja.

  • Ich werde das Update heute Nachmittag nochmal anstoßen und schauen, ob ich einen Screenshot von den „ERRORS“ machen kann

    Bitte, bitte keine Screenshots!!


  • Bitte, bitte keine Screenshots!!

    OK...

  • Mhhh, das ist komisch, habe den selben Ablauf wie heute morgen für das Update auf Node.JS 16 durchgeführt, was soll ich euch sagen, es lief sauber durch.

    Eine "ERROR-Meldung" kam die hieß: Error: Cannot find module 'socks' was das auch immer heißen soll.

    Ich habe HB nochmal neu gestartet, keine Fehlermeldung mehr.

  • Typen wie ich knallen die neue Version einfach drauf und nehmen eine Unterbrechung ihrer Homebridge in Kauf.

    Schade, dass ich deinen Artikel nicht vor dem Update gelesen hatte. Mir gehts da so wie dir, mit dem Unterschied, dass ich grad mal HB richtig schreiben kann und eigentlich eher nach dem Schema "nerver change a running system" agieren sollte.


    Ich habe mich darüber schon an einer anderen Stelle (mi-flower-care) über mich selbst beklagt weil das eigentlich der Auslöser war - die Geräte waren plötzlich aus der EVE App verschwunden. Der gute Gedanke dabei ist aber, dass ich jetzt mal wieder ein bisschen dazu lerne (-lernen muss), wie ich meine homebridge wieder zum Laufen bekomme.

    Zumindest habe ich noch Zugriff auf meine Raspi, das ist ja schon mal die halbe Miete.


    Ich werde mich also jetzt mal in die Artikel stürzen und iich bin natürlich für jegliche Unterstützung dankbar.


    Cheers

    Mike


    1. ÜA:

    da fängt das Problem schon an, ich muss mit diesem Befehl updaten:


    sudo npm install -g --unsafe-perm n


    weil ich offensichtlich eine alte Installation habe, => das der Befehl:


    sudo hb-service update-node 14.18.1


    ins Leere läuft (sudo: hb-service: command not found)

    2 Mal editiert, zuletzt von Mikemolto ()

  • Ich hatte Glück, dass ich von der Version Node 14.18.1 ein Backup hatte, habe das Image neu aufgespielt und das Backup wieder drauf

  • Nun mikemolto Du musst erst mal den hb-Service installieren.

    Code
    sudo hb-service install --user homebridge

    Mach unbedingt vorher ein Backup, hin und wieder kommt es zu Problemen.

    Hier zur Info hb-Service.