zigpy / zigpy-deconz

A library which communicates with Deconz radios for zigpy
GNU General Public License v3.0
87 stars 20 forks source link

Setting Manufacturer ID #187

Open pipiche38 opened 2 years ago

pipiche38 commented 2 years ago

I understood that deConz has a particular mecanism to set the Manufactuer ID to address the Aqara/Lumi needs. Is there a specific API in zigpy to do that ?

puddly commented 2 years ago

According to the firmware changelog, it may be automatic: https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Firmware-Changelog

If not, there seems to be a way to allow Node Descriptor requests to be passed through to the application, allowing it to be set in there:

image
pipiche38 commented 2 years ago

My understanding is that is a set of Attribute to be set like extendedPanId and other network parameters. So I beleiuve we need a deconz api to set this attribute, no ?

puddly commented 2 years ago

I do not have any of the new Aqara devices to test.

If this is done automatically in the firmware like Z-Stack and I believe you mentioned ZiGate, no code changes are needed. If the firmware doesn't handle it, zigpy-deconz will need to be updated.

pipiche38 commented 2 years ago

I can for sure test it as I have one Aqara door device. My understanding is that we have to do it for deconz as by default it is 0x0000.

The best would be to have a simple api to set the manufactuer Id, so we can call it on the fly when receiving a device annoucement of an Aqara devices. And then or reset back to 0x0000 when not

Hedda commented 2 years ago

@manup Is it maybe best to post questions like these to https://github.com/dresden-elektronik/deconz-serial-protocol/issues or?

For reference also see

https://github.com/dresden-elektronik/deconz-ota-plugin

https://phoscon.de/en/support#ota-update-osram-devices

https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/OTA-Image-Types---Firmware-versions

pipiche38 commented 2 years ago

What is the zigpy API in order to set and get the information ?

Adminiuga commented 2 years ago

I didn't have the need to set manufacturer Id for ConBee. Aqara stayed connected just fine. But you do need the new firmware

pipiche38 commented 2 years ago

I didn't have the need to set manufacturer Id for ConBee. Aqara stayed connected just fine. But you do need the new firmware

It just depends on the Aqara model. if you have the old one, no issue at all. Here the issue is even if it get connectedf, it doesn't work (doesn't provide the correct reports).

A patch as been done for CCxxx firmware to reply with the right manufacturer Id , while on deconz a more open soltuion as been provided on the firmware and delegate the answer to the above layer.

My question is then is there any API yet to set the manufacturer Id

Adminiuga commented 2 years ago

Yeah, that was tested with the new Aqara. There's no API for that, because it is very radio specific.

pipiche38 commented 2 years ago

Why should we not have an API. if it is radio specific, at least this must be part of zigpy-deconz API, otherwise I don't see how to set/update it

puddly commented 2 years ago

Why should we not have an API

Because zigpy doesn't currently have a need for one and thus nobody has written one for all the radios yet.

I believe bellows is the only other radio library that supports setting the manufacturer ID. The deCONZ firmware requires you to reply to node descriptor requests.

Feel free to submit a PR.