Zigbee2MQTT setup help

Hi,

I would need some quick help, as I deleted my ZHA, and trying to change to Z2M.
I have ZBT-2 coordinator.

I followed the github’s guide, but after hitting “Submit” on the onboarding page, it says localhost (address) rejected the connection, and won’t load the frontend.
After clicking on z2m again, it will take me to onboarding agian.

There are many guides online, with a lot of difference in steps and time.
Any help would be appreciated. :slightly_smiling_face:

Logs and details about the setup (HAOS? Container?) would be helpful.

Oh yeah, sorry, I forgot.
HA Green is the HW, HAOS on it.

These are all the logs from Z2M initially:

21:28:20] INFO: Preparing to start...
[21:28:21] INFO: Socat not enabled
[21:28:21] INFO: Starting Zigbee2MQTT...
Starting Zigbee2MQTT without watchdog.
Onboarding page is available at http://0.0.0.0:8099/

The given page can not be accessed.

After hitting: open web UI (or open it on the sidebar), I select my ZBT-2, and no matter what else I change (there’s nothing else here needs to be change supposedly), the UI won’t load. (as the onboarding page can not be accessed).

(Also, I don’t understand this: “Fill in the Closests WiFi Channel to select the most optimal Zigbee channel”. Which one should I select for what? Should I just leave it on ‘-’?)

After “Submit”, the log will say this:

[2026-04-20 21:58:54] info: 	z2m: Logging to console, file (filename: log.log)
[2026-04-20 21:58:54] info: 	z2m: Starting Zigbee2MQTT version 2.9.2 (commit #unknown)
[2026-04-20 21:58:54] info: 	z2m: Starting zigbee-herdsman (10.0.5)
[2026-04-20 21:58:54] info: 	zh:ember: Using default stack config.
[2026-04-20 21:58:54] info: 	zh:ember: ======== Ember Adapter Starting ========
[2026-04-20 21:58:54] info: 	zh:ember:ezsp: ======== EZSP starting ========
[2026-04-20 21:58:54] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-04-20 21:58:54] info: 	zh:ember:uart:ash: RTS/CTS config is off, enabling software flow control.
[2026-04-20 21:58:54] info: 	zh:ember:uart:ash: Serial port opened
[2026-04-20 21:58:54] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2026-04-20 21:58:59] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-04-20 21:58:59] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2026-04-20 21:59:05] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-04-20 21:59:05] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2026-04-20 21:59:10] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-04-20 21:59:10] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2026-04-20 21:59:15] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-04-20 21:59:15] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2026-04-20 21:59:20] error: 	z2m: Error while starting zigbee-herdsman
[2026-04-20 21:59:20] error: 	z2m: Failed to start zigbee-herdsman
[2026-04-20 21:59:20] error: 	z2m: Check https://www.zigbee2mqtt.io/guide/installation/20_zigbee2mqtt-fails-to-start_crashes-runtime.html for possible solutions
[2026-04-20 21:59:20] error: 	z2m: Exiting...
[2026-04-20 21:59:20] error: 	z2m: Error: Failed to start EZSP layer with status=HOST_FATAL_ERROR.
    at EmberAdapter.initEzsp (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:666:19)
    at EmberAdapter.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:1538:24)
    at Controller.start (/app/node_modules/.pnpm/[email protected]/node_modules/zigbee-herdsman/src/controller/controller.ts:146:29)
    at Zigbee.start (/app/lib/zigbee.ts:70:27)
    at Controller.start (/app/lib/controller.ts:111:29)
    at start (/app/index.js:156:5)

Page won’t load, opening Z2M again will take me back to the onboarding page:

After changing the (auto filled) config to this:
adapter: ember
baudrate: 460800
rtscts: true

Different logs will come, without error, but localhost still rejects and frontend won’t load.

[2026-04-20 22:07:14] info: 	z2m: Logging to console, file (filename: log.log)
[2026-04-20 22:07:14] info: 	z2m: Starting Zigbee2MQTT version 2.9.2 (commit #unknown)
[2026-04-20 22:07:14] info: 	z2m: Starting zigbee-herdsman (10.0.5)
[2026-04-20 22:07:14] info: 	zh:ember: Using default stack config.
[2026-04-20 22:07:14] info: 	zh:ember: ======== Ember Adapter Starting ========
[2026-04-20 22:07:14] info: 	zh:ember:ezsp: ======== EZSP starting ========
[2026-04-20 22:07:14] info: 	zh:ember:uart:ash: ======== ASH Adapter reset ========
[2026-04-20 22:07:14] info: 	zh:ember:uart:ash: Serial port opened
[2026-04-20 22:07:14] info: 	zh:ember:uart:ash: ======== ASH starting ========
[2026-04-20 22:07:15] info: 	zh:ember:uart:ash: ======== ASH connected ========
[2026-04-20 22:07:15] info: 	zh:ember:uart:ash: ======== ASH started ========
[2026-04-20 22:07:15] info: 	zh:ember:ezsp: ======== EZSP started ========
[2026-04-20 22:07:16] info: 	zh:ember: Adapter EZSP protocol version (13) lower than Host. Switched.
[2026-04-20 22:07:16] info: 	zh:ember: Adapter version info: {"ezsp":13,"revision":"7.5.1 [GA]","build":0,"major":7,"minor":5,"patch":1,"special":0,"type":170}
[2026-04-20 22:07:16] info: 	zh:ember: [STACK STATUS] Network up.
[2026-04-20 22:07:16] info: 	zh:ember: [INIT TC] Adapter network does not match config. Leaving network...
[2026-04-20 22:07:17] info: 	zh:ember: [STACK STATUS] Network down.
[2026-04-20 22:07:17] info: 	zh:ember: [INIT TC] No valid backup found.
[2026-04-20 22:07:17] info: 	zh:ember: [INIT TC] Forming from config.
[2026-04-20 22:07:17] info: 	zh:ember: [INIT FORM] Forming new network with: {"panId":37692,"extendedPanId":[164,130,20,145,68,209,130,19],"radioTxPower":5,"radioChannel":11,"joinMethod":0,"nwkManagerId":0,"nwkUpdateId":0,"channels":134215680}
[2026-04-20 22:07:17] info: 	zh:ember: [STACK STATUS] Network up.
[2026-04-20 22:07:17] info: 	zh:ember: [INIT FORM] New network formed!
[2026-04-20 22:07:17] info: 	zh:ember: [CONCENTRATOR] Started source route discovery. 1248ms until next broadcast.
[2026-04-20 22:07:17] info: 	zh:controller: Wrote coordinator backup to '/config/zigbee2mqtt/coordinator_backup.json'
[2026-04-20 22:07:17] info: 	z2m: zigbee-herdsman started (reset)
[2026-04-20 22:07:17] info: 	z2m: Coordinator firmware version: '{"meta":{"build":0,"ezsp":13,"major":7,"minor":5,"patch":1,"revision":"7.5.1 [GA]","special":0,"type":170},"type":"EmberZNet"}'
[2026-04-20 22:07:17] info: 	z2m: Currently 0 devices are joined.
[2026-04-20 22:07:17] info: 	z2m: Connecting to MQTT server at mqtt://core-mosquitto:1883
[2026-04-20 22:07:18] info: 	z2m: Connected to MQTT server
[2026-04-20 22:07:18] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload '{"state":"online"}'
[2026-04-20 22:07:18] info: 	z2m: Started frontend on port 8099
[2026-04-20 22:07:18] info: 	z2m: Zigbee2MQTT started!
[2026-04-20 22:07:23] info: 	z2m:mqtt: MQTT publish: topic 'homeassistant/binary_sensor/1221051039810110150109113116116_0x60b763fffe5ac7a9/connection_state/config', payload '{"default_entity_id":"binary_sensor.zigbee2mqtt_bridge_connection_state","device":{"hw_version":"EmberZNet 7.5.1 [GA]","identifiers":["zigbee2mqtt_bridge_0x60b763fffe5ac7a9"],"manufacturer":"Zigbee2MQTT","model":"Bridge","name":"Zigbee2MQTT Bridge","sw_version":"2.9.2"},"device_class":"connectivity","entity_category":"diagnostic","name":"Connection state","object_id":"zigbee2mqtt_bridge_connection_state","origin":{"name":"Zigbee2MQTT","sw":"2.9.2","url":"https://www.zigbee2mqtt.io"},"payload_off":"offline","payload_on":"online","state_topic":"zigbee2mqtt/bridge/state","unique_id":"bridge_0x60b763fffe5ac7a9_connection_state_zigbee2mqtt","value_template":"{{ value_json.state }}"}'
[2026-04-20 22:07:23] info: 	z2m:mqtt: MQTT publish: topic 'homeassistant/binary_sensor/1221051039810110150109113116116_0x60b763fffe5ac7a9/restart_required/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"availability_mode":"all","default_entity_id":"binary_sensor.zigbee2mqtt_bridge_restart_required","device":{"hw_version":"EmberZNet 7.5.1 [GA]","identifiers":["zigbee2mqtt_bridge_0x60b763fffe5ac7a9"],"manufacturer":"Zigbee2MQTT","model":"Bridge","name":"Zigbee2MQTT Bridge","sw_version":"2.9.2"},"device_class":"problem","enabled_by_default":false,"entity_category":"diagnostic","name":"Restart required","object_id":"zigbee2mqtt_bridge_restart_required","origin":{"name":"Zigbee2MQTT","sw":"2.9.2","url":"https://www.zigbee2mqtt.io"},"payload_off":false,"payload_on":true,"state_topic":"zigbee2mqtt/bridge/info","unique_id":"bridge_0x60b763fffe5ac7a9_restart_required_zigbee2mqtt","value_template":"{{ value_json.restart_required }}"}'
[2026-04-20 22:07:23] info: 	z2m:mqtt: MQTT publish: topic 'homeassistant/button/1221051039810110150109113116116_0x60b763fffe5ac7a9/restart/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"availability_mode":"all","command_topic":"zigbee2mqtt/bridge/request/restart","default_entity_id":"button.zigbee2mqtt_bridge_restart","device":{"hw_version":"EmberZNet 7.5.1 [GA]","identifiers":["zigbee2mqtt_bridge_0x60b763fffe5ac7a9"],"manufacturer":"Zigbee2MQTT","model":"Bridge","name":"Zigbee2MQTT Bridge","sw_version":"2.9.2"},"device_class":"restart","name":"Restart","object_id":"zigbee2mqtt_bridge_restart","origin":{"name":"Zigbee2MQTT","sw":"2.9.2","url":"https://www.zigbee2mqtt.io"},"payload_press":"","unique_id":"bridge_0x60b763fffe5ac7a9_restart_zigbee2mqtt"}'
[2026-04-20 22:07:23] info: 	z2m:mqtt: MQTT publish: topic 'homeassistant/select/1221051039810110150109113116116_0x60b763fffe5ac7a9/log_level/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"availability_mode":"all","command_template":"{\"options\": {\"advanced\": {\"log_level\": \"{{ value }}\" } } }","command_topic":"zigbee2mqtt/bridge/request/options","default_entity_id":"select.zigbee2mqtt_bridge_log_level","device":{"hw_version":"EmberZNet 7.5.1 [GA]","identifiers":["zigbee2mqtt_bridge_0x60b763fffe5ac7a9"],"manufacturer":"Zigbee2MQTT","model":"Bridge","name":"Zigbee2MQTT Bridge","sw_version":"2.9.2"},"entity_category":"config","name":"Log level","object_id":"zigbee2mqtt_bridge_log_level","options":["error","warning","info","debug"],"origin":{"name":"Zigbee2MQTT","sw":"2.9.2","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt/bridge/info","unique_id":"bridge_0x60b763fffe5ac7a9_log_level_zigbee2mqtt","value_template":"{{ value_json.log_level | lower }}"}'
[2026-04-20 22:07:23] info: 	z2m:mqtt: MQTT publish: topic 'homeassistant/sensor/1221051039810110150109113116116_0x60b763fffe5ac7a9/version/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"availability_mode":"all","default_entity_id":"sensor.zigbee2mqtt_bridge_version","device":{"hw_version":"EmberZNet 7.5.1 [GA]","identifiers":["zigbee2mqtt_bridge_0x60b763fffe5ac7a9"],"manufacturer":"Zigbee2MQTT","model":"Bridge","name":"Zigbee2MQTT Bridge","sw_version":"2.9.2"},"entity_category":"diagnostic","icon":"mdi:zigbee","name":"Version","object_id":"zigbee2mqtt_bridge_version","origin":{"name":"Zigbee2MQTT","sw":"2.9.2","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt/bridge/info","unique_id":"bridge_0x60b763fffe5ac7a9_version_zigbee2mqtt","value_template":"{{ value_json.version }}"}'
[2026-04-20 22:07:23] info: 	z2m:mqtt: MQTT publish: topic 'homeassistant/sensor/1221051039810110150109113116116_0x60b763fffe5ac7a9/coordinator_version/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"availability_mode":"all","default_entity_id":"sensor.zigbee2mqtt_bridge_coordinator_version","device":{"hw_version":"EmberZNet 7.5.1 [GA]","identifiers":["zigbee2mqtt_bridge_0x60b763fffe5ac7a9"],"manufacturer":"Zigbee2MQTT","model":"Bridge","name":"Zigbee2MQTT Bridge","sw_version":"2.9.2"},"enabled_by_default":false,"entity_category":"diagnostic","icon":"mdi:chip","name":"Coordinator version","object_id":"zigbee2mqtt_bridge_coordinator_version","origin":{"name":"Zigbee2MQTT","sw":"2.9.2","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt/bridge/info","unique_id":"bridge_0x60b763fffe5ac7a9_coordinator_version_zigbee2mqtt","value_template":"{{ value_json.coordinator.meta.revision }}"}'
[2026-04-20 22:07:23] info: 	z2m:mqtt: MQTT publish: topic 'homeassistant/sensor/1221051039810110150109113116116_0x60b763fffe5ac7a9/network_map/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"availability_mode":"all","default_entity_id":"sensor.zigbee2mqtt_bridge_network_map","device":{"hw_version":"EmberZNet 7.5.1 [GA]","identifiers":["zigbee2mqtt_bridge_0x60b763fffe5ac7a9"],"manufacturer":"Zigbee2MQTT","model":"Bridge","name":"Zigbee2MQTT Bridge","sw_version":"2.9.2"},"enabled_by_default":false,"entity_category":"diagnostic","json_attributes_template":"{{ value_json.data.value | tojson }}","json_attributes_topic":"zigbee2mqtt/bridge/response/networkmap","name":"Network map","object_id":"zigbee2mqtt_bridge_network_map","origin":{"name":"Zigbee2MQTT","sw":"2.9.2","url":"https://www.zigbee2mqtt.io"},"state_topic":"zigbee2mqtt/bridge/response/networkmap","unique_id":"bridge_0x60b763fffe5ac7a9_network_map_zigbee2mqtt","value_template":"{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"}'
[2026-04-20 22:07:24] info: 	z2m:mqtt: MQTT publish: topic 'homeassistant/switch/1221051039810110150109113116116_0x60b763fffe5ac7a9/permit_join/config', payload '{"availability":[{"topic":"zigbee2mqtt/bridge/state","value_template":"{{ value_json.state }}"}],"availability_mode":"all","command_topic":"zigbee2mqtt/bridge/request/permit_join","default_entity_id":"switch.zigbee2mqtt_bridge_permit_join","device":{"hw_version":"EmberZNet 7.5.1 [GA]","identifiers":["zigbee2mqtt_bridge_0x60b763fffe5ac7a9"],"manufacturer":"Zigbee2MQTT","model":"Bridge","name":"Zigbee2MQTT Bridge","sw_version":"2.9.2"},"icon":"mdi:human-greeting-proximity","name":"Permit join","object_id":"zigbee2mqtt_bridge_permit_join","origin":{"name":"Zigbee2MQTT","sw":"2.9.2","url":"https://www.zigbee2mqtt.io"},"payload_off":"{\"time\": 0}","payload_on":"{\"time\": 254}","state_off":"false","state_on":"true","state_topic":"zigbee2mqtt/bridge/info","unique_id":"bridge_0x60b763fffe5ac7a9_permit_join_zigbee2mqtt","value_template":"{{ value_json.permit_join | lower }}"}'

Sweet Jesus.
After retrying like 35 times, it suddenly just works…
WTH…