Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. USB Sendkey auslesen im Script

NEWS

  • Wartung am 15.11. – Forum ab 22:00 Uhr nicht erreichbar
    BluefoxB
    Bluefox
    11
    2
    227

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.0k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.7k

USB Sendkey auslesen im Script

USB Sendkey auslesen im Script

Scheduled Pinned Locked Moved JavaScript
communicationjavascript
3 Posts 2 Posters 750 Views
  • 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.
  • P Offline
    P Offline
    ple
    wrote on last edited by
    #1

    Hallo zusammen,
    hat hier wer mal versucht ein Geräte, welches über USB angeschlossen ist, den Sendkey abzufangen?
    Es geht um einen USB RFID Sensor, der sendet was per Sendkey. Das würde ich gerne mit einem Script abfangen.
    Erste Versuche mit dem Adapter HID, Node-HID, Node-HID-Stream gehen soweit, aber nur unter Node 8.
    Bei Node 10 hapert es noch. Alles recht aufwendig.

    Ich frag mich daher, geht es nicht einfacher? Es gibt viele Adapter, die über USB kommunizieren, also denke ich, es muss einfacher gehen. Ich muss ja nur auf die Schnittstelle irgendwie hören.
    Wäre schön, wenn ein Entwickler, der Ahnung davon hat, mir ein paar Tipps gehen könnte.

    Gruß und Danke Ple

    Intel Nuc + Proxmox

    DutchmanD 1 Reply Last reply
    0
    • P ple

      Hallo zusammen,
      hat hier wer mal versucht ein Geräte, welches über USB angeschlossen ist, den Sendkey abzufangen?
      Es geht um einen USB RFID Sensor, der sendet was per Sendkey. Das würde ich gerne mit einem Script abfangen.
      Erste Versuche mit dem Adapter HID, Node-HID, Node-HID-Stream gehen soweit, aber nur unter Node 8.
      Bei Node 10 hapert es noch. Alles recht aufwendig.

      Ich frag mich daher, geht es nicht einfacher? Es gibt viele Adapter, die über USB kommunizieren, also denke ich, es muss einfacher gehen. Ich muss ja nur auf die Schnittstelle irgendwie hören.
      Wäre schön, wenn ein Entwickler, der Ahnung davon hat, mir ein paar Tipps gehen könnte.

      Gruß und Danke Ple

      DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      wrote on last edited by
      #2

      @ple sagte in USB Sendkey auslesen im Script:

      Es gibt viele Adapter, die über USB kommunizieren, also denke ich, es muss einfacher gehen. Ich muss ja nur auf die Schnittstelle irgendwie hören.

      da ich das gerät nicht habe kan ich dies bezüglich keine aussage machen.
      Generell unterstützt das node framework ein NPM Modul genannt "serial port", dieses ist dafür zuständig alles seriellen (USB ist im principe eine serielle Schnittstelle) aus zu lesen und die daten die da reinkommen weiter zu übertragen.

      Also theoretisch kan javascript oder ein adapter mit diesem Protokoll reden und die daten aus der Schnittstelle auslesen.

      Dan kommt die frage, wie kommen die daten rein, alle meine adapter die mit serial port reden bekommen die Sachen binär und müssen dan noch weiter ausgewertet werden das kan man aber nur wissen wen man das geraet hat und probiert.

      Bezüglich zendkey hab ich so schnell kein NPM Modul gefunden was hier helfen könnte.

      1 Reply Last reply
      0
      • P Offline
        P Offline
        ple
        wrote on last edited by ple
        #3

        Also, serial port klingt schon mal gut.
        Bisher hatte ich folgende Lösung, aber die ist umständlich.
        Es gibt das Node-Hid npm, dieses wir auch mitinstalliert mit dem Community-HID-Adapter. Der alte von SOEF scheint nicht mehr zu funktionieren, ist aber noch in der Repo. Könnte man bei Gelegenheit mal ändern.
        Also, der HID installiert Node-HID mit. Jetzt gibt es die npm Module Node-HID-Stream sowie usb-barcode-transform.
        Die hochen auf der Vendor ID und wandeln den Buffer dann in Integer.
        Aber die Lösung ist nicht so dolle, da der User iobroker erst noch Rechte braucht. Also alles sehr umständlich.

        Serial Port klingt da einfacher und besser. Hast du zufällig ein Beispiel parat? Per Sendkey kommen HEX blöcke rein, die wandeln wir jetzt auch schon in Integer um mit einer Schleife, wollte das aber mal mit dem Readbuffer machen. Scheint wohl so ne Funktion zu sein von Node.

        sonst, ich könnte dir auch 2 Geräte mal zukommen lassen, wenn du gerade Langeweile hast 🙂
        Könnte mir vorstellen, dass es für einige User interessant sein könnte, da die über USB angeschlossen werden können und kosten nur 6€. Die anderen Varianten kenne ich nur mit Wemos und mqtt z.B. , Aber das auch wieder frickellei.

        Gruß und Danke

        Update:
        So es gibt anscheinend noch einen einfacheren Weg, der auch unter Node 10 usw. läuft. Da der RFID als HID erkannt wird, geht Serialport soweit auch nicht, zumindest was ich gelesen habe.
        Die Vollständige Anleitung mache ich morgen fertig. Auf die schnelle:

        • usb-barcode-scanner im Javascript mit eintragen, wird soweit auch alles mitinstalliert auch Node-HID.
        • udev Regel anlegen, da der User Iobroker keine Rechte hat, das HID Device zu lesen. Es ist ein Hidraw Devices.
        sudo nano /etc/udev/rules.d/90-hidraw-permission.rules
            KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0664", GROUP="plugdev"
        
        • User iobroker mit in die Gruppe plugdev.
        sudo usermod -aG plugdev iobroker
        

        Script für USB Device erkennen

        var hid = require('node-hid');
        console.log(JSON.stringify(hid.devices()));
        

        Script für ID der RFIDReader auszulesen.

        
        let UsbScanner = require('usb-barcode-scanner').UsbScanner;
         
        let scanner = new UsbScanner({
            vendorId: 65535,
            productId: 53
        });
         
        scanner.on('data', (data) => {
            console.log(decimalToHex(data));
        });
         
        scanner.startScanning();
        
        
        
        function decimalToHex(d, padding) {
            var hex = Number(d).toString(16);
        
            padding = typeof (padding) === "undefined" || padding === null ? padding = 2 : padding;
        
            while (hex.length < padding) {
                hex = "0" + hex;
            }
        
            var s = "";
            var i = hex.length;
            while (i>0) {
                s += hex.substring(i-2,i);
                i=i-2;
            }
            return s;
        
        
        }
        
        

        Gruß

        Intel Nuc + Proxmox

        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

        53

        Online

        32.4k

        Users

        81.3k

        Topics

        1.3m

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

        • Don't have an account? Register

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