CLI Reference Guide

From OpenMotics
Jump to: navigation, search

The Gateway has 2 computer systems built-in: A Master Controller (Microchip 18F67J11 based) and a Gateway Controller (Linux Based Beagle Bone Black). The Master controller is connected with the Gateway Controller over RS232. The Master Controller has a built-in CLI interface allowing the user to configure and control the Master controller to his full extend.

This CLI can be accessed by using the Maintenance function in the OpenMotics cloud or by using a RS232 TTL cable (Baud rate 115200, 8 databits, no parity, 1 stop bit, no flow control) that is connected directly on the Gateway (the necessary jumpers needs to be removed to work properly see RS232)

Possible modes of communication:

  • Advanced Mode: API (The Master controller and Gateway controller will use Advanced mode to communicate)
  • Simple Mode: CLI (Simple Mode will be used by Maintenance mode in the cloud or when a direct RS232 connection is established)


Contents

Notes

  1. In CLI mode, characters sent through RS232 can be echoed (“echo on” or “echo off”). In API mode they are never echoed.
  2. Instructions are case sensitive.
  3. As opposed to API mode, CLI mode has a variable instruction length.
  4. Every instruction must be followed by a Carriage return (<CR>, DEC 13).
  5. Every successful instruction will return the requested information (or perform requested action) followed by OK, otherwise ERROR is returned (wrong format, wrong parameters,…). All error codes are listed in the Error Codes section.
  6. An instruction will only be executed if the Master has responded with “OK”
  7. To go from CLI to API mode type exit. To go from API to CLI mode type STRCM (capitals), followed by random characters until “ERROR 17” or “OK” appears.
  8. As of V3.143.3, some instructions that are rarely used have been removed to free up space flash memory of the microcontroller. All these instruction still can be done or by using "basic action activate ..." or by writing directly to eeprom, see Memory Model. Following instruction must be used to write to eeprom:
* "eeprom write ..."
* "eeprom activate"

Notation

Instruction [required parameter] {optional parameter}

Instruction description.

[param]
Parameter description


Returns
[return value]

Versioning

This document describes the available CLI commands available on the Gateway Module CLI interface.

Gateway Module FW version
3.140

Instruction Set

Action instructions

action read [action] [bank]

Instruction removed since firmware version 3.143.3
Gets the values stored for a simple action.


[action]
Number of the action, a maximum of 204 (0 - 203) simple actions can be defined
[bank]
Always use 0


Returns
[config byte] [selected output or validation bit nr] [timer] [dimmer]


Example:

action read 5 0 will read simple action 5 of bank 0
output: 10 35 8000 40
In this example, simple action 5 will toggle (config byte=10) output 35 with timer value 8000 (if toggled on) and dimmer value 40 (if toggled on)

Notes:

  1. For description of the config byte, please see Config Types page
  2. Only bank 0 works in the current firmware version. Writing and reading in all banks is possible, however, activating these simple actions (except for bank 0) are not possible
  3. Only use simple actions when no basic actions exist to execute the requested function. Before using simple actions, first look at the Action Types document for existing Basic Actions



action write [action] [bank] [config byte] [output or validation bit number] [timer] [dimmer]

Instruction removed since firmware version 3.143.3
Sets a simple action in the eeprom.


[action]
Number of the action, a maximum of 204 (0 - 203) simple actions can be defined per bank.
[bank]
Always use 0
[config byte]
The action byte of the instruction.
[output / validation]
The output or validation bit number to which the instruction is written.
[timer]
Dimmer level, ranging from 0 to 63.
[dimmer]
Timer value in seconds, ranging from 0 to 65500.

Example:

action write 6 0 9 12 10000 45 will write simple action 6 in bank 0: put output 12 on with specific timer value (config byte=9) of 10000 seconds and with a light intensity of 45 (max 63).

Notes:

  1. For description of the config byte, please see Config Types document
  2. Only bank 0 works in the current firmware version. Writing and reading in all banks is possible, however, activating these simple actions (except for bank 0) are not possible
  3. Only use simple actions when no basic actions exist to execute the requested function. Before using simple actions, first look at the Action Types document for existing Basic Actions



action activate [action] [bank]

Instruction removed since firmware version 3.143.3
Activates a simple action. Always use this function to test a created simple action.


[action]
Number of the action, a maximum of 204 (0 - 203) simple actions can be defined per bank.
[bank]
Number of the bank, there are 4 (0 - 3) banks available.

Example:

action activate 6 0 will run action 6 of bank 0.
API equivalent: STRIFA6 0

Note:

  1. Only bank 0 works in the current firmware version. Writing and reading in all banks is possible, however, activating these simple actions (except for bank 0) are not possible



action name write [action] [action name]

Instruction removed since firmware version 3.143.3
Sets the action name (description) for a specified action. For every simple action, a free text of maximum 16 characters can be programmed. This text will make it easier to identify the use of every simple action.


[action]
Number of the action.
[action name]
Description of the simple action, with a maximum of 16 characters.


Example:

action name write 3 Test action will program name “Test action” for Simple Action 3.



action list

Instruction removed since firmware version 3.143.3
Lists all active actions, and their corresponding action name (if the first byte of an action is < 255, then the action is active). For every Simple Action, a free text of maximum 16 characters can be programmed. This text will make it easier to identify the use of every simple action.


Returns
[action] [action name]
[action] [action name]
[action] [action name]
etc

add virtual module [virtual type]

This instruction will add a virtual module.
[virtual type]
This is the type of virtual module to be added. These are the virtual modules that can be added: "o"-> Virtual Output, "d"-> Virtual Dimmer, "r"-> Virtual Roller Shutter, "i"-> Virtual Input.
Returns
OK

automatic response read

Instruction removed since firmware version 3.143.3
Gets the automatic response (AR) value which indicates if automatic sends are allowed in API mode.


Returns
[AR]
  • AR = 255: the system will not automatically report changes in output status
  • AR < 255: the system will automatically report all changes in output status (through response “RO”)

automatic response write [AR]

Instruction removed since firmware version 3.143.3
Sets the automatic response (AR) value which indicates if automatic sends (to computer) are allowed in API mode.


[AR]
  • AR = 255: the system will not automatically report changes in output status
  • AR < 255: the system will automatically report all changes in output status (through response “RO”)



basic action activate [action type] [action number]

Activates a Basic Action defined in the action type list (see the Action Types page). With this instruction, any action (simple action, group action, schedule action or any other) can be executed. Use this instruction to test your Basic Actions.


[action type]
Action type of the action to be executed as defined in the Action Types.
[action number]
action number to be activated.


Example:

basic action activate 172 10 will switch on all lights of group 10.
API equivalent: STRIFQ172 10

brightness read [module]

Instruction removed since firmware version 3.143.3
This instruction will read the brightness from modules that can connect a LDR (light sensitive resistor).
[module]
Number of the module.


Returns
[brightness]
The brightness value, ranging from 0 to 254.
  • 0: Maximum light intensity
  • 254: Minimum light intensity
  • 255: Sensor not connected


Example:

Brightness read 1
output: 245

Notes:

  1. When a sensor is not connected, the system returns Sensor not connected.
  2. Some input modules with older firmware versions will give value 0 for light intensity even when no sensor is connected.



brightness list

Returns a list with all modules and their corresponding brightness value.


Returns
[module] [brightness]

Example:

brightness list
output:
00 Sensor not connected
01 245
02 Sensor not connected



can control erase [instruction] [ID0] [ID1] [ID2] [ID3]

This instruction can partially or fully reset the CAN Control module
[ID0..3]
These are the addresses (4 bytes) of the CAN Control module
[instruction]
Instruction ranging from 0 to 2
Instruction=0 -> Fully erase CAN Control = Factory Reset, all inputs and sensors connected to the CAN control will be forgotten. It will need to be removed & re-added to the system
Instruction=1 -> Erase inputs = all inputs connected to the CAN Control will be erased
Instruction=2 -> Erase sensors = all sensors connected to the CAN Control wil be erased

Example:

can control erase 0 67 15 20 231

Notes:

  1. The address of the CAN Control can be easily found in the "error list"
  2. When a full erase is executed, the Master will respond with errors since the module isn't reachable anymore, this is expected behaviour and the input list should be adapted by using instruction "input number modules write x"
  3. This instruction communicates directly with the RS485 bus and will not generate an error if the ID's are used of a non existing module.
  4. If Instruction=0 is used, a full erase will be executed including the virtual modules made. If Instruction=1 or 2, the created virtual modules are kept.
  5. If instruction=0 is used, the CAN Control that gets this factory reset will switch on all LEDs until the erase is finished.
  6. In order to completely erase the CAN control module without having to remove/re-add it to the system use instruction 1 followed by instruction 2

cli mode read

Instruction removed since firmware version 3.143.3
Gets the CLI mode value which indicates in what mode the Master will start (or after instruction “eeprom activate” or any instruction using “eeprom activate”).


Returns
[cli mode]
  • cli mode = 255: the Master will start up in CLI mode
  • cli mode < 255: the Master will start up in API mode



cli mode write [cli mode]

Instruction removed since firmware version 3.143.3
Sets the CLI mode value which indicates in what mode the Master will start (or after instruction “eeprom activate” or any instruction using “eeprom activate”).


[cli mode]
  • cli mode = 255: the Master will start up in CLI mode
  • cli mode < 255: the Master will start up in API mode



current setpoint read [thermostat]

Gets the currently set temperature setpoint of a certain thermostat. The system has built-in thermostat functions, in total 24 different thermostats (0 - 23) can be activated. Every thermostat can drive 2 outputs; these outputs can be dimmer outputs (electronic valve 0 - 10V) or a relay outputs (or a combination of both).


[thermostat]
Number of the thermostat, ranging from 0 to 23.


Returns
[thermostat] [temperature]

Example:

current setpoint read 5 Reads the set temperature for thermostat 5.
output: 05 +22.0



current setpoint write [thermostat] [setpoint]

Sets the current setpoint temperature of an individual thermostat. Setpoint represents the desired temperature. The Master has built-in thermostat functions, in total 24 different thermostats (0 - 23) can be activated. Every thermostat can drive 2 outputs; these outputs can be a dimmer outputs (electronic valve 0 - 10V) or a relay outputs (or a combination of both). Every thermostat can have 6 preprogrammed temperature setpoints (0-5).


[thermostat]
Number of the thermostat, ranging from 0 to 23.
[setpoint]
Number of the setpoint value, ranging from 0 to 5.

Example:

current setpoint write 5 22.0

Notes:

  1. The setpoint temperature must include a 0 or 5 after the decimal or the instruction will return an error. current setpoint write 5 22.0 is correct, while current setpoint write 5 22 is not.



debug on

Enables debug mode. In debug mode, the Master will send multiple messages of the different states and activities while the Master is executing different tasks. Changing the status of the debug mode will not influence the programmed eeprom setting for debugging (see “Memory Model” eeprom, page 0) which is used as a standard startup value.
This function will also enable output debug (od) information telling which function in the system changed the output. More information regarding the od code can be found in the appendixes (D).

Notes:

  1. Enabling debug mode will decrease the performance of the system. Only use debug mode for throuble shooting.



debug off

Disables debug mode. Changing the status of the debug mode will not influence the programmed eeprom setting for debugging (see “Memory Model” eeprom, page 0) which is used as a standard startup value.



decision read [decision]

Instruction removed since firmware version 3.143.3
This instruction will read the programmed functions in a simple decision. In the system, maximum 192 (0-191) simple decisions can be programmed. For more information about simple decisions, please refer to the document “Memory Model”.


[decision]
Number of the decision.


Returns
[decision byte] [datafield1(IF)] [datafield2(IF)] [datafield3(IF)] [action type(THEN)] [action(THEN)] [action type(ELSE)] [action(ELSE)]

Example:

decision read 14 will read simple decision 14
output: 4 10 0 3 0 14 255 255
In this example, when input 10 is pressed (decision byte = 4) for 3 seconds (datafield 2 will be ignored in this example), simple action 14 (action type = 0) will be activated. ELSE is ignored ( = 255) in this example.

Notes:

  1. For the description of the decision byte, please see the Decision Types page. For the description of the action type byte, please see the Action Types page.
  2. Only use simple decisions when the basic actions IF THEN ELSE ENDIF can’t do the job. Please refer to the Action Types page for the different Basic Actions that exist.




decision write [decision] [decision byte] [datafield1 (IF)] [datafield2 (IF)] [datafield3 (IF)] [action type (THEN)] [action (THEN)] [action type (ELSE)] [action (ELSE)]

Instruction removed since firmware version 3.143.3
Sets the necessary bytes for a simple decision. In the system, maximum 192 (0-191) simple decisions can be programmed. For more information about simple decisions, please refer to the document “Memory Model”.


[decision]
[decision byte]
[datafield1 (IF)]
[datafield2 (IF)]
[datafield3 (IF)]
[action type (THEN)]
[action number (THEN)]
[action type (ELSE)]
[action number (ELSE)]

Example:

decision write 15 0 10 0 1 2 5 0 10 will create a simple decision 15 that, if activated, will check output (decision byte = 0) 10 if high (= 1) will activate group action (action type = 2) 5, if not will activate simple action (action type = 0) 10.
decision write 16 18 2 0 1 178 2 5 0 10 will create a simple decision 16 that, if activated, will check temperature of module 2, if temperature is higher (18) then 178 (>25 °C -> (178-128)/2, see temperature table and calculation) will activate group action (action type = 2) 5, if not will activate simple action (action type=0) 10.

Notes:

  1. For the description of the decision byte, please see the Decision Types page. For the description of the action type byte, please see the Action Types page.
  2. Only use simple decisions when the basic actions IF THEN ELSE ENDIF can’t do the job. Please refer to the Action Types page for the different Basic Actions that exist.
  3. In simple decisions, the system value must be used to indicate the temperature.
  4. Brightness is stored in the system as a decimal value between 1 and 255 for every input module (every input module can have maximum one brightness sensor). If brightness = 1: complete darkness, if brightness = 255: maximum light, if brightness = 0: brightness sensor not connected.
  5. Temperature (°C) is stored in System Value format

decision activate [decision]

Instruction removed since firmware version 3.143.3
Execute a simple decision. Use this instruction to test your simple decisions.


[decision]
Number of the decision.

Example:

decision activate 29 will execute decision 29.
API equivalent: STRIFD14



decision name write [decision] [decision name]

Instruction removed since firmware version 3.143.3
Sets the name (description) for a specified decision. For every simple decision, a free text of maximum 16 characters can be programmed. This text will make it easier to identify the use of every simple decision.


[decision]
Number of the decision.
[decision name]
Description of the decision, with a maximum of 16 characters.

Example:

decision name write 29 decision Liv1 will program decision Liv1 as name for simple decision 29.



decision list

Instruction removed since firmware version 3.143.3
Lists all active decisions, and their corresponding name (if the first byte of a decision is < 255, then the decision is active).


Returns
[decision] [decision name]
[decision] [decision name]
[decision] [decision name]
etc



dimmer step read

Instruction removed since firmware version 3.143.3
Gets the dimmer step. Dimmer step: every cycle (scan), when dimming up or down, the dimmer value will be increased or decreased with the dimmer step (ie: dim down: new dimmer value = current dimmer value – dimmer step until minimum light level is achieved).


Returns
[dimmer step]
Dimmer step ranges from 1 to 10

Example:

dimmer step read
output: 2

Notes:

  1. If the corresponding eeprom value (which is read with this instruction) is 255, the system will take 1 as the standard value for dimmer step.



dimmer step write [dimmer step]

Instruction removed since firmware version 3.143.3
Sets the dimmer step. Dimmer step: every cycle (scan), when dimming up or down, the dimmer value will be increased or decreased with the dimmer step (ie: dim down: new dimmer value = current dimmer value – dimmer step until minimum light level is achieved).


[dimmer step]
The dimmer step value, ranging from 1 to 10



dimmer minimum read

Instruction removed since firmware version 3.143.3
Gets the dimmer minimum. Dimmer minimum is the lowest level that can be reached when dimming down (ie: the lowest light level).


Returns
[dimmer minimum]
Dimmer minimum, ranging from 0 (off) to 62

Example:

immer minimum read
output: 6

Notes:

  1. If the corresponding eeprom value (which is read with this instruction) is 255, the system will take 5 as the standard value for dimmer minimum.



dimmer minimum write [dimmer minimum]

Instruction removed since firmware version 3.143.3
Sets the dimmer minimum. Dimmer minimum is the lowest level that can be reached when dimming down (ie: the lowest light level).


[dimmer minimum]
Dimmer minimum, ranging from 0 (off) to 62.



dimmer cycle read

Instruction removed since firmware version 3.143.3
Gets the dimmer cycle. This value specifies the number of scanning cycles of the input module before it starts dimming. With dimmer cycle = 8: if the associated button is pressed for less than 8 scanning cycles the light will go on/off. When pressed for more than 8 scanning cycles the light will start dimming.


Returns
[dimmer cycle]
Dimmer cycle, ranging from 2 to 63

Example:

dimmer cycle read
output: 6

Notes:

  1. If the corresponding eeprom value (which is read with this instruction) is 255, the system will take 7 as the standard value for dimmer cycle. Dimmer cycle wait cycles are closely related with the value Wait Cycles (see “wait cycles read/write”).



dimmer cycle write [dimmer cycle]

Instruction removed since firmware version 3.143.3
Sets the dimmer cycle. This value specifies the number of scanning cycles of the input module before it starts dimming.


[dimmer cycle]
Dimmer cycle, ranging from 2 to 63.



dimmer memory read

Instruction removed since firmware version 3.143.3
Gets the dimmer memory. When the returned value is 0, the light will always switch on at full intensity (when not used in special function), when this byte is higher than 0, the last value in memory will be used.


Returns
[dimmer memory]
Dimmer memory, 0 or 1

Example:

dimmer memory read
output: 1



dimmer memory write [dimmer memory]

Instruction removed since firmware version 3.143.3
Sets the dimmer memory. When the returned value is 0, the light will always switch on at full intensity (when not used in special function), when this byte is higher than 0, the last value in memory will be used.


[dimmer memory]
Dimmer memory, 0 or 1



discover can control [can control nr]

This instruction allows, for CAN Controls already initialised (by using the init button), to remotely start the discover mode and have all new virtual input and output modules added without having the typically push the init button. Since this instruction will put all module in discovery mode, the module discover stop instruction have to be executed.


[can control nr]
CAN Control number, value from 1 to 4
If you only have 1 CAN Control, the CAN Control nr=1. If you have multiple CAN Controls, their number can be determined by the "error list" command. The first CAN control in the list is nr 1, the second is nr 2, etc.



echo on

All characters sent through RS232 will be echoed. This instruction will program this setting in eeprom.



echo off

All characters sent through RS232 will not be echoed. This instruction will program this setting in eeprom.



eeprom read [page] [byte]

Gets the value from the eeprom at the specified page and byte (For the eeprom memory layout, please use the document Memory Model). The installed eeprom has 256 (0-255) pages of 256 (0-255) bytes.


[page]
Page in the eeprom, ranging from 0 to 255.
[byte]
Byte nr in the eeprom, ranging from 0 to 255.

Example:

eeprom read 0 6 will read the value in the eeprom on page 0 row 6



eeprom write [page] [byte] [value]

Sets the value in the eeprom at the specified page and row (For the eeprom memory layout, please use the document Memory Model). The installed eeprom has 256 (0-255) pages of 256 (0-255) bytes.


[page]
Page in the eeprom, ranging from 0 to 255.
[Byte]
Byte nr in the eeprom, ranging from 0 to 255.
[value]
Decimal value to be written.

Example:

eeprom write 0 6 15 will write the decimal value 15 in the eeprom on page 0 row 6

Notes:

  1. After eeprom write the command eeprom activate must be used to validate changes.



eeprom activate

Many values are copied from eeprom into RAM to increase the speed of the system. If values are written in the eeprom by using the instruction “eeprom write” it is necessary to copy eeprom data into RAM by using this instruction. For more information regarding the eeprom values, please see the document Memory Model

error list

Returns a list with all input and output modules and their error state. The MASTER polls every module several times per second. Each module must respond promptly to the MASTER requests. With this instruction, the number of communication errors for each module can be displayed. If a module is not responding in time or not responding at all, the number of errors for that module will increase. The maximum errors that the system will record is 65.000 for each module.

Example:

error list
output:
00 I 066.244.122.189 0 No Errors
01 I 066.030.015.135 0 C No Errors
02 I 066.047.023.139 0 # of Errors: 44
03 I 073.062.031.015 1 # of Errors: 100
04 I 073.212.106.053 0 No Errors
05 B 066.040.148.074 0 No Errors
00 O 079.083.041.148 0 No Errors
01 D 068.151.047.095 0 No Errors
02 D 068.190.124.249 0 No Errors
03 O 079.243.231.207 0 No Errors
04 C 067.188.022.098 0 C No Errors
The first value indicate the module number, the letter is the module type, the four following values are the module address followed by the Offline modus (0 or 1) which indicated if the module is offline (=1) or not (=0). In the above example, Input module 3 is offline. See also Memory Model page 0 byte 29.
In this example, Input module “I” with ID 66.47.23.139 has 44 communication errors and Input module 3 has 100 Errors and has been taken offline. To bring a module back online, please use instruction error clear.
In this example, you can also see that input module 01 is a CAN module since the "C" appears just before the number of errors.

Notes:

  1. To clear all errors, use error clear.



error clear

Clears all errors in the system.



exit

Switches from Simple Mode (CLI) to Advanced Mode (API). When used, debug mode will always be turned off.



firmware version

Gets the current firmware version.



floor level read [output]

A series of lights can be grouped together and can, for example, be switched on or off together.
Gets the floor level (or group) associated with the indicated output.


Returns
[FL]



floor level write [output] [FL]

Sets the floor level (FL) or group associated with the indicated output. A series of lights can be grouped together and can, for example, be switched on or off together.


[output]
output between 0 and 239
[FL]
Floor level or group between 0 and 254 (255 is no group, selecting 255 will select all lights)



group read [group action]

A group action consist of max 16 Basic Actions. This instruction returns the programmed Basic Actions (simple actions, group actions, simple decisions etc) in this group action. In the system, 160 (0-159) group actions can be defined. Each group action consist of maximum 16 (0-15) actions. Actions can be cascaded; a group action can call other group actions to create bigger group actions. See Action Types for the different Basic Actions.


[group]
Number of the group action.


Returns
[line] [action type] [action number]

Example:

group read 4 will read all actions defined in group action 4
output:
00 009 015
01 000 005
02 002 000
03 255 255
14 255 255
15 255 255
In this example, when group action 4 is called, this group action will call simple decision 15 (action type = 9), simple action 5 (action byte = 0) and group action 0 (action type = 2).

Notes:

  1. Once 255 is reached in the list, the processor will not continue to read the list. If we would include a Basic Action on line 13, this action would not be activated. For the description of the Basic Actions, please see Action Types page.
  2. Following groups are used by the OLED display (if used): group 140->Home (Aut), Group 141->Away, group 142->Lights off, group 143->Sleep, group 144->Sphere 1, group 145->Sphere 2 and group 146->Sphere 3



group write [group] [line] [action type] [action number]

A group action consists of max 16 Basic Actions. This instruction will program Basic Actions (simple actions, group actions, simple decisions etc.) in the selected group action. In the system, 160 (0-159) group actions can be defined. Each group action consist of maximum 16 (0-15) Basic Actions. Actions can be cascaded; a group action can call other group actions to create bigger group actions.


[group]
Number of the group action.
[line]
Number of the line.
[action type]
Type of action.
[action number]
Number of the action.

Example:

group write 4 3 0 12 will add in group action 4 on line 3 simple action (action type = 0) 12.

Notes:

  1. Once 255 is reached in the list, the processor will not continue to read the list. If we would include a Basic Action on line 13, this action would not be activated. For the description of the Basic actions, please see the Action Types page.
  2. Following groups are used by the OLED display (if used): group 140->Home, Group 141->Away, group 142->Lights off, group 143->Sleep, group 144->Sphere 1, group 145->Sphere 2 and group 146->Sphere 3, group 147 -> Vacation, group 148 -> Party



group activate [group]

Activates (runs) the selected group action.


[group]
Number of the group action to activate.

Example:

group activate 4 will run group 4.
API equivalent: STRIFG4



group name write [group] [group name]

Sets the group name (description) for a specific group action. For every group action, a free text of maximum 16 characters can be programmed. This text will make it easier to identify the use of every group action.


[group]
Number of the group.
[group name]
Description of the group, with a maximum of 16 characters.

Example:

group name write 4 Liv all off will program the group name “Liv all off” for group action 4.



group list

Lists all active group actions, and their corresponding text (if the first byte of an action is < 255, then the action is active). For every simple action, a free text of maximum 16 characters can be programmed. This text will it make easier to identify the use of every group action.


Returns
[group] [group name]
[group] [group name]
[group] [group name]



humidity read [sensor]

Instruction removed since firmware version 3.143.3
Reads the humidity of the connected sensors. There are input/sensor modules that can measure air humidity.


[sensor]
Number of the sensor (0-31).


Returns
[sensor] [humidity]
Humidity is displayed in %RH (Relative Humidity) and is the relative humidity with calculated temperature compensation.

Example:

humidity read 1 reads humidity of sensor number 1
output: 01 41.5%RH

Notes:

  1. Humidity is stored in System Value format

Notes:

  1. When a sensor is not connected, the system returns Sensor not connected
  2. In the advanced communication protocol, the system value is sent, not the calculated humidity.
  3. When using a Basic Action (for example IF THEN ELSE ENDIF), system values are always used.



humidity list

Returns a list with all input/sensor modules and their corresponding relative humidity (with temperature compensation).


Returns
[sensor] [humidity]
Humidity is displayed in %RH (Relative Humidity) and is the relative humidity with calculated temperature compensation

Example:

humidity list
output:
00 Sensor not connected
01 41.5%RH
02 Sensor not connected



input indicate [input]

This instruction will make the input led of the corresponding input blink during 20 seconds. This is a usefull function to find back a certain input without changing the state of that input. Please note that this instruction will only work on input modules with an individual input status led and when the module is running in Normal Mode (not in Module discovery mode).


[input]
Number of the input



input invert read [input]

Reads the invert status of an input. Standard inputs are NO (Normally Open). It is however possible to connect NC (Normally closed) switches. This instruction will indicate if the input is configured as NO (displayed as 1) or configured as NC (dispayed as 0). Standard, all inputs are configured as NO.


Returns
[invert status]

Example:

input invert read 29 will read the invert status of input 29.
output: 0
Switch 29 is not inverted and configured as NC.

Notes:

  1. CLI instruction input list will also show the programmed invert status of all inputs



input invert write [input] [invert status]

Writes the invert status of an input. Standard inputs are NO (Normally Open). It is however possible to connect NC (Normally closed) switches. This instruction will program if the input is configured as NO (displayed as 1) or configured as NC (dispayed as 0). Standard, all inputs are configured as NO.


[input]
Number of the input
[invert status]
"0" for NC, "1" for NO

Example:

input invert write 29 1 will program input 29 as a NO input



input link read [input]

Reads the output action for the selected input. Every input has a corresponding output (or intelligent action). With this instruction, you can read which output has been programmed for the requested input.


Returns
[input name] -> [output] [output name]
Following output actions are possible (for more details, please see document “Memory Model”):
  • 0-239: Toggle one selected output from 0 to 239 (default timer values are used)
  • 240: perform intelligent action (basic actions of the input page are executed)
  • 241: All outputs off
  • 242: All lights off
  • 255: Do nothing

Example:

input link read 29 will read the action for input 29.
output:
18: Switch29 -> Kitchen
Switch 29 will toggle output 18 with name “Kitchen”



input link list

Returns a list with all the input links programmed for all the inputs installed.


Returns
[input] [input name] -> [output] [output name]
[input] [input name] -> [output] [output name]
[input] [input name] -> [output] [output name]
Following output actions are possible (for more details, please see document “Memory Model”):
  • 0-239: Toggle one selected output from 0 to 239 (default timer values are used)
  • 240: perform intelligent action (basic actions of the input page are executed)
  • 241: All outputs off
  • 242: All lights off
  • 255: Do nothing

Example:

input link list (With only 1 input module (8 inputs) installed)
output:
000 Button0 -> 002 Kitchen
001 Button1 -> 255 No Function
002 All Off -> 240 Special Function
003 Button3 -> 019 Bedroom 1
004 Button4 -> 020 Bedroom 2
005 Button5 -> 021 Bedroom 3
006 Button6 -> 016 Living
007 But LIV1 -> 016 Living

Notes:

  1. In this example, every input and output has a programmed name. Unnamed inputs/outputs are automatically named No Name or Empty.



input link write [input] [output action]

Sets the output action that is triggered when an input (button) is activated. 2 sorts of output actions are possible: toggle an output or perform an intelligent action. If a toggle function (output 0-239) must be performed, the required output must be selected and programmed in the link byte by using this instruction.


[input]
Number of the input
[output action]
Following output actions are possible (for more details, please see document “Memory Model”):
  • 0-239: Toggle one selected output from 0 to 239 (default timer values are used)
  • 240: perform intelligent action
  • 241: All outputs off
  • 242: All lights off
  • 255: Do nothing

Example:

input link write 29 14 will toggle output 14 when input 29 is activated



input action read [input]

Returns the input list with all programmed Basic actions. Every input has an input list which can contain up to 15 Basic Actions. The programmed Basic Actions will only be activated when the input link byte is set at 240. See the Action Types for the different Basic Action.


Returns
[input link byte]
[line number] [action type] [action number]
repeated 15 times
The returned information is the input link byte followed by 15 (0-14) lines with the action type and the action number.

Example:

input action read 14 will read all the intelligent actions including the link byte of input 14
output:
240
00 009 015
01 000 005
02 255 255
“03 255 255
13 255 255
14 255 255
In this example, simple decision 15 (with action type: 9) and action 5 (with action type: 0) will be called when input 14 is activated.

Notes:

  1. Once 255 is reached in the list, the Master will not continue to read the list. If we would include a simple action on line 13, this action would not be activated. For the description of the action type byte, please see Action Types page.



input action write [input] [line number] [action type] [action number]

Sets a Basic Action for a specific input. Every input has an input list that can contain up to 15 Basic Actions. The programmed Basic Actions will only be activated when the input link byte is set at 240. See Action Types for the different basic actions


[input]
Number of the input.
[line number]
Line number of the input action list.
[action type]
Action type to set.
[action number]
Action number to set.

Example:

input action write 14 2 0 6 will write simple action (action type=0) 6 on line 2 of the input action list of input 14.

Notes:

  1. Once 255 is reached in the list, the processor will not continue to read the list. If we would include a simple action on line 13, this action would not be activated. For the description of the action type byte, please see the Action Types page.
  2. For more information on input specific configuration, please refer to document “Memory Model”.



input address read [module number]

Instruction removed since firmware version 3.143.3
Gets the address of the selected input module from the Master. Every input module has his own network address. With this instruction, you can read the network address of a specific input module which is programmed in the Eeprom of the Master.


[module number]
Number of the input module.


Returns
[ID0].[ID1].[ID2].[ID3]
ID0 is the module type (73 = Input module)
ID1.ID2.ID3 is the unique network address.

Example:

input address read 1 will read the address of input module 1
output: 73.83.42.148



input address write [module number] [ID0] [ID1] [ID2] [ID3]

Instruction removed since firmware version 3.143.3
Every input module has his own network address. With this instruction, you can write the network address of a specific input module in the eeprom of the master, this will however not overwrite the network address of which is programmed in the module itself (the network address in the module will remain unchanged)!


[module number]
Number of the module.
[ID0]
Module type (73 = Input module)
[ID1][ID2][ID3]
Unique network address

Example:

input address write 1 73.83.42.149 will write the address of input module 1

Notes:

  1. Writing the input address by using this instruction will not change the number of activated inputs (instead use input number modules write).



input address list

Instruction removed since firmware version 3.143.3
Gets all the addresses of the activated inputs.
The number of activated inputs can be checked with the instruction “input number modules read”.


Returns
[module number] [ID0].[ID1].[ID2].[ID3]
ID0 is the module type (73 = Input module)
ID1.ID2.ID3 is the unique network address.

Example:

output address list
output:
00 73.83.41.148
01 73.122.15.12



input number modules read

Gets the number of activated input modules. If the number of activated outputs is 3 for example, the system will use the first 3 output modules in its list even if more modules have been programmed in the input modules list.


Returns
[number of modules]
The number of activated input modules.

Example:

input number modules read
output: 3



input number modules write [number of modules]

Sets the number of activated inputs.


[number of modules]
The number of input modules to activate.

Example:

input number modules write 4 will change the number of activated input modules to 4.



input debug on

Set the system in input debug. While the system is in input debug mode, every time a switch is pressed, the system we indicate which input is pressed and which output is linked to this input.

Example:

input debug on
output: (when for example input 0 is pressed)
input pressed=0 selected output=16

Notes:

  1. See also debug on



input debug off

Disables the input debug mode. While the system is in input debug mode, every time a switch is pressed, the system we indicate which input is pressed and which output is linked to this input.

Example:

input debug off

Notes:

  1. See also debug off



input list

Returns a list of all available inputs with their corresponding invert status, output number and output ASCII name. Inputs which have not yet been added in discovery mode (by the “module discover start” instruction) will not appear even though they are connected.


Returns
[input] [invert status] [input name] -> [output]
The ASCII string returned for output names has a maximum length of 8 characters. Unnamed inputs are displayed as “Empty”. The invert status will indicate if the input is configured as NO (normally open-> 1) or NC (Normally Closed -> 0).

Example:

input list
output:
000 0 input 0 -> 005
001 0 But 1 -> 006
002 0 But 2 -> 255
003 0 Empty -> 255
004 1 Empty -> 14
005 0 But Kit -> 240
006 0 Empty -> 255
007 0 Empty -> 255



input enable list

Returns a list of all available inputs with their corresponding enable bit. Every input has an enable bit which indicates if the input is enabled (and can be used). When the enable input is 1, the input can be used. When the enable input is 0, the input will ignore his input changes and will not execute the programmed input actions (or programmed output) for this input.


Returns
[input] [input enable bit]
[input] [input enable bit]
[input] [input enable bit]
...

Notes:

  1. All input enable bits are always put on 1 when the Master starts or resets
  2. The input enable bits can be set (117) or cleared (116) by using the appropriate Basic Actions (116 or 117).
  3. The input enable bit is typically used when for example an input must be ignored under certain conditions (motion sensor that must not switch on a light during the day for example)



input name write [input] [input name]

Sets the ASCII name (max 8 characters) for a certain input.


[input]
Number of the input
[input name]
Name to give the input, with a maximum length of 8 characters

Example:

input name write 1 kitchen will program the name kitchen into the system for input 1.



module discover start

The complete system can be put in “normal” mode or in “initialization” mode. In “initialization” mode, new modules can be added and network addresses will be created. When you’ve installed a new module, wiring has been done, you put the system in initialization mode (init led of all modules turns red). Once that is done, you press the init button on the new module and address generation will be done, the new address will be programmed in the master as well as in the new module.
This instruction will put the system in “initialization” mode.
Identifier Module
I Input Module
O Output Module
R Output Module configured as Store module
D Dim Control Module
T Temperature Module
L OLED module

Example:

module discover start puts the bus in initialization mode, every input/switch that has already been activated will be shown in the console with its input number.
If an activated input is selected, the system will return the input number.
If a new input/output module is found, the system will return following message:
New module found with ID: 73.62.31.15
Input module added
Type I0 11111111
After a module has been added (input as well as output modules), pressing the button again will give feedback which button was pressed.
For example: pressing button nr 5 will return the following:
output: input I0 5 Empty
Another example: press the button on the first Output module
output: output D0 0->7

Notes:

  1. Unnamed inputs/outputs are automatically named “No Name”.
  2. When the bus is in initialization mode, a push on a switch will give the input number but will not activate/deactivate a light or special function. To put the bus back in normal mode, please use “input debug stop”.



module discover stop

The complete system can be put in “normal” mode or in “initialization” mode. In “initialization” mode, new modules can be added and network addresses will be created. When you’ve installed a new module, wiring has been done, you put the system in initialization mode (init led of all modules turns red). Once that is done, you press the init button on the new module and address generation will be done, the new address will be programmed in the master as well as in the new module.
This instruction will put the system in “normal” mode.



output all off

Turns off all lights, outputs and relays. Please note that this instruction will turn off all outputs and lights (both outputs defined as output or light with instruction output type write)



output status on

Returns a list of all outputs as well lights that are turned on and their respective dimmer value.


Returns
[output] [dimmer value] [current timer value] [output name]
Unnamed inputs/outputs are automatically named “Empty”.

Example:

output status on
output:
15 063 00048 Empty
18 040 00000 Kitchen
28 063 00000 Bedroom1
In this example, output 15 with no name defined yet is on at maximum light intensity with a time left of 48 seconds before it will be switched off, output 18 Kitchen with dimmer value 40 and Output 28 Bedroom1 is on with no timer function activated.



output status read [output]

Gets the status of a certain output.


[output]
Number of the output


Returns
[state] [dimmer] [output name]
State can be 0 = OFF or 1 = ON.
Unnamed outputs are automatically named “Empty”.
If an output is switched off, the dimmer value returned is the dimmer value saved in memory (only when this option is activated in the eeprom).

Example:

output status read 32 will read the status and dimmer value of output 32.
output: 1 40 Living
Output 32 (“Living”) is on (“1”) and has a dimmer value of 40.



output timer read [output]

Gets the programmed timer value of a certain output.
Special functions (Basic action and Simple actions for example) and commands like “output on” have the ability to overrule timer settings.


[output]
Number of the output


Returns
[timer value]
Timer value ranges from 0 to 65535. When 0, the timer for that output is not used.

Example:

output timer read 32 will give the programmed timer value in seconds for output 32
output: 5600



output timer write [output] [timer value]

Sets the timer value for a certain output.
Special functions (basic actions and Simple actions for example) and commands like “output on” have the ability to overrule timer settings.


[output]
Number of the output.
[timer value]
Timer value in seconds, ranging from 0 to 65535. When 0, the timer for that output is not used.

Example:

output timer write 32 600 will program a timer of 600 seconds for output 32.



output address read [module]

Instruction removed since firmware version 3.143.3
Gets the network address of a certain output module. With this instruction, you can read the network address of a specific output (Relay or Dimmer) module in the eeprom of the master.


[module]
Number of the module.
Returns
[ID0].[ID1].[ID2].[ID3]
ID0 is the module type (79 = Output Module, 68 = Dim Control Module)
ID1.ID2.ID3 is the unique network address.

Example:

output address read 1 will read the address of output module 1
output: 79.83.41.148



output address write [module] [ID0].[ID1].[ID2].[ID3]

Instruction removed since firmware version 3.143.3
Sets the address of a certain output module. With this instruction, you can write the network address of a specific output (Relay or Dimmer) module in the eeprom of the master, this will however not overwrite the network address of which is programmed in the module itself (the network address in the module will remain unchanged)!


[module]
Number of the module.
ID0 is the module type (79 = Output Module, 68 = Dim Control Module)
ID1.ID2.ID3 is the unique network address

Example:

output address write 1 79.83.41.149 will write the network address of output module 1 to 79.83.41.149 in the eeprom of the Master.

Notes:

  1. Writing the output address by using this instruction will not change the number of activated outputs (instead use “output number modules write”).



output address list

Instruction removed since firmware version 3.143.3
Gets all the addresses of the activated outputs.
The number of activated outputs can be checked with the instruction “output number modules read” and can be changed with the instruction “output number modules write”.


Returns
[number] [ID0].[ID1].[ID2].[ID3]
ID0 is the module type (79 = Output Module, 68 = Dim Control Module)
ID1.ID2.ID3 is the unique network address

Example:

output address list
output:
00 79.83.41.148
01 79.122.15.12
02 68.13.34.233



output number modules read

Gets the number of activated output modules. If the number of activated outputs is 3 for example, the system will use the first 3 output modules (0-2) in its list even if more output modules are programmed in the output modules list.


Returns
[number of modules]
The number of activated output modules

Example:

output number modules read
output: 3



output number modules write [number of modules]

Sets the number of activated outputs. If the number of activated outputs is 3 for example, the system will use the first 3 output modules (0-2) in its list even if more output modules are programmed in the output modules list.


[number of modules]
The number of output modules to activate.

Example:

output number modules write 4 will change the number of activated output modules to 4.



output type read [output]

A difference can be made between a normal output and a light output. An example of a normal output is for example the ventilation. If an instruction is given to switch off all lights (with a Basic action for example), than the ventilation will keep running.
This instruction gets the output type (OT) of a given output.


Returns
[OT]
OT (Output type) = 0: standard output
OT > 0: light output

Notes:

  1. The standard setting for every output is light (OT = 255)



output type write [output] [OT]

A difference can be made between a normal output and a light output. An example of a normal output is for example the ventilation. If an instruction is given to switch off all lights, then the ventilation will keep running.
This instruction sets the output type (OT) of a given output.


[output]
output between 0 and 239
[OT]
If OT (output Type) = 0: normal output, if OT > 0: light output

Notes:

  1. The standard setting for every output is light (OT = 255)



output list

Returns a list of all available outputs with their corresponding timer value and ASCII name. Outputs which have not yet been added by the “module discover start” instruction will not appear even though they are connected.


Returns
[output] [timer value] [output name]
[output] [timer value] [output name]
[output] [timer value] [output name]
...
  • The ASCII string returned for output names has a maximum length of 8 characters. :*Unnamed inputs are displayed as “Empty”.

Example:

output list
output:
000 00500 output 0
001 02000 output 1
002 65535 Empty
003 00000 Empty
004 00000 output four
005 10000 Empty
006 03000 output 6
007 03000 output seven



output name write [output] [output name]

Sets the ASCII name (max 16 characters) for a certain output.


[output name]
Number of the output.
[name]
Name to give the output, with a maximum length of 16 characters.

Example:

output name write 5 light 1 kitchen will program the name light 1 kitchen into the system for output 5



pid config list

See the Thermostat page for the thermostat principles used in the Master Module
Gets the P, I, D and It values for every individual themostat. A PID algorithm is used for the 24 (0-23) built-in thermostats. PID is a generic control loop feedback mechanism (controller) widely used in industrial control systems: a PID is the most commonly used feedback controller. A PID controller calculates an "error" value as the difference between a measured process variable (room temperature) and a desired set point. The controller attempts to minimize the error by adjusting the process control inputs. In the absence of knowledge of the underlying process, PID controllers are the best controllers. However, for best performance, the PID parameters used in the calculation must be tuned according to the nature of the system – while the design is generic, the parameters depend on the specific system. Every thermostat has an integrated PID algorithm.
The PID controller calculation involves three separate parameters, and is accordingly sometimes called three-term control: the proportional (P), the integral (I) and derivative (D) values, denoted P, I, and D. The proportional value determines the reaction to the current error, the integral value determines the reaction based on the sum of recent errors, and the derivative value determines the reaction based on the rate at which the error has been changing. The weighted sum (“output” or “drive”) of these three actions is used to adjust the process via a control element such as the position of a control valve or the power supply of a heating element. Heuristically, these values can be interpreted in terms of time: P depends on the present error, I on the accumulation of past errors, and D is a prediction of future errors, based on current rate of change.
By tuning the three constants in the PID controller algorithm, the controller can provide control action designed for specific process requirements. The response of the controller can be described in terms of the responsiveness of the controller to an error, the degree to which the controller overshoots the setpoint and the degree of system oscillation.
To limit overshoot of the integral part of the algorithm, an integral threshold (It) can be set.

PID schematic.png


Reads Kp, Ki, Kd and It for every individual thermostat. Kp, Ki and Kd are the multiplication factors which will influence the total gain.
Every Thermostat has an integrated PID algorithm with its own set of parameters.


Returns
PID parameters [thermostat]: Kp=[Kp] Ki=[Ki] Kd=[Kd] It=[It]
PID parameters [thermostat]: Kp=[Kp] Ki=[Ki] Kd=[Kd] It=[It]
PID parameters [thermostat]: Kp=[Kp] Ki=[Ki] Kd=[Kd] It=[It]

Example:

pid config list
output:
PID parameters 00: Kp=010 Ki=001 Kd=003 It=002
PID parameters 01: Kp=009 Ki=001 Kd=003 It=002
PID parameters 02: Kp=005 Ki=003 Kd=003 It=001
...
PID parameters 24: Kp=010 Ki=001 Kd=003 It=001



pid config write [thermostat] [Kp] [Ki] [Kd] [It]

See the Thermostat page for the thermostat principles used in the Master Module
Sets Kp, Ki, Kd and It. Every thermostat can have an individual set of PID parameters. For more information about these gain factors, please refer to the instruction PID config list.


[thermostat]
Number of the thermostat, ranging from 0 to 23.
[Kp]
gain P
[Ki]
gain I
[Kd]
gain D
[It]
Integral threshold

Example:

pid config write 0 10 1 3 2 writes the following PID parameters: Kp=10, Ki=1, Kd=3 and It=2 for thermostat 0.



pid debug on

Turns PID debugging on. PID debugging will display the PID values of all active thermostats (a Thermostat is active when a temperature sensor and at least 1 output is linked to it) every minute.

Example:

pid debug on
output: OK
Every minute, similar output will appear on the console:
PID: 00  +000  -025  -072  0
PID: 01 +024  -004  +060 40
In the above example, 2 thermostats are active (0 and 1). The second thermostat has a P-drive of 24, an I-drive of -4 and a D-drive of 60. The total drive of thermostat 1 is 40 (always between 0 -63). When the total drive is 0, heating is off because the current setpoint is reached.

Notes:

  1. This instruction is generally used to check the PID parameters to be able to fine tune Kp, Ki, Kd and It. In normal circumstances, PID debug is always switched off



pid debug off

Turns PID debugging off. For more information please refer to pid debug on.



programmed setpoint read [thermostat] [setpoint]

Gets a specific preprogrammed setpoint temperature of a certain Thermostat. Every thermostat can have 6 (0-5) preprogrammed temperature setpoints.


[setpoint]
Number of the setpoint value, ranging from 0 to 5.
[thermostat]
Number of the thermostat, ranging from 0 to 23.


Returns
[thermostat] [temperature]

Example:

programmed setpoint read 15 3 will read programmed setpoint 3 of thermostat 15
output: 15 +16.0



programmed setpoint write [thermostat] [setpoint] [temperature]

Sets a preprogrammed setpoint temperature for a certain Thermostat.


[setpoint]
Number of the setpoint value, ranging from 0 to 5.
[thermostat]
Number of the thermostat, ranging from 0 to 23.
[temperature]
The temperature value between 0.0 and 50.0 degree Celcius

Example:

programmed setpoint write 15 3 16.0

Notes:

  1. The setpoint temperature must include 0 or 5 after the decimal or the instruction will return an error. current setpoint write 3 15 16.0 is correct, while current setpoint write 3 15 16 is not.




pump group read [pump group]

Returns a list with all outputs of a certain Pump Group.


[pump group]
Number of the pump group, ranging from 0 to 7.


Returns
[list number] [output] [output name]

Example:

pump group read 5
output:
00 010 output 0
01 008 output 1
02 015 Valve 1
03 016 Valve 2
04 017 Valve 3
05 018 Valve 4
06 019 Valve 5
07 020 Valve 6

Notes:

  1. See the Thermostat page for the thermostat principles used in the Master Module



pump group write [pump group] [line] [output]

Sets an output (heating valve for example) in a certain Pump Group on a given line.


[pump group]
Number of the pump group, ranging from 0 to 7.
[line]
Number of the line of the pump group on which to write the output.
[output]
Number of the output.

Example:

pump group write 5 2 15 will write output 15 on line 2 of pump group 5

Notes:

  1. The system interprets the pump group lists every minute by scanning them. This action always starts at line 0 and continues until value 255 is encountered, or until line 31 is reached.
  2. See the Thermostat page for the thermostat principles used in the Master Module



pump output read [pump group]

Gets the pump output of a Pump Group.


[pump group]
Number of the pump group, ranging from 0 to 7.


Returns
[output] [output name]

Example:

pump output read 5
output: 025 Pump Living The pump output of pump group 5 is 25.

Notes:

  1. See the Thermostat page for the thermostat principles used in the Master Module



pump output write [pump group] [pump output]

Sets the pump output of a Pump Group.


[pump group]
Number of the pump group, ranging from 0 to 7.
[pump output]
Number of the output.

Example:

pump output write 5 25 Sets pump output of pump group 5 to 25.

Notes:

  1. See the Thermostat page for the thermostat principles used in the Master Module



pump delay read

This parameter will read the delay in seconds needed between the activation of the valves (outputs in the Pump Group) and the activation of the pumps (pump output). Many valves are quite slow in opening so this parameter will add a delay so the valves can be fully open before the pump starts.


[pump delay time]
Delay in seconds before the pump output gets activated (0-248).


Returns
[pump delay time]

Example:

pump delay read
output: 120
'The pump output delay time is 120 seconds.

Notes

  1. See the Thermostat page for the thermostat principles used in the Master Module



pump delay write [pump delay time]

This parameter will program the delay in seconds needed between the activation of the valves (outputs in the Pump Group) and the activation of the pumps (pump output). Many valves are quite slow in opening so this parameter will add a delay so the valves can be fully open before the pumps start.


[pump delay time]
Delay in seconds before the pump output gets activated (0-248).

Example:

pump output write 5 25 will set the pump output of pump group 5 to 25.

Notes:

  1. See the Thermostat page for the thermostat principles used in the Master Module



reset

This instruction will reset the Master Module. All instructions in for example the action queue will be gone.



schedule read [schedule]

The Master has a built-in functionality that performs intelligent basic actions at a given time. For example: Let all the stores go up during the week at 8am, during the weekend at 9am. Lower them at 8pm in the evening every day. A maximum of 102 (0-101) scheduled actions can be defined.
This instruction will read a Scheduled Action as it is programmed in eeprom.


[schedule]
Number of the schedule to read.


Returns
[hours] [minutes] [day] [action type] [action number]

Example:

schedule read 10 will read scheduled action 10 programmed in eeprom
output: 14 43 9 0 20
At 14:43 on (DEC 9= BIN 00001001) every Tuesday (and keep scheduled action in queue), perform simple action 20 (byte 4 = 0)
14: Hour
43: Minute
9: Day
0: Basic Action type of action to be performed at a given time
20: Basic Action number to be performed at a given time

Notes:

  1. A scheduled action will only be performed when it is put in the action queue. A scheduled action can also be removed from the action queue by using the appropriate action type (see the Action Types page) at input page level, simple decision level, group action or scheduled action level (a scheduled action can remove another scheduled action from the action queue for example).
  2. A scheduled action will only be performed when it is put in the action queue. A scheduled action can also be removed from the action queue by using the appropriate action type (see the Action Types page) at input page level, simple decision level, group action, input page or scheduled action level (a scheduled action can remove another scheduled action from the action queue).
  3. When hour = 24 and minutes = 0 (24:00) is defined in a scheduled action, the queued action will be performed every minute as long as it remains in the queue and the day parameter is met. For the description of the action type byte, see the Action Types page.



schedule write [schedule] [hours] [minutes] [day] [action type] [action number]

Program a Scheduled Action in the eeprom. An action programmed in eeprom is not yet active and must be triggered (input page, group actions, simple decision, scheduled action or instruction schedule activate).


[schedule]
Number of the schedule to write.
[hours]
Hours
[minutes]
Minutes
[day]
Day
[action type]
Type of the action
[action number]
Number of the action

Example:

schedule write 10 15 45 9 0 20 will program schedule action 10 in eeprom

Notes:

  1. A scheduled action will only be performed when it is put in the action queue. A scheduled action can also be removed from the action queue by using the appropriate action type (see the Action Types page) at input page level, simple decision level, group action or scheduled action level (a scheduled action can remove another scheduled action from the action queue for example).
  2. A scheduled action will only be performed when it is put in the action queue. A scheduled action can also be removed from the action queue by using the appropriate action type (see the Action Types page) at input page level, simple decision level, group action, input page or scheduled action level (a scheduled action can remove another scheduled action from the action queue).



schedule activate [schedule]

Manually activates a Scheduled Action and puts it in the action queue.


[schedule]
Number of the schedule to activate.


Example:

schedule activate 10 will activate scheduled action 10



schedule queue list

Returns the list of (active) scheduled actions in the action queue.


[schedule]
Number of the schedule to write.
[hours]
Hours
[minutes]
Minutes
[day]
Day
[action type]
Type of the action.
[action number]
Number of the action.


Returns
[schedule] [hours] [minutes] [day] [action type] [action number]

Example:

schedule queue list
output: 010 15 45 8 0 20



schedule queue delete [queue line]

Deletes a scheduled action from the action queue. The scheduled action still remains in eeprom.


[queue line]
The line number of a scheduled action to delete.

Example:

schedule queue delete 10 will delete scheduled action 10 from the action queue.



schedule name write [schedule] [schedule name]

Sets the description for a specified schedule. For every Scheduled Action, a free text of maximum 16 characters can be programmed. This text will make it easier to identify the use of every scheduled action.


[schedule]
Number of the schedule.
[schedule name]
Description of the schedule, with a maximum of 16 characters.

Example:

schedule name write 10 Lights Off



schedule list

Lists all active scheduled actions, and their corresponding text (if the first byte of a schedule is < 255, then the schedule is active).
For every scheduled action, a free text of maximum 16 characters can be programmed. This text will it make easier to identify the use of every scheduled action.


Returns
[schedule] [schedule name]
[schedule] [schedule name]
...



startup read [startup line]

Reads the startup action at a given number (line).
The system allows a maximum of 100 (0-99) Basic Actions (simple actions, group actions, decisions and scheduled actions) to be activated at startup. This is very useful, particularly for scheduled actions that need to be put in the action queue for execution at a certain day/time.


[startup line]
The line number of the startup instruction to read.


Returns
[action type] [action number]

Example:

startup read 2 will read the startup instruction number 2.
output: 003 011 (this reads as: put scheduled (->3) action 11 in the action queue – see Action Types)

Notes:

  1. Once the system reads 255 as action type, it will stop reading or executing the rest of the list. For the description of the Basic action type byte, see Action Types



startup write [startup line] [action type] [action number]

Writes an action in the startup action list.
The system allows a maximum of 100 (0-99) Basic Actions (simple actions, group actions, decisions and scheduled actions) to be activated at startup. This is very useful, particularly for scheduled actions that need to be put in the action queue for execution at a certain day/time. To clear the entire startup list use the command startup write 1 255 255.
[startup line]
The line number of the startup instruction to write.
[action type]
Type of the Basic action.
[action number]
Number of the Basic action.

Example:

startup write 2 3 12 will write as startup action 2 scheduled action 12



startup list

Returns a list of programmed startup actions.
The system allows a maximum of 100 (0-99) Basic Actions (simple actions, group actions, decisions and scheduled actions) to be activated at startup. This is very useful, particularly for scheduled actions that need to be put in the action queue for execution at a certain day/time. Also see startup write for more info (including clearing the startup list).
[startup line]
The line number of the startup instruction to write.
[action type]
Type of the Basic action.
[action number]
Number of the Basic action.


Returns
[startup line] [action type] [action number]
[startup line] [action type] [action number]
...

Example:

startup list
output:
00 000 021
01 000 020
02 003 012
03 003 010

startup activate

Executes the startup list in the same way as it is executed at system startup.



sync debug on

This instruction will show which eeprom byte and page are being synchronised between Gateway (Master) and the remote modules

Please note that the synchronisation will continue all the time and once a full synchronisation is done, it will start again. Since a full synchronisation can take some time, you can force the system to synchronise certain eeprom page faster by using the instruction "sync page"


sync debug off

This instruction will stop showing which eeprom byte and page are being synchronised between Gateway (Master) and the remote modules

Please note that the synchronisation will continue all the time and once a full synchronisation is done, it will start again. Since a full synchronisation can take some time, you can force the system to synchronise certain eeprom page faster by using the instruction "sync page"


sync page [eeprom page]

This instruction will synchronise a particular eeprom page between gateway and remote modules like the CAN Control
[eeprom page]
This indicates the page number (0-255) of the Gateway (Master) eeprom to be synchronised with the remote modes (like the CAN control).

sync stop

This instruction will stop synchronising eeprom pages between gateway and remote modules like the CAN Control.

The synchronisation can be started again by using the CLI instruction "sync page". Please note that synchronisation will always be started again when the Master/Gateway is restarted.


temperature indicate [sensor]

This instruction will make the sensor input led of the corresponding temperature sensor blink for 20 seconds. This is a useful function to find back a certain temperature sensor connection. Please note that this instruction will only work on temperature modules with an individual input status led.


[sensor]
Number of temperature sensor



temperature list

Returns a list of all temperature sensors (max 32: 0-31) and their corresponding temperature value (of the onboard sensor).


[sensor]
Number of temperature sensor


Returns
[sensor] [temperature]
[sensor] [temperature]
[sensor] [temperature]
...

Example:

temperature list
output:
00 +23.5
01 +23.0
02 Sensor not connected
...



temperature module enable

Enables the 16 ports temperature module. The system has the possibility to connect one 16 ports temperature module or up to 4 temperature modules of 8 ports. Or the 8 ports modules can be used or 1 module of 16 ports (the 8 ports and 16 ports temperature module cannot be combined in 1 configuration). The OpenMotics temperature modules allows sensors to be placed at long cables (up to 100 meters).

Notes:

  1. When using the 8 ports Temperature Module, this instruction cannot be used and the module must be added by using the instruction module discover start and pushing the init button on the 8 ports temperature module



temperature module disable

Disables the 16 ports temperature module. The system has the possibility to connect one 16 ports temperature module or up to 4 temperature modules of 8 ports. Or multiple 8 ports modules can be used or 1 module of 16 ports (the 8 ports and 16 ports temperature module cannot be combined in 1 configuration). The OpenMotics temperature modules allows sensors to be placed at long cables (up to 100 meters+).



thermostat details read [thermostat]

This instruction will read the temperature and timing details of an individual Thermostat.
[thermostat]
Number of the thermostat
Returns
  • Current setpoint
  • Programmed setpoint 0 (Day 1)
  • Programmed setpoint 1 (Night)
  • Programmed setpoint 2 (Day 2)
  • Programmed setpoint 3 (Away)
  • Programmed setpoint 4 (Vacation)
  • Programmed setpoint 5 (Party)
  • Start stop timings for day 1 and day 2 from Monday (1) till Sunday (7)


Example:

thermostat details read 0
output:
Current Setpoint: 00 +18.5
Programmed Setpoint 0: 00 +22.0
Programmed Setpoint 1: 00 +16.0
Programmed Setpoint 2: 00 +22.5
Programmed Setpoint 3: 00 +16.0
Programmed Setpoint 4: 00 +15.0
Programmed Setpoint 5: 00 No Valid Data
1 07:00 08:30 16:30 22:50
2 07:00 08:30 16:30 22:50
3 07:00 08:30 12:30 22:40
4 07:00 08:30 16:30 22:50
5 07:00 08:30 16:30 22:50
6 07:00 08:30 11:30 22:50
7 07:00 08:30 10:30 22:50
In this example, on Wednesday (3), when the thermostat is in automatic mode, programmed setpoint 0 (day 1) will be used as current setpoint between 7h and 8h30 and programmed setpoint 2 (day 2) will be used from 12h30 to 22h40, in all the rest of the timings, programmed setpoint 1 (Night) will be used.



thermostat outside link read

Reads the sensor number of the outside sensor. One of the possible 30 temperature sensors (0-29) can be linked to the thermostat system as outside sensor. This will make it possible to switch on/off the thermostat system depending on the outside temperature (see also thermostat activate read and thermostat activate write).


[sensor]
Number of temperature sensor (0-31)


Returns
[sensor]

Notes:

  1. See the Thermostat page for the thermostat principles used in the Master Module



thermostat outside link write [sensor]

Writes the sensor number of the outside sensor. One of the possible 32 temperature sensors (0-31) can be linked to the thermostat system as outside sensor. This will make it possible to switch on/off the thermostat system depending on the outside temperature.


[sensor]
Number of the sensor, ranging from 0 to 31.

Notes:

  1. See the Thermostat page for the thermostat principles used in the Master Module



thermostat threshold read

Reads the thermostat threshold temperature. The system has 24 (0-23) built-in thermostats. Depending on the outside temperature, those thermostats will become active. This instruction will read the outside threshold temperature. When the outside temperature is below the outside threshold temperature, all thermostats will become active, above the outside threshold temperature, all thermostats will become inactive.


Returns
[temperature]


Example:

thermostat threshold read
output: +20.0
In this example, when the outside temperature is below 20 degrees Celsius, all thermostats become active. Above this temperature, no thermostats will be active even when the room temperature is below the set temperature setpoint.

Notes:

  1. See the Thermostat page for the thermostat principles used in the Master Module



thermostat threshold write

Writes the Thermostat threshold temperature. The system has 24 built-in thermostats. Depending on the outside temperature, those thermostats will become active. This instruction will read the outside threshold temperature. When the outside temperature is below the outside threshold temperature, all thermostats will become active, above the outside threshold temperature, all thermostats will become inactive.


Example:

thermostat threshold write 20.0
In this example, when the outside temperature is below 20 degrees Celsius, all thermostats become active. Above this temperature, no thermostats will be active even when the room temperature is below the set temperature setpoint.



thermostat sensor read [thermostat]

Reads the Thermostat sensor. The system has built-in thermostat functions. In total, 24 (0-23) different thermostats can be activated. Every thermostat can drive 2 outputs and can be linked to 1 temperature sensor. The system can have a maximum of 32 temperature (0-31) sensors.
This instruction will read the thermostat linked temperature sensor.


[thermostat]
Number of the thermostat, ranging from 0 to 23
[sensor]
Temperature sensor number


Returns
[sensor]

Example:

thermostat sensor read 0
output: 3



thermostat sensor write [thermostat] [sensor]

Writes the Thermostat sensor. The system has built-in thermostat functions. In total, 24 (0-23) different thermostats can be activated. Every thermostat can drive 1 output and can be linked to 1 temperature sensor. The system can have a maximum of 32 temperature (0-31) sensors.


[thermostat]
Number of the thermostat, ranging from 0 to 23.
[sensor]
Number of the temperature sensor, ranging from 0 to 31.

Example:

thermostat sensor write 0 3



thermostat link read [thermostat]

Gets the output number that is linked to a certain Thermostat. Every thermostat (0-23) can be linked up to 2 outputs. An output can be a relay or a valve (0-10V) which will turn heating on or off. The output will depend on the PID calculation for that thermostat, the current setpoint and the temperature in that room (which is linked to the thermostat number (ie: Thermostat 5 is linked to temperature 3 and current setpoint 0)). The second output will be used when the first output can’t reach the requested setpoint, the second output will be switched on. An example is the usage of floor heating combined with convectors. When the outside temperature is very low or a room needs to be heated up faster, floor heating can be assisted with traditional convectors but only when the floor heating isn’t giving enough output.


[thermostat]
Number of the thermostat, ranging from 0 to 23.


Returns
[output1] [output2]
[output1]
The first output that will be driven by the thermostat
[output2]
The second output that will be driven by the thermostat

Example:

thermostat link read 1
output: 15 25 Thermostat 1 will drive output 15 and the second output 25

Notes:

  1. When an output gives value 255, no output is programmed. 255 can also be programmed when an output for a certain thermostat will not be used anymore.



thermostat link write [thermostat] [output1] {output2}

Sets the output number that is linked to a certain Thermostat. Every thermostat (0-23) can be linked to 2 outputs. These outputs can be a relay or a valve (0-10V) which will turn heating on or off. The outputs will depend on the PID calculation for that thermostat, the current setpoint and the temperature in that room (which is linked to the thermostat number.
The second output will be used when the first output can’t reach the requested setpoint, the second output will be switched on. An example is the usage of floor heating combined with convectors. When the outside temperature is very low or a room needs to be heated up faster, floor heating can be assisted with traditional convectors but only when the floor heating isn’t giving enough output.


[thermostat]
Number of the thermostat, ranging from 0 to 23.
[output1]
First output that will be driven by the thermostat
{output2}
optional: second output that will be driven by the thermostat

Example:

thermostat link write 1 15
output: OK
Thermostat 1 now drives output 15


thermostat link write 1 15 25 Thermostat 1 will drive output 15 as the first output and drive output 25 as the second output.
output: OK

Notes:

  1. When an output gives value 255, no output is programmed. 255 can also be programmed when an output for a certain thermostat will not be used anymore.



thermostat list

Returns a list with all active thermostats, the current setpoint temperature, the current temperature, output on (1) or off(0), output value (0-63)and the output name.


Returns
[thermostat] [thermostat name] [current setpoint] [current temperature] ([sensor]) - [output1 state] [output1 value] [output1 name] ([output1]) - [output2 state] [output2 value] [output2 name] ([output2])

Example:

thermostat list
output:
0 Th Living +16.0 +17.5(5) - 0 0 Valve Living(23) - 0 0 Empty(255)
1 Th Bathroom +22.0 +19.5(16) - 1 63 Valve bathroom 1(12) - 1 23 Valve2 Bathr(15)
...
In the above example, thermostat 1 has a current setpoint of 22 degree celcius, in the room itself it is 19.5 degree celcius (measured by temperature sensor 16), the heating valve is still open (1) at 63 (always between 0 and 63 on output 12), a second output is used, output 15 is open at a value of 23 and has following name: “Valve2 Bathr”. When the output number is 255, no output is defined.



thermostat mode read

This instruction will read the master Thermostat mode. With this instruction, you can read if the thermostats are on, in which mode (automatic or manual) they are and read the full binary value of thermostat mode. When the system is in Thermostat Multi Tenant mode, the Multi Tenant configuration bytes will be displayed as well.


Returns
[Heating/Cooling thermostat ON/OFF]
[thermostat automatic]
[thermostat binary value]
[Optional: Multi-tenant configuration byte]

Example1: System is not in Multi Tenant Mode

thermostat mode read
output:
H: Thermostat ON=1
Automatic Mode=1
10001000

Example2: System is in Multi Tenant Mode

thermostat mode read
output:
H: Thermostat ON=1
Automatic Mode=0
11000100
Multi Tenancy enabled
00 00000101
01 00010000
02 11111111
03 11111111
04 11111111
05 11111111
06 11111111
07 11111111
08 11111111
09 11111111
10 11111111
11 11111111
12 11111111
13 11111111
14 11111111
15 11111111
16 11111111
17 11111111
18 11111111
19 11111111
20 11111111
21 11111111
22 11111111
23 11111111

See Thermostat Mode for more explanation about thermostats, see Thermostat Multi Tenant pages for more explanation about the multi-tenancy functionality and explanation regarding the Multi-tenancy configuration bytes.


thermostat mode write [thermostat mode]

This instruction will write the master Thermostat mode. See Thermostat Mode for more explanation about the Thermostat Mode value.
[thermostat mode]
Thermostat mode value

Example:

thermostat mode write 135



thermostat name write [thermostat] [thermostat name]

Sets the description for a specified Thermostat. For every thermostat, a free text of maximum 16 characters can be programmed. This text will make it easier to identify every thermostat.


[thermostat]
Number of the thermostat.
[thermostat name]
Description of the thermostat, with a maximum of 16 characters.

Example:

<code>thermostat name write 1 Th Bathroom

Notes:

  1. To see the programmed names, please use thermostat list



thermostat program data [thermostat] [config parameter] [data]

This instruction can write all different Thermostat parameters in the system like setpoints, day nights timings etc. Please note that this instruction only uses system values (time and temperature are in system value).


[thermostat]
Thermostat number for which data needs to be written, ranging from 0 to 23.
[config parameter]
Parameter that defines the type of data that needs to be written (see table below)
[data]
Data to be written


Returns
OK
The below table indicates the different config parameters that can be used:
Config parameter Description Data
0 Current setpoint System value temp
1 Programmed setpoint 0 System value temp day1
2 Programmed setpoint 1 System value temp night
3 Programmed setpoint 2 System value temp day2
4 Programmed setpoint 3 System value temp Away
5 Programmed setpoint 4 System value temp Vacation
6 Programmed setpoint 5 System value temp Party
7 P parameter (PID)
8 I parameter (PID)
9 Int parameter (PID)
10 D parameter (PID)
11 Temperature threshold System value temp
12 Time: Day
13 Time: Hours
14 Time: Minutes
15 Room sensor
16 Output number Valve1
17 Output number Valve2 System value temp day1
18-45 Programmed timing System value time
Time and temperature values are always in System Value format.



time read

Gets the time from the Master. The master is equipped with a real time clock with a battery backup (when the battery jumper is set).


[time]
Time in format [hours]:[minutes]:[seconds]
[day]
1 to 7, 1=Monday, 2=Tuesday,...


Returns
[time] [day]

Example:

time read
output: 19:18:22 2

Notes:

  1. When the battery is connected (jumper is set), even when the power is disconnected, the time, Thermostat setpoints and the light status will be kept in the real time clock RAM memory.



time write [hours] [minutes] [seconds] [day]

Sets the time into the system.


[hours]
Hours
[minutes]
Minutes
[seconds]
Seconds
[day]
1 to 7, 1=Monday, 2=Tuesday, ...

Example:

time write 19:21:55 3 will write the current time as 19:21:55 on day 3.

Notes:

  1. When the battery is connected (jumper is set), even when the power is disconnected, the time, Thermostat setpoints and the light status will be kept in the real time clock RAM memory.



timer queue list

Returns a list of all timer entries in the timer queue.


Returns
[Queue line] [action type] [action number] [timer input] [timer seconds]
[Queue line] [action type] [action number] [timer input] [timer seconds]
...

Example:

timer queue list
output:
000 102 005 240 119
001 106 015 240 035



validation bit read [bit]

Gets the content of the free usable validation bits. Validation bits (0-255 are available) are used in intelligent functions to remember a certain state (store is up for example).


[bit]
Number of the validation bit to read.


Returns
[validation value]
Contents of a validation bit can only be 0 or 1.

Notes:

  1. Validation bits are kept in RAM, when the system is powered off or restarted, the content of the validation bits is lost.
  2. Validation bits can also be used in simple decisions as well as in [Basic Action|Basic Actions]] (IF THEN ELSE ENDIF)
  3. To remember the up/down state of an individual Roller/Shutter in Large Installation mode when using Basic Action 103, validation bit 120-239 are used. To remember the up/down state of a Roller/shutter group in Large Installation mode when using Basic Action 107, validation bit 90-119 are used. This means that, when Large Installation mode is enabled, the use of validation bit 90-239 should be avoided.



validation bit write [bit] [validation value]

Sets the content of the free usable validation bit. Validation bits (0-255 are available) are used in intelligent functions to remember a certain state (store is up for example).


[bit]
Number of the validation bit
[validation value]
Contents of a validation bit (can only be 0 or 1)

Example:

validation bit write 87 1 will write 1 in validation bit 87.

Notes:

  1. Validation bits are kept in RAM, when the system is powered off or restarted, the content of the validation bits is lost.
  2. Validation bits can also be used in simple decisions as well as in Basic Actions (IF THEN ELSE ENDIF)
  3. To remember the up/down state of an individual Roller/Shutter in Large Installation mode when using Basic Action 103, validation bit 120-239 are used. To remember the up/down state of a Roller/shutter group in Large Installation mode when using Basic Action 107, validation bit 90-119 are used. This means that, when Large Installation mode is enabled, the use of validation bit 90-239 should be avoided.