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

mesh health model

How is the health model supposed to work? I'm currently doing some tests with the light switch example and I don't really understand the different roles of the nodes in the health model. Does the health client send a request to get an update? Or do the servers publish their status periodically? Also, I found that if I restart one of the servers, it's health model stops sending updates, how can I make this work again (without erasing the flash every time ;) )

  • If I were you, I would take a look at the mesh networking specifications (specifically Sections 4.4.3 & 4.4.4 in the Mesh Profile documentation).

  • Have you taken a look at the Nordic infocenter for the Mesh SDK examples? The Light Switch example is explained quite well there. The client has the role of the provisioner, which basically means that the client is the mesh network owner. The servers have the role of the provisionee (i.e. the device that will be added to the mesh network). Regarding your second & third questions: the server can both publish and subscribe to health statuses (see page 221 in the Mesh Profile documentation v1.0). Looking at Table 4.125, you can see that the server is able to transmit it's current health status. It is also able to receive health messages from clients. Looking at Table 4.126, you can see that the client is able to receive the current health status of the server. It is also able to transmit it's current health to the server.

    In the infocenter link above, it says that "If any of the devices are powered off and back on, they will remember their configuration in flash and rejoin the network. More information about the flash manager can be found in the flash manager documentation.". So the server that has been restarted should ideally continue sending updates about it's health.

  • I have been doing some testing with the mesh network and have also noted that the health status is not updated. On reading your post I agree it happens after a power cycle on the server. Did you find any additional on this as the health messages would be very useful to have in my long rang testing.

  • Hi Jeff and Kassiason,

    Healthmodel publication is configured when we do provisioning (when configuration), look for PROV_STATE_CONFIG_PUBLICATION_HEALTH case in do_config_step() in provisioner.c

    The config server on the server will handle the configuration on access layer and then store it. But for some reason it's not restored properly when we reset and read from flash. Resulting in health server doesn't send publication after the reset. I have reported this internally to R&D.

Related