Tell me zigbee is more reliable than this [Devices offline]

Hello!
Some introduction first. I first started with z-wave in 2017 in a previous home, with great satisfaction, for years I have never had any issue. Then I had to move and leave all behind, and in the next home because I was renting an apartment I just installed some shelly (wifi) and all worked great. Then I bought home some weeks ago and the builder installed zigbee switches.

And this is the first experience with zigbee and I am wondering if something’s wrong or is the protocol that is unreliable.

Setup

  • Home Assistant Yellow, with Zigbee2mqtt 1.39.1, ember driver, coordinator revision 7.4.3 [GA]
  • The devices are well placed and LQI are optimal, WiFi interference is unlikely since I am the only one living in the building right now and I changed channels accordingly.

What Happens

  • If I power off the devices, some do not come back online and are unreachable
  • If I reboot HAOS, some devices do not come back online and are unreachable
  • There’s no way to wake up unreachable devices
  • There’s no way to rebuild zigbee network
  • The only way to restore them is to reset them

One example of one device offline since I rebooted HAOS yesterday:

2024-08-31 10:58:59z2m: Failed to ping 'Luce terrazzo sala' (attempt 1/1, ZCL command 0xf4ce36c553d84b7a/10 genBasic.read(["zclVersion"], {"timeout":10000,"disableResponse":false,"disableRecovery":true,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Delivery failed for {"profileId":260,"clusterId":0,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":224}))

Debug logs if I try to turn on/off the device:

[2024-08-31 11:22:22] info: 	z2m: Successfully changed options
[2024-08-31 11:22:22] info: 	z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/bridge/response/options', payload '{"data":{"restart_required":false},"status":"ok","transaction":"2q3jc-1"}'
[2024-08-31 11:22:28] debug: 	z2m:mqtt: Received MQTT message on 'zigbee2mqtt/Luce terrazzo sala/set' with data '{"state":"ON"}'
[2024-08-31 11:22:28] debug: 	z2m: Publishing 'set' 'state' to 'Luce terrazzo sala'
[2024-08-31 11:22:28] debug: 	zh:controller:endpoint: ZCL command 0xf4ce36c553d84b7a/10 genOnOff.on({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-08-31 11:22:28] debug: 	zh:ember: ~~~> [ZCL to=2131 apsFrame={"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4416,"groupId":0,"sequence":0} header={"frameControl":{"reservedBits":0,"frameType":1,"direction":0,"disableDefaultResponse":false,"manufacturerSpecific":false},"manufacturerCode":null,"transactionSequenceNumber":222,"commandIdentifier":1}]
[2024-08-31 11:22:28] debug: 	zh:ember:ezsp: ===> [FRAME: ID=52:"SEND_UNICAST" Seq=251 Len=24]
[2024-08-31 11:22:28] debug: 	zh:ember:uart:ash: ---> [FRAME type=DATA frmTx=3 frmRx=1](ackRx=3)
[2024-08-31 11:22:28] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA]
[2024-08-31 11:22:28] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA ackNum=4](ackRx=3 frmTx=4)
[2024-08-31 11:22:28] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA ackNum=4 frmNum=1](frmRx=1) Added to rxQueue
[2024-08-31 11:22:28] debug: 	zh:ember:uart:ash: ---> [FRAME type=ACK frmRx=2](ackRx=4)
[2024-08-31 11:22:28] debug: 	zh:ember:ezsp: <=== [FRAME: ID=52:"SEND_UNICAST" Seq=251 Len=7]
[2024-08-31 11:22:28] debug: 	zh:ember:ezsp: ~~~> [SENT type=DIRECT apsSequence=130 messageTag=15 status=OK]
[2024-08-31 11:22:33] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA]
[2024-08-31 11:22:33] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA ackNum=4](ackRx=4 frmTx=4)
[2024-08-31 11:22:33] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA ackNum=4 frmNum=2](frmRx=2) Added to rxQueue
[2024-08-31 11:22:33] debug: 	zh:ember:uart:ash: ---> [FRAME type=ACK frmRx=3](ackRx=4)
[2024-08-31 11:22:33] debug: 	zh:ember:ezsp: <=== [CBFRAME: ID=63:"MESSAGE_SENT_HANDLER" Seq=251 Len=22]
[2024-08-31 11:22:33] debug: 	zh:ember:ezsp: ezspMessageSentHandler(): callback called with: [status=ZIGBEE_DELIVERY_FAILED], [type=DIRECT], [indexOrDestination=2131], [apsFrame={"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":130}], [messageTag=15]
[2024-08-31 11:22:33] debug: 	zh:controller:endpoint: Error: ZCL command 0xf4ce36c553d84b7a/10 genOnOff.on({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Delivery failed for {"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":130})
[2024-08-31 11:22:33] error: 	z2m: Publish 'set' 'state' to 'Luce terrazzo sala' failed: 'Error: ZCL command 0xf4ce36c553d84b7a/10 genOnOff.on({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Delivery failed for {"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":130})'
[2024-08-31 11:22:33] debug: 	z2m: Error: ZCL command 0xf4ce36c553d84b7a/10 genOnOff.on({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Delivery failed for {"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":130})
    at EmberOneWaitress.deliveryFailedFor (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/oneWaitress.ts:98:31)
    at EmberAdapter.onMessageSent (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:454:42)
    at Ezsp.emit (node:events:517:28)
    at Ezsp.ezspMessageSentHandler (/app/node_modules/zigbee-herdsman/src/adapter/ember/ezsp/ezsp.ts:5016:14)
    at Ezsp.callbackDispatch (/app/node_modules/zigbee-herdsman/src/adapter/ember/ezsp/ezsp.ts:770:26)
    at Ezsp.onAshFrame (/app/node_modules/zigbee-herdsman/src/adapter/ember/ezsp/ezsp.ts:430:22)
    at UartAsh.emit (node:events:517:28)
    at Immediate.<anonymous> (/app/node_modules/zigbee-herdsman/src/adapter/ember/uart/ash.ts:1187:45)
    at processImmediate (node:internal/timers:476:21)
[2024-08-31 11:22:36] debug: 	z2m:mqtt: Received MQTT message on 'zigbee2mqtt/Luce terrazzo sala/set' with data '{"state":"OFF"}'
[2024-08-31 11:22:36] debug: 	z2m: Publishing 'set' 'state' to 'Luce terrazzo sala'
[2024-08-31 11:22:36] debug: 	zh:controller:endpoint: ZCL command 0xf4ce36c553d84b7a/10 genOnOff.off({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false})
[2024-08-31 11:22:36] debug: 	zh:ember: ~~~> [ZCL to=2131 apsFrame={"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4416,"groupId":0,"sequence":0} header={"frameControl":{"reservedBits":0,"frameType":1,"direction":0,"disableDefaultResponse":false,"manufacturerSpecific":false},"manufacturerCode":null,"transactionSequenceNumber":223,"commandIdentifier":0}]
[2024-08-31 11:22:36] debug: 	zh:ember:ezsp: ===> [FRAME: ID=52:"SEND_UNICAST" Seq=252 Len=24]
[2024-08-31 11:22:36] debug: 	zh:ember:uart:ash: ---> [FRAME type=DATA frmTx=4 frmRx=3](ackRx=4)
[2024-08-31 11:22:36] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA]
[2024-08-31 11:22:36] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA ackNum=5](ackRx=4 frmTx=5)
[2024-08-31 11:22:36] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA ackNum=5 frmNum=3](frmRx=3) Added to rxQueue
[2024-08-31 11:22:36] debug: 	zh:ember:uart:ash: ---> [FRAME type=ACK frmRx=4](ackRx=5)
[2024-08-31 11:22:36] debug: 	zh:ember:ezsp: <=== [FRAME: ID=52:"SEND_UNICAST" Seq=252 Len=7]
[2024-08-31 11:22:36] debug: 	zh:ember:ezsp: ~~~> [SENT type=DIRECT apsSequence=131 messageTag=16 status=OK]
[2024-08-31 11:22:41] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA]
[2024-08-31 11:22:41] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA ackNum=5](ackRx=5 frmTx=5)
[2024-08-31 11:22:41] debug: 	zh:ember:uart:ash: <--- [FRAME type=DATA ackNum=5 frmNum=4](frmRx=4) Added to rxQueue
[2024-08-31 11:22:41] debug: 	zh:ember:uart:ash: ---> [FRAME type=ACK frmRx=5](ackRx=5)
[2024-08-31 11:22:41] debug: 	zh:ember:ezsp: <=== [CBFRAME: ID=63:"MESSAGE_SENT_HANDLER" Seq=252 Len=22]
[2024-08-31 11:22:41] debug: 	zh:ember:ezsp: ezspMessageSentHandler(): callback called with: [status=ZIGBEE_DELIVERY_FAILED], [type=DIRECT], [indexOrDestination=2131], [apsFrame={"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":131}], [messageTag=16]
[2024-08-31 11:22:41] debug: 	zh:controller:endpoint: Error: ZCL command 0xf4ce36c553d84b7a/10 genOnOff.off({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Delivery failed for {"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":131})
[2024-08-31 11:22:41] error: 	z2m: Publish 'set' 'state' to 'Luce terrazzo sala' failed: 'Error: ZCL command 0xf4ce36c553d84b7a/10 genOnOff.off({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Delivery failed for {"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":131})'
[2024-08-31 11:22:41] debug: 	z2m: Error: ZCL command 0xf4ce36c553d84b7a/10 genOnOff.off({}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":false,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) failed (Delivery failed for {"profileId":260,"clusterId":6,"sourceEndpoint":1,"destinationEndpoint":10,"options":4160,"groupId":0,"sequence":131})
    at EmberOneWaitress.deliveryFailedFor (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/oneWaitress.ts:98:31)
    at EmberAdapter.onMessageSent (/app/node_modules/zigbee-herdsman/src/adapter/ember/adapter/emberAdapter.ts:454:42)
    at Ezsp.emit (node:events:517:28)
    at Ezsp.ezspMessageSentHandler (/app/node_modules/zigbee-herdsman/src/adapter/ember/ezsp/ezsp.ts:5016:14)
    at Ezsp.callbackDispatch (/app/node_modules/zigbee-herdsman/src/adapter/ember/ezsp/ezsp.ts:770:26)
    at Ezsp.onAshFrame (/app/node_modules/zigbee-herdsman/src/adapter/ember/ezsp/ezsp.ts:430:22)
    at UartAsh.emit (node:events:517:28)
    at Immediate.<anonymous> (/app/node_modules/zigbee-herdsman/src/adapter/ember/uart/ash.ts:1187:45)
    at processImmediate (node:internal/timers:476:21)
[2024-08-31 11:22:44] debug: 	z2m:mqtt: Received MQTT message on 'zigbee2mqtt/bridge/request/options' with data '{"options":{"advanced":{"log_level":"warning"}},"transaction":"2q3jc-2"}'

So I am wondering if this is normal. And if it’s not, what can I do to improve the reliability?

Have you read this it may help

Hello Arh, thanks for the reply but unfortunately I already read it and I think nothing applies in my case.

  • Adapter: I use Home Assistant Yellow which is a recommended adapter.
  • Avoid devices from AwoX: no devices from AwoX
  • USB based adapter: does not apply.
  • Reduce Wi-Fi interference by changing the Zigbee channel: already tried and as I wrote in my post I am the only one living in the building right now.
  • Interference from other 2.4 GHz devices: no other 2.4 GHz devices.
  • Adding routers to your network: all my devices are routers.
  • Hardware: processor is at 4% and i have more than 2GB of free RAM on HA Yellow.
1 Like

Do you have model numbers for these?
Also, are the switches wired with a neutral, or are they no-neutral switches? No-neutral switches won’t route the zigbee mesh - they’re essentially end devices despite the fact that they’re wired.

2 Likes

This is normal for end devices - the coordinator has to wait for them to check in, which may take a while depending on the device. They should make contact as soon as they have something to report, though - as soon as motion is detected, for example, in the case of a motion sensor.

It is not normal for routers. Perhaps, as @ShadowFist says, your switches are not routers.

1 Like

Yes of course:

Z2M says:
Device type
Router

and yes they are wired with neutral

I am sure they are routers, they are wired and Z2M says so in the about page of the devices

Going back to well placed… How far apart are they how far from the coordinator.

That said there is some. Complexity. I will say zigbee itself is great and works fine…

IF

You have good gear. Unfortunately a lot of manufacturers play fast and loose with eh spec. Enough so you may have heard of minor incompatibility…

That often wreacks havoc if you have the wrong combination of vendors. (Well known at this point combing certain devices with others cause things to randomly drop because how they interact.)

So in your situation the yellow if a little in the weak side antenna wise is still a decent coordinator. Personally I LOATHE builtin devices like the onboard coordinate but it should work. Those Vimar devices though

I know those are euro spec devices. I’ve never used them nor have heard of thier use. While they may be placed well. Are they playing nicely? (rando vendor spec device scares me)

1 Like

Shooting in the dark here… Have you disabled ZHA? I believe the Yellow defaults to that.

How far apart are they how far from the coordinator.

They are pretty close, the one offline is in the same wall box of this one:

{ "last_seen": "2024-08-31T13:48:33.565Z", "linkquality": 176, "state": "OFF" }

I know those are euro spec devices. I’ve never used them nor have heard of thier use. While they may be placed well. Are they playing nicely? (rando vendor spec device scares me)

They are working nicely until one of the situation described happens… Vimar is the biggest italian electric hardware producer, it’s not one random vendor

image

Yes I did it, is this enough isn’t it?

My own experience is that it takes a few days for the Zigbee devices to settle in. Major changes, such as adding several devices, causes chaos. But it soon sorts everything and works fine.

I had the same experience with Hubitat.

1 Like

Yes, looks like it isn’t installed. I think you just click “Ignore” to stop it being rediscovered.

1 Like

Ok then they are good for your area.

My point still stands… Vendor integration is zigbee achilles heel. You may be fighting a specific integration issue with the ‘stick’ in the yellow v. those devices.

They may be great devices when in thier own isolated network but when you start mixing vendors you need to understand the interplay. Yes zigbee spec SHOULD handle the translation but read post after post after post of nuance because vendor specifics (and minjust said I don’t know the nuance of those particular devices)

I don’t think this is channel or distance. It still may be external interference nut my gut is telling me you have a vendor interaction problem.

Ok so how do we prove it out.

Add some other vendor router strategically to see if the situation improves (like grab an IKEA pocket socket. They’re usually great and play well with others)

Or. You could try a different coordinator to see if that’s the interaction.

Or you could also try Z2M instead of ZHA because some have been reporting random device drops on newest builds (2024.7. X) of HA with ZHA. (edit: or not, see shadow fist comment later)

In short - your original ask. Zigbee is fine but the gear is the issue. You must find stuff that works together and the promise of it just works because zigbee isn’t exactly true. My gut tells me it’s your devices or ZHA itself. But it’s going to be a long haul to figure it out.

1 Like

He mentioned in his first post that he’s on Z2M already.

Vimar isn’t some random brand. It’s got a good rep and is quite well known over in southern Europe, especially in Italy.

Having said that, i have no idea why this is happening because it’s definitely not typical.
@saverio by any chance, are your switch boxes (the ones inside the wall) made of metal?

2 Likes

Ooooh that’s a good question… I have no idea what code requires over there, but he did say good LQIs

Hello!
No and in the same switch box there are three switches, two perfectly online right now, heres one of them:

{ "last_seen": "2024-08-31T13:48:33.565Z", "linkquality": 176, "state": "OFF" }
2 Likes

Do you have steel back boxes in the wall they are fitted to?

1 Like

I have the same mixed results with Zigbee and slowly going back to Zwave what has been stable for the last 25 years….
All devices I also use for my alarm need to be rock solid.

1 Like

No, here in Italy we don’t use them. All plastic

1 Like