Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test ioBroker Fixer mit JSONL-Compression

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test ioBroker Fixer mit JSONL-Compression

    This topic has been deleted. Only users with topic management privileges can see it.
    • mcm1957
      mcm1957 @apollon77 last edited by

      @apollon77

      Yep - das such ich ja.

      npx starte offensichtlich IMMER den Befehl der als erstes im PATH gefunden wird. Der ist hier iobroker. Wenn man im Package.json den Befehl nicht iobroker sondern z.B. iobroker-fix nennen würde, sollte es gehen. Ich weiß aber nicht wie ich das testen könnte.

      --ignore-existing bei npx hätte das auch lösen können:

      --ignore-existing - If this flag is set, npx will not look in $PATH, or in the current package's node_modules/.bin for an existing version before deciding whether to install. Binaries in those paths will still be available for execution, but will be shadowed by any packages requested by this install.
      

      Nur wurde der qualifier eleminiert 😞

      Hier gibts eine Erläuterung zu dem Problem:
      https://superuser.com/questions/1623020/npx-capacitor-cli-resolving-to-c-windows-rstcli-exe

      ERGO:
      Wenn es trivial möglich ist (ohne sideeffects) wäre es einen Versuch wert

        "main": "./lib-npx/install.js",
        "bin": {
          "iobroker": "./lib-npx/install.js"
        },
      

      durch z.B.

        "main": "./lib-npx/install.js",
        "bin": {
          "iobroker-fix": "./lib-npx/install.js"
        },
      

      oder iobroker-install ...

      zu ersetzen. Schätze nur, dass das Auswirkungen auf die normale Installation haben könnte falls der Command wo explizit verlangt wird. Wenn immer nur npx verwendet wird, sollte es egal sein da npx immer das erste command verwendet (wenn ich es richtig gelesen habe) und solange es nur eines gibt ...

      McM

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

        Hi,
        mal abgesehen von dem immer noch rätselhaftem Verhalten, dass iobroker.bat beim Aufruf des Fixers aufgerufen wird, sieht der Fixer selbst jetzt soweit ich das beurteilen kann gut aus:

        F:\ioBrokerTest>npx @iobroker/fix@latest
        
        Windows installation starting... (fixing = true)
        NPM version: 9.3.0
        No path given, using F:\ioBrokerTest\iobroker-data
        Compressing F:\ioBrokerTest\iobroker-data\states.jsonl
        Compressing F:\ioBrokerTest\iobroker-data\objects.jsonl
        Compressed 2 JSONL files. Done
        NPM version: 9.3.0
        Write "iobroker start" to start the ioBroker
        npm install node-windows@1.0.0-beta.8 --force --loglevel error --production --save --prefix "F:/ioBrokerTest"
        
        up to date, audited 524 packages in 7s
        
        36 packages are looking for funding
          run `npm fund` for details
        
        20 vulnerabilities (15 moderate, 5 high)
        
        To address issues that do not require attention, run:
          npm audit fix
        
        To address all issues (including breaking changes), run:
          npm audit fix --force
        
        Run `npm audit` for details.
        
        =============================
        Running Admin shell
        =============================
        ioBroker service is already installed.
        
        =============================
        Running Admin shell
        =============================
        ioBroker wird gestartet.
        ioBroker wurde erfolgreich gestartet.
        
        ioBroker service installed and started. Go to http://localhost:8081 to open the admin UI.
        To see the outputs do not start the service, but write "node node_modules/iobroker.js-controller/controller"
        
        mcm1957 1 Reply Last reply Reply Quote 0
        • mcm1957
          mcm1957 @Gaspode last edited by mcm1957

          @gaspode
          Na ja - so rätselhaft ist das (für mich) nicht
          npx führt den Befehl aus den es im bin Abschnitt der package.json findet.
          Und dort steht bin: iobroker ... drinnen.
          Und im PATH ist halt iobroker.bat vor dem js script

          Schau dir mal den Link in meinem letzten Post an.


          Zusatzfrage:
          Wie erhältst du den Screenoutput? Bei mir löst irgendwas ein Clear Screen aus sodass ich am Ende nur die Zeieln 36 bis 40 deines Outputs sehe...

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

            @mcm57
            Unserer Posts haben sich überschnitten.

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

              @mcm57 Ja das ist ja mal ne geile Erkenntnis ... Naja klar kann man es umbenennen ... dann sieht nur der befehl nicht so schön aus 🙂 ich überlege mal ... aber dennoch ... WTF npm ....

              Vielen Dank @mcm57 und @Gaspode so fix wie in den letzten zwei Tagen sind wir vorher nicht vorangekommen!!

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

                PS: In nehme an ein "npx @iobroker/fix@latest" tut das gleiche korrekt wenn die iobroker.bat da ist?

                Es ist nur interessant das es bei Linux nicht passiert 😞

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

                  Aber damit: könnt Ihr mal loggen mit welchen Parametern er die iobroker.bat aufruft? vllt kann man das abfangen und irgendwie umgehen

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

                    @apollon77 said in Test ioBroker Fixer mit JSONL-Compression:

                    PS: In nehme an ein "npx @iobroker/fix@latest" tut das gleiche korrekt wenn die iobroker.bat da ist?

                    Nein, wenn die iobroker.bat da ist, klappt das auch mit @latest nicht.

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

                      @apollon77
                      Liegt denn bei linux ein iobroker.bat (bzw. iobroker) script im iobroker Verzeichnis?

                      Und "npx @iobroker/fix@latest" funktioniert (bei mir) auch NICHT wenn iobroker.bat da ist.


                      EDIT:
                      Ja ein iobroker liegt im Verzeichnis. Nur ist bei Linux - soweit ich wieß - das cwd typisch NICHT im Pfad enthalten. Und damit störts nicht

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

                        @apollon77 said in Test ioBroker Fixer mit JSONL-Compression:

                        Aber damit: könnt Ihr mal loggen mit welchen Parametern er die iobroker.bat aufruft? vllt kann man das abfangen und irgendwie umgehen

                        iobroker.bat wird ohne Parameter aufgerufen, daher kommt es ja zu der "(" Meldung.
                        Das Problem liegt wie @mcm57 schon geschrieben hat schon vor dem Aufruf von iobroker.bat

                        1 Reply Last reply Reply Quote 1
                        • apollon77
                          apollon77 @mcm1957 last edited by

                          @mcm57 Unter Linux liegt eine iobroker.sh ... aber denke path hat hier keine relevanz

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

                            @apollon77
                            wie schon beim GitHub Issue geschrieben: Evtl. können wir unter windows auf die iobroker.bat einfach ganz verzichten.
                            Muss man halt iob.bat verwenden, die es ja ohnehin schon gibt.

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

                              Auch interessant das der verlinkte artikel davon redet das er ein "fix.bat" finden müsste aber scheinbar ists jetzt "iobroker.bat" 🙂

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

                                @gaspode ja würde ich nicht tun ... wäre eher bei @iobroker-smart-home/fix 🙂 oder sowas ... mal mit Bluefox beraten

                                mcm1957 1 Reply Last reply Reply Quote 1
                                • mcm1957
                                  mcm1957 @apollon77 last edited by

                                  @apollon77
                                  Ich mach für heute mal schluss.

                                  Wenn mir wer sagen kann wie ich mit einer "privaten" npx testen kann, experimentier ich gern weiter.

                                  In jedem Fall gibts einen Fehler in iob.bat und iobroker.bat wenn keine Parameter angegeben werden. Das wär zu fixen. Gibts dazu schon ein Issue? Sonst erstell ich eins und mach ev. gleich einen PR dazu (sind ja nur [] rund um %1, %2 bei den IFs). Bin nur nicht sicher in welchen Github die Dateien eigentlich liegen.

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

                                    @apollon77

                                    Auch interessant das der verlinkte artikel davon redet das er ein "fix.bat" finden müsste aber scheinbar ists jetzt "iobroker.bat"

                                    Lt. npm exec docu (https://docs.npmjs.com/cli/v7/commands/npx) gilt:

                                    If no -c or --call option is provided, then the positional arguments are used to generate the command string. If no --package options are provided, then npm will attempt to determine the executable name from the package specifier provided as the first positional argument according to the following heuristic:

                                    If the package has a single entry in its bin field in package.json, or if all entries are aliases of the same command, then that command will be used.
                                    If the package has multiple bin entries, and one of them matches the unscoped portion of the name field, then that command will be used.
                                    If this does not result in exactly one option (either because there are no bin entries, or none of them match the name of the package), then npm exec exits with an error.

                                    Da es genau einen bin Eintrag gibt und der iobroker heißt nimmt npx den Befehl "iobroker". Nur nimmt es dann offenbar nicht den Eintrag in package.json als erste Wahl sondern geht mal mit "iobroker" den PATH abklappern. Und da findet es iobroker.bat.

                                    Eigentlich eine perverse Logic - scheint aber so zu sein. Und npm/npx werden wir schwer ändern können. Ev. sollte man das Command e289hjvzufgcru657otß nennen - da ist eine Kollisio unwahrscheinlicher 🙂

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

                                      @mcm57 said in Test ioBroker Fixer mit JSONL-Compression:

                                      In jedem Fall gibts einen Fehler in iob.bat und iobroker.bat wenn keine Parameter angegeben werden. Das wär zu fixen. Gibts dazu schon ein Issue?

                                      Das ist bereits seit gestern gefixt.

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

                                        @mcm57 said in Test ioBroker Fixer mit JSONL-Compression:

                                        Wie erhältst du den Screenoutput? Bei mir löst irgendwas ein Clear Screen aus sodass ich am Ende nur die Zeieln 36 bis 40 deines Outputs sehe...

                                        Sorry, eben erst die Frage gesehen. einfach in Datei umleiten:

                                        npx @iobroker/fix > meinLog.txt
                                        
                                        mcm1957 1 Reply Last reply Reply Quote 0
                                        • mcm1957
                                          mcm1957 @Gaspode last edited by mcm1957

                                          @gaspode
                                          Danke.

                                          Weißt du wer das die ClearScreens absetzt? Wär ev. sinnvoll wenn man die verhindern kann.
                                          Oder wenn iob fix gleich ein Logfile schreibt. Ein DAU wird möglicherweise nicht an die Umleitung denken. Ich wollt sie eigentlich auch vermeiden 🙂

                                          Zusatz:
                                          Gibts unter Windows ein Äquivalent zu tee unter Linux? Wär ja schön wenn man den output auch live sehen kann - insbesondere wenn's mal wo klemmt.

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

                                            @mcm57 warum sollte ein User das im Normalfall brauchen? 😉 macht’s nicht so kompliziert 😉

                                            Ansonsten habe wir entschieden mit js-Controller 5 später dieses Jahr die iobroker.bat zu entfernen. Bis dahin ist’s halt noch nicht gescheit funktional. Ist akzeptabel.

                                            mcm1957 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            465
                                            Online

                                            31.6k
                                            Users

                                            79.6k
                                            Topics

                                            1.3m
                                            Posts

                                            15
                                            84
                                            4562
                                            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