Repository navigation
Zigbee proxying for the ZBT-2 #2
Description
Unlike the ZWA-2, the ZBT-2 has a multitude of possible firmware configurations (with different baudrates) and has both hardware discovery and complex setup config flows in HA Core. This dictates the design of the proxying and forces it to be an outgrowth from generic USB CDC-ACM serial proxying, not a protocol-specific set of API.
A few missing pieces remain. All of this work is done and just needs to be cleaned up and merged into ESPHome PR by PR:
-
ESPHome USB serial proxying:
- ESPHome side: [serial_proxy] Add USB_SERIAL port type and device identity esphome/esphome#19308
- Serial library side: ESPHome serial proxy
modeconfig and USB identity puddly/serialx#119 - aioesphomeapi side: USB serial proxying and metadata subscription APIs esphome/aioesphomeapi#1901
-
ESPHome USB host
productandmanufacturerfiltering: [usb_host]iManufacturerandiProductdescriptor filters esphome/esphome#19095 -
Bugs affecting USB proxying stability:
- Add a small sacrificial baudrate change for ZBT-2 bootloader NabuCasa/universal-silabs-flasher#147
- [usb_uart] Fix invalid stop bits and parity enum mappings esphome/esphome#20408
- Extend the connect timeout for ESPHome URIs NabuCasa/universal-silabs-flasher#148
- (Not strictly necessary for ZBT-2) Workaround in place for: [esp32-s3] UART baudrate corrupts randomly when changed from low to high (IDFGH-18425) espressif/esp-idf#19198
-
SiLabs ASH protocol tap: Zigbee proxying is a firmware-accelerated mode for normal serial proxies and needs a minimal ASH protocol implementation for auto-ACK
-
Full USB descriptor and driver info forwarding from ESPHome
- [usb_uart] Expose
interface_classandport_numberesphome/esphome#20659 - Add interface class and port number to
UsbDeviceDescriptoresphome/aioesphomeapi#1941 - Add
port_numbertoSerialPortInfopuddly/serialx#140 - (Not strictly necessary for ZBT-2) USB description: WIP
- [usb_uart] Expose
-
Full USB proxying support in ESPHome:
- USB CDC-ACM modem pin control: [usb_uart] Runtime modem pin control for USB and host esphome/esphome#20330
- USB CDC-ACM hardware flow control: [usb_uart] Implement hardware flow control esphome/esphome#20823
-
USB serial proxy integration into HA Core's
usbintegration: Add support for ESPHome USB serial proxies home-assistant/core#183645 -
Convention in HA Core for integrations to opt into identity-based serial ports
- Add
serialx.is_non_unique_serialpuddly/serialx#143 - Add ESPHome USB serial proxy roaming support to ZHA home-assistant/core#187613
Right now, integrations assume that
/dev/serial/by-id/...uniquely identifies a device. With ESPHome serial proxying, a device can roam but technically it's the data encoded within this path: the device's product name, manufacturer name, serial number, etc. This is what allows a ZBT-2 to automatically migrate from a local USB port to a remote, ESPHome USB serial proxy port. - Add
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsNOW
Activity