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 Offline
    A Offline
    ATARI
    wrote on last edited by ATARI
    #1

    @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.

    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

      @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

                        649

                        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