ESPHome adds a USB keyboard component for ESP32 boards with USB OTG hardware. Makers can connect physical buttons or other automations to ordinary key presses, modifiers and media commands such as volume up.

The component holds one ordinary key at a time and supplies separate press and release actions. It cannot yet share the USB connection with ESPHome’s USB serial component; combining those functions requires further work. This is Frederik Bolding’s first contribution to ESPHome.