Zigbee Router device sometimes joins to 0x0000000000000000 network after factory reset

I am using NRF Connect SDK v2.5.2. Sometimes, after I factory reset my Zigbee router device, it will immediately join a network with PAN ID 000000000000. I get this with my project but also with the light_bulb sample. How can I prevent my device from doing this? Below you can view the logs. Just before the logs, the button was held to factory reset the device. The device had not joined a network before resetting. 

Many thanks,

Pieter-Jan

I: Network left (leave type: 0)
I: Joined network successfully (Extended PAN ID: 0000000000000000, PAN ID: 0xffff)
I: Network rejoin procedure stopped.

Parents Reply Children
  • Hi Andreas,

    Regarding the OTA, it is not different between SDK versions only between projects. The example light switch receives an update much faster than my project. You can see that the packages are send out more quickly on the coordinator for light switch project. Could this have something to do with the amount of RAM memory that is left?

    For the reporting, do you have an example on how I can configure this? I have posted some code before on how I have tried enabling reporting but that does not work on any 2.6.x+ SDK version. 
    Currently, the behavior on SDK version 2.5.3 is as follows: from the moment I bind to the clusters of my NRF device, the device starts reporting with the configured intervals. 

    This is the code I am using to configure reporting on 2.5.3:

    zb_zcl_reporting_info_t rep_info = {0};
    
        rep_info.direction                    = ZB_ZCL_CONFIGURE_REPORTING_SEND_REPORT;
        rep_info.ep                           = endpoint;
        rep_info.cluster_id                   = ZB_ZCL_CLUSTER_ID_WILMS_VENT_MONITORING;
        rep_info.cluster_role                 = ZB_ZCL_CLUSTER_SERVER_ROLE;
        rep_info.dst.profile_id               = ZB_AF_HA_PROFILE_ID;
        rep_info.u.send_info.def_min_interval = DEFAULT_MIN_REPORTING;
        rep_info.u.send_info.def_max_interval = DEFAULT_MAX_REPORTING;
        rep_info.dst.short_addr               = REPORTING_SHORT_ADDR;
        rep_info.dst.endpoint                 = REPORTING_ENDPOINT;
    
        for (int i = 0; i <= ZB_ZCL_ATTR_WILMS_VENT_MONITORING_NETA_ID; i++) {
            rep_info.attr_id = i;
    
            switch (i) {
            case ZB_ZCL_ATTR_WILMS_VENT_MONITORING_TA_ID:
            case ZB_ZCL_ATTR_WILMS_VENT_MONITORING_TB_ID:
            case ZB_ZCL_ATTR_WILMS_VENT_MONITORING_TC1_ID:
            case ZB_ZCL_ATTR_WILMS_VENT_MONITORING_TC2_ID:
            case ZB_ZCL_ATTR_WILMS_VENT_MONITORING_TD_ID:
                rep_info.u.send_info.delta.s16 = 50;
                break;
            default:
                rep_info.u.send_info.delta.u16 = 10;
                break;
            }
            zb_zcl_put_reporting_info(&rep_info, ZB_TRUE);
        }


    Thanks, 

    Best Regards,
    PIeter-Jan

  • Hi Pieter-Jan,

    Unfortunately we don't have any examples that shows this out of the box within NCS, but here's a few pointers from a colleague of mine's unofficial samples

    Set up reporting in code

    Set up reporting over shell, you can follow this sample: 

    Kind regards,
    Andreas

  • Hi Andreas,

    Reporting is enabled by default with off-the-shelve sensors like temperature/humidity sensors. You don't need to configure reporting using the coordinator, the only necessary thing is doing the correct bindings for the relevant clusters. I want to replicate this same behaviour. This worked on SDK version <= 2.5.3 but I am just not able to get this working on later versions. I have tried the examples you have provided but sadly without any luck. 
    One thing I have to mention though is that I am using custom clusters. Can I perhaps send my project in a private message or in a new private ticket to see if you can get any luck with it? 

    Thanks,

    Best Regards,

    Pieter-Jan Buntinx

  • Hi Pieter-Jan,

    Apologies for the delay, I was out of office on a business trip last week.

    I can either convert this case to private instead if you wish to upload the project here or you can create a new private ticket if you wish to do that instead.

    Let me know which of these you prefer and we'll pick up from there!

    Kind regards,
    Andreas

  • I will create a new private ticket with my project attached. The information concerning the 0x0000 network join could be useful to others I think

Related