dresden-elektronik / deconz-rest-plugin

deCONZ REST-API plugin to control ZigBee devices
BSD 3-Clause "New" or "Revised" License
1.89k stars 496 forks source link

Zigbee network key & channel #2036

Closed VivantSenior closed 4 years ago

VivantSenior commented 4 years ago

Hi,

is it possible to add Zigbee Network Key and change Zigbee channel to 26?

EDIT: I have found information on how to read network key value and load the previous configuration but not to edit.

Best, Viv

Smanar commented 4 years ago

Have you take a look in deconz, in the GUI ? In "network setting"

image

VivantSenior commented 4 years ago

@Smanar, thank you. BTW if I were you I would gray out the Network key value.

VivantSenior commented 4 years ago

I have set the channel to 26 in VNC but after a few hours and resets of deCONZ add-on I can see in the logs:

Current channel 25
Smanar commented 4 years ago

Lol, I m not paranoid, this screenshoot is from google, but you realy think someone can note this key, come in my country, in my city, close to my house, sniff my traffic to see my living room temperature or turn on the light when I m sleeping ? It's just zigbee.

For the channel 26, I can't make tries on my side, this channel is special, not autorised on somes countries by legislation, so perhaps It have something special. Try with another, if it change, there is something on channel 26, else your procedure to change channel is bad.

Digital-Thor commented 4 years ago

The chart at https://github.com/dresden-elektronik/deconz-rest-plugin/issues/825#issuecomment-427139292 may help you pick your Zigbee channel. When I went to change mine (in Phoscon), it warned me of proceeding, but it seems hard to understand why I would want to be at the current setting of channel 11 in North America! Aren't Zigbee coordinators supposed to pick the quietest channel? Or is that just a one-time static setting that doesn't adjust if conditions change?

HorstBoy commented 4 years ago

I've been using channel 26 to get as far away as possible from Wifi channels since early 2019. Haven't seen anything odd so far when using it nor while adding new devices. I'm using battery powered Aqara wall switches, Aqara water leak sensors, Aqara door sensors, Gledopto LED controllers, Philips Hue lamps and Ikea repeaters all on channel 26 without issues. I used to have some Osram power outlet switches, but regardless what channel I used those caused issues with Aqara wall switches losing first button press after coming back from power save mode. So Osrams worked on channel 26 too, but had other compatibility issues.

Trying to change channel over VNC using X11 app didn't work for me. To enable channel 26 I patched this check away to allow channel 26 and then used REST API with curl to do actual channel switch. Change has persisted over version upgrades so no need to re-do patch each time software is updated.

https://github.com/dresden-elektronik/deconz-rest-plugin/blob/master/rest_configuration.cpp#L1898

Dec 20 23:51:13 zigbee deCONZ[12241]: 23:51:13:233 Device firmware version 0x26320500 Dec 20 23:51:14 zigbee deCONZ[12241]: 23:51:14:369 Current channel 26

On older ticket someone speculated that channel 26 might be restricted due regulatory or compatibility reasons. Whatever reason is, currently only channels 11, 15, 20 and 25 are allowed without resorting to hacks. Further in code there's another check that allows channels from 11 to 26.

Cyrille63 commented 4 years ago

Hi,

I need to use temporarily this channel 26 to change default channel of my livolo switches

Livolo switches are by default on channel 26 I must pair the switch on channel 26 and then I change my channel to 15 The switch will pair now on channel 15

I must patch the code if I want to use channel 26 ? No other solution ?

Smanar commented 4 years ago

Have you the GUI ?

I m not sure but from my memory only the API can prevent some channel, if you change it with the GUI, the API don't change it again.

But idk if all users have it.

adresse

Cyrille63 commented 4 years ago

Yes I have the GUI I will test and give you the answer Thks

Cyrille63 commented 4 years ago

In Network Settings, I uncheck channel 15 and check channel 26 but when I save, it checks channel 15 and uncheck channel 26.

So I can not make my network on channel 26.

I need help, Cyrille

Cyrille63 commented 4 years ago

I succeded to change channel 26 and after channel 15. I can see Livolo switch in deCONZ but Home Assistant deCONZ plugin fails to find the livolo switch Help please, thanks in advanced

Smanar commented 4 years ago

You can see it in deconz, phoscon, or in REST API ?

Cyrille63 commented 4 years ago

I see it in deCONZ image

Smanar commented 4 years ago

But it's not a wired device ?

BTW, the pairing is not finished yet, you miss the second circle.

Cyrille63 commented 4 years ago

No it's not a wired device

Cyrille63 commented 4 years ago

On channel 26 I have the second circle but can not paired in phoscon ou webapp image

Cyrille63 commented 4 years ago

Webapp test image

Smanar commented 4 years ago

Ok so it's better. But you have a wireless version ?

To try to include it we need theses screenshoot > https://github.com/dresden-elektronik/deconz-rest-plugin/wiki/Request-Device-Support (you can have them using the second circle)

Cyrille63 commented 4 years ago

Sorry the livolo switch is a wifi zigbee switch. Here is the reference VL-C701Z

https://www.livoloeurope.eu/livolo-zigbee-1gang-1way-touch-light-switch-vl-c701z

Smanar commented 4 years ago

Hur, endpoint and cluster are bad (I think it's because it s see as enddevice instead of router, MacCapa attributes), realy bad device, will be hard to include.

Can you send the screenshoot ?

Cyrille63 commented 4 years ago

No cluster info image

Smanar commented 4 years ago

Ok so it's that this device have bad MAC capabilities. For cluster info.

Now, if I make some code modification, can you compile it to test ? (you need an Unix manchine) ?

Cyrille63 commented 4 years ago

Here is cluster info

I run ConBee II on Windows 10 machine, can I compile on a virtual linux machine but for Windows ?

image

Smanar commented 4 years ago

Nope :(, perhaps if you run deconz on a UNIX virtual machine.

Np I will try to find someone.

Smanar commented 4 years ago

BTW, you have re-include your device since the last time ?

Cyrille63 commented 4 years ago

Yes, I do lot of tests and I reset the Livolo switch

Smanar commented 4 years ago

Ok, because I know a little this device from zigate and zigbee2mqtt and it s realy a crappy device. I want to be sure it s stable in deconz before trying to include it.

MOE-JOE2 commented 4 years ago

I bought a Livolo Switch + Deconz adapter. Unfortunately I'm not a developer, if there's a guideline howto compile that project on linux I can do that + I am able to provide you some more debug logs if needed. Just let me know.

Smanar commented 4 years ago

Sure, you have working mode on the homepage of the github > Install deCONZ development package (optional, Linux only)

I will try some modification and give you a link for the news files to compile.

I just need to be sure the device is completely paired with deconz.

And for the moment it' the only thing you can test, because you haven't cluster to test the device working mode.

Cyrille63 commented 4 years ago

I have install a linux machine - Lubuntu 18.04.04 - deCONZ is working - I have installed hte development package, compilation is OK

I can do test

Smanar commented 4 years ago

Just tell me if you have successfully include the device in deconz (even it don't appear in phoscon) I need the device have a stable Nwk ID, and no green led on ode title.

If all is ok on your side, I can make some code modification today for test.

Cyrille63 commented 4 years ago

Yes, the device is include in deconz Yes, the network ID is stable No green LED

Sorry for the double comment

Smanar commented 4 years ago

@SwoopX, by chance, you haven't see this kind of situation on deconz ?

I m searching a way to by-pass the mac capabilities of the device or adding myself missing cluster. I need to add the cluster 0006 but in input, to try if the device can react to command trought GUI.

I m sure I have already see that on the github, but I don't find the device.

SwoopX commented 4 years ago

Maccapabilities is 0? Yes. Search for develco in rest_sensors.cpp, you can bypass it there.

EDIT: Have read the whoile post now. @Smanar what makes you think the MAC Capabilities are wrong in any way? They're fine! And since the device is not wired, it's correctly identified as end device. You're hunting rabbits here. However, I have to admit from a cluster perspective, it looks kinda fishy. Eventually, not all endpoints have been read during pairing. I experienced a similar behaviour when I started to integrate the first Develco device.

I'd recommend to try to re-pair the device but before that, reset it (should be described in the manual). Search for new switches and make sure during pairing to keep the device awake, so push the button continuously.

Smanar commented 4 years ago

@SwoopX No it's a wired one > https://www.livoloeurope.eu/livolo-zigbee-1gang-1way-touch-light-switch-vl-c701z

But he have the same mac capabilitiy and device type than a battery one.

And I don't think it's user fault, this device is crappy on zigate the device too is reconised as endpoint, and here it's from zigbee2mqtt

{"id":60,"type":"EndDevice","ieeeAddr":"0x00124b000bf0725e","nwkAddr":19896,"manufId":0,"manufName":"LIVOLO\u0000\u0010TI0001 ","powerSource":"Mains (single phase)","modelId":"TI0001 ","epList":[6],"status":"offline","joinTime":null,"endpoints":{"6":{"profId":260,"epId":6,"devId":0,"inClusterList":[0,3],"outClusterList":[6],"clusters":{"genBasic":{"dir":{"value":1},"attrs":{}},"genIdentify":{"dir":{"value":1},"attrs":{}},"genOnOff":{"dir":{"value":2},"attrs":{}}}}},"_id":"Kz5WoE1MBGXoZwWc"}

No cluster 6 as input.

Just to be sure @Cyrille63 can you set deconz in permit join again (without deleting the device) et ask for attribute in the basic cluster 0000 (on the bottom)

In fact ATM on your screenshoot you have only 2 cluster in blue, I need one more the 0006.

BTW I will take a look on the develco device

SwoopX commented 4 years ago

No it's not a wired device

Took the reply from @Cyrille63 as granted. Ok, based on the link, it's wired. Regardless, trying to pair via Phoscon and pushing the button may bring up whatever's missing. Or reading the simple descriptors alternatively.

Cyrille63 commented 4 years ago

Yes it's a wired switch. No battery. I thought the question was about the network connection

Cyrille63 commented 4 years ago

I try to pair like SwoopX said by Phoscon but it does not work

Cluster info 0006 does not want to be blue

0000 image

0003 image

0006 image

Smanar commented 4 years ago

You have missed ^^, you have pressed the "read" button ? All fields are empty.

Nevermind, I will see if I can force the state/on in the sensor and make try as it.

Smanar commented 4 years ago

Ok so Fail, not possible use state/on for sensor. We need to add in light section.

Now How to force a sensor to be in light device ....

Cyrille63 commented 4 years ago

You have missed ^^, you have pressed the "read" button ?

There were no read button

Smanar commented 4 years ago

Here read

Ok, so first try, nothing special, I have just add the device in whitelist To compile it, make like on the homepage but in step 1, use

git clone https://github.com/Smanar/deconz-rest-plugin.git

Close deconz, replace file, restart deconz, and re-include the device. I think you have nothing to delete.

BTW, I think the device will be invisible in phoscon, so you need to check the API to see if the sensor appear. I can't say if it will be in sensor or light, so check both

http://IP:PORT/api/KEY/sensors
http://IP:PORT/api/KEY/lights

Edit: I have just made a modification to try to put the device in light section,.

Cyrille63 commented 4 years ago

Now I can see the name and the brand But not seen in Phoscon and not seen in the web API

image

No read button image

Smanar commented 4 years ago

You have do that with the modified version from my fork ?

For the white list I m using Mac adress 0x00124bXXXXXXX Model id : TI0001 Manufacture code 0x0000

And I don't think theses values have changed ?

Cyrille63 commented 4 years ago

Yes with your fork As you can see, there is now brand and model ID in the cluster info 0000. I suppose it's because of your modifications.

Smanar commented 4 years ago

Nope you already had them https://github.com/dresden-elektronik/deconz-rest-plugin/issues/2036#issuecomment-602201388

Can you make a try, with keeping the device paired, set again Phoscon in permit join, on cluster 0000 Basic, read again the attributes, and recheck for new deive in API.

If it still not working, can you make the inclusion like usually but with deconz log enabled ? > https://github.com/dresden-elektronik/deconz-rest-plugin/issues/55

Cyrille63 commented 4 years ago

Sorry for my poor english, I wanted to say it was the first time I saw the model/brand of my switch in deCONZ (to prove I use you development) image

First test -> nothing better, no new device

Second test -> Log-2.pdf

Smanar commented 4 years ago

Ha ? Oups sorry, so it's a good news It mean the API reconize the device. But I have put a link to explain wich one command line to use deCONZ --dbg-info=2 --dbg-zdp=1 --dbg-zcl=1 --db-aps=1 --dbg-http=1

But take care the log can be huge, so better to send output to console, and make a copy/paste, I just need the log that start when you have include the device up to 1/2 mn after.

To don't have to include the device each time, there is this magic trick (phoson in permit join + read basic attribute), but on your log you need to see something like that

07:55:52:004 device announce 0x0004740000A132F6 (0x6DC7) mac capabilities 0x8E

BTW, on your log I can see sensor JSON but not light JSON, nothing in light too ?

Cyrille63 commented 4 years ago

Here is a new log -> Log.txt

I ran : deCONZ --dbg-info=2 --dbg-zdp=1 --dbg-zcl=1 --db-aps=1 --dbg-http=1 > Log.txt

Nothing in sensor, nothing in switch, nothing in light

Smanar commented 4 years ago

Hello, Have you set Phoscon in permit join (and not deconz)? I don't see the permit join in the logs

18:38:20:516 send permit join, duration: 59

It seem the inclusion procedure haven't started at all ? I see

ZDP device announce

From deconz, but nothing after from the API.