Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test ioBroker unter Windows installieren - 2022 Edition

    NEWS

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    Test ioBroker unter Windows installieren - 2022 Edition

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @Codierknecht last edited by

      @codierknecht sagte in Test ioBroker unter Windows installieren - 2022 Edition:

      Ich habe keine angekündigten Versionen von Windows zur Verfügung

      in der Zukunft testen ist auch nicht ganz so einfach! 😂

      immer noch am Täblett?

      Codierknecht 1 Reply Last reply Reply Quote 0
      • Codierknecht
        Codierknecht Developer Most Active @Homoran last edited by

        @homoran sagte in [Test ioBroker unter Windows installieren - 2022 Edition](/post/925671

        immer noch am Täblett?

        Jepp - mit Autokorrektur 😞
        Hab‘s korrigiert - Danke!

        1 Reply Last reply Reply Quote 0
        • Codierknecht
          Codierknecht Developer Most Active @JB_Sullivan last edited by Codierknecht

          @jb_sullivan
          Nachtrag:
          Das Problem scheint hier auch weniger der Installer selbst, sondern eher der Paketmanager NPM zu verursachen.
          Ich vermute irgendwelche Seiteneffekte mit den bereits installierten MS-Tools.

          @apollon77
          Der „alte“ Installer funktioniert übrigens tadellos - aber dann habe ich da ein steinaltes System. Das zu aktualisieren ist dann auch alles andere als trivial.

          Ich lass das System jetzt erstmal so wie es ist. Wenn ihr was zum Testen braucht, meldet euch.

          K Codierknecht 2 Replies Last reply Reply Quote 0
          • K
            klassisch Most Active @Codierknecht last edited by

            @codierknecht windows 10 sollte nicht das Problem sein. Mein Rechner hat Windows 10

            Der alte installer war wirklich klasse. Aber leider sehr komplex. Alle Achtung was da ablief.
            Besonders klasse war, dass man Instanzen parallel installieren konnte. Risikominimierung bei Updates. Einfach eine neue instanz angelegt. Wenn beim Update was schief gelaufen ist, einfach Instanzen umgeschaltet und mit der alten Version weiter gemacht

            1 Reply Last reply Reply Quote 0
            • Codierknecht
              Codierknecht Developer Most Active @Codierknecht last edited by Codierknecht

              @apollon77
              Ich bin jetzt auch nicht unbedingt der InnoSetup-Experte.
              Aber wenn ich mir das Script so ansehe, entdecke ich zwar Code der die Existenz von Node abprüfen soll - der wird aber (so wie ich das sehe) nie aufgerufen.
              Ist also bereits ein Node installiert, wird es trotzdem nochmal installiert.

              Außerdem bin ich soeben noch den endgültigen Schritt weiter gekommen 😁
              Die Ursache für das Scheitern von npm: Bei mir lief der Continuous-Integration-Dienst und das dafür notwendige Postgres.
              Nachdem ich die entsprechenden Dienste gestoppt hatte, lief die Installation über npx @iobroker/install problemlos durch und ioBroker läuft.

              Das Setup müsste demnach 2 Dinge prüfen und ggf. darauf reagieren:
              1.) Ist schon ein Node.js mit einer Mindest-Versionsnummer installiert, braucht man kein weiteres zu installieren
              2.) Sind die Ports (9000, 9001) bereits in Benutzung, müssen andere gewählt werden

              Codierknecht 1 Reply Last reply Reply Quote 0
              • Codierknecht
                Codierknecht Developer Most Active @Codierknecht last edited by

                @apollon77
                Über die Registry lässt sich ermitteln, ob (und in welcher Version) Node.js bereits installiert ist:

                var
                  version: string;
                if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Node.js') then
                begin
                  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Node.js', 'Version', version) then
                  begin
                    MsgBox('Node.js has already been installed. Version: ' + version, mbInformation, MB_OK);
                  end;
                end;
                

                Und auch ob ein bestimmter Port bereits verwendet wird, lässt sich ermitteln:
                https://stackoverflow.com/questions/21701847/how-to-check-if-port-is-usable-in-inno-setup

                Stellt sich die Frage, ob man beim Installieren von ioBroker per NPM festlegen kann, mit welchen Ports ioB zu arbeiten hat. Im Installer könnte man ja bei verwendeten Ports eine Seite zur Portauswahl zwischenschalten.

                apollon77 K 2 Replies Last reply Reply Quote 0
                • apollon77
                  apollon77 @Codierknecht last edited by

                  @codierknecht Cool ... am besten leg das bitte mal in den "Build" repo als github oissue an ... dann ists vllt einfacher. Wenn Du dich da auskennst ist Bluefox ggf auch über einen PR happy 🙂

                  Was ports angeht so prüft auch der Linux installer (noch) nicht ob die ports frei sind, würde es ggf nur in der Anleitung hin schreiben und dann soll man die freiräumen. Ja ports ändrn ginge ggf auch ... aber 🙂

                  Ansonsten ist das 8was noch für mich bekannt ist) das fehlt das man im Fehlerfall quasi die Shell ausgaben der Aktion also Textfile speichert und öffnet ... damit man einen Anhaltspunkt hat

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @apollon77 last edited by

                    @apollon77 Wird gemacht!

                    1 Reply Last reply Reply Quote 1
                    • K
                      klassisch Most Active @Codierknecht last edited by

                      @codierknecht sagte in Test ioBroker unter Windows installieren - 2022 Edition:

                      Stellt sich die Frage, ob man beim Installieren von ioBroker per NPM festlegen kann, mit welchen Ports ioB zu arbeiten hat. Im Installer könnte man ja bei verwendeten Ports eine Seite zur Portauswahl zwischenschalten.

                      Irgendwie geht das. Der alte Installer konnte das. Brauchte er wegen der Parallelinstanzen.

                      Die Portbelegung kam durch Intel Graphik, wie dort https://forum.iobroker.net/post/925516 erwähnt.

                      apollon77 1 Reply Last reply Reply Quote 0
                      • apollon77
                        apollon77 @klassisch last edited by

                        @klassisch Ja der alte Installer ist aber am Ende so "Hoch komplex geworden" das ihn keiner mehr verstanden hat, daher mussten wir eine "Back to the basics cut" machen 🙂

                        Codierknecht 1 Reply Last reply Reply Quote 0
                        • Codierknecht
                          Codierknecht Developer Most Active @apollon77 last edited by

                          @apollon77
                          Ich bin zum Installer noch einen kleinen Schritt weiter gekommen:
                          Der Installer prüft, ob die Datei C:\Program Files\Common Files\nodejs\node.exe existiert.
                          Mein Node.js 16.18.1 hat sich aber standardmäßig nach C:\Program Files\nodejs installiert.
                          Somit bekommt der Installer des ioBroker gar nicht mit, dass Node bereits installiert ist und installiert nochmal sein eigenes.

                          Issue ist entsprechend ergänzt.

                          1 Reply Last reply Reply Quote 2
                          • Gaspode
                            Gaspode last edited by

                            @codierknecht said in Test ioBroker unter Windows installieren - 2022 Edition:

                            Somit bekommt der Installer des ioBroker gar nicht mit, dass Node bereits installiert ist und installiert nochmal sein eigenes.

                            Wie bereits beim Issue kommentiert wäre es imo das Sicherste, node.exe über den Windows Pfad zu ermitteln. Ich habe einen PR mit einem entsprechenden Vorschlag erstellt.

                            1 Reply Last reply Reply Quote 1
                            • Gaspode
                              Gaspode last edited by Gaspode

                              Leider hatte das mit dem Pfad seine Tücken. Wenn kein Node installiert war, wurde de Pfad während der Node Installation aktualisiert, aber der Installer bekam das nicht mit.
                              Ich hab den PR jetzt so geändert, dass der Pfad aus der Registry genommen wird, diese Aktualisierung bekommt man im Installer mit.
                              Die Node Versionsprüfung hab ich gelassen, wie sie war (also über node.exe).

                              Diverse Tests mit und ohne installiertem Node.js waren jetzt bei mir erfolgreich.

                              1 Reply Last reply Reply Quote 1
                              • Gaspode
                                Gaspode last edited by Gaspode

                                Ich hab jetzt nochmal ein wenig mit dem Installer rumgespielt. Dabei ist mir aufgefallen, dass der npx Call am Ende anscheinend nicht ganz stimmt. Irgendwas ist da doppelt gemoppelt. Seltsamerweise klappt es manchmal, d.h. die npx ioBroker Installation klappt manchmal, manchmal läuft sie los, bricht aber ab und manchmal startet sie erst gar nicht bzw. bricht sofort ab.
                                Ich hab einen weiteren PR angelegt, wie es meiner Meinung nach richtig sein müsste. Im Test funktioniert es bei mir damit zuverlässig (bei Neuinstallation, mehr dazu weiter unten).

                                Und noch eine Frage/Anmerkung:
                                Führt man den Installer bei vorhandener Installer-Installation erneut aus, wird node.js geprüft und ggfs. aktualisiert. Anschließend wird aber die npx ioBroker Installation erneut ausgeführt. Bei mir bricht die sofort ab und lässt ioBroker in einem merkwürdigen Zustand zurück. Nach manuellem ioBroker stop/start läuft er dann wieder.
                                Soll das so sein? 😉
                                Ich könnte mir zwei Alternativen vorstellen:
                                a) nach dem Uptate von node.js ist Schluss
                                b) es wird nicht "npx @iobroker/install" sondern "npx @iobroker/fix" aufgerufen
                                Bei b) bin ich mir nicht so sicher, ob das nicht ein zu großes Risiko ist und man enigstens noch eine Abfrage vorschalten müsste/sollte.

                                Was meint Ihr?

                                Codierknecht apollon77 2 Replies Last reply Reply Quote 0
                                • Codierknecht
                                  Codierknecht Developer Most Active @Gaspode last edited by

                                  @gaspode
                                  Üblich ist unter Windows doch wohl, dass beim Starten eines Installers festgestellt wird, dass die Applikation bereits installiert ist und dann "Deinstallieren" und ggf. "Reparieren/Modifizieren" angeboten wird.
                                  Ich würde daher für Option b) plädieren - natürlich mit der Möglichkeit, das auch einfach abzubrechen.

                                  Ich werde den Installer auch nochmal neu bauen und testen.
                                  Da bei mir ja die Ports bereits verwendet werden, kümmere ich mich dann gleich auch mal um die Erkennung der Ports.
                                  Dazu auch 'ne Frage: Soll - wenn festgestellt wird dass die Ports bereits verwendet werden - der Installer
                                  a) nach den zu nutzenden Ports fragen?
                                  b) selbständig freie Ports suchen und diese verwenden?
                                  c) nur eine Meldung bringen und die Installation abbrechen
                                  Ich würde hier zu b) tendieren, da gerade Einsteiger bereits überfordert sein könnten.

                                  Stellt sich dann noch die Frage aller Fragen: Wie kann man eigentlich direkt bei der Installation über npx festlegen, welche Ports für ioBroker verwendet werden sollen? Wenn das überhaupt geht.

                                  K 1 Reply Last reply Reply Quote 0
                                  • apollon77
                                    apollon77 @Gaspode last edited by

                                    @gaspode sagte in Test ioBroker unter Windows installieren - 2022 Edition:

                                    b) es wird nicht "npx @iobroker/install" sondern "npx @iobroker/fix" aufgerufen

                                    Generell ist es so gebaut das ein "install" am Ende nichts kaputt macht ... es wird ggf nochmal Zeug neu geschrieben oder neu gesetzt bzw er service neu registriert aber ja fix wäre korrekt.

                                    HJetzt gibts nur das Problem das (gibts anderen Thread) ich immer noch nicht rausgefunden habe warum "fix" bei Windows teilweise nicht geht 😞 versuch mal manuell in deinem iobroker dir auszuführen

                                    Gaspode 1 Reply Last reply Reply Quote 0
                                    • Gaspode
                                      Gaspode @apollon77 last edited by

                                      @apollon77 said in Test ioBroker unter Windows installieren - 2022 Edition:

                                      versuch mal manuell in deinem iobroker dir auszuführen

                                      Ich habe den "Node.js Command Prompt" als Admin ausgeführt, damit kommt auch bei mir auf einer frischen ioBroker Installation leider:

                                      F:\ioBrokerTest>npx @iobroker/fix
                                      Need to install the following packages:
                                        @iobroker/fix@4.2.1
                                      Ok to proceed? (y) y
                                      "(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
                                      
                                      apollon77 1 Reply Last reply Reply Quote 0
                                      • apollon77
                                        apollon77 @Gaspode last edited by apollon77

                                        @gaspode Und genau das ist es ... ich hab nicht rausgefunden was da passiert 😞 Und auch nicht wie ich npm die "logausgaben" entlocken kann aber das ist an sich Themenfremd hier ...

                                        Eigentlich kann es nur sein das er in den Linux Fall läuft 😞 https://github.com/ioBroker/ioBroker/blob/master/lib-npx/install.js#L37 hatte aber noch keine Zeit da tiefer zu schauen ... muss erst was auf windows dafür aufsetzen.

                                        Von daher ... install sollte erstmal ok sein auch bei bestands installation (nur DB komprimierung fehlt dann ... das ist akzeptabel)

                                        Gaspode 2 Replies Last reply Reply Quote 0
                                        • Gaspode
                                          Gaspode @apollon77 last edited by

                                          @apollon77 said in Test ioBroker unter Windows installieren - 2022 Edition:

                                          muss erst was auf windows dafür aufsetzen.

                                          Wenn morgen das Wetter wieder so mies ist, könnte ich anbieten das mal anzuschauen. Ich kann das Problem ja gerade so schön reproduzieren. Versprechen kann ich allerdings nix. 🙂

                                          Und nochmal ganz was anderes:
                                          Der eigentliche MSI Teil des neuen Windows Installers macht inzwischen ja nicht mehr soooo viel. Vieles, was der "alte" Installer noch mühsam erledigen musste, ist jetzt ja in die node Installationsroutinen geflossen.

                                          Evtl. könnte man doch nochmal drüber nachdenken, ob wir den Gedanken des alten Installers wieder aufleben lassen. Die Idee war ja zuletzt, soweit ich das mitbekommen habe, dass der Installer keine eigenen Pakete mitbringt, sondern alles anhand von aktuellen Empfehlungen zur Laufzeit herunterlädt und installiert bzw. aktualisiert. Sofern man die Ports bei den node installationsroutinen mitgeben könnte, könnte man sogar wieder den Multi-Instanz-Ansatz ins Auge fassen, in dem jede Instanz ihre eigene node.js Runtime Installation hat.

                                          Ich will jetzt niemandem reingrätschen, aber wenn Interesse besteht, könnte ich in nächster Zeit mal ein paar Dinge ausprobieren. Aber auch hier gilt natürlich: Ich kann nix versprechen, evtl. unterschätze ich die Thematik auch. 🙂

                                          apollon77 sigi234 K 3 Replies Last reply Reply Quote 2
                                          • Gaspode
                                            Gaspode @apollon77 last edited by

                                            @apollon77 said in Test ioBroker unter Windows installieren - 2022 Edition:

                                            Und auch nicht wie ich npm die "logausgaben" entlocken kann aber das ist an sich Themenfremd hier ...

                                            Fu hast nicht zufällig einen Link zum passenden Thread? Ich finde ihn leider nicht.

                                            apollon77 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            528
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            27
                                            275
                                            35152
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo