Ecolink Garage Door Tilt Sensor - NotificationCCReport not processed properly?

Home Assistant 2022.3.06, Zwavejs2mqtt, zwavejs2mqtt: 6.6.2, zwave-js: 8.11.9

Device: “productLabel”: “TILT-ZWAVE2.5-ECO”,“productDescription”: “Z-wave Plus Gold Plated Reliability Garage Door Tilt Sensor”, “manufacturer”: “Ecolink”, “firmwareVersion”: “10.1”,

Problem: Yesterday the Garage Door close signal was missed, resulting in Home Assistant believing the garage door was open. The entity unique ID in HA is “4060453304.5-113-0-Access Control-Door state.22”. System has been running for several months and this is the first time the issue has occurred.

Looking at the zwavejs debug log, I can see the garage door close messages come through, but the close message at 18:08 did not update this entitiy, whereas the close message at 22:12:45 did.

Did a message get dropped in zwave? Or is this a problem (may have been fixed) with zwave_js?

The log has 4 sets of messages.
18:04:17 - the garage door opening
18:08:14 - the garage door closing - that did not update HA
22:11:46 - The garage door opening
22:12:45 - The garage door closing with proper notifications

Entity Registry Entry

            {
                "area_id": null,
                "capabilities": null,
                "config_entry_id": "dadc55859f16cfa54fc9f36de4e2e13d",
                "device_class": null,
                "device_id": "3f15921a05af9cdf5ce820bcac910621",
                "disabled_by": null,
                "entity_category": null,
                "entity_id": "binary_sensor.garage_door_sensor",
                "icon": null,
                "id": "70765e329880aa179246786661de7e36",
                "name": "Garage Door Sensor",
                "options": {},
                "original_device_class": "door",
                "original_icon": null,
                "original_name": "garage_door: Access Control - Window/door is open",
                "platform": "zwave_js",
                "supported_features": 0,
                "unique_id": "4060453304.5-113-0-Access Control-Door state.22",
                "unit_of_measurement": null
            },

zwavejs debug log

Garage Door Opening

2022-05-27T18:04:17.103Z SERIAL « 0x0111000400050b7105000000ff06160000007f                            (19 bytes)
2022-05-27T18:04:17.103Z CNTRLR   [Node 005] [~] [Notification] notificationMode: "push" [Endpoint 0] [internal]
                                   => "push"
2022-05-27T18:04:17.103Z SERIAL » [ACK]                                                                   (0x06)
2022-05-27T18:04:17.104Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
                                  └─[NotificationCCReport]
                                      notification type:   Access Control
                                      notification status: 255
                                      notification state:  Window/door is open
2022-05-27T18:04:17.105Z CNTRLR   [Node 005] [~] [Notification] Access Control[Door state]: 23 => 2 [Endpoint 0]
                                  2
2022-05-27T18:04:17.322Z SERIAL « 0x010a00040005043003ffffc3                                          (12 bytes)
2022-05-27T18:04:17.323Z CNTRLR   [Node 005] [Binary Sensor] Any: metadata updated                  [Endpoint 0]
2022-05-27T18:04:17.324Z CNTRLR   [Node 005] [~] [Binary Sensor] Any: false => true                 [Endpoint 0]
2022-05-27T18:04:17.324Z SERIAL » [ACK]                                                                   (0x06)
2022-05-27T18:04:17.325Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
                                  └─[BinarySensorCCReport]
                                      type:  Any
                                      value: true

Garage Door Closing (Access Control[Door state] not updated)

2022-05-27T18:08:14.068Z SERIAL « 0x0111000400050b7105000000ff06170000007e                            (19 bytes)
2022-05-27T18:08:14.069Z CNTRLR   [Node 005] [~] [Notification] notificationMode: "push" [Endpoint 0] [internal]
                                   => "push"
2022-05-27T18:08:14.069Z SERIAL » [ACK]                                                                   (0x06)
2022-05-27T18:08:14.070Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
                                  └─[NotificationCCReport]
                                      notification type:   Access Control
                                      notification status: 255
                                      notification state:  Window/door is closed
2022-05-27T18:08:14.090Z SERIAL « 0x010a0004000504300300ff3c                                          (12 bytes)
2022-05-27T18:08:14.090Z CNTRLR   [Node 005] [Binary Sensor] Any: metadata updated                  [Endpoint 0]
2022-05-27T18:08:14.091Z CNTRLR   [Node 005] [~] [Binary Sensor] Any: true => false                 [Endpoint 0]
2022-05-27T18:08:14.092Z SERIAL » [ACK]                                                                   (0x06)
2022-05-27T18:08:14.093Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
                                  └─[BinarySensorCCReport]
                                      type:  Any
                                      value: false

Garage Door Opening


2022-05-27T22:11:46.474Z SERIAL « 0x0111000400050b7105000000ff06160000007f                            (19 bytes)
2022-05-27T22:11:46.476Z CNTRLR   [Node 005] [~] [Notification] notificationMode: "push" [Endpoint 0] [internal]
                                   => "push"
2022-05-27T22:11:46.476Z SERIAL » [ACK]                                                                   (0x06)
2022-05-27T22:11:46.477Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
                                  └─[NotificationCCReport]
                                      notification type:   Access Control
                                      notification status: 255
                                      notification state:  Window/door is open
2022-05-27T22:11:46.479Z CNTRLR   [Node 005] [~] [Notification] Access Control[Door state]: 22 => 2 [Endpoint 0]
                                  2
2022-05-27T22:11:46.495Z SERIAL « 0x010a00040005043003ffffc3                                          (12 bytes)
2022-05-27T22:11:46.496Z CNTRLR   [Node 005] [Binary Sensor] Any: metadata updated                  [Endpoint 0]
2022-05-27T22:11:46.497Z CNTRLR   [Node 005] [~] [Binary Sensor] Any: false => true                 [Endpoint 0]
2022-05-27T22:11:46.498Z SERIAL » [ACK]                                                                   (0x06)
2022-05-27T22:11:46.498Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
                                  └─[BinarySensorCCReport]
                                      type:  Any
                                      value: true

Garage Door Closing

2022-05-27T22:12:45.122Z SERIAL « 0x0111000400050b7105000000ff06170000007e                            (19 bytes)
2022-05-27T22:12:45.123Z CNTRLR   [Node 005] [~] [Notification] notificationMode: "push" [Endpoint 0] [internal]
                                   => "push"
2022-05-27T22:12:45.123Z SERIAL » [ACK]                                                                   (0x06)
2022-05-27T22:12:45.123Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
                                  └─[NotificationCCReport]
                                      notification type:   Access Control
                                      notification status: 255
                                      notification state:  Window/door is closed
2022-05-27T22:12:45.124Z CNTRLR   [Node 005] [~] [Notification] Access Control[Door state]: 22 => 2 [Endpoint 0]
                                  3
2022-05-27T22:12:45.143Z SERIAL « 0x010a0004000504300300ff3c                                          (12 bytes)
2022-05-27T22:12:45.144Z CNTRLR   [Node 005] [Binary Sensor] Any: metadata updated                  [Endpoint 0]
2022-05-27T22:12:45.144Z CNTRLR   [Node 005] [~] [Binary Sensor] Any: true => false                 [Endpoint 0]
2022-05-27T22:12:45.145Z SERIAL » [ACK]                                                                   (0x06)
2022-05-27T22:12:45.145Z DRIVER « [Node 005] [REQ] [ApplicationCommand]
                                  └─[BinarySensorCCReport]
                                      type:  Any
                                      value: false
2022-05-27T22:12:53.829Z SERIAL « 0x010c0004000f063105012200b35a                                      (14 bytes)

In the log I also saw, that a Binary SensorCC report was coming through, so I enabled the disabled “any” entity in HA for this. And as a short-term mitigation, I’ve added logic to look a both signals and report when they don’t match.

            {
                "area_id": null,
                "capabilities": null,
                "config_entry_id": "dadc55859f16cfa54fc9f36de4e2e13d",
                "device_class": null,
                "device_id": "3f15921a05af9cdf5ce820bcac910621",
                "disabled_by": null,
                "entity_category": null,
                "entity_id": "binary_sensor.garage_door_any",
                "icon": null,
                "id": "86852f8a2b8a3fdc4e77fc9a375a3f35",
                "name": null,
                "options": {},
                "original_device_class": null,
                "original_icon": null,
                "original_name": "garage_door: Any",
                "platform": "zwave_js",
                "supported_features": 0,
                "unique_id": "4060453304.5-48-0-Any",
                "unit_of_measurement": null
            },

In the context of Z-Wave JS, your versions are very old. First thing I would do is upgrade to the latest available, to discount any old issues. Honestly speaking, troubleshooting on older versions just isn’t worth the time. 8.11.9 is almost 3 months old and has been supplanted by a new major version, v9.

Case in point, I think your issue happens to be fixed in driver v9.0.3:

Fixed an issue causing certain unsolicited messages like Notification CC Reports not to be processed while an API command was ongoing

Thanks, yes that looks like the issue.