Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Einbindung von Geräten
  5. Javascript: USB Geräte mit NPM-Modulen erkennen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Javascript: USB Geräte mit NPM-Modulen erkennen

Scheduled Pinned Locked Moved Einbindung von Geräten
11 Posts 2 Posters 835 Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A ATARI

    @Alle
    Moin, moin

    Ich möchte,
    das ein Javascript nur läuft, wenn ein bestimmtes USB-Gerät (Vid und Pid) angeschlossen ist.

    In der Instanz "javascript.0" habe jeweils die "zusätzlichen NPM-Module"

    • usb
    • node-usb
    • usb-detection

    sowie bei "Syntaxhilfe für npm-Module" eingetragen.

    Ich habe dann anhand der Beispiel-Scripte aus den jeweiligen Readme's zu den
    NPM-Modulen ein Test-Script erstellt.

    Bei den Modulen "usb" und "node-usb" bekomme ich in den Test-Scipten nur Fehlermeldungen
    bzgl. der Zeile mit dem Befehl: "import..."

    Beim Modul "usb-detection" erhalte ich keine Fehlermeldung in den Test-Scripten.
    Allerdings fehlt bei der Rückmeldung "add", "remove", "change" die Infos zum Device.
    Also nur die Rückmeldung mit den Infos "add", "remove", "change" ohne Device-Infos.
    Somit kann ich erkennen das sich was ändert, aber ich sehe nicht bei welchem Device.
    Außerdem wird im ReadMe des Moduls der Umstieg auf "usb" empfohlen.

    Was mache ich hier falsch?

    EDIT:
    Wegen der Fehlermeldungen in "usb" und "node-usb" habe ich über die Konsole
    von NPM die Module "usb", "node-usb" und "libudev-dev" nach installiert, leider
    ohne Erfolg.

    Jey CeeJ Online
    Jey CeeJ Online
    Jey Cee
    Developer
    wrote on last edited by
    #2

    @atari sagte in Javascript: USB Geräte mit NPM-Modulen erkennen:

    Bei den Modulen "usb" und "node-usb" bekomme ich in den Test-Scipten nur Fehlermeldungen
    bzgl. der Zeile mit dem Befehl: "import..."

    import funktioniert in ioBroker nicht. Du musst stattdessen require verwenden.

    Persönlicher Support
    Spenden -> paypal.me/J3YC33

    A 1 Reply Last reply
    0
    • Jey CeeJ Jey Cee

      @atari sagte in Javascript: USB Geräte mit NPM-Modulen erkennen:

      Bei den Modulen "usb" und "node-usb" bekomme ich in den Test-Scipten nur Fehlermeldungen
      bzgl. der Zeile mit dem Befehl: "import..."

      import funktioniert in ioBroker nicht. Du musst stattdessen require verwenden.

      A Offline
      A Offline
      ATARI
      wrote on last edited by ATARI
      #3

      @jey-cee
      danke für Deine rasche Antwort.

      Mit "require" hab ich es auch versucht, hat auch nicht funktioniert.
      Aber vllt. habe ich die entsprechende Befehlszeile nicht korrekt eingegeben.

      Hast Du evtl. eine kurzes Bespiel hierzu?

      Gruß
      ATARI

      Raspberry Pi 5B (ioB via pi OS_lite(64bit) | Synology NAS (ioB via Docker)
      Fibaro Home Center 2 & Home Center 3 | Homematic IP | EMS-ESP32 Gateway
      Aeotec Z-Wave | Tuya 4 in 1 Gateway | Zigbee & BLE Gateway

      Jey CeeJ 1 Reply Last reply
      0
      • A ATARI

        @jey-cee
        danke für Deine rasche Antwort.

        Mit "require" hab ich es auch versucht, hat auch nicht funktioniert.
        Aber vllt. habe ich die entsprechende Befehlszeile nicht korrekt eingegeben.

        Hast Du evtl. eine kurzes Bespiel hierzu?

        Jey CeeJ Online
        Jey CeeJ Online
        Jey Cee
        Developer
        wrote on last edited by
        #4

        @atari schau im Github repository von usb bei den issues, da findest du einige Beispiele

        Persönlicher Support
        Spenden -> paypal.me/J3YC33

        A 2 Replies Last reply
        0
        • Jey CeeJ Jey Cee

          @atari schau im Github repository von usb bei den issues, da findest du einige Beispiele

          A Offline
          A Offline
          ATARI
          wrote on last edited by
          #5

          @jey-cee
          ok, schau ich mir mal an.

          Gruß
          ATARI

          Raspberry Pi 5B (ioB via pi OS_lite(64bit) | Synology NAS (ioB via Docker)
          Fibaro Home Center 2 & Home Center 3 | Homematic IP | EMS-ESP32 Gateway
          Aeotec Z-Wave | Tuya 4 in 1 Gateway | Zigbee & BLE Gateway

          1 Reply Last reply
          0
          • Jey CeeJ Jey Cee

            @atari schau im Github repository von usb bei den issues, da findest du einige Beispiele

            A Offline
            A Offline
            ATARI
            wrote on last edited by ATARI
            #6

            @jey-cee sagte in Javascript: USB Geräte mit NPM-Modulen erkennen:

            schau im Github repository von usb bei den issues, da findest du einige Beispiele

            Nimm's mir nicht übel, aber unter den Repositorys und Issues zu USB wird man ja
            erschlagen von der Masse der Einträge. Hab mir davon einige angesehen, aber kein
            brauchbares Beispiel-Script endeckt. Im Grunde habe ich immer nur Teile aus den
            Beispiel-Scripten zu den Modulen gefunden. Vllt. bin ich aber auch einfach nur zu 'blöd' für eine richtige Suche.

            Nach

            var usb = require('usb')
            

            bekomme ich in meinem Script keine Fehlermeldung.

            Aber wie geht's dann weiter...,
            Wie müssen Javascripte wie...

            import { getDeviceList } from 'usb';
            const devices = getDeviceList();
            for (const device of devices) {
                console.log(device); // Legacy device
            }
            

            oder

            import { findByIds } from 'usb';
            const device = findByIds(0x59e3, 0x0a23);
            if (device) {
                console.log(device); // Legacy device
            }
            

            für ioBroker Javascript umgewandelt werden?

            Alle Beispiel-Scripte von NPM / GitHub "usb" oder "node-usb" beginnen immer mit

            import....
            const...
            

            und funktionieren nicht im ioBroker Javascript.

            EDIT:
            Wie schon erwähnt

            var usbDetect = require('usb-detection');
            usbDetect.startMonitoring();
            usbDetect.on('change', function(device) { console.log('change', device); });
            

            funktioniert, allerdings ohne Infos zum USB-Device.

            Gruß
            ATARI

            Raspberry Pi 5B (ioB via pi OS_lite(64bit) | Synology NAS (ioB via Docker)
            Fibaro Home Center 2 & Home Center 3 | Homematic IP | EMS-ESP32 Gateway
            Aeotec Z-Wave | Tuya 4 in 1 Gateway | Zigbee & BLE Gateway

            Jey CeeJ 1 Reply Last reply
            0
            • A ATARI

              @jey-cee sagte in Javascript: USB Geräte mit NPM-Modulen erkennen:

              schau im Github repository von usb bei den issues, da findest du einige Beispiele

              Nimm's mir nicht übel, aber unter den Repositorys und Issues zu USB wird man ja
              erschlagen von der Masse der Einträge. Hab mir davon einige angesehen, aber kein
              brauchbares Beispiel-Script endeckt. Im Grunde habe ich immer nur Teile aus den
              Beispiel-Scripten zu den Modulen gefunden. Vllt. bin ich aber auch einfach nur zu 'blöd' für eine richtige Suche.

              Nach

              var usb = require('usb')
              

              bekomme ich in meinem Script keine Fehlermeldung.

              Aber wie geht's dann weiter...,
              Wie müssen Javascripte wie...

              import { getDeviceList } from 'usb';
              const devices = getDeviceList();
              for (const device of devices) {
                  console.log(device); // Legacy device
              }
              

              oder

              import { findByIds } from 'usb';
              const device = findByIds(0x59e3, 0x0a23);
              if (device) {
                  console.log(device); // Legacy device
              }
              

              für ioBroker Javascript umgewandelt werden?

              Alle Beispiel-Scripte von NPM / GitHub "usb" oder "node-usb" beginnen immer mit

              import....
              const...
              

              und funktionieren nicht im ioBroker Javascript.

              EDIT:
              Wie schon erwähnt

              var usbDetect = require('usb-detection');
              usbDetect.startMonitoring();
              usbDetect.on('change', function(device) { console.log('change', device); });
              

              funktioniert, allerdings ohne Infos zum USB-Device.

              Jey CeeJ Online
              Jey CeeJ Online
              Jey Cee
              Developer
              wrote on last edited by
              #7
              const usb = require('usb');
              
              const devices = usb.getDeviceList();
              for (const device of devices) {
              
                  console.log(device); // Legacy device
              
              }
              

              Persönlicher Support
              Spenden -> paypal.me/J3YC33

              A 1 Reply Last reply
              0
              • Jey CeeJ Jey Cee
                const usb = require('usb');
                
                const devices = usb.getDeviceList();
                for (const device of devices) {
                
                    console.log(device); // Legacy device
                
                }
                
                A Offline
                A Offline
                ATARI
                wrote on last edited by
                #8

                @jey-cee
                SUPER !!! funktioniert.

                Dann kann ich über

                const device = usb.findByIds(xxxx, xxxx);
                

                das entsprechende Device auf "vorhanden" abfragen?

                Gruß
                ATARI

                Raspberry Pi 5B (ioB via pi OS_lite(64bit) | Synology NAS (ioB via Docker)
                Fibaro Home Center 2 & Home Center 3 | Homematic IP | EMS-ESP32 Gateway
                Aeotec Z-Wave | Tuya 4 in 1 Gateway | Zigbee & BLE Gateway

                Jey CeeJ 1 Reply Last reply
                0
                • A ATARI

                  @jey-cee
                  SUPER !!! funktioniert.

                  Dann kann ich über

                  const device = usb.findByIds(xxxx, xxxx);
                  

                  das entsprechende Device auf "vorhanden" abfragen?

                  Jey CeeJ Online
                  Jey CeeJ Online
                  Jey Cee
                  Developer
                  wrote on last edited by
                  #9

                  @atari keine Ahnung ich kenn die Lib USB nicht.

                  Persönlicher Support
                  Spenden -> paypal.me/J3YC33

                  A 1 Reply Last reply
                  0
                  • Jey CeeJ Jey Cee

                    @atari keine Ahnung ich kenn die Lib USB nicht.

                    A Offline
                    A Offline
                    ATARI
                    wrote on last edited by ATARI
                    #10

                    @jey-cee

                    kein Problem.
                    Wenn ich die Befehle (aus dem Beispiel-Script zum Modul "usb")

                    • getDeviceList()
                    • findByIds(xxxx, xxxx)
                    • etc...

                    um ein vorangestelltes "usb." erweitere erhalte ich eine positive Rückmeldung über log.
                    (Das "usb." vor den Befehlen war der 'Key')

                    Merci jey-cee

                    Gruß
                    ATARI

                    Raspberry Pi 5B (ioB via pi OS_lite(64bit) | Synology NAS (ioB via Docker)
                    Fibaro Home Center 2 & Home Center 3 | Homematic IP | EMS-ESP32 Gateway
                    Aeotec Z-Wave | Tuya 4 in 1 Gateway | Zigbee & BLE Gateway

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      ATARI
                      wrote on last edited by ATARI
                      #11

                      @Jey-Cee
                      Sorry, ich bin's nochmal (hoffentlich zum letzten Mal in diesem Fall)

                      Das Starten und Stoppen von bestimmten Javascripten in Abhängigkeit vom Vorhandensein bestimmer USB-Geräte funktioniert nun, Dank Deiner Hilfe.

                      Nun habe ich vergessen, das ich ebenfalls eine "Adapter Instanz" per Javascript
                      stoppen bzw. starten müsste. (zB. zwave2.0)

                      Notwendigerweise setze ich den entsprechenden Datenpunkt zum Script
                      "scriptEnabled" auf "false" oder "true".

                      Geht das so o.ä. auch für eine Adapter Instanz?

                      EDIT:
                      Gefunden, Datenpunkt 'alive' der Adapter Instanz auf 'false' danach auf 'true'
                      setzen.

                      Gruß
                      ATARI

                      Raspberry Pi 5B (ioB via pi OS_lite(64bit) | Synology NAS (ioB via Docker)
                      Fibaro Home Center 2 & Home Center 3 | Homematic IP | EMS-ESP32 Gateway
                      Aeotec Z-Wave | Tuya 4 in 1 Gateway | Zigbee & BLE Gateway

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      431

                      Online

                      32.7k

                      Users

                      82.4k

                      Topics

                      1.3m

                      Posts
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Home
                      • Recent
                      • Tags
                      • Unread 0
                      • Categories
                      • Unreplied
                      • Popular
                      • GitHub
                      • Docu
                      • Hilfe