KB-15 Details for network bindings and heartbeats


When sharing data information between 2 devices across the network, this is called binding. This write up is to explain a binding and what to look for. Bindings can be of three different types:

Single: A single device to another single device.

Fan In: Multiple devices to a single device

Fan Out: Single device to multiple devices.

When making a binding the all network variables involved need to be the same type(same SNVT, you can't bind an occupancy command to a space temperature), also the 2 devices need to agree on the binding contract or data transfer timing. The contract is just having both device synced so the sending device doesn't send data too late or the receiving device doesn't react to a lack of updates too soon. The data flows from the sending device, so we will start with him (from an nvo to an nvi).

Sending Device: This device will send data to the receiver based on time and change of value. The send will have a minimum and maximum send times and possibly a send delta value. 

    Minimum/Throttle Send Time: The minimum time is the amount of delay the sending device will wait before sending that same data again. This is used to throttle down the data traffic if the network has a lot of bindings. The usual default is 10.0 seconds.

    Maximum Send Time: This timer is used to insure that data has been send at least every x amount of time so the receiving device knows that the sender device is still alive and well. This is also known as the heartbeat time. Usually this is 0.0 seconds(off) unless a binding is being used.

    Send Delta: After a device has sent a value and the time from the last send is between the minimum and maximum values, the network variable will be monitored and if the value is changed more then the send delta value then a send command will be sent and the whole process starts over.

Receiving Device: This device will just wait for the sender to update. The amount of time is set in the max receive value and what happens when it does not receive a value is set in the default value area.

    Maximum Receive Time: This timer is started right after a receive of data and if no data is received again then the variable will use it's default value. Usually this time value is 0.0 seconds(off) unless it's being used in a binding.

The main objective is to have the send ensure a data transmission prior to the receiver timing out and going to it's default value. The main 2 values to check are the max send time and max receive time. A good rule of thumb is to determine the amount of time the receiver should wait set that max receive time, then set the max send time to 1/2 to 1/3 of that. If you are binding the occupancy of 2 devices and you want the receiver to go occupied on a failure of 30 minutes:

The receiving device max receive time will be 1800 seconds, with a default value of OC_OCCUPIED. The sending device would have a max send time of 600 seconds, a throttle value of 10 seconds(depending on the network specifics) and since the value is enumerated it would send on any change delta.

 The locations, options, and defaults of these variables and there time delay can be found in the variable definitions guide's here. If you are not using a standard network management tool you can still change the values within our plugin or launcher tool. If a variable is a commonly bound type it will have a heartbeat button  next to the value and you can change any applicable values on the pop-up window. 


Also, the browser window on the launcher can access all of the network properties by searching for the property in the Properties tab of a network variable

or device / lonmark object.

If you are using our tool to bind the variables together, you will notice it talks about hubs and targets. If you are doing a single type of binding, the hub and target does not matter, however if you are doing a fan in or fan out the hub can be the network input or output depending on the direction. You will want to make the single variable(receiving on a fan in, or sending on a fan out) the hub and the many the targets. This will help the network make more efficient data transmissions and reduce total network utilization. Other words, the "one" side in the one-to-many connection is the HUB.


Add Feedback