Coordinator endpoint

Hello, I developed for my customer, a ZigBee coordinator in last 2019, using nRF5 SDK for Thread and Zigbee v3.2.0.
I has installed many sistems on field, equipped witn several battery powered sensors (door, motion, occupancy ...) and mains powered actuators (bulbs and smart plug).
I have only one endpoint # 64 configured on my coordinator, and now I need to add a second endpoint to receive the info from some end-node that sends to fixed endpoint #255
How can I add it?
Thanks for help

Abele

Parents
  • abe said:
    and on _agent_ep_handler_255 I can process all data received on endpoint 255, that's right?

    Yes, if my understanding is correct then, if the correct clusters are configured, you should receive it on that endpoint handler.

    abe said:
    ZB_AF_SET_ENDPOINT_HANDLER (ZIGBEE_ADRI_ENDPOINT_255, _agent_ep_handler_255);

    Are you using 255 as the actual endpoint number here? Maybe that is the issue. You have to use between 1 and 240.

    Regards,

    Elfving

  • I apologize for the long delay ... I was busy with other works ..
    To sumarize ... I have a Sonoff Zigbee 3.0 end node that sends IAS Alarm info to coordinator using endpoint #255 It even sends all other infos (battery level and voltage, ...) to coordinator endpoint #64 (as configured by my code)
    Here below the declaration to configure the two endpoints:

    I also tried to add this to declare macro

    But I have error!

    How can I add this endpoint to my coordinator?
    I need to make it able to receive from Sonoff end node!

    Many thanks for help!

    Abele

  • I just got a coworker to try this in v3.2 as well (by simply adding an enpoint handler using ZB_AF_SET_ENDPOINT_HANDLER(HA_DIMMABLE_LIGHT_ENDPOINT, light_bulb_ep_handler);). That endpoint recieved a messages addressed to both EP 10 and EP 255.

    This seems a configuration for end-node, but I'm using the Coordinator.
    On my coordinator the callback for endpoint #64 is never invoked if the end-node sends to endpoint #255


    In any case, now I try the init_multi_ep_fixers(); as you sent me, but I have some build errors:

    I am aware that this situation could be hard to solve, but please have patience to me, my customer is worried and is hoping that we could solve the issue.

    Any further suggests?

    Thanks

    Abele

  • Dear Elfving,

    to give more details ... this is the info sent to endpoint #255 by end-node to my coordinator

  • Hi Elfving

    any news for me?
    Thanks!

    Abele

  • abe said:

    In any case, now I try the init_multi_ep_fixers(); as you sent me, but I have some build errors:

    Once again I am not sure if that is necessary, try without it first. My coworker did manage to do it without that. 

    abe said:
    This seems a configuration for end-node, but I'm using the Coordinator.

    Ah, right. I should've tried that immediately.

    abe said:

    On my coordinator the callback for endpoint #64 is never invoked if the end-node sends to endpoint #255

    Maybe you need the right cluster implemented there. Though are you seeing the same issue when trying it on another end node?

    Regards,

    Elfving

  • Hi

    it is not a cluster issue, if I use an end-node that sends info of cluster 500 to endpoint #64 of my coordinator, it works well (we have some hundred of this type end-nodes on the field)
    Now we tried with Sonoff, and it sends same info of cluster 500 but to endpoint 255 (image here below)

Reply Children
  • abe said:
    it is not a cluster issue, if I use an end-node that sends info of cluster 500 to endpoint #64 of my coordinator, it works well (we have some hundred of this type end-nodes on the field)

    I see.

    By the way, was your app based on the cli agent? Or are you just basing your endpoint handler on the cli_agent_ep_handler?

    Regards,

    Elfving

  • Yes, I started from CLI Agent (the only coordinator example available on the SDK 3.2), and my endpoint handler is  based on cli_agent_ep_handler

    Abele

  • I am sorry to hear that. 

    Just to summarize what we've found out this far: Receiving a message on EP 255 on a coordinator shouldn't be a problem. I used to think that there could be an issue receiving messages on multiple end points on SDK 3.2, but now I've gotten that tested as well so that should be fine. So the message should be received using EP 255, but only for clusters and attributes implemented on the device itself.

    This is from the documentation I've linked to:

    Every endpoint implements a set of clusters. Clusters implement the device functionality, such as attributes to store the state and the commands for various operations.

    Zigbee devices are characterized by a set of clusters that have mandatory and optional attributes. Application can either use predefined device declaration (for example, IAS Zone device) or define its own set of clusters and endpoints.

    Clusters appropriate for a single device type such as a sensor or a light bulb are organized into an addressable container that is called an endpoint.

    We can also have a look at the spec

    "deliver a copy of the message to the endpoints supporting the cluster indicated in the APS"

    It seems that you would have to have the appropriate cluster on one of the endpoints in the coordinator. Find what sort of message this sensor is sending, what clusters and attributes this sensor needs and add it to the coordinator (see "declaring cluster" here). I guess it is annoying that this is multiple systems already in the field and not something in development. Could consider doing this update with a DFU? 

    abe said:

    Yes, I started from CLI Agent (the only coordinator example available on the SDK 3.2), and my endpoint handler is  based on cli_agent_ep_handler

    The light control sample also has a light coordinator sample, which I think is the recommended starting point.

    Regards,

    Elfving

Related