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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    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

      Ich hab jetzt auch versucht den Fixer unter Windows zu testen. Leider total ohne Erfolg 😞

      Aber eins nach dem anderen:

      System: Windows 10 22H2
      Iobroker installiert via Installer 2022 unter c:\iobroker

      Versuch unter normalem User:

      C:\ioBroker>iobroker status
      iobroker is not running on this host.
      
      
      Objects type: jsonl
      States  type: jsonl
      
      C:\ioBroker>iobroker fix
      "(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
      
      C:\ioBroker>
      

      Komisch ist, dass iobroker status deutlich dauert (10 Sekunden)

      Dasselbe unter Admin (Eingabeaufforderung mit Admin Rechten gestartet)

      C:\ioBroker>npx @iobroker/fix
      "(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
      
      C:\ioBroker>iobroker status
      iobroker is not running on this host.
      
      
      Objects type: jsonl
      States  type: jsonl
      
      C:\ioBroker>npx @iobroker/fix
      "(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
      
      

      Lösche ich nun iobroker.bat und versuche es mit dem normalen user nochmals kommt:

      
      C:\ioBroker>del iobroker.bat
      
      C:\ioBroker>npx @iobroker/fix
      
      [main 2023-01-14T20:19:09.893Z] update#setState idle
      [main 2023-01-14T20:19:10.943Z] Starting extension host with pid 5872 (fork() took 11 ms).
      [main 2023-01-14T20:19:18.994Z] Waiting for extension host with pid 5872 to exit.
      [main 2023-01-14T20:19:19.014Z] Extension host with pid 5872 exited with code: 0, signal: null.
      
      C:\ioBroker>
      

      Wobei nach dem Aufruf visual studio code startet (!) und mir einen Source des js-controllers anzeigt !?!?
      12886f1b-821b-4fc3-b347-b87bde941cad-image.png

      Keine Ahnung warum das so ist und wo ich das ev. in Code abdrehen könnte.

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

        Bezüglich

        "(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

        hab ich eine Hypothese die ich aber nicht verifizieren konnte. In iobroker.bat steht

        @echo off
        if %1==fix (
            npx @iobroker/fix
        )
        

        Ih habe nun an einer STelle bei der Tante Google gefunden, dass es Programme gibt, die in einem Batch file das @ als Eingabeumleitung interpretieren und den Input dann vom angegebenen File lesen. Ich hab aber nix dazu gefunden, wie man das @ sicher escapen könnte und / oder ob das für npx überhaupt zutrifft. Versuche npx mit einem explizitem -p auftzurufen sind gescheitert - wahrscheinlich wegen mangeknder Kenntnis von npm bzw. der Info welche command das Package eigentlich erwartet.

        Link: https://stackoverflow.com/questions/21074863/what-is-the-at-sign-in-a-batch-file-and-what-does-it-do

        Not only does the "at" symbol placed in the beginning hide the command, it can, for some commands, also be used to append command arguments stored in a text file. The syntax is exe @commands.txt. armclang.exe for example supports this option.#```
        1 Reply Last reply Reply Quote 0
        • mcm1957
          mcm1957 @mcm1957 last edited by

          OK

          Den Extension Hist kann man da abdrehen:

          72ccd27c-d504-452c-9b99-e757688585fa-image.png

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

            @apollon77

            Soda - Ergebnisse mit abgeschaltetem VS Code Host:

            C:\ioBroker>iobroker status
            iobroker is running on this host.
            
            
            Objects type: jsonl
            States  type: jsonl
            
            C:\ioBroker>iobroker fix
            "(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
            
            C:\ioBroker>npx @iobroker/fix
            "(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
            
            C:\ioBroker>
            

            Lösche ich nun iobroker.bat so läuft der fixer durch. Leider wird am Ende der Screen gelöscht sodass man nur den nachfolgenden Screenshot sieht:

            63baa19d-a77d-4c05-b979-c874d81954b7-image.png

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

              Was ich nun noch eingegrenzt habe:

              npx @iobroker/fix ruft das Script iobroker.bat nochmals ohne Paramater auf.
              Ich vermute mal, dass das daran liegt, dass @iobroker/fix bin:iobroker eingetragen hat und die Searchlist von npx das current working directory als erstes Verzeichnis einschließt.

              Wenn man ioBroker manuell ohne Paramter aufruft bekommt man denselben Fehler:

              C:\ioBroker>ioBroker
              ioBroker
              "(" kann syntaktisch an dieser Stelle nicht verarbeitet werden.
              
              C:\ioBroker>
              

              OK

              Die Fehlermeldung kommt, da %1==fix ohne Parametereingabe ungültig wird ( ==fix ). Wenn man aber hier [%1]==[fix] schreibt ist zwar der cmd Fehler weg - dafür faäält das Script aber in die letzte Zeile durch und gibt nur den iobroker help text aus.

              Irgendwie muss "man" dem npx klar machen, dass es nicht iobroker im lokalen Verzeich nis ausführen soll sondern den Befehl im package ...

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

                @mcm57 Der change in den bar Files ist früher heute schon live gegangen im installer ... und @Gaspode hatte bereits rausgefunden das der Fehler wohl an der iobroker.bar liegt die - why ever - beim Ausführen des npm Befehls ausgeführt wird. Warum und wie man das umgeheen kann (oder die iobroker.bar anpassen das man sden Fall erkennt?) wäre der nächste Schritt

                mcm1957 1 Reply Last reply Reply Quote 1
                • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            788
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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