RelayOutput - PepperDash/Essentials GitHub Wiki
RelayOutput
Relays can be bridged directly to SIMPL from any device that is both inlcuded within essentials and has a relay.
Consider the following example.
{
"template": {
"roomInfo": [
{}
],
"devices": [
{
"key": "processor",
"uid": 0,
"type": "pro3",
"name": "pro3",
"group": "processor",
"supportedConfigModes": [
"compliance",
"essentials"
],
"supportedSystemTypes": [
"hudType",
"presType",
"vtcType",
"custom"
],
"supportsCompliance": true,
"properties": {}
},
{
"key": "Relay-1",
"uid": 3,
"name": "Relay 1",
"group": "api",
"type": "relayOutput",
"properties": {
"portDeviceKey" : "processor",
"portNumber" : 1
}
},
{
"key": "Relay-2",
"uid": 3,
"name": "Relay 2",
"group": "api",
"type": "relayOutput",
"properties": {
"portDeviceKey" : "processor",
"portNumber" : 2
}
},
{
"key": "deviceBridge",
"uid": 4,
"name": "BridgeToDevices",
"group": "api",
"type": "eiscapiadv",
"properties": {
"control": {
"tcpSshProperties": {
"address": "127.0.0.2",
"port": 0
},
"ipid": "03",
"method": "ipidTcp"
},
"devices": [
{
"deviceKey": "Relay-1",
"joinStart": 1
},
{
"deviceKey": "Relay-2",
"joinStart": 2
}
]
}
}
]
}
}
RelayOutput Configuration Explanation
This configuration is meant for a Pro3 device, and instantiates two relay ports and links them to an eisc bridge to another processor slot on ipid 3. Let's break down the Relay-1
device.
{
"key": "Relay-1",
"uid": 3,
"name": "Relay 1",
"group": "api",
"type": "relayOutput",
"properties": {
"portDeviceKey" : "processor",
"portNumber" : 1
}
}
Key
The Key is a unique identifier for essentials. The key allows the device to be linked to other devices also defined by key. All Keys MUST be unique, as every device is added to a globally-accessible dictionary. If you have accidentally utilized the same key twice, Essentials will notify you during startup that there is an issue with the device.
Uid
The Uid is reserved for use with an PepperDash internal config generation tool, and is not useful to Essentials in any way.
Name
The Name a friendly name assigned to the device. Many devices pass this data to the bridge for utilization in SIMPL.
Group
Utilized in certain Essentials devices. In this case, the value is unimportant.
Type
The Type is the identifier for a specific type of device in Essentials. A list of all valid types can be reported by using the consolecommand gettypes
in Essentials. In this case, the type is relayOutput
. This type is valid for any instance of a Relay Output.
Properties
These are the properties essential to the instantiation of the identified type.
Properties
There are two properties relevant to the instantiation of a relay device.
portDeviceKey
This property maps to the key
of the device upon which the relay resides.
portNumber
This property maps to the number of the relay on the device you have mapped the relay device to. Even if the device has only a single relay, portNumber
must be defined.
The JoinMap
The joinmap for a relayOutput
device is comprised of a single digital join.
namespace PepperDash.Essentials.Core.Bridges
{
public class GenericRelayControllerJoinMap : JoinMapBaseAdvanced
{
[JoinName("Relay")]
public JoinDataComplete Relay = new JoinDataComplete(new JoinData() { JoinNumber = 1, JoinSpan = 1 },
new JoinMetadata() { Label = "Device Relay State Set / Get", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
public GenericRelayControllerJoinMap(uint joinStart)
: base(joinStart, typeof(GenericRelayControllerJoinMap))
{
}
}
}
Relay
is a digital join that represents both the trigger and the feedback for the associated relay device. Its join is set to 1.