Target Relationships let you add extra, optional targets to switches and sensors based on whether an input or system variable is active. Since you can't always set up switches to control everything by default, Target Relationships solve this by adding targets only when needed
Basic Setup: You create a rule with three parts:
- An incoming target (ie, if anything asking for its targets has group 1)
- A condition (absolute input or system variable is set to 0)
- A target to add (ie add group 2)
The rule says: "When this specific incoming target is activated AND this condition is true, then add this extra target." Any switch, absolute input or sensor that has group 1 will automatically acquire group 2 when asking for its targets to carry out an action.
Chain Reactions: When a target gets added through a relationship, the system treats that newly added target as a potential "incoming target" and checks if it has its own relationships to follow. In the basic setup, if group 2 was added, we would have checked if there were any rules for incoming target group 2. This would occur until there were no further targets to add.
Real-World Example:
- Relationship 1: "When Room A target is acquired by a switch AND A-B divider is open, add Room B lights"
- Relationship 2: "When Room B target is acquired AND B-C divider is open, add Room C lights"
So when you press the Room A switch:
- It controls Room A lights (always)
- If A-B divider is open, it adds Room B lights
- Since Room B lights are now active, the system checks: does Room B have relationships? If B-C divider is open, it adds Room C lights too
When a switch, sensor or absolute input obtains its targets for sending a command, the controller checks target relationships for inclusion of additional targets (if a system variable or absolute input is set accordingly). It matches any target (source) it has been given by default (or previously added by another relationship) with an optional target (destination) to add if the absolute input / system variable meets the condition,
Condition logic is evaluated with the following logic:
If the absolute input or system variable value is
0 - forward the trigger to the destination target
1 - ignore the relationship
It is important to note that each controller must have its own local target relationships for switches / sensors / absolute inputs on its dali network. Target relationships only add targets to peripherals on the dali network of the controller they exist on.
Each peripheral must have at least 1 target in order to evaluate the target relationships. This will be the target that you want the peripheral to control, regardless of the state of the absolute input. If you require the switch to potentially be disabled when a divider is changed, you would achieve this through the override system.
If a target is added to the pool of targets through a relationship, it is then also checked in the relationships map itself.
For example, a switch has group 0 for a target and we go into the relationships and find a relationship for group 0 (source) adding group 1 (destination) because the absolute input in the condition logic field is in the right state. Upon completing the check for any group 0 linked targets, the controller will then evaluate relationships to see if the newly added target/s (ie group 1 as a source) causes further targets to be added. This allows for extremely complex scenarios where you might have multiple room dividers.
Targets added via target relationships can be remote targets. All relationships look for the match of target and target controller. If you are carrying out a complex, cross controller relationship where your absolute inputs producing the state of the room dividers are on different controllers, the use of system variables would be advised.
The Relationship view can be found under the Assignment & logic tab in grid view. A firmware version of 1.0.4 or above is required in order for relationship data to be written to the control system. For more information on upgrading the firmware version of a control system please consult our FAQ.
Example
A room is divided into two sections with a divider. Each room has a single switch controlling its side of the room. The lights in section 1 are grouped in group 1. The lights in section 2 are group 2. When a user presses the switch in section 1, only group 1 is controlled (and vice versa on the other side). If the divider is open, we wish for switch 1 to receive both group 1 and 2 (the optional added target) as targets. Similarly, we wish for switch 2 to receive group 2 and 1 (the optional added target) as targets in this case.
We give Switch 1 the target of group 1 and Switch 2 the target of group 2 and create relationships for anything with group 1 as a target to add group 2 IF the condition is met and vice versa.
It is important to note that we need two relationships because relationships are one way - that is, the source causes the destination to be added. If a target has already been checked for relationships, it will not be checked again, therefore, it is not possible to add infinite loops of targets.
When a user presses switch 1, group 1 will be given to the switch and the target relationship map will look to see if there are any relationships that link group 1 (as source). Switch 1 will receive group 2 as a target if the condition is met. The system will then look for rules to connect Group 2 to another target. There is a rule to connect group 1 but we have already evaluated group 1 and the process will be complete.
When the user presses switch 2, group 2 will be given to the switch and we find a relationship to add group 1 if the condition is met.
Comments
0 comments
Article is closed for comments.