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

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.1k

USB Sendkey auslesen im Script

Geplant Angeheftet Gesperrt Verschoben JavaScript
communicationjavascript
3 Beiträge 2 Kommentatoren 750 Aufrufe
  • Ä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.
  • P Offline
    P Offline
    ple
    schrieb am zuletzt editiert von
    #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 Antwort Letzte Antwort
    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
      schrieb am zuletzt editiert von
      #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 Antwort Letzte Antwort
      0
      • P Offline
        P Offline
        ple
        schrieb am zuletzt editiert von 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 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

        713

        Online

        32.4k

        Benutzer

        81.4k

        Themen

        1.3m

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

        • Du hast noch kein Konto? Registrieren

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