This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CC2538: How to trigger a ZLL device reset using ZNP 3.0

Part Number: CC2538
Other Parts Discussed in Thread: Z-STACK,

Hello,

now since the Z-Stack 3.0 is released im wondering if its now possible to trigger a ZLL device to reset to FN using the ZNP firmware. What commands my host processor would have to send to achieve this?

Regards,

Thomas

  • You can use SYS_RESET_REQ command to reset your ZNP.
  • If it wasn't clear, sorry! I don't want to reset my ZNP, I want to reset a distant ZLL device to FN.
  • Hi Thomas,

    You need to use a sample app with the Touchlink initiator enabled and then with the devices physically close trigger a bdb_touchlinkSendFNReset() command. You can put that command on a button in the sample app.

    I Hope this helps.

    Regards, 

  • Hello, 

    thanks for the tip. But I'm trying to achieve this with a ZNP based Gateway. The ideal solution would require the lamp to be in close proximity to the gateway where I could trigger the reset somehow. Im sorry that I forgot to mention the gateway situation. The CC2538 is attached to a linux computer which serves as the host and sends its commands over USB-serial to the CC2538 but I can't seem to find a way to trigger such a behavior with any of the commands specified in the "Z-Stack Monitor and Test API.pdf" which comes with the stack.

  • Hi Thomas,

    Currently the Touchlink functionality is not available for the ZNP application but you can add to add the bdb_touchlinkSendFNReset() command to the MT interface in the SampleSwitch as an initiator for example in order to enable the factory reset triggered by the host.

    Regards,

    Jose Maria
  • Hello,

    unfortunately im not very familiar with what it takes to achieve this. What I would try to do is something along the lines of this:

    Add a new define for this like MT_APP_TL_RESET the file MT.h and then go over in the MT_APP.c and add another case in the MT_AppCommandProcessing method like this

    case MT_APP_TL_RESET:
    bdb_touchlinkSendFNReset();
    break;

    But for some reason im sure thats not all what it takes? Could you explain a little what else would be needed? Thanks!

  • Hi Thomas,

    Also the following compilation definitions are needed:

    • ZTOOL_P1
    • MT_TASK
    • MT_APP_FUNC
    • INTER_PAN
    • BDB_TL_INITIATOR

    Remember that this functionality is only defined for Routers and End Devices.

    Regards,

  • > Remember that this functionality is only defined for Routers and End Devices.

    Does this really mean my coordinator will not be able to perform this?

  • Yes, coordinator won't be able to perform this.
  • Can I implement it in some way that a coordinator can do this? Is there any reason why only a router and a end device can do this? I can't see any obvious reason why a coordinator should not be able to perform such a crucial action.
  • That is defined by Zigbee spec and Z-Stack only follows spec. I don't see how you can implement this by yourself since this is about Stack kernel which is provided by TI in library format.
  • Hi Thomas,

    The touchlink commissioning functionality is only defined for distributed security (networks without a coordinator) so is only defined for routers and end devices, there is no way to make a coordinator to work work with touchlink commissioning on the zstack and this will not be a zigbee complaint behavior bi the way.

    Regards,

  • Hi Thomas,

    The (now deprecated) ZigBee Light Link profile defined a new, distributed security network topology that would allow for coordinator-less networks, i.e. router-to-router or router-to-end device communication only. Proximity-based commissioning was defined only for this distributed security network topology. This same technology was included in the ZigBee 3.0 specification as Touchlink. In ZigBee 3.0, you have the option of creating a standard centralized security network with a Trust Center (Coordinator), or a distributed security network without a Trust Center (only routers and end devices). Similarly, proximity-based commissioning is only available in this network topology.
  • Hello,

    thanks for your answers and the clarification on this topic. I seem to understand now that the touchlink technology and the coordinator based networks are somewhat exclusive to each other.

    But im still wondering how for example Philips manages its hue network. Since I do have the bridge I believe this should be a coordinator based network, but the only way (at least known to me) to reset their bulbs is a reset via the touchlink procedure. This for now requires an additional external device (hue dimm switch in this case). It would be really a great value for our gateway if the gateway itself could perform such kind of reset. I don't really need the touchlink commissioning but rather only the reset mechanism. I thought with the unification of ZigBee 3.0 it would may be possible to achieve this. I don't know how Philips can pull the touchlink lamps into their existing coordinator based network when entering the serial number which is written on the bulb itself in the app. Does anybody know whats behind this?

    Thanks! :) 

  • Hi Thomas,

    Here is the standard Hue bulb behavior:

    1. When the Phillips Hue bulbs are turned on for the first time, they immediately look for an open home automation network to connect to. 

    2. If they could not find a home automation network to connect to, they will be available for connection by ZLL devices such as the dimmer switch.

    3. Once connected to a network, HA or ZLL, they will stay on this network until they are reset to factory new.

    4. After being reset to factory new, the network information is deleted from the bulb, and the bulb start searching for a new HA network (i.e. goes back to step 1 above).

    The standard way to reset a ZLL bulb to factory new is by using the respective proximity-based ZLL command, which can be sent by the dimmer switch, and will be processed by the Hue bulb regardless of the network it is currently on (ZLL or HA).

    Another standard way is to send the respective HA command from a device which is in the same HA network of the Hue bulb (but this can be done only when the bulb is connected to a HA network, and from within the same network).

    Apparently there is another, non-standard way to reset the bulbs to factory-new: This method is based on a manufacturer-specific command which the gateway broadcasts on all relevant channels. This command carries the serial number of the target bulb. The bulbs constantly listen to this command, and once it is received with a matching sequence number, the target bulb is reset to factory new (and go back to search for an open network, i.e. returns to step 1 above). This command is non-standard, so you may need to contact Phillips to get further details. For the same reason, standard ZigBee stacks do not provided this mechanism out of the box (though it may be possible for the users to add such support once the required details are obtained).

    Best regards,

    OD

  • Has anyone managed to find a solution for light link devices which  do not have any manufacturer specific non-standard commands from the coordinator?

    It seems like if TI allowed it bdb_touchlinkSendFNReset could be made to work with coordinators.