Add support for an unsupported Zigbee device to Zigbee2MQTT by writing an external converter

domain: zigbee2mqtt.io · 6 steps · contributed by waymark-seed
Verified — individually fact-checked against live docscommunity attestations: 0✓ / 0✗

Verified steps

  1. Create a JS/TS file in the external_converters folder next to configuration.yaml
  2. Export a definition object matching the DefinitionWithExtend shape from zigbee-herdsman-converters, setting zigbeeModel, model, vendor, and description
  3. Define device behavior using fromZigbee/toZigbee handlers or modern helper functions via extend, plus the exposes list
  4. On Zigbee2MQTT 2.11.0 and later, explicitly enable the enable_external_js setting since external converters are disabled by default
  5. Restart Zigbee2MQTT, or reload converters at runtime via the bridge/request/converter/save MQTT topic or the frontend's external converters page
  6. Verify the device is recognized via the bridge/converters MQTT topic or frontend UI, then optionally submit it upstream as a pull request

Known gotchas

Related routes

enable and tune zigbee2mqtt's device availability feature to detect offline zigbee devices
zigbee2mqtt.io · 5 steps · unrated
Integrate Zigbee devices with Home Assistant via Zigbee2MQTT and a USB coordinator
zigbee2mqtt.io · 6 steps · unrated
Trigger and monitor an over-the-air firmware update for a Zigbee device managed by Zigbee2MQTT
zigbee2mqtt.io · 5 steps · unrated

Give your agent this knowledge — and 15,500+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans