This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

change time on how often health server send out

Hi
is there anyone who knows if you can change the time on how often the health server model send out, the health server model is from lightswitch demo

  • hello,

    Within the context of the lightswitch demo, then you'll need to look at the following line in provisioner.c (note that it's under the: case PROV_STATE_CONFIG_PUBLICATION_HEALTH statement)

    pubstate.publish_period.step_res = ACCESS_PUBLISH_RESOLUTION_10S;
    

    In the wider context and to achieve more dynamic control over the health publication period, then you'll need to look at the health_client_period_set(...), health model API.

    Regards,

  • Hi,

    The frequency of Health Current Status messages is configured through the Publication Publish Period, part of the Model Publication state. In other words, it is part of configuring the Health Server.

    For the light_switch example in nRF5 SDK for Mesh v1.0.1 the configuration is done by the provisioner, which in that example is also the client. You will find a call to config_client_model_publication_set() under case PROV_STATE_CONFIG_PUBLICATION_HEALTH in do_config_step() in provisioner.c. Among the parameters you find pubstate.publish_period.step_num and pubstate.publish_period.step_res, which together set the Publish Period, in that example to 1 * 10s = 10 seconds. See access_publish_resolution_t for the possible resolution settings (step_res). The range for number of steps (step_num) is 0x01 through 0x3F, in addition to the special value 0x00 which disables publishing.

    Further, you can decrease the period (increase the frequency) through the Health Period state of the Health Server, for when there are faults to report (see health_client_period_set()). Then the Publish Period configured through the Configuration Model is used as long as there are no Health Faults, but if there are faults to be reported then the shorter period is used. In the event of fault reports, the period is the Publish Period divided by 2^fast_period_divisor, where the value range for fast_period_divisor is 0 through 15.

    Regards,
    Terje

Related