Koenkk / zigbee2mqtt

Zigbee 🐝 to MQTT bridge 🌉, get rid of your proprietary Zigbee bridges 🔨
https://www.zigbee2mqtt.io
GNU General Public License v3.0
12.01k stars 1.67k forks source link

_TYZB01_dl7cejts doesn't send any exposes when using zigbee2mqtt/bridge/devices #20661

Closed Burki24 closed 8 months ago

Burki24 commented 9 months ago

What happened?

Since switch from 1.34.0 to 1.35.0 TuYa TY-ZPR06 (_TYZB01_dl7cejts) doesn't send any exposes when using zigbee2mqtt/bridge/devices.

What did you expect to happen?

To get an overview of exposes of this device (needed for including into IP Symcon), we use an user-extension, which sends the device-Infos to IP Symcon. There normaly the exposes will be extracted and finaly stored as variables: image

The extension can be found here: https://github.com/Schnittcher/IPS-Zigbee2MQTT/blob/main/libs/IPSymconExtension.js

For all devices it runs perfectly except _TYZB01_dl7cejts. there are no exposes send:

How to reproduce it (minimal and precise)

Start interviewing the device from IP Symcon for getting the needed exposes. The definition comes without the part exposes. _TYZB01_dl7cejts.txt

Zigbee2MQTT version

1.35.0-dev

Adapter firmware version

zStack3.0 20210708

Adapter

slaesh

Debug log

No response

Koenkk commented 9 months ago

The extension is probably not compatible with 1.35.0 and has to be updated.

Burki24 commented 9 months ago

The extension is probably not compatible with 1.35.0 and has to be updated.

Okay, I restructured the extension.js Symcon_new.txt

All devices and groups send ther exposes in the right way. Without this special device. In V. 1.35.1-dev it's well known, but it's not possible to find the exposes within the payload, called with zigbee2mqtt/bridge/devices. So for me, the Extension works perfectly, except this device. I have over 160 devices running perfect in zigbee2MQTT and Symcon, using this extension.

Have you any further idea, finding the issue?

Sincerly Burkhard

image image

Koenkk commented 9 months ago

You need to add await before some calls, this is due to https://github.com/Koenkk/zigbee2mqtt/commit/56f57625b0d5ce5b3bf6fa6a1a048f6ae8902311 (should also give some inspiration to update your user extension)

Schnittcher commented 9 months ago

Hello @koenkk, we need your support. According to the new exposes structure, we are trying to get them as a payload. So far we have been able to receive this as a payload through zigbee2mqtt/bridge/devices. However, after switching to 1.35.0 and the associated restructuring of the exposes, this no longer works. Now how can we get the exposes using zigbee2mqtt/bridge/devices? At the moment we simply cannot find the error in our extension. Would it be possible for you to give us a code snippet to get us on the right track? In your description it says that, among other things, the exposes are delivered with zigbee2mqtt/bridge/devices. But this no longer happens if the devices work with const.exps instead of exposes:.

Koenkk commented 9 months ago

Nothing should have changed in the exposes of zigbee2mqtt/bridge/devices, what changed here? (can you give an example)

Burki24 commented 9 months ago

Hi @Koenkk,

thanks for your replay. I have it more detailed written in the new V1.35.1 discussion: https://github.com/Koenkk/zigbee2mqtt/discussions/20637#discussioncomment-8252479

Also with samples what difference I mean.

Burki24 commented 9 months ago

@Koenkk

This is what comes, when we try out 'zigbee2mqtt/bridge/devices':

There are no exposes shown in the payload (The part

definition/exposes

is completely missing).

{
    "zh":{
        "_events":{},
        "_eventsCount":0,
        "ID":52,
        "_applicationVersion":66,
        "_dateCode":"",
        "_endpoints":[{
            "_events":{},
            "_eventsCount":0,
            "deviceID":1026,
            "inputClusters":[1,3,1280,0],
            "outputClusters":[25,10],
            "profileID":260,
            "ID":1,
            "clusters":{
                "genBasic":{
                    "attributes":{
                        "modelId":"TS0207",
                        "manufacturerName":"_TZ3000_ocjlo4ea",
                        "powerSource":3,
                        "zclVersion":3,
                        "appVersion":66,
                        "stackVersion":0,
                        "hwVersion":1,
                        "dateCode":""
                    }
                },
                "ssIasZone":
                {
                    "attributes":
                    {
                        "iasCieAddr":"0x00124b00042ad5fa",
                        "zoneState":1
                    }
                },
                "genPowerCfg":
                {
                    "attributes":
                    {
                        "batteryPercentageRemaining":200
                    }
                }
            },
            "deviceIeeeAddress":"0xa4c1389a0e5a8872",
            "deviceNetworkAddress":2561,
            "_binds":[
            {
                "cluster":1,
                "type":"endpoint",
                "deviceIeeeAddress":"0x00124b00042ad5fa",
                "endpointID":1
            }],
            "_configuredReportings":[
            {
                "cluster":1,
                "attrId":33,
                "minRepIntval":3600,
                "maxRepIntval":65000,
                "repChange":0,
                "manufacturerCode":null
            }],
        "meta":{},
        "pendingRequests":
        {
            "sendInProgress":false,
            "ID":1,
            "deviceIeeeAddress":"0xa4c1389a0e5a8872"
        }
    }],
    "_hardwareVersion":1,
    "_ieeeAddr":"0xa4c1389a0e5a8872",
    "_interviewCompleted":true,
    "_interviewing":false,
    "_lastSeen":1706031808655,
    "_manufacturerID":4417,
    "_manufacturerName":"_TZ3000_ocjlo4ea",
    "_modelID":"TS0207",
    "_networkAddress":2561,
    "_powerSource":"Battery",
    "_stackVersion":0,
    "_type":"EndDevice",
    "_zclVersion":3,
    "_linkquality":61,
    "_skipDefaultResponse":false,
    "_skipTimeResponse":false,
    "_defaultSendRequestWhen":"immediate",
    "_lastDefaultResponseSequenceNumber":7,
    "_pendingRequestTimeout":0,
    "meta":
    {
        "configured":491743244
    }
},
"definition":
{
    "zigbeeModel":["TS0207", "FNB54-WTS08ML1.0"],
    "model":"TS0207_water_leak_detector_1",
    "vendor":"TuYa",
    "description":"Zigbee water flood sensor + 1m probe cable",
    "fromZigbee":[
        {
            "cluster":"ssIasZone",
            "type":"commandStatusChangeNotification"
        },{
            "cluster":"genPowerCfg",
            "type":["attributeReport","readResponse"]
        },{
            "cluster":"genBasic",
            "type":["attributeReport","readResponse"]
        }
    ],
    "whiteLabel":[
        {
            "vendor":"CR Smart Home",
            "model":"TS0207"
        },{
            "vendor":"Meian",
            "model":"SW02",
            "description":"Water leak sensor",
            "fingerprint":[
                {
                    "manufacturerName":"_TZ3000_kyb656no"
                }]
        },{
            "vendor":"Aubess",
            "model":"IH-K665",
            "description":"Water leak sensor",
            "fingerprint":[
                {
                    "manufacturerName":"_TZ3000_k4ej3ww2"
                },{
                    "manufacturerName":"_TZ3000_kstbkt6a"
                }
            ]
        },{
            "vendor":"TuYa",
            "model":"TS0207_water_leak_detector_1",
            "description":"Zigbee water flood sensor + 1m probe cable",
            "fingerprint":[
                {
                    "manufacturerName":"_TZ3000_ocjlo4ea"
                }]
        },{
            "vendor":"TuYa",
            "model":"TS0207_water_leak_detector_2",
            "description":"Zigbee water leak sensor",
            "fingerprint":[
                {
                    "manufacturerName":"_TZ3000_upgcbody"
                }]
        },{
            "vendor":"TuYa",
            "model":"TS0207_water_leak_detector_3",
            "description":"Zigbee water leak sensor",
            "fingerprint":[
                {
                    "manufacturerName":"_TYZB01_sqmd19i1"
                }]
        },{
            "vendor":"TuYa",
            "model":"899WZ",
            "description":"Water leak detector with 80DB Alarm",
            "fingerprint":[
                {
                    "manufacturerName":"_TZ3000_mugyhz0q"
                }]
        },{
            "vendor":"Niceboy",
            "model":"ORBIS Water Sensor",
            "description":"Water leak sensor",
            "fingerprint":[
                {
                    "manufacturerName":"_TZ3000_awvmkayh"
                }]
        }
    ],
    "toZigbee":[
        {
            "key":["scene_store"]
        },{
            "key":["scene_recall"]
        },{
            "key":["scene_add"]
        },{
            "key":["scene_remove"]
        },{
            "key":["scene_remove_all"]
        },{
            "key":["scene_rename"]
        },{
            "key":["read"]
        },{
            "key":["write"]
        },{
            "key":["command"]
        },{
            "key":["reset"]
        }],
    "options":[]
},
"_definitionModelID":"TS0207"}
Koenkk commented 8 months ago

Is this really published to zigbee2mqtt/bridge/devices? Can you provide the debug log when this is published?

See this on how to enable debug logging.