I asked some developers who work on the developments of ZigBee application about this question. They told me that one radio module ( for me, this refers to one node, same thing ) can only have one profile when it forms the network.
However, when I read the ZigBee book written by "Drew Gislason", he mentions that "Endpoints allow for different application profiles to exist within each node"
I am confused by these two conflicting answers. So in the case, I can create two applications, one is using HA profile and the other is using ZSE profile on the one node at the same time. Is this correct?
Does ZigBee stack allow developers to do this? Is there any prerequisite I should notice before doing this?
However, when I read the ZigBee book written by "Drew Gislason", he mentions that "Endpoints allow for different application profiles to exist within each node"
This is correct. The application Endpoint specifies the profile ID and as multiple endpoints can exist on one node you can have a mix of application profiles on your device. However there are a number of other considerations:
The application endpoint will only receive an AFDataRequest if it has a matching profile ID. What is not possible is to send an AFDataRequest between nodes that have different profile ID's.
HA and SE have the same network layer security (i.e. a trust centre issues the random network key encrypted with the trust centre link key defined in the spec", so a HA device can get on the SE network and send data. However SE adds application layer security, so even if a HA endpoint could send a ZCL message to an SE endpoint it would not know the APS security key.
One other thing to point out, that is not written in the spec, is that some stack vendors may kick of nodes from an SE network if they have non-SE application endpoints. I implemented exactly what you wanted using the Texas Instruments Stack and it worked well when Coord and other nodes where implemented with this stack. However when this was mixed with Coords from other stack vendors it failed due to the SE Coord sending a leave req because the node had a non-SE endpoint. This was ~2yrs ago and the Spec and stack implementations have changed a lot since then, so you may not see the issue, but well worth testing against the intended Coords before investing too much effort.
The node you implement the HA endpoint on will likely need an SE endpoint to pass through the CBKE(certificate-based key establishment), or the Coord may send a leave request to the joining node once it realizes it has not passed through the SE security.
Finally, such a device may not be allowed (i.e. given a certificate) on an SE network owned by a utility provider, as the utilities may not want such a device on the network as it may be deemed to pose a security risk.
Regards, TC.