Difference between revisions of "Action Types AIO"

From OpenMotics
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 27: Line 27:
 
!Gateway Module FW version
 
!Gateway Module FW version
 
|-
 
|-
|align="center"|NOT IN PRODUCTION V1.0.36
+
|align="center"|NOT IN PRODUCTION V1.0.67
 
|}
 
|}
  
Line 324: Line 324:
 
!<div align="center">x</div>
 
!<div align="center">x</div>
 
!<div align="center">-</div>
 
!<div align="center">-</div>
|SENSOR: For sensor z (0-127), set the temperature offset in FRAM. This value is a signed 8bits integer (Two complement) and will be programmed in 2 locations so an integrity check can be done when the value is used. The offset value (positive or negative) will be added to the system value of the temperature in memory of the Core/Core+.
+
|SENSOR: For sensor z (0-127), set the temperature offset x.lsb in FRAM. This value is a signed 8bits integer (Two complement) and will be programmed in 2 locations so an integrity check can be done when the value is used. The offset value (positive or negative) will be added to the system value of the temperature in memory of the Core/Core+. All values x.lsb are written in [[Two's complement]]
 
|-
 
|-
 
!<div align="center">10</div>
 
!<div align="center">10</div>
Line 751: Line 751:
 
!<div align="center">y</div>
 
!<div align="center">y</div>
 
|CAN: Sensor indicate for CAN module with sensor nr x.LSB.
 
|CAN: Sensor indicate for CAN module with sensor nr x.LSB.
 +
|-
 +
!<div align="center">20</div>
 +
!<div align="center">103</div>
 +
!<div align="center">x</div>
 +
!<div align="center">y</div>
 +
|CAN: Switch Buzzer for CAN module ID x.MSB x.LSB y.MSB ON (y.LSB=1) or OFF (y.LSB=0)
 +
|-
 +
!<div align="center">20</div>
 +
!<div align="center">104</div>
 +
!<div align="center">x</div>
 +
!<div align="center">y</div>
 +
|CAN: Enable/disable Multi-color indication led on CAN module ID x.MSB x.LSB y.MSB (Enable -> y.LSB=1, Disable -> y.LSB=0)
 +
|-
 +
!<div align="center">20</div>
 +
!<div align="center">105</div>
 +
!<div align="center">x</div>
 +
!<div align="center">y</div>
 +
|CAN: Enable/disable Buzzer on CAN module ID x.MSB x.LSB y.MSB (Enable -> y.LSB=1, Disable -> y.LSB=0)
 +
|-
 +
!<div align="center">20</div>
 +
!<div align="center">106</div>
 +
!<div align="center">-</div>
 +
!<div align="center">y</div>
 +
|CAN: Enable/disable Multi-color indication led on all CAN modules (Enable -> y.LSB=1, Disable -> y.LSB=0)
 +
|-
 +
!<div align="center">20</div>
 +
!<div align="center">107</div>
 +
!<div align="center">-</div>
 +
!<div align="center">y</div>
 +
|CAN: Enable/disable Buzzer on all CAN modules (Enable -> y.LSB=1, Disable -> y.LSB=0)
 
|-
 
|-
 
!<div align="center">21</div>
 
!<div align="center">21</div>
Line 1,033: Line 1,063:
 
!<div align="center">y</div>
 
!<div align="center">y</div>
 
|FRONTPANEL LEDS: This instruction will switch Led z ON (x=1) or OFF (x=0). Blinking can be activated (y=25->25% is of the time ON, y=50 or y=75) or deactivated (y=100). For list with leds, see Note 5.  
 
|FRONTPANEL LEDS: This instruction will switch Led z ON (x=1) or OFF (x=0). Blinking can be activated (y=25->25% is of the time ON, y=50 or y=75) or deactivated (y=100). For list with leds, see Note 5.  
 +
|-
 +
!<div align="center">250</div>
 +
!<div align="center">0</div>
 +
!<div align="center">-</div>
 +
!<div align="center">-</div>
 +
|RESERVED: For internal use only, will send FW version of Slave modules to BB
 
|-
 
|-
 
!<div align="center">253</div>
 
!<div align="center">253</div>

Latest revision as of 14:27, 24 November 2020

This page provides an overview of the action type bytes used in the All In One design.

This only works for the All In One design which is not in production yet and is in full development. Please discard this page and use Action Types instead.

A Basic Action always has 4 values:

  1. the action type (1 byte): This value will define the category (for example input, output, sensor etc)
  2. the action (1 byte): This value will define the action (ON, OFF, Set dimmer, IF etc)
  3. the device Number (1 word): This value will indicate for which device (output nr, input nr etc) the action will be executed
  4. extra parameter (1 word): The extra parameter is used to set the timer value, dimmer level or the compared value (in case of an IF Instruction)

See also CLI Reference Guide AIO for the All In One CLI Reference Guide.

See also Memory Model AIO for the All In One Memory Model of the built-in eeprom.

See also Error List AIO for the error code used.

See also API Reference Guide AIO for all the UART/RS232 API commands between the DSPIC33E and the BB.

Some Notes:

  • Max 128 sensors can be connected (0-127)
  • Additional virtual sensors can be used -> "extra sensor", max 64 (0-63)
  • Maximum 400 inputs and 400 outputs can be used in the current firmware version.

Versioning

This document describes the Action Type Bytes available for the All In One design

Gateway Module FW version
NOT IN PRODUCTION V1.0.67

Action Type Bytes

Type (Byte) Action (Byte) DeviceNr (Word) Extra parameter (Word) Description
0
0
x
-
OUTPUT: Output x (0-479) OFF
0
1
x
-
OUTPUT: Output x (0-479) ON with current dimmer & Timer
0
2
x
y
OUTPUT: Output x (0-479) ON with dimmer level y (0-255) and with current Timer level
0
3
x
y
OUTPUT: Output x (0-479) ON and overrule current timer value with value y (0-65535). Each timer value unit is equal to 100ms. See Note 1.
0
4
x
y
OUTPUT: Output x (0-479) ON and overrule current timer value with value y (0-65535). Each timer value unit is equal to 1s. See Note 1.
0
5
x
y
OUTPUT: Output x (0-479) ON and overrule current timer value with value y (0-65535). Each timer value unit is equal to 1 minute. See Note 1.
0
6
x
y
OUTPUT: Output x (0-479) ON and overrule current timer value with value y (0-65535) only when light was not yet switched ON. Each timer value unit is equal to 100ms. See Note 1.
0
7
x
y
OUTPUT: Output x (0-479) ON and overrule current timer value with value y (0-65535) only when light was not yet switched ON. Each timer value unit is equal to 1s. See Note 1.
0
8
x
y
OUTPUT: Output x (0-479) ON and overrule current timer value with value y (0-65535) only when light was not yet switched ON. Each timer value unit is equal to 1 minute. See Note 1.
0
9
x
y
OUTPUT: Set dimmer level y (0-255) for Output x (0-479) but do not change the current state of the output
0
10
x
y
OUTPUT: Set timer value y (0-65535) for Output x (0-479) but do not change the current state of the output. Each timer value unit is equal to 100ms. See Note 1.
0
11
x
y
OUTPUT: Set timer value y (0-65535) for Output x (0-479) but do not change the current state of the output. Each timer value unit is equal to 1s. See Note 1.
0
12
x
y
OUTPUT: Set timer value y (0-65535) for Output x (0-479) but do not change the current state of the output. Each timer value unit is equal to 1 minute. See Note 1.
0
13
x
y
OUTPUT: Set standard timer value y (0-65535) for Output x (0-479) (no influence output state, current timer type and value will be updated) and program this in eeprom. Each timer value unit is equal to 100ms. See Note 1.
0
14
x
y
OUTPUT: Set standard timer value y (0-65535) for Output x (0-479) (no influence output state, current timer type and value will be updated) and program this in eeprom. Each timer value unit is equal to 1s. See Note 1.
0
15
x
y
OUTPUT: Set standard timer value y (0-65535) for Output x (0-479) (no influence output state, current timer type and value will be updated) and program this in eeprom. Each timer value unit is equal to 1 minute. See Note 1.
0
16
x
-
OUTPUT: Toggle output x (0-479) with standard timer value and last used dimmer value.
0
17
x
y
OUTPUT: Toggle output x (0-479) with standard timer value and dimmer value y.
0
18
x
y
OUTPUT: Toggle output x (0-479) and overrule standard timer value with value y (0-65535). Each timer value unit is equal to 100ms. See Note 1.
0
19
x
y
OUTPUT: Toggle output x (0-479) and overrule standard timer value with value y (0-65535). Each timer value unit is equal to 1s. See Note 1.
0
20
x
y
OUTPUT: Toggle output x (0-479) and overrule standard timer value with value y (0-65535). Each timer value unit is equal to 1 minute. See Note 1.
0
250
x
y
OUTPUT: Unlock output x (y=0) or Lock output x (y=1).
0
255
x
-
OUTPUT: Switch OFF all Outputs(x=0), Lights(x=1) or Lights&Outputs(x>1).
1
0
x
-
INPUT: Put Input x (0-479) in Press state
1
1
x
-
INPUT: Put Input x (0-479) in Release state
1
2
x
y
INPUT: Link Input x (0-479) with output y (0-479)
1
3
x
y
INPUT: Program in Eeprom PRESS BA for Input x (0-479) -> y.MSB=BA Type, y.LSB=BA Action
1
4
x
y
INPUT: Program in Eeprom PRESS BA for Input x (0-479) -> y=BA Device Nr
1
5
x
y
INPUT: Program in Eeprom PRESS BA for Input x (0-479) -> y=BA Extra Parameter
1
6
x
y
INPUT: Program in Eeprom RELEASE BA for Input x (0-479) -> y.MSB=BA Type, y.LSB=BA Action
1
7
x
y
INPUT: Program in Eeprom RELEASE BA for Input x (0-479) -> y=BA Device Nr
1
8
x
y
INPUT: Program in Eeprom RELEASE BA for Input x (0-479) -> y=BA Extra Parameter
1
9
x
y
INPUT: Program in Eeprom 1SEC PRESS BA for Input x (0-479) -> y.MSB=BA Type, y.LSB=BA Action
1
10
x
y
INPUT: Program in Eeprom 1SEC PRESS BA for Input x (0-479) -> y=BA Device Nr
1
11
x
y
INPUT: Program in Eeprom 1SEC PRESS BA for Input x (0-479) -> y=BA Extra Parameter
1
12
x
y
INPUT: Program in Eeprom 2SEC PRESS BA for Input x (0-479) -> y.MSB=BA Type, y.LSB=BA Action
1
13
x
y
INPUT: Program in Eeprom 2SEC PRESS BA for Input x (0-479) -> y=BA Device Nr
1
14
x
y
INPUT: Program in Eeprom 2SEC PRESS BA for Input x (0-479) -> y=BA Extra Parameter
1
15
x
y
INPUT: Program in Eeprom DOUBLE PRESS BA for Input x (0-479) -> y.MSB=BA Type, y.LSB=BA Action
1
16
x
y
INPUT: Program in Eeprom DOUBLE PRESS BA for Input x (0-479) -> y=BA Device Nr
1
17
x
y
INPUT: Program in Eeprom DOUBLE PRESS BA for Input x (0-479) -> y=BA Extra Parameter
1
250
x
y
INPUT: Unlock input x (y=0) or Lock input x (y=1).
2
z
x
y
SENSOR: For sensor z (0-127), write temperature (x.MSB), humidity (x.LSB) and brightness (y.LSB) in the appropriate processor memory locations. All values are written in System Value
3
z
x
-
SENSOR: For sensor z (0-127), write temperature (x.LSB) in the appropriate processor memory locations. All values are written in System Value
4
z
x
-
SENSOR: For sensor z (0-127), write humidity (x.LSB) in the appropriate processor memory locations. All values are written in System Value
5
z
x
y
SENSOR: For sensor z (0-127), write brightness in the appropriate processor memory locations. When y=0 -> x contains byte value of brightness byte value, when y=1 -> x contains MSB value of brightness word value, when y=2 -> x contains LSB value of brightness word value, when y=3 -> x contains word value of brightness word value.
6
z
x
-
SENSOR: For sensor extra z (0-63), write value x (16 bit value). These extra sensors can be freely used and can contain data of for example weather station or others.
7
z
x
-
SENSOR: For sensor z (0-127), set the temperature offset x.lsb in FRAM. This value is a signed 8bits integer (Two complement) and will be programmed in 2 locations so an integrity check can be done when the value is used. The offset value (positive or negative) will be added to the system value of the temperature in memory of the Core/Core+. All values x.lsb are written in Two's complement
10
0
x
-
SHUTTER: Shutter x stop.
10
1
x
-
SHUTTER: Shutter x UP.
10
2
x
-
SHUTTER: Shutter x DOWN.
10
3
x
-
SHUTTER: Shutter x UP-STOP-UP-STOP...
10
4
x
-
SHUTTER: Shutter x DOWN-STOP-DOWN-STOP...
10
5
x
-
SHUTTER: Shutter x UP-STOP-DOWN-STOP....
10
6
x
y
SHUTTER: Move Shutter x to position y (Fully open is 0, fully closed is 65535) -> Not yet operational.
10
20
x
-
SHUTTER: Shutter x Locked (when x>255, all shutters of a Shutter Group will be locked: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
21
x
-
SHUTTER: Shutter x STOP & Locked
10
22
x
-
SHUTTER: Shutter x UP & Locked
10
23
x
-
SHUTTER: Shutter x DOWN & Locked
10
24
x
-
SHUTTER: Shutter x Unlocked (when x>255, all shutters of a Shutter Group will be locked: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
100
x
y
SHUTTER: Shutter x is linked to output duo nr y (if shutter x=5 & output y=8 -> shutter 5 is linked to output duo 8 & 9), if y=255 -> shutter not used
10
101
x
y
SHUTTER: For shutter x, if y=0 -> first output of duo is UP, second is DOWN, if y=1 -> first output of duo is DOWN, second is UP
10
102
x
y
SHUTTER: For shutter x, set timer y (in 100ms, max 65535) for direction UP (time needed from 100% to 0%)
10
103
x
y
SHUTTER: For shutter x, set timer y (in 100ms, max 65535) for direction DOWN (time needed from 0% to 100%)
10
104
x
y
SHUTTER: For output duo x, set duo as OUTPUT when y=1, set duo as SHUTTER when y=0
10
105
x
y
SHUTTER: Link shutter x with shutter group y (y<16)
10
106
x
y
SHUTTER: Unlink shutter x with shutter group y (y<16)
16
255
x
y
GROUP DELAY: Search BA17 in the delay queue with group x and time stamp (hour (y.MSB) and minute (y.LSB)), if found, delete it.
17
z
x
y
GROUP DELAY: Execute Group Action x at a certain time stamp (hour (y.MSB) and minute (y.LSB)) and on days that depends on z. If z.BIT0=1 -> Execute on Monday, if z.BIT1=1 -> execute on Tuesday, if z.BIT2=2 -> execute on Wednesday etc. if z.BIT7=0 -> delete group action from the delay queue after execution, if z.BIT7=1 -> keep group action in the delay queue after execution. See Note4.
18
0
x
y
GROUP DELAY: Execute Group Action x with a delay of y seconds
18
1
x
y
GROUP DELAY: Execute Group Action x with a delay of y seconds but first check if no delay group action x already exist, otherwise overwrite this delay group action
18
128
x
-
GROUP DELAY: Delete Group Action x from the group action delay queue
19
0
x
-
GROUP ACTION: Execute Group Action x.
19
1
x
-
GROUP ACTION: Group Action x will not be executed but only printed in CLI the instructions he should execute
19
200
x
y
GROUP ACTION: For group Action x, write the start address y in eeprom and RAM (and thus write the Stop address y-1 for group x-1).
19
0
x
-
GROUP ACTION: Execute Group Action x.
19
1
x
-
GROUP ACTION: Group Action x will not be executed but only printed in CLI the instructions he should execute
19
46
-
y
GROUP ACTION FOLLOW: Write Follow Group Action y in memory that is executed when Time (minutes) is changed.
19
47
-
y
GROUP ACTION FOLLOW: Write Follow Group Action y in memory that is executed when Time (hours) is changed.
19
48
-
y
GROUP ACTION FOLLOW: Write Follow Group Action y in memory that is executed when Date (days) is changed.
19
49
-
y
GROUP ACTION FOLLOW: Write Follow Group Action y in memory that is executed when Output all off functions is used.
19
50
x
y
GROUP ACTION FOLLOW: For output x, write Follow Group Action y in memory (This Group action is executed when Output x is triggered).
19
51
x
y
GROUP ACTION FOLLOW: For sensor x (temperature), write Follow Group Action y in memory (This Group action is executed when temperature x is changed).
19
52
x
y
GROUP ACTION FOLLOW: For sensor x (humidity), write Follow Group Action y in memory (This Group action is executed when humidity x is changed).
19
53
x
y
GROUP ACTION FOLLOW: For sensor x (brightness), write Follow Group Action y in memory (This Group action is executed when brightness x is changed).
19
54
x
y
GROUP ACTION FOLLOW: For sensor x (CO2), write Follow Group Action y in memory (This Group action is executed when CO2 x is changed).
19
55
x
y
GROUP ACTION FOLLOW: For sensor x (extra sensor), write Follow Group Action y in memory (This Group action is executed when sensor extra x is changed).
19
60
-
y
GROUP ACTION FOLLOW: Write Follow Group Action y in memory activated at startup.
19
61
x
y
GROUP ACTION FOLLOW: For validation bit x, write Follow Group Action y in memory (This Group action is executed when validation bit x is changed).
19
200
x
y
GROUP ACTION: For group Action x, write the start address y in eeprom and RAM (and thus write the Stop address y-1 for group x-1).
20
0
x
y
CAN: Set led nr x at brightness value y.MSB (1-255) with led function y.LSB (y.LSB=0->Solid ON, =1->Fast Blinking, =2->Medium Blinking, =3->Slow Blinking, =4->Fading)
20
1
x
y
CAN: Special action, See Note 6.
20
2
x
-
CAN: Set the Max CAN led brightness x.MSB and Min CAN led brightness x.LSB for all CAN modules.
20
3
x
y
CAN: For CAN module with ID x.MSB x.LSB y.MSB, set the Min Brightness at y.LSB.
20
4
x
y
CAN: For CAN module with ID x.MSB x.LSB y.MSB, set the Max Brightness at y.LSB.
20
5
x
-
CAN: Reset slave CAN module that contains input x.
20
6
x
-
CAN: Reset slave CAN module that contains sensor x.
20
7
-
-
CAN: Reset all CAN slave modules.
20
8
x
y
CAN: Reset slave CAN module with ID x.MSB x.LSB y.MSB.
20
9
x
y
CAN: Program in CAN module with ID x.MSB x.LSB y.MSB the data y.lsb in byte ID_NE.
20
10
x
y
CAN: Program input0 of CAN module ID x.MSB x.LSB y.MSB with input nr y.LSB.
20
11
x
y
CAN: Program input1 of CAN module ID x.MSB x.LSB y.MSB with input nr y.LSB.
20
12
x
y
CAN: Program input2 of CAN module ID x.MSB x.LSB y.MSB with input nr y.LSB.
20
13
x
y
CAN: Program input3 of CAN module ID x.MSB x.LSB y.MSB with input nr y.LSB.
20
14
x
y
CAN: Program input4 of CAN module ID x.MSB x.LSB y.MSB with input nr y.LSB.
20
15
x
y
CAN: Program input5 of CAN module ID x.MSB x.LSB y.MSB with input nr y.LSB.
20
18
x
y
CAN: Program sensor0 of CAN module ID x.MSB x.LSB y.MSB with sensor nr y.LSB.
20
19
x
y
CAN: Program sensor1 of CAN module ID x.MSB x.LSB y.MSB with sensor nr y.LSB.
20
20
x
y
CAN: Program bus nr (y.LSB) of CAN module ID x.MSB x.LSB: Bus nr=0 -> Core/Core+ Can bus used, Bus nr=1 -> Can bus of first Can Control, Bus nr=2 -> Can bus of second Can Control etc
20
23
x
y
CAN: Set Thermostat Setpoint of thermostat x.MSB with Thermostat Mode x.LSB and temperature value y.MSB (temp value before the comma, 0 to 45) and y.LSB (temp value after the comma, 0 or 5). For example BA20 23 10 0 25 5 will set sensor 10 at mode 0 and setpoint at 25.5’C
20
24
x
y
CAN: Set Temperature Setpoint y.LSB of connected Modbus thermostat of CAN module ID x.MSB x.LSB y.MSB. Setpoint is programmed in System Value
20
25
x
y
CAN: Set Thermostat mode y.LSB of connected Modbus thermostat of CAN module ID x.MSB x.LSB y.MSB. For Thermostat Mode, see Modbus Parameters
20
26
x
y
CAN: Program Modbus address of connected Modbus thermostat of CAN module ID x.MSB x.LSB y.MSB with Modbus address y.LSB. See Modbus Parameters
20
27
x
y
CAN: Program Modbus speed of connected Modbus thermostat of CAN module ID x.MSB x.LSB y.MSB with Modbus address y.LSB. See Modbus Parameters
20
28
x
y
CAN: Program Modbus Type of connected Modbus device of CAN module ID x.MSB x.LSB y.MSB with Modbus type y.LSB. See Modbus Parameters
20
29
x
y
CAN: Program Modbus Model of connected Modbus device of CAN module ID x.MSB x.LSB y.MSB with Modbus Model y.LSB. See Modbus Parameters
20
100
x
y
CAN: Led indicate for CAN module ID x.MSB x.LSB y.MSB.
20
101
x
y
CAN: Input indicate for CAN module with input nr x.LSB.
20
102
x
y
CAN: Sensor indicate for CAN module with sensor nr x.LSB.
20
103
x
y
CAN: Switch Buzzer for CAN module ID x.MSB x.LSB y.MSB ON (y.LSB=1) or OFF (y.LSB=0)
20
104
x
y
CAN: Enable/disable Multi-color indication led on CAN module ID x.MSB x.LSB y.MSB (Enable -> y.LSB=1, Disable -> y.LSB=0)
20
105
x
y
CAN: Enable/disable Buzzer on CAN module ID x.MSB x.LSB y.MSB (Enable -> y.LSB=1, Disable -> y.LSB=0)
20
106
-
y
CAN: Enable/disable Multi-color indication led on all CAN modules (Enable -> y.LSB=1, Disable -> y.LSB=0)
20
107
-
y
CAN: Enable/disable Buzzer on all CAN modules (Enable -> y.LSB=1, Disable -> y.LSB=0)
21
0
x
-
DALI: Set DALI output with DALI address x (0-63) OFF.
21
1
x
y
DALI: Set DALI output with DALI address x (0-63) ON with dimmer value y.
21
2
x
-
DALI: Set DALI group x (0-15) OFF.
21
3
x
y
DALI: Set DALI group x (0-15) ON with dimmer value y.
21
20
x
y
DALI: Link output x with DALI output y (when y<64) or with DALI group y-64 (when y>63 & y<80).
21
21
x
y
DALI: Link input x with DALI Lunatone input y (when y<64) or with DALI Helvar input y-64 (when y>63 & y<128).
21
22
x
y
DALI: Link sensor x with DALI Lunatone sensor y (when y<64).
80
0
x
-
EXTRA: Clear Validation Bit x.
80
1
x
-
EXTRA: Set Validation Bit x.
80
2
x
-
EXTRA: Toggle Validation Bit x.
100
0
-
-
IF THEN: This instruction will set "IF" instruction
100
10
x
-
IF THEN: Condition: Check if output x is ON
100
11
x
-
IF THEN: Condition: Check if output x is OFF
100
12
x
-
IF THEN: Condition: Check if input x is ON
100
13
x
-
IF THEN: Condition: Check if input x is OFF
100
14
x
-
IF THEN: Condition: Check if validation bit x is ON
100
15
x
-
IF THEN: Condition: Check if validation bit x is OFF
100
19
x
y
IF THEN: Condition: Check if Value Temperature Sensor x is > y
100
20
x
y
IF THEN: Condition: Check if Value Temperature Sensor x is = y
100
21
x
y
IF THEN: Condition: Check if Value Temperature Sensor x is < y
100
22
x
y
IF THEN: Condition: Check if Value Humidity Sensor x is > y
100
23
x
y
IF THEN: Condition: Check if Value Humidity Sensor x is = y
100
24
x
y
IF THEN: Condition: Check if Value Humidity Sensor x is < y
100
25
x
y
IF THEN: Condition: Check if Value Brightness Sensor x is > y
100
26
x
y
IF THEN: Condition: Check if Value Brightness Sensor x is = y
100
27
x
y
IF THEN: Condition: Check if Value Brightness Sensor x is < y
100
28
x
y
IF THEN: Condition: Check if Value Air Quality Sensor (CO2) x is > y
100
29
x
y
IF THEN: Condition: Check if Value Air Quality Sensor (CO2) x is = y
100
30
x
y
IF THEN: Condition: Check if Value Air Quality Sensor (CO2) x is < y
100
31
x
y
IF THEN: Condition: Check if Value Extra Sensor x is > y
100
32
x
y
IF THEN: Condition: Check if Value Extra Sensor x is = y
100
33
x
y
IF THEN: Condition: Check if Value Extra Sensor x is < y
100
90
-
-
IF THEN: This instruction will set "AND" instruction between conditions
100
91
-
-
IF THEN: This instruction will set "OR" instruction between conditions
100
150
-
-
IF THEN: This instruction will set "THEN" instruction
100
200
-
-
IF THEN: This instruction will set "ELSE" instruction
100
255
-
-
IF THEN: This instruction will set "ENDIF" instruction
200
0
-
y
BUS ACTION: If y=0 then start discovery mode ("module discover start"), if y=255 then stop discovery mode of the slave RS232 module ("module discover stop"), if y=1 then start the automatic search of new RS485 modules (Bus will first go into discovery mode and then the search will start)
200
1
-
-
EEPROM ACTIVATE: This instruction will copy eeprom data to RAM similar to the instruction "eeprom activate" (see CLI reference guide)
200
2
-
-
ERROR CLEAR: This instruction will clear all RS485 module errors and bring all modules again online and in GOOD status. This instruction does the same as the CLI instruction "error clear".
200
3
-
y
SLAVE LEDS: This instruction will switch ON (y=1) the led function of the slave modules or switch them OFF (y=0)
200
4
x
y
NUMBER MODULES WRITE: This instruction will write the number of (input/output/sensor/Can Control) modules. When x=0 -> Output, x=1 -> Input, x=2 -> Sensor, x=3 -> Can Control. y is the number of modules to be written. This instruction does the same as "input number modules write", "output number modules write" etc
201
z
x
y
OUTPUT EEPROM WRITE: This instruction will write word x (MSB->ID0, LSB->ID1) and word y (MSB->ID2, LSB->ID3) in the appropriate location of the eeprom for output module z (0-79) after performing a check for doubles in the existing output list. After a valid write, the system will perform an "eeprom activate" instruction to copy the values from eeprom to RAM.
202
z
x
y
INPUT EEPROM WRITE: This instruction will write word x (MSB->ID0, LSB->ID1) and word y (MSB->ID2, LSB->ID3) in the appropriate location of the eeprom for input module z (0-78) after performing a check for doubles in the existing input list. After a valid write, the system will perform an "eeprom activate" instruction to copy the values from eeprom to RAM.
203
z
x
y
SENSOR EEPROM WRITE: This instruction will write word x (MSB->ID0, LSB->ID1) and word y (MSB->ID2, LSB->ID3) in the appropriate location of the eeprom for sensor module z (0-15) after performing a check for doubles in the existing input list. After a valid write, the system will perform an "eeprom activate" instruction to copy the values from eeprom to RAM.
204
z
x
y
CAN CONTROL EEPROM WRITE: This instruction will write word x (MSB->ID0, LSB->ID1) and word y (MSB->ID2, LSB->ID3) in the appropriate location of the Can Control module z (0-15) after performing a check for doubles in the existing Can Control list. After a valid write, the system will perform an "eeprom activate" instruction to copy the values from eeprom to RAM.
210
z
x
y
FRONTPANEL LEDS: This instruction will switch Led z ON (x=1) or OFF (x=0). Blinking can be activated (y=25->25% is of the time ON, y=50 or y=75) or deactivated (y=100). For list with leds, see Note 5.
250
0
-
-
RESERVED: For internal use only, will send FW version of Slave modules to BB
253
0
x
-
POWER: Switch ON(x=1)/OFF(x=0) Power of the RS485 Bus
253
1
x
-
POWER: Switch ON(x=1)/OFF(x=0) Power of the CAN Bus
253
2
x
-
POWER: Switch ON(x=1)/OFF(x=0) Power of the onboard I2C Bus. Attention: DO NOT USE THIS INSTRUCTION ONLY IN CASE YOU KNOW WHAT YOU'RE DOING
253
3
x
-
POWER: Switch ON(x=1)/OFF(x=0) Power of the 10VDC Out
253
4
x
-
TERM: Switch ON(x=1)/OFF(x=0) Termination of the CAN Bus (will be written in Eeprom as a setting)
254
0
-
-
RESET PROCESSOR: This instruction will perform a software reset of the Master DSPIC Processor
254
1
-
-
RESET BB: This instruction will perform a reset of the BB (via reset pin of the BB)


Note 1:

  • 3 types of timers: 100ms, 1s and 1 minute. Every time a time unit (100ms, 1s or 1m) passes, the timer value of the output is decreased with 1 until 0 is reached and the output is switched off. It's important to understand the principle of the timers so you can use the appropriate timer for your use case. For example the minute timer will decrease every time the minute changes so using the minute timer for 1 minute is useless since the output will be switched off between 1 and 59 seconds. If you need a timer for only a few seconds, use the 100ms timer, if you need a timer for multiple seconds or minutes use the second timer, if you need a timer for more than 30 minutes use the minutes timer.
  • Each timer consist of 4 parameters: the Timer Value, the standard Timer value, the Timer type & the standard Timer type. At startup, the standard Timer value and the standard Timer type are loaded from eeprom. Every time an output is switched off, the standard Timer value and type are copied into the Timer value and type. When an output in ON, the Timer value is decreased until 0 which will switch OFF the output, the standard Timer is copied in the Timer value. The Timer type will determine which kind of timer it is (0 -> No Timer, 1 ->1 00ms timer, 2 -> 1s timer, 3 -> 1 minute timer) and the standard Timer type is copied in the standard timer when an output is switched off.
  • Basic action exists that only changes the Timer value and type which means that when the output is switched off, the standard values are loaded again.
  • Basic action exists that changes the Standard Timer value and type. Those standard values will remain in place until the processor is restarted or an "eeprom activate" is done due to eeprom changes. If you want permanent changes, please changes the appropriate eeprom values.
  • When a basic action is used with Timer value 0, the timer will remain off.

Note 2:

  • if "-" is displayed in the table, any value can be used (typically, 0 is used)
  • When type=255 -> No action is executed and will always be ignored by the firmware

Note 3:

  • When BA's are used to program other BA's in Eeprom (like for example BA1-3 or BA20-0), 3 BA's (Action/Type, Device Nr & extra parameter) need to be used to program 1 full BA in Eeprom

Note 4:

  • When a time trigger occurred and the group action has been executed, the delayed group action is removed from the queue (except BA17 where action.bit7 determines whether is needs to be deleted or not) so if you want an action to be executed for example every 90 seconds, the delayed group action must be added on the delayed queue after every execution of the group action. The easiest way to do this is to create a group action with a list of instructions including the instruction to put this group action on the delayed group again after execution. To get the delayed action in the queue for the first time, you can use the startup group action which executes at each processor start or reset.

Note 5:

  • z=0: Led Exp Bus
  • z=1: Led status Green
  • z=2: Led status Red
  • z=3: Led CAN Status Green
  • z=4: Led CAN Status Red
  • z=5: Led CAN Com
  • z=6: Led P1 (BB in control)
  • z=7: Led LAN Green (BB in control)
  • z=8: Led LAN Red (BB in control)
  • z=9: Led Cloud (BB in control)
  • z=10: Led Setup
  • z=11: Led Relays 1-8
  • z=12: Led Relays 9-16
  • z=13: Led Outputs DIG 1-4
  • z=14: Led Outputs DIG 5-7
  • z=15: Led Outputs ANA 1-4
  • z=16: Led Inputs 1-4
  • Most leds are in control of the master processor, changing the status of these leds might be overruled by the Master processor.
  • At startup, the Master will put the Led LAN Green and Red ON and flashing, once the BB is started, the BB should switch OFF the flashing so the user knows that the startup process is done.

Note 6: BA20 1 x y:

  • x=0: Set initialisation Mode.
    • y=0 -> Normal mode
    • y=1 -> Button test uCAN mode with sound/led feedback (this mode is used during setup of uCAN's) -> Led/sound will happen when button is configured by the Master and the communication in both directions is working when the input is pressed.
    • y=2 -> Output Test Mode to link inputs with the enabled output (see also BA20 1 4 y) without any interface (computer or others) or LAN connected
  • x=1: Switch ON/OFF buzzers of all connected uCAN's
    • y=0 -> Buzzers OFF
    • y=1 -> Buzzers ON
  • x=2: Switch ON/OFF input leds (not 3color status led) of all connected uCAN's
    • y=0 -> Leds OFF
    • y=1 -> Leds ON
  • x=3: Enable/Disable 3color status led of all connected uCAN's
    • y=0 -> Disable leds
    • y=1 -> Enable leds
  • x=4: Set output to be linked (see BA20 1 0 2), only works in Output Test Mode, y=Output nr to be linked. When this output will be linked, only this output will be ON.