- Silicon Labs Community
- Welcome and Announcements
- Silicon Labs Knowledge Base
- 8-bit MCU
- 32-bit MCU
- Bluetooth / Wi-Fi
- Other Products Category
- Optical/RH/Temp Sensor
- Other Products
- Hardware and Software Tools
- Simplicity Studio and Software
- General Discussions and Suggestions
- Chinese Forum
- Software Libraries
- Development Kits
- Reference Designs
- Third Party Tools
- White Papers
- Official Blog of Silicon Labs
- Chinese Blog
10-12-2017 03:40 AM
It is typical scenario:
Host App->(serial port)->ZigBee dongle with NCP as coordinator->(ZigBee mesh network)->20 ZigBee lights.
Most ZigBee lights are in close proximity and hence are the neighbors of the coordinator.
The requirement is to turn all lights on or off, it is possible that the user send the commands very quickly.
Method 1: The coordinator send unitcasts to 20 ZigBee lights in order, but the user experience is not the best becasuse it may take longer time for the last light being controlled.
So I'm considering to use the below method.
Method 2: Since the broadcast (multicast is a kind of broadcast) should be used sparingly, and most lights are in close proximity (as the neighbors of the coordinator), I want to use multicast with radius 1 and nonmember radius 0 (See ezspSendMulticast() method), then send unicasts to all lights again (maybe more effciently, I may only send unicasts to those lights which are not neighbors of the coordinator by checking the neighbor table of the coordinator). It works well. When the light receives the packet, it doesn't re-tranismit it again since the radius is decreased to zero.
So my questions are:
1) Is the Method 2 the best practice for my scenario? If not, what is suggested?
2) In Method 2, since the light will broadcast the packet again, as per nwkMaxBroadcastRetries policy, the coordinator will retry to send another two same packets. Is there any way to optimize it?
10-13-2017 04:48 AM
Zigbee supports ZCL group command which you can add a device to a specific group and use groupcast to send message to specific group.