Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. JS instanzen mit unterschiedlichen Serialport versionen?

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    JS instanzen mit unterschiedlichen Serialport versionen?

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

      Hi,

      ich habe mir zum testen eine weitere Javascript Instanz 3 v5.2.21 auf einem Slave installiert.

      Javascript 2 läuft dort schon und hat Serialport 9.2.8 installiert:

      pi@iobroker-garage-gross:/opt/iobroker $ npm ls serialport
      iobroker.inst@2.0.3 /opt/iobroker
      ├─┬ iobroker.javascript@5.2.21
      │ └── serialport@9.2.8
      └─┬ iobroker.modbus@3.4.17
        └── serialport@9.2.8  deduped
      
      

      Jetzt wollte ich für die Instanz 3 die Version 10.4.0 installieren was aber nicht funktioniert.

      Habe das Modul eingetragen als serialport@10 oder auch als serialport@10.4.0 aber es auch nach neustart des Adapters oder iobrokers kann ich im Debug log nichts von der Installation des zusätzlichen Moduls finden und wie an der Ausgabe oben zu sehen ist wurde es scheinbar auch nicht installiert.

      Jetzt meine Frage, ist es überhaupt möglich verschiedene Versionen für verschiedene Instanzen zu installieren?

      Falls ja, was mache ich falsch?

      Danke und Gruß

      AlCalzone 1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer @wendy2702 last edited by AlCalzone

        @wendy2702 Das dependency-"management" vom JS-Adapter ist dafür denke ich nicht ausgegoren genug. Die Abhängigkeiten werden direkt als Abhängigkeiten des Adapter selbst installiert. Der existiert nur 1x auf der Platte und kann damit auch nur 1x serialport als dependency haben, weil alles in die gleiche package.json eingetragen wird.

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

          @alcalzone OK. Danke.

          Dann muss ich zum testen einen anderen PI nehmen.

          1 Reply Last reply Reply Quote 0
          • wendy2702
            wendy2702 @AlCalzone last edited by wendy2702

            @alcalzone Habe einen iobroker komplett neu installiert.

            Dann im Javascript Adapter 5.4.0 das Modul Serialport 10.4.0 eingetragen:

            3907fdeb-3378-4deb-9b76-f3abcfdaf404-grafik.png

            Wurde scheinbatr auch installiert:

            2022-03-15 17:36:53.521  - info: javascript.0 (7639) starting. Version 5.4.0 in /opt/iobroker/node_modules/iobroker.javascript, node: v14.19.0, js-controller: 4.0.21
            2022-03-15 17:36:53.594  - info: javascript.0 (7639) npm install serialport@10.4.0 --production (System call)
            2022-03-15 17:37:02.925  - info: javascript.0 (7639)
            > @serialport/bindings-cpp@10.7.0 install /opt/iobroker/node_modules/iobroker.javascript/node_modules/@serialport/bindings-cpp
            > node-gyp-build
            
            
            2022-03-15 17:37:03.968  - info: javascript.0 (7639) + serialport@10.4.0
            added 19 packages from 88 contributors and audited 20 packages in 7.962s
            
            2022-03-15 17:37:04.047  - info: javascript.0 (7639)
            12 packages are looking for funding
              run `npm fund` for details
            
            
            2022-03-15 17:37:04.051  - info: javascript.0 (7639) found 0 vulnerabilities
            
            
            2022-03-15 17:37:04.153  - debug: javascript.0 (7639) Loaded TypeScript definitions for node: ["node_modules/@types/node/package.json","node_modules/@types/node/index.d.ts","node_modules/@types/node/assert.d.ts","node_modules/@types/node/globals.d.ts","node_modules/@types/node/async_hooks.d.ts","node_modules/@types/node/buffer.d.ts","node_modules/@types/node/child_process.d.ts","node_modules/@types/node/cluster.d.ts","node_modules/@types/node/console.d.ts","node_modules/@types/node/constants.d.ts","node_modules/@types/node/crypto.d.ts","node_modules/@types/node/dgram.d.ts","node_modules/@types/node/dns.d.ts","node_modules/@types/node/domain.d.ts","node_modules/@types/node/events.d.ts","node_modules/@types/node/fs.d.ts","node_modules/@types/node/fs/promises.d.ts","node_modules/@types/node/http.d.ts","node_modules/@types/node/http2.d.ts","node_modules/@types/node/https.d.ts","node_modules/@types/node/inspector.d.ts","node_modules/@types/node/module.d.ts","node_modules/@types/node/net.d.ts","node_modules/@types/node/os.d.ts","node_modules/@types/node/path.d.ts","node_modules/@types/node/perf_hooks.d.ts","node_modules/@types/node/process.d.ts","node_modules/@types/node/punycode.d.ts","node_modules/@types/node/querystring.d.ts","node_modules/@types/node/readline.d.ts","node_modules/@types/node/repl.d.ts","node_modules/@types/node/stream.d.ts","node_modules/@types/node/string_decoder.d.ts","node_modules/@types/node/timers.d.ts","node_modules/@types/node/tls.d.ts","node_modules/@types/node/trace_events.d.ts","node_modules/@types/node/tty.d.ts","node_modules/@types/node/url.d.ts","node_modules/@types/node/util.d.ts","node_modules/@types/node/v8.d.ts","node_modules/@types/node/vm.d.ts","node_modules/@types/node/wasi.d.ts","node_modules/@types/node/worker_threads.d.ts","node_modules/@types/node/zlib.d.ts","node_modules/@types/node/globals.global.d.ts"]
            2022-03-15 17:37:04.212  - debug: javascript.0 (7639) Loaded TypeScript definitions for request: ["node_modules/@types/request/package.json","node_modules/@types/request/index.d.ts"]
            2022-03-15 17:37:04.290  - info: javascript.0 (7639) requesting all states
            2022-03-15 17:37:04.293  - info: javascript.0 (7639) requesting all objects
            2022-03-15 17:37:05.355  - info: javascript.0 (7639) received all states
            2022-03-15 17:37:05.377  - info: javascript.0 (7639) received all objects
            
            

            Nur warum habe ich danach noch diese Meldungen:

            pi@iob-test:/opt/iobroker $ npm ls serialport
            iobroker.inst@3.0.0 /opt/iobroker
            ├─┬ iobroker.discovery@2.7.5
            │ └── serialport@9.2.8
            └─┬ iobroker.javascript@5.4.0
              └── UNMET DEPENDENCY serialport@^10.4.0
            
            npm ERR! missing: serialport@^10.4.0, required by iobroker.javascript@5.4.0
            
            Thomas Braun 1 Reply Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @wendy2702 last edited by Thomas Braun

              @wendy2702

              Nur ein Schuss in's Blaue:
              Kann es sein, das serialport@10 eine nodeJS > 14 voraussetzt?

              Edit: Nö, es muss nur nodeJS > 10 sein.

              wendy2702 1 Reply Last reply Reply Quote 0
              • wendy2702
                wendy2702 @Thomas Braun last edited by

                @thomas-braun

                Das ganze ist aus dem Thread entstanden https://forum.iobroker.net/topic/11059/script-hilfe-für-abfrage-serielle-kommunikation-gesucht/134?page=7

                Du erinnerst dich bestimmt 😉

                Ich will auf einem Testsystem zum anpassen und Testen des Scripts die Version 10.4.0 sauber installieren und schaffe es nicht.

                Das war auch Erfolglos:

                pi@iob-test:/opt/iobroker $ cd node_modules/iobroker.javascript/
                pi@iob-test:/opt/iobroker/node_modules/iobroker.javascript $ npm i serialport@10.4.0
                
                > es5-ext@0.10.58 postinstall /opt/iobroker/node_modules/iobroker.javascript/node_modules/es5-ext
                > node -e "try{require('./_postinstall')}catch(e){}"
                
                npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/fsevents):
                npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
                npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.3.2 (node_modules/mocha/node_modules/fsevents):
                npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.3.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"arm"})
                
                + serialport@10.4.0
                added 650 packages from 441 contributors, updated 1 package and audited 678 packages in 64.805s
                
                52 packages are looking for funding
                  run `npm fund` for details
                
                found 2 high severity vulnerabilities
                  run `npm audit fix` to fix them, or `npm audit` for details
                pi@iob-test:/opt/iobroker/node_modules/iobroker.javascript $ cd ..
                pi@iob-test:/opt/iobroker/node_modules $ cd ..
                pi@iob-test:/opt/iobroker $ npm ls serialport
                iobroker.inst@3.0.0 /opt/iobroker
                ├─┬ iobroker.discovery@2.7.5
                │ └── serialport@9.2.8
                └─┬ iobroker.javascript@5.4.0
                  └── UNMET DEPENDENCY serialport@^10.4.0
                
                npm ERR! missing: serialport@^10.4.0, required by iobroker.javascript@5.4.0
                pi@iob-test:/opt/iobroker $
                
                

                An NodeJS hatte ich auch schon gedacht, bin aber auch zu dem Ergebnis gekommen das es mit 14 laufen sollte.

                Hast du noch eine Idee?

                Thomas Braun AlCalzone 2 Replies Last reply Reply Quote 0
                • Thomas Braun
                  Thomas Braun Most Active @wendy2702 last edited by

                  @wendy2702 sagte in JS instanzen mit unterschiedlichen Serialport versionen?:

                  Hast du noch eine Idee?

                  Nee.
                  Da will man mal was 'falsch haben' und bekommt es nicht nachgestellt. 😄

                  1 Reply Last reply Reply Quote 0
                  • AlCalzone
                    AlCalzone Developer @wendy2702 last edited by AlCalzone

                    @wendy2702 führ mal folgendes aus:

                    cd /opt/iobroker/node_modules/iobroker.javascript
                    npm ls serialport
                    

                    Könnte sein, dass das aus dem root-Verzeichnis nicht "sichtbar" ist.

                    Dein Log oben zeigt jedenfalls, dass Serialport 10 kompiliert wurde:

                    @serialport/bindings-cpp@10.7.0

                    wendy2702 1 Reply Last reply Reply Quote 0
                    • wendy2702
                      wendy2702 @AlCalzone last edited by wendy2702

                      @alcalzone In dem dir ist es sichtbar:

                      pi@iob-test:/opt/iobroker/node_modules/iobroker.javascript $ npm ls serialport
                      iobroker.javascript@5.4.0 /opt/iobroker/node_modules/iobroker.javascript
                      └── serialport@10.4.0
                      
                      pi@iob-test:/opt/iobroker/node_modules/iobroker.javascript $ cd /opt/iobroker/
                      pi@iob-test:/opt/iobroker $ npm ls serialport
                      iobroker.inst@3.0.0 /opt/iobroker
                      ├─┬ iobroker.discovery@2.7.5
                      │ └── serialport@9.2.8
                      └─┬ iobroker.javascript@5.4.0
                        └── UNMET DEPENDENCY serialport@^10.4.0
                      
                      npm ERR! missing: serialport@^10.4.0, required by iobroker.javascript@5.4.0
                      
                      

                      Aber wieso ist es im Tree nicht mehr sichtbar? Ging ja noch mit Serialport 9.2.8 ???

                      pi@iobroker-garage-gross:/opt/iobroker $ npm ls serialport
                      iobroker.inst@2.0.3 /opt/iobroker
                      ├─┬ iobroker.javascript@5.2.21
                      │ └── serialport@9.2.8
                      └─┬ iobroker.modbus@3.4.17
                        └── serialport@9.2.8  deduped
                      
                      pi@iobroker-garage-gross:/opt/iobroker $
                      
                      

                      Einziger Unterschied ist die Version Javascript.

                      Neues System

                      pi@iob-test:/opt/iobroker $ iob update
                      Used repository: beta
                      Adapter    "admin"        : 5.3.1    , installed 5.3.1
                      Adapter    "backitup"     : 2.3.5    , installed 2.3.3  [Updatable]
                      Adapter    "discovery"    : 2.8.0    , installed 2.7.5  [Updatable]
                      Adapter    "javascript"   : 5.4.0    , installed 5.4.0
                      Controller "js-controller": 4.0.21   , installed 4.0.21
                      pi@iob-test:/opt/iobroker $ iob v
                      4.0.21
                      pi@iob-test:/opt/iobroker $ node -v
                      v14.19.0
                      pi@iob-test:/opt/iobroker $ npm -v
                      6.14.16
                      pi@iob-test:/opt/iobroker $
                      
                      

                      Altes System:

                      pi@iobroker-garage-gross:/opt/iobroker $ iob update
                      Used repository: Beta (latest)
                      Adapter    "admin"        : 5.3.1    , installed 5.3.1
                      Adapter    "javascript"   : 5.4.0    , installed 5.2.21 [Updatable]
                      Controller "js-controller": 4.0.21   , installed 4.0.21
                      Adapter    "modbus"       : 3.4.17   , installed 3.4.17
                      Adapter    "rpi2"         : 1.3.2    , installed 1.3.2
                      pi@iobroker-garage-gross:/opt/iobroker $ iob v
                      4.0.21
                      pi@iobroker-garage-gross:/opt/iobroker $ node -v
                      v14.19.0
                      pi@iobroker-garage-gross:/opt/iobroker $ npm -v
                      6.14.16
                      pi@iobroker-garage-gross:/opt/iobroker $
                      
                      

                      Und natürlich die Serialport Version ist unterschiedlich.

                      AlCalzone 1 Reply Last reply Reply Quote 0
                      • AlCalzone
                        AlCalzone Developer @wendy2702 last edited by

                        @wendy2702 Eigenheiten von npm...
                        In /opt/iobroker gibt es eine package-lock.json, die den Dependency-Tree aus Sicht von /opt/iobroker abbildet. Daran orientiert sich npm beim ls, und diese enthält serialport 10 nicht.

                        In /opt/iobroker/node_modules/javascript gibt es durch die Installation einer neuen Abhängigkeit dort ebenfalls eine pacakge-lock.json, die quasi das Unter-Projekt aus Sicht des js-Adapters abbildet. Darin ist auch serialport 10 enthalten. Das geht ein bisschen gegen das wie npm seit Version 5 funktioniert, aber derzeit haben wir keine bessere Lösung.

                        wendy2702 1 Reply Last reply Reply Quote 0
                        • wendy2702
                          wendy2702 @AlCalzone last edited by

                          @alcalzone Sorry falls ich nerve.

                          Wie kommt denn die Version Serialport 9.2.8 in den Dependency Tree unter /opt/iobroker/ wenn dort Serialport nie installiert wurde?

                          AlCalzone 1 Reply Last reply Reply Quote 0
                          • AlCalzone
                            AlCalzone Developer @wendy2702 last edited by

                            @wendy2702 Discovery bringt den mit:

                            ├─┬ iobroker.discovery@2.7.5
                            │ └── serialport@9.2.8
                            

                            Und modbus:

                            └─┬ iobroker.modbus@3.4.17
                              └── serialport@9.2.8  deduped
                            

                            Dadurch dass jetzt nachträglich im javascript Unterordner gezielt Abhängigkeiten nachinstalliert wurden, wurde da quasi ein neues "Projekt" aufgemacht.

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

                            Support us

                            ioBroker
                            Community Adapters
                            Donate
                            FAQ Cloud / IOT
                            HowTo: Node.js-Update
                            HowTo: Backup/Restore
                            Downloads
                            BLOG

                            470
                            Online

                            32.1k
                            Users

                            80.7k
                            Topics

                            1.3m
                            Posts

                            3
                            12
                            257
                            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