Was ist die WebUSB API?

Die WebUSB API ist ein Browser-Standard, der es Webseiten ermöglicht, direkt mit USB-Geräten zu kommunizieren – ohne native Treiber oder Desktop-Anwendungen zu installieren. Sie wurde in Chrome 61 eingeführt und gibt Websites kontrollierten, genehmigungspflichtigen Zugriff auf Hardware wie Mikrocontroller, Entwicklungsboards, MIDI-Schnittstellen und andere USB-Peripheriegeräte.

Im Gegensatz zum traditionellen USB-Zugriff (der Kernel-Treiber erfordert) funktioniert WebUSB vollständig in der Browser-Sandbox. Benutzer müssen jeder Anwendung explizit die Berechtigung für jedes Gerät über die integrierte Geräteauswahl des Browsers erteilen, was sicherstellt, dass keine Website stillschweigend von Ihrer Hardware lesen oder schreiben kann.

Werkzeugbeschreibung

Dieses Werkzeug ermöglicht es Ihnen, USB-Geräte aufzuzählen, die dem Browser über die WebUSB API gewährt wurden. Beim Laden werden automatisch alle zuvor genehmigten Geräte aufgelistet. Sie können auch die native USB-Auswahl des Browsers öffnen, um Zugriff auf ein neu verbundenes Gerät zu gewähren, oder die Liste jederzeit aktualisieren.

Für jedes Gerät zeigt das Werkzeug den Produktnamen, Hersteller, Vendor ID, Produkt-ID, Seriennummer und USB-Protokollversion an.

Funktionen

  • Lädt automatisch zuvor gewährte USB-Geräte beim Öffnen der Seite
  • Öffnet die native USB-Geräteauswahl des Browsers, um Zugriff auf neue Geräte zu gewähren
  • Zeigt Vendor ID und Produkt-ID in standardmäßiger Hexadezimalschreibweise an (z. B. 0x1A2B)

Funktionsweise

Wenn Sie auf Gerät hinzufügen klicken, ruft der Browser navigator.usb.requestDevice() auf und zeigt eine Systemauswahl mit verbundenen USB-Geräten an. Wenn Sie eines auswählen, speichert der Browser die Berechtigung für diesen Ursprung. Bei nachfolgenden Besuchen (oder nach Klick auf Aktualisieren) gibt navigator.usb.getDevices() alle zuvor genehmigten Geräte zurück, ohne erneut zu fragen.

Vendor ID und Produkt-ID werden in 4-stelliger Großbuchstaben-Hex dargestellt (z. B. 0x04D8) – das Standardformat, das in USB-Registern und Datenblättern verwendet wird.

Einschränkungen

  • WebUSB wird nur in Chromium-basierten Browsern unterstützt (Chrome, Edge, Opera). Firefox und Safari implementieren diese API nicht.
  • Die Seite muss über HTTPS (oder localhost) bereitgestellt werden – WebUSB ist auf einfachen HTTP-Ursprüngen blockiert.
  • Einige Betriebssystem- und Browser-Kombinationen beschränken den Zugriff auf bestimmte Geräteklassen (z. B. HID, Massenspeicher), auch wenn Berechtigungen gewährt wurden.
  • Dieses Werkzeug liest nur Gerätemetadaten; es öffnet keine USB-Schnittstelle und überträgt keine Daten zum/vom Gerät.