Problem:

When FIN is rebooted, all priority levels that aren't 1, 8, or def get nulled out.

Similarly, when Niagara is rebooted, all Niagara priority levels that aren't 1, 8, or Fallback get nulled out if there isn't any other control logic or function in Niagara linked to them to rewrite the value. This is because only slots In1, In8, and Fallback are persistent properties. All other slots in the priority array are set as transient properties.

By default, FIN will write to priority 16 in Niagara, so when/if the FIN server is rebooted, it might send out a null to In16.

If there is control logic in Niagara that is linked into In16 as well, whoever gets the last write to the input wins.


EXAMPLE:

In the example below, we show basically what is happening in the background. 

The Niagara control logic is writing to In16...and FIN is also writing to In16.

Basically, whoever writes last wins. 

Solution:

To resolve this, there are a number of steps that can be taken to ensure that something is in control of your points, and nothing goes to a null or off state on accident.

  1. You should only allow one system to be in control of your facility. If you are using FIN as the controlling system, you should not have anything in Niagara that is taking control of your points. If you have purposely put some control functions in Niagara that might compete with FINfor control given certain unusual circumstances, you should ensure that FIN is always writing to the priority array at a level higher than anything in Niagara.*

  2. In your Niagara points, you should ensure to set default values so that setpoints and equipment fail to a known and deliberate state or value. 

  3. In FIN, connected writable points should also be set to have default values. That will ensure that upon a FIN restart, some specific value will be written to the connected Niagara points and not a null value.


*In FIN, there is a connector feature that allows you to assign a defaultWriteLevel to the connector.  If you do that, whenever any point is added from the connector into the FIN database, it automatically gets the assigned priority set in its bacnetWriteLevel or haystackWriteLevel.