Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
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
    16
    1
    1.1k

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Javascript: USB Geräte mit NPM-Modulen erkennen

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
11 Beiträge 2 Kommentatoren 820 Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • 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
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      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
        schrieb am zuletzt editiert von
        #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 Antworten Letzte Antwort
        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
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von
              #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 Antwort Letzte Antwort
              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
                schrieb am zuletzt editiert von
                #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 Antwort Letzte Antwort
                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
                  schrieb am zuletzt editiert von
                  #9

                  @atari keine Ahnung ich kenn die Lib USB nicht.

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

                  A 1 Antwort Letzte Antwort
                  0
                  • Jey CeeJ Jey Cee

                    @atari keine Ahnung ich kenn die Lib USB nicht.

                    A Offline
                    A Offline
                    ATARI
                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                    0
                    • A Offline
                      A Offline
                      ATARI
                      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                      0
                      Antworten
                      • In einem neuen Thema antworten
                      Anmelden zum Antworten
                      • Älteste zuerst
                      • Neuste zuerst
                      • Meiste Stimmen


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      536

                      Online

                      32.6k

                      Benutzer

                      82.0k

                      Themen

                      1.3m

                      Beiträge
                      Community
                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                      ioBroker Community 2014-2025
                      logo
                      • Anmelden

                      • Du hast noch kein Konto? Registrieren

                      • Anmelden oder registrieren, um zu suchen
                      • Erster Beitrag
                        Letzter Beitrag
                      0
                      • Home
                      • Aktuell
                      • Tags
                      • Ungelesen 0
                      • Kategorien
                      • Unreplied
                      • Beliebt
                      • GitHub
                      • Docu
                      • Hilfe