Please consider adding automatic network discovery to Home Assistant’s ZHA (Zigbee) integration.
UPDATE! Support for Zeroconf discovery has now been added to ZHA but only Tube’s gateways so far:
https://www.home-assistant.io/integrations/zha#discovery-via-usb-or-zeroconf
Home Assistant OS/Supervisor already have some automatic network scanning + discovery features and functions needed for automatically discovering some types of network services and devices, and each integration for Home Assistant can choose to optionally opt-in to utilize these automatic network discovery features/functions by adding Zeroconf section and SSDP section, etc. to their manifest.json as described in their documentation:
https://www.home-assistant.io/integrations/zeroconf/
https://www.home-assistant.io/integrations/ssdp/
Reason for this “Service Discovery” / “Network Discover” request to Home Assistant’s ZHA developers that seeing more and more ser2net or com0com/com2tcp type network-attached Zigbee adapters (a.k.a. Zigbee bridge/gateway) that runs a serial-to-IP proxy-server application that basically only allows it to tunnel a serial connection over your local home network (a.k.a. ser2net type serial to TCP/IP bridges/proxy appliance server devices) to allow you to place the Zigbee coordinator for ZHA in the most optimal location.
From an end-user experience point-of-view, it would be very user-friendly if such devices could be automagically discovered by Home Assistant during the ZHA integration’s config flow for the initial installation and the adding of a network-attached Zigbee adapter.
As most ZHA users probably know about now, ZHA’s UI config flow today already allow to manually configure the serial device path to use a TCP/IP network socket (using socat) instead of a serial port:
- ESPHome based DIY style bridge:
socket://[IP]:[PORT]
orsocket://[FQDN]:[PORT]
(if got local DNS), examplesocket://tube_zb_gw.local:6638
- Sonoff ZBBridge if its ESP8266 hacked with Z2T (Zigbee2Tasmota):
socket://[IP]:[PORT]
for examplesocket://192.168.1.11:8888
- ZiGate Gateway:
socket://[IP]:[PORT]
for examplesocket://192.168.1.10:9999
- Xiaomi DGNWG05LM and ZHWG11LM gateways with Openlumi OpenWrt firmware:
socket://[IP]:[PORT]
for examplesocket://192.168.1.10:9999
- Tuya TYGWZ-01 and Lidl Silvercrest gateways hacked for serial-to-ip:
socket://[IP]:[PORT]
for examplesocket://192.168.1.11:8888
I would think that the discovery features that is missing there and needs to be added are automatically discovered by the ZHA integration is the IP + TCP-port + radio-type + baud rate port speed + data flow control method, as only then the normal zigpy radio library probe methods could step in and take it from there to do its probing for the Zigbee radio firmware?
Anyway, such devices addressed via IP are already supported without auto-discovery by ZHA and zigpy and today include:
- Tube’s Zigbee Gateways and Zigbee to (wired) Ethernet DIY Coordinator by @tube0013 based on ESP32 running custom ESPHome firmware with functionality for Zeroconf mDNS discovery enabled by default.
- ZiGate WiFi Gateway which later ESP8266/ESP8285 firmware is based on Jeelabs ESP-LINK firmware serial bridge feature that supports Zeroconf discover.
- ZigStar Gateways by mercenaruss
- OpenZ3Gateway by cyijun
- Tasmota ZBBridge (Zigbee2Tasmota) on Sonoff ZBBridge, ZB-GW03, or DIY, with which Z2T firmware is based on Tasmota that already support SSDP discover.
- ZB-GW03 eWeLink Ethernet Zigbee Gateway flashed with ESPHome (or Tasmota) firmware
- Sonoff ZBBridge by ITead flashed with ESPHome (or Tasmota) firmware
-
Tuya TYGWZ-01 / Lidl Silvercrest Smart Gateway (Zigbee bridge with wired Ethernet port) hacked with serial-to-ip server.
- Home Assistant Integration - Hacking the (Silvercrest) Lidl Smart Home Gateway - Paul Banks DOT Org
- Hacking the Silvercrest (Lidl) Smart Home Gateway - Paul Banks DOT Org
- https://github.com/banksy-git/lidl-gateway-freedom
- Hacking the Silvercrest (Lidl/Tuya) Smart Home Gateway
- https://github.com/zigpy/zigpy/discussions/650
- OpenLumi (OpenWrt firmware on hacked DGNWG05LM and ZHWG11LM gateways with ZiGate Zigbee stack).
- DIY bridge using ESP32, ESP8266, or Arduino with Ethernet and firmware with a serial port to TCP converter code, like ex. ESPHome or Tasmota (with ZBBridge firmware for Zigbee2Tasmota/Z2T in ser2net serial proxy mode).
- DIY bridge using remote computer like a Raspberry Pi or other SBC running either a ser2net or a com0com/com2tcp configuration.
If support for Zeroconf and SSDP could be first added to ZHA inside Home Assistant then it might be more incentive to Zigbee gateway/bridge manufacturers to add needed discovering protocols to those?
mDNS and/or UPnP could be alternative network discovery methods but probably not as suited for Zigbee ser2net type bridges, or?
https://www.home-assistant.io/integrations/discovery/
Zeroconf and/or SSDP is presumable better suited and again ZiGate WiFi and Tube’s Zigbee Gateways already supports those, or?
https://developers.home-assistant.io/docs/creating_integration_manifest/#zeroconf
https://developers.home-assistant.io/docs/creating_integration_manifest/#ssdp
ESPHome which is very popular in the Home Assistant community is being used as ESP32 firmware by Tube’s Zigbee Gateways who sells both Texas Instruments and Silicon Labs based Zigbee gateways.
https://www.home-assistant.io/integrations/esphome/
“ESPHome can be auto-discovered by Home Assistant. If an instance was found, it will be shown in the top of the list of integrations as “Discovered”. If that is the case click on the Configure button to start setting up the discovered instance.”
Tasmota based gateways could similarly be automatically discovered if the Tasmota device is configured for native discovery by the user:
https://www.home-assistant.io/integrations/tasmota/
ZiGate Gateway firmware does feature Zeroconf and the old ZiGate integration by @doudz also had for Zeroconf discover as a feature:
https://github.com/zigpy/zigpy-zigate/issues/36
Note! See note stating; “If the integration supports zeroconf
or ssdp
, these should be preferred over dhcp
as Zeroconf and SSDP generally offers a better user experience” at https://developers.home-assistant.io/docs/creating_integration_manifest/#dhcp