Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The document covers the expected behaviour for device rejoin. We will cover several scenarios that may prompt a rejoin.

Scenario 1: Device Goes Offline

The most common cause of this scenario is when a device loses power due to a power outage or due to low battery.

The following provides an overview of the expected rejoin behaviour in the event of this scenario occurring.

Sleepy Devices

  1. Device goes offline
  2. Device stops issuing Data Requests
  3. Coordinator after not receiving Data Requests from the device, will age the device out of it's neighbour table 
  4. Once device comes back online, it will issue a rejoin request and communications will resume.
  5. Device will broadcast a Device Announce message.

Non-Sleepy Devices

  1. Device goes offline for ~10 minutes
  2. Once device comes back online, it will issue Device Announce
  3. Coordinator will be able to issue commands as normal.


Scenario 2: Coordinator Goes Offline

The most common cause of this scenario is when a gateway loses power due to a power outage or due to interference from a customer (moving a coordinator/hub) .

The following provides an overview of the expected rejoin behaviour in the event of this scenario occurring.

Sleepy Devices

  1. Coordinator goes offline
  2. Device issue a Data Request as normal
  3. Device doesn't receive a 802.15.4 Ack to the request
  4. Device retries the Data Request 11 more times
  5. Device goes into deep sleep and stops issuing Data Requests
  6. Device should stop sending regular data requests ("heartbeat"), and start rejoin attempt. Device should keep trying to rejoin if the previous attempt failed. Back off logic may apply during this rejoin duration.
  7. Coordinator eventually comes back online
  8. ZB 3.0 - Coordinator broadcasts a Parent Announce command frame
  9. Device should successfully rejoin coordinator once back online. There may be a delay, depending on the wait between attempts set during the back-off algorithm.
  10. *At this point the device rejoin mechanism depends on the vendor implementation. Some devices will have a rejoin mechanism, with backoff algorithm, periodically attempting a rejoin, whereas other devices will not rejoin until either the device is power-cycled or has a sensor triggered.

Non-Sleepy Devices

  1. Coordinator goes offline for ~10 minutes
  2. Once Coordinator comes back online it should initiate the discovery sequence. *Devices can also have a keep-alive message scheme to detect if the coordinator is off line, and then enter rejoin mode.
  3. Coordinator will be able to issue commands as normal if device is found on the network.


Panel
borderStylesolid
titleOn This Page

Table of Contents
maxLevel1


Panel
borderStylesolid
titleIn This Space

Page Tree
rootApplication Notes
spacesSKB
searchBoxtrue


Panel
borderStylesolid
titleRelated Content

Filter by label (Content by label)
showLabelsfalse
max4
showSpacefalse
cqllabel = "network_management" and parent = "113312124"




RapidConnect Rejoin Algorithm

Drawio
baseUrlhttps://mmbnetworks.atlassian.net/wiki
diagramNameRapidConnect Rejoin Sequence
width585
zoom1
pageId112819793
lbox1
height400.5
revision4




Message Transfer During Rejoin



ZED Secured Rejoin

Drawio
baseUrlhttps://mmbnetworks.atlassian.net/wiki
diagramNameZED_Secure_Rejoin
width866.5
zoom1
pageId112819793
lbox1
height591
revision4

ZED TrustCentre Rejoin

Drawio
baseUrlhttps://mmbnetworks.atlassian.net/wiki
diagramNameZED Trust Center Rejoin
width1189.5
zoom1
pageId112819793
lbox1
height591
revision3

ZR Trust Center Rejoin

Drawio
baseUrlhttps://mmbnetworks.atlassian.net/wiki
diagramNameZR Trust Center Rejoin
width911
zoom1
pageId112819793
lbox1
height581
revision3


Style

{style}
  .wiki-content h1 { 
	font-family: 'Helvetica Neue', sans-serif; font-size: 30px; font-weight: bold; color: #7ab800#20b6e1; letter-spacing: 1px; line-height: 1; text-align: left;
   
#border-bottom: 1px solid #98bddd !important; 
 
}
.wiki-content h2 { 
	font-family: 'Helvetica Neue', sans-serif; font-size: 20px; font-weight: normal; color: #a1cd4c#00517f; letter-spacing: 1px; line-height: 1; text-align: left;
 
}
.wiki-content h3 { 
	font-family: 'Helvetica Neue', sans-serif; font-size: 15px; font-weight: normalbold; color: #a7a9ac#00517f; letter-spacing: 1px; line-height: 1; text-align: left;
  }
.wiki-content h4 { 
	font-family: 'Helvetica Neue', sans-serif; font-size: 15px; font-weight: normal; font-style:italic; color:#a7a9ac#00517f; letter-spacing: 1px; line-height: 1; text-align: left;
  }
#title-text{

font-family: 'Helvetica Neue', sans-serif; font-size: 40px; font-weight: 500; letter-spacing: 1px; line-height: 1; text-align: left;
}


.panel, #content .panel {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
}

.panel .panelHeader {
text-align: left;
color: #FFFFFF;
line-height: 1em;
padding: 10px 10px 5px;
margin-bottom: 0;
background-color: #7AB800#00517f;
-moz-border-radius-topleft: 5px;
-moz-border-radius-topright: 5px;
-webkit-border-top-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
border-top-right-radius: 5px;
border-top-left-radius: 5px;
color:#FFFFFF
}

{style}