Difference between revisions of "CLI Reference Guide AIO"
(375 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
+ | Information about the All In One (AIO) can be found in [[AIO General Information]]. | ||
+ | |||
The Gateway has 2 computer systems built-in: A Master Controller (Microchip DSPIC33) and a Gateway Controller (Linux Based Beagle Bone). 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. | The Gateway has 2 computer systems built-in: A Master Controller (Microchip DSPIC33) and a Gateway Controller (Linux Based Beagle Bone). 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. | ||
Line 7: | Line 9: | ||
* Advanced Mode: API (The Master controller and Gateway controller will use Advanced mode to communicate) | * 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) | * Simple Mode: CLI (Simple Mode will be used by Maintenance mode in the cloud or when a direct RS232 connection is established) | ||
+ | |||
+ | The advantages of the AIO (All In One) design is that API and CLI mode can be used simultaneously (on 2 different UART ports). | ||
=== Notes === | === Notes === | ||
Line 16: | Line 20: | ||
# 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 AIO]] section. | # 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 AIO]] section. | ||
# An instruction will only be executed if the Master has responded with “OK” | # An instruction will only be executed if the Master has responded with “OK” | ||
+ | |||
+ | For the Release Notes of the AIO, please see [[AIO Release Notes]]. | ||
===Notation=== | ===Notation=== | ||
Line 39: | Line 45: | ||
==Instruction Set== | ==Instruction Set== | ||
+ | ===General instructions=== | ||
+ | ====change debug off==== | ||
+ | |||
+ | :''This instruction will disable the debug function for changes. When the debug function is activate, every time a sensor value changes (but could also be output or validation bit etc), the changed device number (like sensor) and the new value will be printed.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Deactivate change debug mode | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>change debug off</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====change debug on==== | ||
+ | |||
+ | :''This instruction will enable the debug function for changes. When the debug function is activate, every time a sensor value changes (but could also be output or validation bit etc), the changed device number (like sensor) and the new value will be printed.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Activate change debug mode | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>change debug on</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ====error list ==== | ||
+ | ====el ==== | ||
+ | :''This instruction will list all configured modules, their ID's, the number off errors on this module and the status of each module (Good, Degraded1, Degraded2, Degraded3, Offline, Forced Offline)'' | ||
+ | |||
+ | :;Returns | ||
+ | |||
+ | --- Total Uptime: 000334 Hours, Last Startup: 20:23:50 07/12/20 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 26'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN/12V: 1/1/1, CANTERM: 1, BB debug: 0, Fw: 1.0.70 --- | ||
+ | -------Output------------ID---------Err-------Status------- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) | ||
+ | 01 (O E 008->015) 079.222.189.122 00000 GOOD (000) | ||
+ | 02 (D E 016->023) 068.072.145.035 00000 GOOD (000) | ||
+ | -------Input-------------ID---------Err-------Status------- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) | ||
+ | 02 (b C 016->023) 098.000.000.002 00000 GOOD (000) | ||
+ | 03 (b C 024->031) 098.000.000.003 00000 GOOD (000) | ||
+ | 04 (I E 032->039) 073.195.134.013 00000 GOOD (144) | ||
+ | -------Sensor------------ID---------Err-------Status------- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) | ||
+ | 01 (T E 008->015) 084.001.003.007 00000 GOOD (080) | ||
+ | -------CAN Control-------ID---------Err-------Status------- | ||
+ | 00 (C E 000->000) 067.131.006.013 00000 GOOD (016) | ||
+ | -------Micro CAN---------ID---------Err-------Status------- | ||
+ | 00 (m C 000->000) 000.100.154.092 00215 DEGRADED 2 (000) | ||
+ | 01 (m C 001->001) 100.030.245.232 00000 GOOD (000) | ||
+ | 02 (m C 006->006) 100.232.121.136 00000 GOOD (000) | ||
+ | OK | ||
+ | |||
+ | :Below, you can find a short explanation what the different items mean: | ||
+ | :*First parenthesis first character: module type1 ('O'->RS485 module, 'D'->RS485 dim (0-10V) module, 'l'->Brain(+) internal open collector output, 'i'->Input module, 'o'->output module, 'b'->Micro Can virtual input module, 's'-> Can virtual sensor module, 'T'->RS485 temperature module, 'R'->RS485 output module fully configured as Roller/Shutter module, 'm'->Micro Can module) | ||
+ | :*First parenthesis second character: module type2 ('I'-> Internal inputs/outputs of the Brain(+), 'E'->External RS485 module, 'C'->Linked to External Micro CAN module, 'V'->Virtual module) | ||
+ | :*First parenthesis 000->007: indicate from for example which input nr is the first and last input of that module | ||
+ | :*ID: this is the unique ID of this module | ||
+ | :*Err: Number of errors for each of the modules. CLI instruction "error clear" can be used to reset all errors | ||
+ | :*Status: 4 status possibilities (GOOD, DEGRADED 1, DEGRADED 2, DEGRADED 3, OFFLINE) | ||
+ | :*Second parenthesis: indicates the type of scanning the module will have. | ||
+ | :*BB debug: When 1, debug mode is ON and all BA's that are executed will also be forwarded to the BB over UART API | ||
+ | :In the list, you'll also see the health status of the connected Micro CAN's (directly via the internal CAN bus of the Brain(+) or externally via the CAN Control). Each Micro CAN has 3 bytes as an address and as you can see in the above example, you see 4 Bytes: | ||
+ | :* The first byte of the 4 bytes address of the Micro CAN in the above list is the Bus number: | ||
+ | :** 100: Internal CAN Bus | ||
+ | :** 000: CAN bus of the first CAN Control | ||
+ | :** 001: CAN bus of the second CAN Control | ||
+ | :** 002: CAN bus of the third CAN Control | ||
+ | :** ... | ||
+ | ---- | ||
+ | |||
+ | ====error clear==== | ||
+ | |||
+ | :''This instruction will delete all the errors and will start communicating again with the RS485 modules at the normal pace'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>error clear</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====firmware version==== | ||
+ | |||
+ | :''This instruction will display the firmware of the Master and all connected slaves. The firmware version of slaves is requested directly via the RS485 bus in other words, when a slave is not online, the firmware version will not be displayed'' | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>firmware version</code> | ||
+ | |||
+ | :;Returns | ||
+ | --- Fw version Brain(+): V1.0.68 --- | ||
+ | Output: | ||
+ | 00 (l I) 108.000.000.000 -> Internal/Virtual | ||
+ | 01 (O E) 079.222.189.122 -> V6.0.7 | ||
+ | 02 (D E) 068.072.145.035 -> V6.0.7 | ||
+ | Input: | ||
+ | 00 (i I) 105.000.000.000 -> Internal/Virtual | ||
+ | 01 (b C) 098.000.000.001 -> Internal/Virtual | ||
+ | 02 (b C) 098.000.000.002 -> Internal/Virtual | ||
+ | 03 (I E) 073.195.134.013 -> V6.0.12 | ||
+ | Sensor: | ||
+ | 00 (s C) 115.000.000.000 -> Internal/Virtual | ||
+ | 01 (s C) 115.000.000.001 -> Internal/Virtual | ||
+ | 02 (T E) 084.001.003.007 -> V6.0.6 | ||
+ | Can: | ||
+ | 00 (C E) 067.131.006.013 -> V6.0.27 | ||
+ | OK | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ====health debug off ==== | ||
+ | |||
+ | :''This instruction will disable the CLI console debug function for health related matters. When for example a sensor is not responding for 2 minutes, a debug message will appear when this debug function is enabled'' | ||
+ | |||
+ | :;Returns | ||
+ | ::OK | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====health debug on ==== | ||
+ | |||
+ | :''This instruction will enable the CLI console debug function for health related matters. When for example a sensor is not responding for 2 minutes, a debug message will appear when this debug function is enabled'' | ||
+ | |||
+ | :;Returns | ||
+ | ::OK | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====logging list [number of lines*]==== | ||
+ | |||
+ | :''* is an optional value, if the optional value is not used, the system will print the last 32 lines of the FRAM logging'' | ||
+ | |||
+ | :''This instruction will print the FRAM logging. Events, Errors and BA's can be logged depending on the settings in Eeprom, see Memory Model Page0/Byte13'' | ||
+ | |||
+ | :;Returns | ||
+ | logging list | ||
+ | 0000(P056/B048): 21/04/19 17:22:11 BA 001 000 000 027 000 000 000 000 | ||
+ | 0001(P056/B032): 21/04/19 17:22:11 BA 000 016 000 010 000 000 000 000 | ||
+ | 0002(P056/B016): 21/04/19 17:22:11 BA 001 001 000 027 000 000 000 000 | ||
+ | 0003(P056/B000): 21/04/19 17:22:10 BA 001 000 000 027 000 000 000 000 | ||
+ | 0004(P055/B240): 21/04/19 17:22:10 BA 000 016 000 010 000 000 000 000 | ||
+ | 0005(P055/B224): 21/04/19 17:22:10 BA 001 001 000 027 000 000 000 000 | ||
+ | 0006(P055/B208): 21/04/19 17:22:10 BA 001 000 000 027 000 000 000 000 | ||
+ | 0007(P055/B192): 21/04/19 17:22:10 BA 000 016 000 010 000 000 000 000 | ||
+ | 0008(P055/B176): 21/04/19 17:22:10 BA 001 001 000 027 000 000 000 000 | ||
+ | 0009(P055/B160): 21/04/19 17:22:10 BA 001 000 000 027 000 000 000 000 | ||
+ | 0010(P055/B144): 21/04/19 17:22:09 BA 000 016 000 010 000 000 000 000 | ||
+ | 0011(P055/B128): 21/04/19 17:22:09 BA 001 001 000 027 000 000 000 000 | ||
+ | 0012(P055/B112): 21/04/19 17:22:08 BA 001 000 000 027 000 000 000 000 | ||
+ | 0013(P055/B096): 21/04/19 17:22:08 BA 000 016 000 010 000 000 000 000 | ||
+ | 0014(P055/B080): 21/04/19 17:22:08 BA 001 001 000 027 000 000 000 000 | ||
+ | 0015(P055/B064): 21/04/19 17:22:07 BA 001 000 000 027 000 000 000 000 | ||
+ | 0016(P055/B048): 21/04/19 17:22:07 BA 000 016 000 010 000 000 000 000 | ||
+ | 0017(P055/B032): 21/04/19 17:22:07 BA 001 001 000 027 000 000 000 000 | ||
+ | 0018(P055/B016): 21/04/19 17:21:49 BA 001 000 000 027 000 000 000 000 | ||
+ | 0019(P055/B000): 21/04/19 17:21:49 BA 001 001 000 027 000 000 000 000 | ||
+ | 0020(P054/B240): 21/04/19 17:21:31 BA 000 000 000 010 000 000 000 000 | ||
+ | 0021(P054/B224): 21/04/19 17:21:22 BA 000 001 000 011 000 000 000 000 | ||
+ | 0022(P054/B208): 21/04/19 17:21:15 BA 000 001 000 010 000 000 000 000 | ||
+ | 0023(P054/B192): 21/04/19 17:20:22 BA 000 255 000 255 000 000 000 000 | ||
+ | 0024(P054/B176): 21/04/19 17:17:05 EV 254 003 000 000 002 004 000 000 | ||
+ | 0025(P054/B160): 21/04/19 17:16:11 EV 254 002 000 000 000 000 000 000 | ||
+ | 0026(P054/B144): 21/04/19 16:35:16 ER 005 001 000 004 000 000 000 000 | ||
+ | 0027(P054/B128): 21/04/19 16:24:07 ER 005 001 000 004 000 000 000 000 | ||
+ | 0028(P054/B112): 21/04/19 14:40:59 ER 005 001 000 004 000 000 000 000 | ||
+ | 0029(P054/B096): 21/04/19 13:57:05 ER 005 001 000 004 000 000 000 000 | ||
+ | 0030(P054/B080): 21/04/19 13:53:07 ER 006 001 011 083 011 083 000 000 | ||
+ | 0031(P054/B064): 21/04/19 12:48:39 ER 006 001 011 083 011 083 000 000 | ||
+ | OK | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ====pid debug off ==== | ||
+ | |||
+ | :''This instruction will disable the CLI console debug function for PID related matters (only used in combination with HVAC module). | ||
+ | |||
+ | :;Returns | ||
+ | ::OK | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====pid debug on ==== | ||
+ | |||
+ | :''This instruction will enable the CLI console debug function for PID related matters (only used in combination with HVAC module). | ||
+ | |||
+ | :;Returns | ||
+ | ::OK | ||
+ | |||
+ | To enable debugging, use following instruction: | ||
+ | pid debug on | ||
+ | When a PID filter is enabled (when disabled, nothing will be displayed) on 1 of the connected HVAC modules, following will appear on the console (example): | ||
+ | 17:51:15 084.075.215.000 pid:0 En:1(H) sensor:19.0(3) setpt:22.5 Err:7 P:49 I:0 D:0 Drive=49 Out=49(0) | ||
+ | Explanation: | ||
+ | * 17:51:15 -> Time | ||
+ | * 084.075.215.000 -> ID of the HVAC module (important when more then 1 HVAC module is connected) | ||
+ | * pid:0 -> PID 0 of the HVAC module is used | ||
+ | * En:1(H) -> Module is enabled (=1) and PÏD filter is in Heating(H) mode. Cooling(C) is also possible | ||
+ | * sensor:19:0(3) -> Sensor is measuring 19.0 degree celsius en Sensor (3) of this HVAC module is used for this PID filter | ||
+ | * sept:22.5 -> The thermostat setpoint is now set at 22.5 degree Celsius | ||
+ | * Err: 7 -> The calculated PID error is 7 | ||
+ | * P:49 -> The calculated P result is 49 | ||
+ | * I:0 -> The calculated I result is 0 | ||
+ | * D:0 -> The calculated D result is 0 | ||
+ | * Drive=49 -> The calculated PID drive (P+I+D) is 49 | ||
+ | * Out=49(0) -> Analog output (0) will be driven with value 49 (0-255) | ||
+ | |||
+ | When the display rate of the debug information is not high enough, the sampling frequency of the HVAC module can be increased by using eeprom memory location 0/4. For example, increase the speed to display every 8 seconds the PID information: | ||
+ | eeprom write 0 4 10 | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====register list ==== | ||
+ | |||
+ | :''This instruction will list all processor registers and the present values. This is for debug purposes'' | ||
+ | |||
+ | :;Returns | ||
+ | |||
+ | ---Register Values--- | ||
+ | 00 00000 00000 00000 00087 00064 00658 16385 00128 00514 00000 00000 00000 | ||
+ | 01 00003 00000 00000 00000 00000 00000 32776 32776 32776 32776 01296 01040 | ||
+ | 02 01040 01296 00131 00272 15376 00960 08252 00000 00195 26115 13088 12290 | ||
+ | 03 00390 00129 00129 00129 16400 00000 00004 00000 00064 00000 00000 00000 | ||
+ | 04 00064 00000 00000 00000 00000 06280 49154 00008 00004 00000 00780 00000 | ||
+ | 05 00000 00000 05188 05188 25668 01089 17476 17476 17476 04676 17476 17476 | ||
+ | 06 17476 16452 17476 17476 17476 01028 17472 16448 00064 05952 16384 17429 | ||
+ | 07 17408 17476 17408 17472 17472 01092 00271 32768 32768 00000 00000 00000 | ||
+ | 08 00000 00000 00000 00000 36896 36896 00016 00016 00000 32768 00000 00000 | ||
+ | 09 00046 00000 00010 00010 00000 00000 00000 00000 00006 00006 | ||
+ | OK | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ====reset ==== | ||
+ | |||
+ | :''reset the CAN stack see https://wiki.openmotics.com/index.php/AIO_Release_Notes#Factory_Reset_of_a_full_installation_can_be_done_with_following_guideline'' | ||
+ | |||
+ | :;Returns | ||
+ | ::OK | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ====state machine list ==== | ||
+ | |||
+ | :''This instruction will list all main state machines with the last, the minimum and maximum execution time'' | ||
+ | |||
+ | :;Returns | ||
+ | #----Last----Min-----Max------Description------------------ | ||
+ | 00 03 00004ms 00002ms 01402ms UART1 receive | ||
+ | 01 00 00000ms 00000ms 00000ms UART2 receive | ||
+ | 02 00 00000ms 00000ms 00000ms UART3 receive | ||
+ | 03 01 00000ms 00000ms 00000ms UART4 receive | ||
+ | 04 00 00061ms 00001ms 00238ms I2C1 | ||
+ | 05 00 00002ms 00001ms 00052ms I2C2 | ||
+ | 06 02 00205ms 00202ms 00258ms Update Time/Date | ||
+ | 07 00 00001ms 00001ms 00016ms Immediate Queue | ||
+ | 08 00 00002ms 00002ms 00006ms Timer 100ms | ||
+ | 09 00 00001ms 00001ms 00005ms Timer 1 second | ||
+ | 10 00 00005ms 00001ms 00005ms Timer 1 minute | ||
+ | 11 00 15444ms 15444ms 15444ms Perform eeprom activate | ||
+ | 12 01 00387ms 00116ms 00822ms CLI print text | ||
+ | 13 00 00000ms 00000ms 00000ms CLI action execute | ||
+ | 14 05 00001ms 00001ms 00016ms Scan modules over RS485 network | ||
+ | 15 00 00035ms 00001ms 00063ms RS485 modules health status check | ||
+ | 16 00 00001ms 00001ms 00003ms Check Error, print, store in FRAM | ||
+ | 17 00 00001ms 00001ms 00024ms Check input queue and actions | ||
+ | 18 00 00000ms 00000ms 00000ms Check input delay queue and actions | ||
+ | 19 00 01391ms 01391ms 01391ms CLI print registers | ||
+ | 20 00 00002ms 00002ms 00010ms Check CAN1 RX queue | ||
+ | 21 00 00013ms 00001ms 00069ms Check CAN1 TX queue | ||
+ | 22 00 00000ms 00000ms 00000ms Check hardware health | ||
+ | 23 00 00000ms 00000ms 00000ms Check leds | ||
+ | 24 00 00001ms 00001ms 00084ms Check internal outputs | ||
+ | 25 00 00002ms 00001ms 00009ms Check internal inputs | ||
+ | 26 00 00000ms 00000ms 00000ms Execute Group Action | ||
+ | 27 00 00002ms 00001ms 00004ms Execute list of actions every minute | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ====module discover start==== | ||
+ | |||
+ | :''This instruction will start the discovery mode of the RS485 Bus for the non-energy modules. When this instruction is executed, the normal function of the bus is stopped to be able to add new modules.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>module discover start</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====module discover stop==== | ||
+ | |||
+ | :''This instruction will stop the discovery mode of the RS485 Bus for the non-energy modules'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>module discover stop</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====startup group read==== | ||
+ | |||
+ | :''A group Action can be defined that needs to be executed when the system starts. This instruction will read the group nr (0-254) that will be executed at startup.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>group nr</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>startup group read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>5</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====startup group write [group nr]==== | ||
+ | |||
+ | :''A group Action can be defined that needs to be executed when the system starts. This instruction will write the group nr (0-254) that will be executed at startup.'' | ||
+ | |||
+ | :;[group nr] | ||
+ | ::Indicates which group nr that needs to be executed at startup. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>startup group write 5</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====queue list==== | ||
+ | |||
+ | :''This instruction will print on console the immediate buffer queue. This instruction can also be used to see what's been happening recently and see the instruction that have just been executed.'' | ||
+ | |||
+ | :;Returns | ||
+ | :: Full list of the immediate queue including values of all pointers used | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>queue list</code> | ||
+ | |||
+ | :;Returns | ||
+ | :: Queue list | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====digital output chip read==== | ||
+ | AS OF VERSION 1.0.150 | ||
+ | :''This instruction will print on console the type of digital output chip that is configured (PCA9534 VS PCF8574). Default value is the PCA variant'' | ||
+ | |||
+ | :;Returns | ||
+ | :: setting of the configured chip | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>digital output chip read</code> | ||
+ | |||
+ | :;Returns | ||
+ | :: 0x55 == PCF8574 | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====digital output chip write [chip type]==== | ||
+ | AS OF VERSION 1.0.150 | ||
+ | :''This instruction will write the type of digital output chip that is configured (PCA9534 VS PCF8574).'' | ||
+ | |||
+ | :;[chip type] | ||
+ | ::The type of chip that is placed on the PCB for controlling the digital outputs | ||
+ | :: - 0x55 == 85 == PCF8574 | ||
+ | :: - 0xff == 255 == PCA9534 | ||
+ | |||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>digital output chip write 85</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===Time & Date instructions=== | ||
+ | ====days group follow read==== | ||
+ | |||
+ | :''A group Action can be defined that needs to be executed when the date (day) changes. This instruction will read the group nr (0-254) that will be executed at day change.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>group nr</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>days group follow read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>5</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====days group follow write [group nr]==== | ||
+ | |||
+ | :''A group Action can be defined that needs to be executed when the date (day) changes. This instruction will write the group nr (0-254) that will be executed at day change.'' | ||
+ | |||
+ | :;[group nr] | ||
+ | ::Indicates which group nr that needs to be executed at day change. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>days group follow write 6</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ---- | ||
+ | ====hours group follow read==== | ||
+ | |||
+ | :''A group Action can be defined that needs to be executed when the time (hour) changes. This instruction will read the group nr (0-254) that will be executed at hour change.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>group nr</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>hours group follow read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>5</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====hours group follow write [group nr]==== | ||
+ | |||
+ | :''A group Action can be defined that needs to be executed when the time (hour) changes. This instruction will write the group nr (0-254) that will be executed at hour change.'' | ||
+ | |||
+ | :;[group nr] | ||
+ | ::Indicates which group nr that needs to be executed at hour change. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>hours group follow write 6</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ====minutes group follow read==== | ||
+ | |||
+ | :''A group Action can be defined that needs to be executed when the time (minutes) changes. This instruction will read the group nr (0-254) that will be executed at minute change.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>group nr</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>minutes group follow read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>5</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====minutes group follow write [group nr]==== | ||
+ | |||
+ | :''A group Action can be defined that needs to be executed when the time (minutes) changes. This instruction will write the group nr (0-254) that will be executed at minute change.'' | ||
+ | |||
+ | :;[group nr] | ||
+ | ::Indicates which group nr that needs to be executed at minute change. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>minutes group follow write 6</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ====time read==== | ||
+ | |||
+ | :''This instruction will read the time of the internal Real Time Clock.'' | ||
+ | |||
+ | :;Returns | ||
+ | :: The time | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>time read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>20:13:19</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====time write [hours][minutes][seconds]==== | ||
+ | |||
+ | :''This instruction will write the time in the Real Time Chip'' | ||
+ | |||
+ | :;[hours] | ||
+ | ::Value 0 to 23 | ||
+ | :;[minutes] | ||
+ | ::Value 0 to 59 | ||
+ | :;[seconds] | ||
+ | ::Value 0 to 99 | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>time write 19 25 57</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====date read==== | ||
+ | |||
+ | :''This instruction will read the date of the internal Real Time Clock.'' | ||
+ | |||
+ | :;Returns | ||
+ | :: The date | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>date read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>2 25-12-18</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====date write [day of the week][day][month][year]==== | ||
+ | |||
+ | :''This instruction will write the date in the Real Time Chip'' | ||
+ | |||
+ | :;[day of the week] | ||
+ | ::Value 1 to 7 represents Monday to Sunday. | ||
+ | :;[day] | ||
+ | ::Value 1 to 31, day of the month. | ||
+ | :;[month] | ||
+ | ::Value 1 to 12 | ||
+ | :;[year] | ||
+ | ::Value 0 to 99 | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>date write 2 25 12 18</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===Basic Action instructions=== | ||
+ | ====basic action debug off==== | ||
+ | |||
+ | :''This instruction will disable the debug function for Basic Actions. When the debug function is activate, every time a Basic Action is executed, the Basic Action Number and Basic Action explanation will be printed on the console.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Deactivate Basic Action debug mode | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>basic action debug off</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====basic action debug on==== | ||
+ | |||
+ | :''This instruction will enable the debug function for Basic Actions. When the debug function is activate, every time a Basic Action is executed, the Basic Action Number and Basic Action explanation will be printed on the console.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Activate Basic Action debug mode | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>basic action debug on</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====basic action activate [Type] [Action] [Device Nr] [Extra parameter]==== | ||
+ | |||
+ | :''This instruction will execute a Basic Action. For a full list of basic actions, see [[Action Types AIO]]'' | ||
+ | |||
+ | :;[Type] | ||
+ | ::This is the Type of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;[Action] | ||
+ | ::This is the Action of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;[Device Nr] | ||
+ | ::This is the Device Nr of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;[Extra Parameter] | ||
+ | ::This is the Extra Parameter of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Toggle output 12 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>basic action activate 0 16 12 0</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====basic action activate [Type] [Action] [Device Nr.MSB] [Device Nr.LSB] [Extra parameter.MSB] [Extra parameter.LSB]==== | ||
+ | |||
+ | :''This instruction will execute a Basic Action. Since Device Nr and Extra Parameter contains word value, it's sometime needed for ease of use to be able to use the MSB (Most Significant Byte) and LSB (Least Significant Byte) values. For a full list of basic actions, see [[Action Types AIO]]'' | ||
+ | |||
+ | :;[Type] | ||
+ | ::This is the Type of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;[Action] | ||
+ | ::This is the Action of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;[Device Nr.MSB] | ||
+ | ::This is the MSB Device Nr of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;[Device Nr.LSB] | ||
+ | ::This is the LSB Device Nr of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;[Extra Parameter.MSB] | ||
+ | ::This is the MSB Extra Parameter of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;[Extra Parameter.LSB] | ||
+ | ::This is the LSB Extra Parameter of a Basic Action, see [Action Types AIO]]. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Program in the uCAN (ID 26 88 120) for Sensor0 the sensor nr 15 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>basic action activate 20 18 26 88 120 15</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===Eeprom & Fram instructions=== | ||
+ | ====eeprom erase [start page][end page][security code]==== | ||
+ | |||
+ | :''This instruction will erase 1 or more pages of the eeprom. With the start and end page, you can indicate which pages must be erased'' | ||
+ | |||
+ | :;[start page] | ||
+ | ::Indicates the start page (0-511) of the pages that must be erased. | ||
+ | |||
+ | :;[end page] | ||
+ | ::Indicates the end page (0-511) of the pages that must be erased. | ||
+ | |||
+ | :;[security code] | ||
+ | ::Security code "28883" must be used to be able to activate the erase function | ||
+ | |||
+ | :;Returns | ||
+ | ::delete progress information | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Delete eeprom page 256 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>eeprom erase 256 256 28883</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Important: It's NOT possible to undo this instruction. Once the erase is executed, the data is erased and can't be retrieved anymore. | ||
+ | ---- | ||
+ | |||
+ | ====eeprom read [page][byte][Opt: Nr of byte]==== | ||
+ | |||
+ | :''This instruction will read 1 of more bytes from eeprom. Maximum 30 bytes can be read'' | ||
+ | |||
+ | :;[page] | ||
+ | ::This is the page (0-511) of the eeprom to be read. | ||
+ | |||
+ | :;[byte] | ||
+ | ::This is the byte nr to be read (or the start byte when more then 1 byte is requested) | ||
+ | |||
+ | :;[Opt: Nr of byte] | ||
+ | ::This optional parameter (2-30) can be added when more then 1 byte must be read | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>eeprom read bytes</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read from page 0 start at byte 2 the next 10 bytes | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>eeprom read 0 2 20</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>0 2 -> 5 ( )</code> | ||
+ | ::<code>0 3 -> 1 ( )</code> | ||
+ | ::<code>0 4 -> 255 ( )</code> | ||
+ | ::<code>0 5 -> 13 ( )</code> | ||
+ | ::<code>0 6 -> 7 ( )</code> | ||
+ | ::<code>0 7 -> 4 ( )</code> | ||
+ | ::<code>0 8 -> 255 ( )</code> | ||
+ | ::<code>0 9 -> 255 ( )</code> | ||
+ | ::<code>0 10 -> 255 ( )</code> | ||
+ | ::<code>0 11 -> 255 ( )</code> | ||
+ | ::<code>0 12 -> 255 ( )</code> | ||
+ | ::<code>0 13 -> 255 ( )</code> | ||
+ | ::<code>0 14 -> 255 ( )</code> | ||
+ | ::<code>0 15 -> 255 ( )</code> | ||
+ | ::<code>0 16 -> 255 ( )</code> | ||
+ | ::<code>0 17 -> 255 ( )</code> | ||
+ | ::<code>0 18 -> 255 ( )</code> | ||
+ | ::<code>0 19 -> 255 ( )</code> | ||
+ | ::<code>0 20 -> 255 ( )</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ====eeprom read [Id0][Id1][Id2][location]==== | ||
+ | :''CLI instruction "eeprom read" also supports reading the eeprom of uCAN slave modules. This function requires uCAN Firmware Version 6.0.21 or higher. Instead of 2 or 3 arguments being used (for internal eeprom read), 4 arguments are used to read the eeprom of a uCAN.'' | ||
+ | eeprom read Id0 Id1 Id2 location | ||
+ | |||
+ | :;[Id0..Id2] | ||
+ | ::This is the 3 bytes ID (without CAN Bus number) of the uCAN | ||
+ | |||
+ | :;[location] | ||
+ | ::Indicates the eeprom memory read location (0-1023) of the uCAN | ||
+ | |||
+ | :;Returns | ||
+ | ::Read Byte | ||
+ | ::<code>OK</code> | ||
+ | Example: Read the value of eeprom location 29 of the uCAN with ID 91.59.166 | ||
+ | el | ||
+ | --- Total Uptime: 000216 Hours, Last Startup: 08:02:09 02/09/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.109 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (b C 016->023) 098.000.000.002 00000 GOOD (000) 1 | ||
+ | 03 (b C 024->031) 098.000.000.003 00000 GOOD (000) 1 | ||
+ | 04 (b C 032->039) 098.000.000.004 00000 GOOD (000) 1 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 100.069.253.220 00001 GOOD (000) 1 | ||
+ | 01 (m C 001->001) 100.052.078.228 00000 GOOD (000) 1 | ||
+ | 02 (m C 002->002) 100.135.225.126 00000 GOOD (000) 1 | ||
+ | 03 (m C 003->003) 100.091.059.166 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | eeprom read 91 59 166 29 | ||
+ | 15 | ||
+ | OK | ||
+ | ---- | ||
+ | ====eeprom read [Id0][Id1][Id2][Id3][location]==== | ||
+ | :''CLI instruction "eeprom read" also supports reading the internal processor eeprom of RS485 slave modules. Instead of 2 or 3 arguments being used (for internal eeprom read) or 4 arguments (reading uCAN), 5 arguments are used to read the eeprom of a RS485 slave module.'' | ||
+ | eeprom read Id0 Id1 Id2 Id3 location | ||
+ | |||
+ | :;[Id0..Id3] | ||
+ | ::This is the 4 bytes ID of the RS485 slave module | ||
+ | |||
+ | :;[location] | ||
+ | ::Indicates the eeprom memory read location (0-1023) of the RS485 slave | ||
+ | |||
+ | :;Returns | ||
+ | ::Location -> Read Byte | ||
+ | ::<code>OK</code> | ||
+ | Example: Read the value of eeprom location 2 of input module with ID 73.20.51.10 | ||
+ | eeprom read 73 20 51 10 2 | ||
+ | 2 -> 20 | ||
+ | OK | ||
+ | ---- | ||
+ | |||
+ | ====eeprom write [page][byte][data byte]==== | ||
+ | |||
+ | :''This instruction will write 1 byte in eeprom.'' | ||
+ | |||
+ | :;[page] | ||
+ | ::Indicates the eeprom page (0-511) where the byte will be written. | ||
+ | |||
+ | :;[byte] | ||
+ | ::Indicates the eeprom byte (0-255) where the byte will be written. | ||
+ | |||
+ | :;[data byte] | ||
+ | ::This is the byte that will be written | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write at page 10 byte 200 value 33 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>eeprom write 10 200 33</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Note: Your full configuration is stored in eeprom. Programming bytes in eeprom can make your system non-functional so please be careful using this instruction unless you know what you're doing. | ||
+ | ---- | ||
+ | ====eeprom write [Id0][Id1][Id2][location][data_byte]==== | ||
+ | :''CLI instruction "eeprom write" also supports writing the eeprom of RS485 slave modules. Instead of 3 arguments used (for internal eeprom write), 5 arguments are used to write the eeprom of a uCAN.'' | ||
+ | eeprom write Id0 Id1 Id2 location data_byte | ||
+ | |||
+ | :;[Id0..Id2] | ||
+ | ::This is the 3 bytes ID (without CAN Bus number) of the uCAN | ||
+ | |||
+ | :;[location] | ||
+ | ::Indicates the eeprom memory location (0-1023) of the uCAN where the byte will be written. | ||
+ | |||
+ | :;[data byte] | ||
+ | ::This is the byte (0-255) that will be written in the eeprom of the uCAN | ||
+ | |||
+ | :;Returns | ||
+ | ::Written Byte | ||
+ | ::<code>OK</code> | ||
+ | Example: Write a value (20) in eeprom location 29 of the eeprom of the uCAN with ID 91.59.166 | ||
+ | el | ||
+ | --- Total Uptime: 000216 Hours, Last Startup: 08:02:09 02/09/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.109 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (b C 016->023) 098.000.000.002 00000 GOOD (000) 1 | ||
+ | 03 (b C 024->031) 098.000.000.003 00000 GOOD (000) 1 | ||
+ | 04 (b C 032->039) 098.000.000.004 00000 GOOD (000) 1 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 100.069.253.220 00001 GOOD (000) 1 | ||
+ | 01 (m C 001->001) 100.052.078.228 00000 GOOD (000) 1 | ||
+ | 02 (m C 002->002) 100.135.225.126 00000 GOOD (000) 1 | ||
+ | 03 (m C 003->003) 100.091.059.166 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | eeprom write 91 59 166 29 20 | ||
+ | 20 | ||
+ | OK | ||
+ | eeprom read 91 59 166 29 | ||
+ | 20 | ||
+ | OK | ||
+ | ---- | ||
+ | |||
+ | ====eeprom write [Id0][Id1][Id2][Id3][location][data_byte]==== | ||
+ | :''CLI instruction "eeprom write" also supports writing the eeprom of RS485 slave modules. Instead of 3 arguments used (for internal eeprom write) or 5 arguments are used to write the eeprom of a uCAN, this instruction uses 6 arguments to write the eeprom of a RS485 slave module.'' | ||
+ | eeprom write Id0 Id1 Id2 Id3 location data_byte | ||
+ | |||
+ | :;[Id0..Id3] | ||
+ | ::This is the 4 bytes ID of the RS485 slave module | ||
+ | |||
+ | :;[location] | ||
+ | ::Indicates the eeprom memory location (0-1023) of the RS485 slave module where the byte will be written. | ||
+ | |||
+ | :;[data byte] | ||
+ | ::This is the byte (0-255) that will be written in the eeprom of the RS485 slave module | ||
+ | |||
+ | :;Returns | ||
+ | ::Written Byte | ||
+ | ::<code>OK</code> | ||
+ | Example: Write a value (20) in eeprom location 29 of the eeprom of the input module with ID 73.10.22.58 | ||
+ | eeprom write 73 10 22 58 29 20 | ||
+ | 20 (29) | ||
+ | OK | ||
+ | eeprom read 73 10 22 58 29 | ||
+ | 20 (29) | ||
+ | OK | ||
+ | ---- | ||
+ | |||
+ | ====eeprom search [start page][stop page][data byte0][Opt: data byte1][Opt: data byte2][Opt: data byte3][Opt: data byte4][Opt: data byte5]==== | ||
+ | |||
+ | :''This instruction will read search for data bytes in eeprom. The data bytes will indicate which bytes are being searched. The start and end page defines in which pages of the eeprom the search instruction has to be performed. The eeprom has 512 pages (0-511), each page contains 256 bytes of data. You can select 1 or more (up to 6) data bytes to be searched.'' | ||
+ | |||
+ | :;[start page] | ||
+ | ::This is the start page (0-511) of the eeprom where the search will start. | ||
+ | |||
+ | :;[stop page] | ||
+ | ::This is the stop page (0-511) of the eeprom where the search will stop. | ||
+ | |||
+ | :;[data byte0..5] | ||
+ | ::This is the data byte that will be searched in eeprom | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>eeprom search result</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: (search page 0 to 10 in eeprom to find the location where 7 or 13 is written) | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>eeprom search 0 10 7 13</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code> 0 5 -> 13</code> | ||
+ | ::<code> 0 6 -> 7 </code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | As you can see, on page 0 Byte 5 and 6, the system did found results. | ||
+ | |||
+ | ---- | ||
+ | ====fram erase [start page][end page][security code]==== | ||
+ | |||
+ | :''This instruction will erase 1 or more pages of the FRAM. With the start and end page, you can indicate which pages must be erased'' | ||
+ | |||
+ | :;[start page] | ||
+ | ::Indicates the start page (0-127) of the pages that must be erased. | ||
+ | |||
+ | :;[end page] | ||
+ | ::Indicates the end page (0-127) of the pages that must be erased. | ||
+ | |||
+ | :;[security code] | ||
+ | ::Security code "28883" must be used to be able to activate the erase function | ||
+ | |||
+ | :;Returns | ||
+ | ::delete progress information | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Delete fram page 30 till 35 (including 35) | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>fram erase 30 35 28883</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Important: It's NOT possible to undo this instruction. Once the erase is executed, the data is erased and can't be retrieved anymore. | ||
+ | ---- | ||
+ | |||
+ | ====fram read [page][byte][Opt: Nr of byte]==== | ||
+ | |||
+ | :''This instruction will read 1 of more bytes from FRAM. Maximum 30 bytes can be read'' | ||
+ | |||
+ | :;[page] | ||
+ | ::This is the page (0-127) of the FRAM to be read. | ||
+ | |||
+ | :;[byte] | ||
+ | ::This is the byte nr to be read (or the start byte when more then 1 byte is requested) | ||
+ | |||
+ | :;[Opt: Nr of byte] | ||
+ | ::This optional parameter (2-30) can be added when more then 1 byte must be read | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Fram read bytes</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read from page 0 start at byte 2 the next 10 bytes | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>fram read 0 2 20</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>0 2 -> 5 ( )</code> | ||
+ | ::<code>0 3 -> 1 ( )</code> | ||
+ | ::<code>0 4 -> 255 ( )</code> | ||
+ | ::<code>0 5 -> 13 ( )</code> | ||
+ | ::<code>0 6 -> 7 ( )</code> | ||
+ | ::<code>0 7 -> 4 ( )</code> | ||
+ | ::<code>0 8 -> 255 ( )</code> | ||
+ | ::<code>0 9 -> 255 ( )</code> | ||
+ | ::<code>0 10 -> 255 ( )</code> | ||
+ | ::<code>0 11 -> 255 ( )</code> | ||
+ | ::<code>0 12 -> 255 ( )</code> | ||
+ | ::<code>0 13 -> 255 ( )</code> | ||
+ | ::<code>0 14 -> 255 ( )</code> | ||
+ | ::<code>0 15 -> 255 ( )</code> | ||
+ | ::<code>0 16 -> 255 ( )</code> | ||
+ | ::<code>0 17 -> 255 ( )</code> | ||
+ | ::<code>0 18 -> 255 ( )</code> | ||
+ | ::<code>0 19 -> 255 ( )</code> | ||
+ | ::<code>0 20 -> 255 ( )</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====fram write [page][byte][data byte]==== | ||
+ | |||
+ | :''This instruction will write 1 byte in FRAM.'' | ||
+ | |||
+ | :;[page] | ||
+ | ::Indicates the FRAM page (1-127) where the byte will be written. | ||
+ | |||
+ | :;[byte] | ||
+ | ::Indicates the FRAM byte (0-255) where the byte will be written. | ||
+ | |||
+ | :;[data byte] | ||
+ | ::This is the byte that will be written | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write at page 10 byte 200 value 33 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>fram write 10 200 33</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Note: Please note that page 0 is protected and can't be written by the user. | ||
+ | ---- | ||
+ | |||
+ | ===Input instructions=== | ||
+ | ====add virtual input module [id1] [id2] [id3] ==== | ||
+ | |||
+ | :''This instruction will add a virtual input module (id0="i") with id1, id2 and id3. When using this instruction, please make sure that the combination id1, id2 and id3 for the input list is unique and not yet used.'' | ||
+ | :Example: | ||
+ | el | ||
+ | --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | -------CAN Control-------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | add virtual input module 0 0 2 | ||
+ | OK | ||
+ | el | ||
+ | --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | -------CAN Control-------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | |||
+ | ====input action read [input nr] ==== | ||
+ | |||
+ | :''This instruction will read the BA's that are linked to an input'' | ||
+ | |||
+ | :Following input actions with associated BA can be linked to an input: | ||
+ | :*Action 0: Press Action | ||
+ | :*Action 1: Release Action | ||
+ | :*Action 2: 1 Sec Press | ||
+ | :*Action 3: 2 Sec Press | ||
+ | :*Action 4: Double Press | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>----------------Act--Inp-Cnf-Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----</code> | ||
+ | ::<code>0- PRESS : Yes 001 0 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code>1- RELEASE : Yes 001 1 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code>2- 1SEC PRESS : No 001 2 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code>3- 2SEC PRESS : No 001 3 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code>4-DOUBLE PRESS: No 001 4 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ====input action write [input nr] [input action] [BA Type] [BA Action] [BA Device Nr] [BA Extra parameter] ==== | ||
+ | |||
+ | :''This instruction will program for an input and for a certain input action the associated BA'' | ||
+ | |||
+ | :Input Nr: This is the input number to be programmed | ||
+ | :Input action: Following input actions can be used | ||
+ | :*0: Press Action | ||
+ | :*1: Release Action | ||
+ | :*2: 1 Sec Press | ||
+ | :*3: 2 Sec Press | ||
+ | :*4: Double Press | ||
+ | :BA type, BA action, BA device etc: This is the BA to be executed when an input action occurs, see [[Action Types AIO]] | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ====input action write [input nr] [input action] [BA Type] [BA Action] [BA Device Nr.MSB] [BA Device Nr.LSB] [BA Extra parameter.MSB] [BA Extra parameter.LSB]==== | ||
+ | |||
+ | :''This instruction will program for an input and for a certain input action the associated BA. This instruction is equal then the above instruction excepts that BA Device Nr and BA Extra Parameter are split in a MSB byte and a LSB byte'' | ||
+ | |||
+ | :Input Nr: This is the input number to be programmed | ||
+ | :Input action: Following input actions can be used | ||
+ | :*0: Press Action | ||
+ | :*1: Release Action | ||
+ | :*2: 1 Sec Press | ||
+ | :*3: 2 Sec Press | ||
+ | :*4: Double Press | ||
+ | :BA type, BA action, BA device etc: This is the BA to be executed when an input action occurs, see [[Action Types AIO]] | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input debug off ==== | ||
+ | |||
+ | :''This instruction will disable the CLI console debug function for inputs. When an input is pressed or released, a debug message will appear when this debug function is enabled'' | ||
+ | |||
+ | :;Returns | ||
+ | ::OK | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input debug on ==== | ||
+ | |||
+ | :''This instruction will enable the CLI console debug function for inputs. When an input is pressed or released, a debug message will appear when this debug function is enabled'' | ||
+ | |||
+ | :;Returns | ||
+ | ::OK | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input link read [input nr]==== | ||
+ | |||
+ | :''This instruction will read, for an input, which output or action is linked to it.'' | ||
+ | |||
+ | :;[input nr] | ||
+ | ::Indicates which input (0-631) that the link has to be read. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>output nr or link</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>input link read 15</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>12</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input link write [input nr][output link nr]==== | ||
+ | |||
+ | :''This instruction will write, for an input (0-479), which output (0-479) or action is linked to it.'' | ||
+ | |||
+ | :;[input nr] | ||
+ | ::Indicates which input that the link has to be written. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Link input 15 with output 12 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>input link write 15 12</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | To unconfigure an input from an output: | ||
+ | |||
+ | input link read 32 | ||
+ | Input 32 is linked to Output 14 | ||
+ | OK | ||
+ | |||
+ | input link write 32 65535 | ||
+ | OK | ||
+ | |||
+ | input link read 32 | ||
+ | Input 32 has no Output nor any action(s) linked | ||
+ | OK | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input list ==== | ||
+ | |||
+ | :''This instruction will display the list of inputs, the status (0-> release state, 1-> press state), the link (is an action configured or an output linked) and the name of each input'' | ||
+ | |||
+ | :;Returns | ||
+ | ::The input list | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input release [input nr]==== | ||
+ | |||
+ | :''Switch input to release state for virtual modules.'' | ||
+ | |||
+ | :;[input nr] | ||
+ | ::Indicates which input that needs to be put in release state, a maximum of 632 (0 - 631) inputs can be used. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>input release 28</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input press [input nr]==== | ||
+ | |||
+ | :''Switch input to press state for virtual modules.'' | ||
+ | |||
+ | :;[input nr] | ||
+ | ::Indicates which input that needs to be put in press state, a maximum of 632 (0 - 631) inputs can be used. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>input press 28</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input name write [input nr][input name]==== | ||
+ | |||
+ | :''Write the name of an input, max 16 characters.'' | ||
+ | |||
+ | :;[input nr] | ||
+ | ::Indicates which input (0-631) the name has to be written. | ||
+ | |||
+ | :;[input name] | ||
+ | ::the ascii name of the input (maximum 16 characters). | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>input name write 28 Bedroom parents</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input name read [input nr]==== | ||
+ | |||
+ | :''Read the name of an input'' | ||
+ | |||
+ | :;[input nr] | ||
+ | ::Indicates which input (0-631) the name has to be displayed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Input Name</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>input name read 28</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Bedroom Parents</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====pulse counter read [input nr]==== | ||
+ | |||
+ | :''Read the pulse counter number of an input'' | ||
+ | |||
+ | :;[input nr] | ||
+ | ::Indicates which input (0-631) the pulse counter number has to be displayed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>pulse counter number</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>pulse counter read 3</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>2546678</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input number modules read==== | ||
+ | |||
+ | :''Read the number of input modules that are programmed and active'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Number Of Input Modules</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>input number modules read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>6</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====input number modules write [number of input modules]==== | ||
+ | |||
+ | :''Writes the number of input modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM'' | ||
+ | |||
+ | :;[number of input modules] | ||
+ | ::Indicates the number of input modules that are active and programmed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>input number modules write 7</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
===Output instructions=== | ===Output instructions=== | ||
+ | ====add virtual dimmer module [id1] [id2] [id3] ==== | ||
+ | |||
+ | :''This instruction will add a virtual dimmer module (id0="d") with id1, id2 and id3. When using this instruction, please make sure that the combination id1, id2 and id3 for the output list is unique and not yet used.'' | ||
+ | :Important Note: id1..id3 0.0.0, 0.0.1, 0.0.2 and 0.0.3 are reserved for internal use and cannot be used. | ||
+ | :Example: | ||
+ | el | ||
+ | --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (s C 008->015) 115.000.000.001 00000 GOOD (000) 1 | ||
+ | -------CAN Control-------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | add virtual dimmer module 0 0 4 | ||
+ | OK | ||
+ | el | ||
+ | --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (d V 008->015) 100.000.000.004 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (s C 008->015) 115.000.000.001 00000 GOOD (000) 1 | ||
+ | -------CAN Control-------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | |||
+ | ====add virtual output module [id1] [id2] [id3] ==== | ||
+ | |||
+ | :''This instruction will add a virtual dimmer module (id0="o") with id1, id2 and id3. When using this instruction, please make sure that the combination id1, id2 and id3 for the output list is unique and not yet used.'' | ||
+ | :Important Note: id1..id3 0.0.0, 0.0.1, 0.0.2 and 0.0.3 are reserved for internal use and cannot be used. | ||
+ | :Example: | ||
+ | el | ||
+ | --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (d V 008->015) 100.000.000.004 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (s C 008->015) 115.000.000.001 00000 GOOD (000) 1 | ||
+ | -------CAN Control-------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | add virtual output module 0 0 5 | ||
+ | OK | ||
+ | el | ||
+ | --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (d V 008->015) 100.000.000.004 00000 GOOD (000) 1 | ||
+ | 02 (o V 016->023) 111.000.000.005 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (s C 008->015) 115.000.000.001 00000 GOOD (000) 1 | ||
+ | -------CAN Control-------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | |||
+ | ====output all off==== | ||
+ | ====aoff==== | ||
+ | :''Switch all outputs off.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output all off</code> will switch all outputs OFF. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>oaoff</code> will switch all outputs OFF. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ====output status on==== | ||
+ | ====oso==== | ||
+ | :''Returns the list of all outputs that are ON.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::List of outputs that are ON | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====output list ==== | ||
+ | |||
+ | :''This instruction will display the list of outputs, the status (On or Off), the dim value, the configured timer value, the timer type (Off, , 100ms timer, 1s timer or 1m timer) and the name of each output'' | ||
+ | |||
+ | :;Returns | ||
+ | ::The output list | ||
+ | |||
+ | ---- | ||
+ | |||
====output on [output nr] [dimmer value*] [timer value*]==== | ====output on [output nr] [dimmer value*] [timer value*]==== | ||
− | + | ====on [output nr] [dimmer value*] [timer value*]==== | |
:''Switch ON an output. * are optional values'' | :''Switch ON an output. * are optional values'' | ||
− | |||
:;[output nr] | :;[output nr] | ||
− | ::Indicates which output that needs to be switched ON, a maximum of | + | ::Indicates which output that needs to be switched ON, a maximum of 640 (0 - 639) outputs can be used. |
:;[dimmer value*] | :;[dimmer value*] | ||
Line 55: | Line 1,613: | ||
:;Returns | :;Returns | ||
− | :: | + | ::<code>OK</code> |
+ | |||
+ | Examples: | ||
+ | :;Instruction: | ||
+ | :<code>output on 127</code> | ||
+ | ::will switch ON output 127. | ||
− | + | :;Returns | |
+ | ::<code>OK</code> | ||
− | :<code>output on 127</code> will switch ON output 127. | + | :;Instruction: |
+ | ::<code>output on 127 56</code> | ||
+ | ::will switch ON output 127 with dimmer value 56. | ||
− | :: | + | :;Returns |
+ | ::<code>OK</code> | ||
− | :<code>output on 127 56</code> will switch ON output 127 with dimmer value 56. | + | :;Instruction: |
+ | ::<code>output on 127 56 3600</code> | ||
+ | ::will switch ON output 127 with dimmer value 56 for 3600 seconds. | ||
− | :: | + | :;Returns |
+ | ::<code>OK</code> | ||
− | :<code> | + | :;Instruction: |
+ | ::<code>oon 127 56 3600</code> | ||
+ | ::will switch ON output 127 with dimmer value 56 for 3600 seconds. | ||
− | :: | + | :;Returns |
+ | ::<code>OK</code> | ||
---- | ---- | ||
====output off [output nr]==== | ====output off [output nr]==== | ||
+ | ====off [output nr]==== | ||
+ | :''Switch OFF an output.'' | ||
+ | |||
+ | :;[output nr] | ||
+ | ::Indicates which output that needs to be switched OFF, a maximum of 640 (0 - 639) outputs can be used. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output off 127</code> will switch OFF output 127. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>ooff 127</code> will switch OFF output 127. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
− | + | ====output name write [output nr][output name]==== | |
+ | :''Write the name of an output, max 16 characters.'' | ||
:;[output nr] | :;[output nr] | ||
− | ::Indicates which output | + | ::Indicates which output (0-639) the name has to be written. |
+ | |||
+ | :;[output name] | ||
+ | ::the ascii name of the output (maximum 16 characters). | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output name write 24 Bedroom 4</code> | ||
:;Returns | :;Returns | ||
− | :: | + | ::<code>OK</code> |
+ | |||
+ | ---- | ||
+ | |||
+ | ====output name read [output nr]==== | ||
+ | :''Read the name of an output'' | ||
+ | |||
+ | :;[output nr] | ||
+ | ::Indicates which output (0-639) the name has to be displayed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>output Name</code> | ||
+ | ::<code>OK</code> | ||
Example: | Example: | ||
− | :<code>output | + | :;Instruction: |
+ | ::<code>output name read 24</code> | ||
− | ::output: ''OK'' | + | :;Returns |
+ | ::<code>Bedroom 4</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====output number modules read==== | ||
+ | |||
+ | :''Read the number of output modules that are programmed and active'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Number Of Output Modules</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output number modules read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>6</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====output number modules write [number of output modules]==== | ||
+ | |||
+ | :''Writes the number of output modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM'' | ||
+ | |||
+ | :;[number of output modules] | ||
+ | ::Indicates the number of output modules that are active and programmed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output number modules write 7</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====output group follow read [Output Nr] ==== | ||
+ | |||
+ | : ''An output activation (switch on, off or change dimmer value) can be programmed to trigger a group action. With this instruction, you can read, for Output Nr, when an output activation occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Group Nr | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read the group linked to output 35 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output group follow read 35</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>10</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====output group follow write [Output Nr] [Group Nr] ==== | ||
+ | |||
+ | : ''An output activation (switch on, off or change dimmer value) can be programmed to trigger a group action. With this instruction, you can write, for Output Nr, when an output activation occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write group nr 10 must be linked to output 35 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output group follow write 35 10</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====output group follow list ==== | ||
+ | |||
+ | : ''An output activation (switch on, off or change dimmer value) can be programmed to trigger a group action. With this instruction, you can list, for all outputs in use, which Group Actions are linked. '' | ||
+ | |||
+ | :;Returns | ||
+ | :;List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output group follow list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::list | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====output all off group follow read ==== | ||
+ | |||
+ | : ''An output all off instruction (like BA????) can be programmed to trigger a group action. With this instruction, you can read which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Group Nr | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output all off group follow read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>30</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Remark: | ||
+ | ::* When an output all off instruction is executed, only the all off group nr will be executed and not all the individual output group follow actions. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====output all off group follow write [Group Nr] ==== | ||
+ | |||
+ | : ''An output all off instruction (like BA????) can be programmed to trigger a group action. With this instruction, you can write which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>output all off group follow write 30</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Remark: | ||
+ | ::* When an output all off instruction is executed, only the all off group nr will be executed and not all the individual output group follow actions. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===Sensor instructions=== | ||
+ | ====add virtual sensor module [id1] [id2] [id3] ==== | ||
+ | |||
+ | :''This instruction will add a virtual sensor module (id0="t") with id1, id2 and id3. When using this instruction, please make sure that the combination id1, id2 and id3 for the sensor list is unique and not yet used.'' | ||
+ | :Example: | ||
+ | el | ||
+ | --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | -------CAN Control-------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | add virtual sensor module 0 0 1 | ||
+ | OK | ||
+ | el | ||
+ | --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- | ||
+ | --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- | ||
+ | --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- | ||
+ | -------Output------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 | ||
+ | -------Input-------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 | ||
+ | 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 | ||
+ | -------Sensor------------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 | ||
+ | 01 (t V 008->015) 116.000.000.001 00000 GOOD (000) 1 | ||
+ | -------CAN Control-------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 | ||
+ | -------Micro CAN---------ID---------Err-------Status--------Pwr--- | ||
+ | 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 | ||
+ | OK | ||
+ | |||
+ | ====sensor extra list ==== | ||
+ | |||
+ | :''This instruction will display the list of Extra Sensors. Extra Sensors (max 64, 0-63) can be freely used for example to store the wind direction, windspeed etc of a weather station, power measurement and others. Extra Sensors can also trigger group actions and can be used with IF THEN instructions. The values are being set by using BA instructions. Sensor value used are 16bits.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::The sensor extra list | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor extra name write [sensor nr][sensor name]==== | ||
+ | |||
+ | :''Write the name of an extra sensor, max 16 characters.'' | ||
+ | |||
+ | :;[sensor nr] | ||
+ | ::Indicates which sensor (0-63) the name has to be written. | ||
+ | |||
+ | :;[sensor name] | ||
+ | ::the ascii name of the sensor (maximum 16 characters). | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor extra name write 15 Windspeed</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor extra name read [sensor nr]==== | ||
+ | |||
+ | :''Read the name of an extra sensor'' | ||
+ | |||
+ | :;[sensor nr] | ||
+ | ::Indicates which sensor (0-63) the name has to be displayed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Sensor Name</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor extra name read 15</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Windspeed</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor extra group follow read [Sensor Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor extra Nr (0-63), when a value change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Group Nr | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read the group linked to sensor extra 30 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor extra group follow read 30</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>20</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor extra group follow write [Sensor Nr] [Group Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Extra Nr (0-63), when a value change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write group nr 20 must be linked to sensor extra 30 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor extra group follow write 30 20</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor extra group follow list ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all Extra Sensors, which Group Actions are linked. '' | ||
+ | |||
+ | :;Returns | ||
+ | :;List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor extra group follow list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::list | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ====sensor list ==== | ||
+ | |||
+ | :''This instruction will display the list of sensors, the temperature, the humidity, the brightness and the name of each sensor'' | ||
+ | |||
+ | :;Returns | ||
+ | ::The sensor list | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor name write [sensor nr][sensor name]==== | ||
+ | |||
+ | :''Write the name of a sensor, max 16 characters.'' | ||
+ | |||
+ | :;[sensor nr] | ||
+ | ::Indicates which sensor (0-127) the name has to be written. | ||
+ | |||
+ | :;[sensor name] | ||
+ | ::the ascii name of the sensor (maximum 16 characters). | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor name write 12 Bedroom 1</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor name read [sensor nr]==== | ||
+ | |||
+ | :''Read the name of a sensor'' | ||
+ | |||
+ | :;[sensor nr] | ||
+ | ::Indicates which sensor (0-127) the name has to be displayed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Sensor Name</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor name read 12</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Bedroom 1</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor number modules read==== | ||
+ | |||
+ | :''Read the number of sensor modules that are programmed and active'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Number Of Sensor Modules</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor number modules read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>6</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====sensor number modules write [number of sensor modules]==== | ||
+ | |||
+ | :''Writes the number of sensor modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM'' | ||
+ | |||
+ | :;[number of sensor modules] | ||
+ | ::Indicates the number of sensor modules that are active and programmed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>sensor number modules write 7</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====temperature group follow read [Sensor Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor Nr (0-127), when a temperature change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Group Nr | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read the group linked to sensor 17 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>temperature group follow read 17</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>3</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====temperature group follow write [Sensor Nr] [Group Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Nr (0-127), when a temperature change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write group nr 3 must be linked to sensor 17 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>temperature group follow write 17 3</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====temperature group follow list ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all sensor in use, which Group Actions are linked. '' | ||
+ | |||
+ | :;Returns | ||
+ | :;List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>temperature group follow list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::list | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ====humidity group follow read [Sensor Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor Nr (0-127), when a humidity change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Group Nr | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read the group linked to sensor 17 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>humidity group follow read 17</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>4</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====humidity group follow write [Sensor Nr] [Group Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Nr (0-127), when a humidity change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write group nr 4 must be linked to sensor 17 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>humidity group follow write 17 4</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====humidity group follow list ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all sensor in use, which Group Actions are linked. '' | ||
+ | |||
+ | :;Returns | ||
+ | :;List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | |||
+ | :;Instruction: | ||
+ | ::<code> humidity group follow list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::list | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ====brightness group follow read [Sensor Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor Nr (0-127), when a brightness change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Group Nr | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read the group linked to sensor 17 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code> brightness group follow read 17</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>5</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== brightness group follow write [Sensor Nr] [Group Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Nr (0-127), when a brightness change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write group nr 5 must be linked to sensor 17 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code> brightness group follow write 17 5</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== brightness group follow list ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all sensor in use, which Group Actions are linked. '' | ||
+ | |||
+ | :;Returns | ||
+ | :;List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code> brightness group follow list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::list | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ====airquality group follow read [Sensor Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor Nr (0-127), when an air quality (CO2) change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Group Nr | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read the group linked to sensor 17 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code> airquality group follow read 17</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>6</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== airquality group follow write [Sensor Nr] [Group Nr] ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Nr (0-127), when an air quality (CO2) change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write group nr 6 must be linked to sensor 17 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code> airquality group follow write 17 6</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== airquality group follow list ==== | ||
+ | |||
+ | : ''A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all sensor in use, which Group Actions are linked. '' | ||
+ | |||
+ | :;Returns | ||
+ | :;List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code> airquality group follow list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::list | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ===CAN module instructions=== | ||
+ | ====can control number modules read==== | ||
+ | |||
+ | :''Read the number of CAN Control modules that are programmed and active'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Number Of CAN Control Modules</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can control number modules read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>2</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can control number modules write [number of can control modules]==== | ||
+ | |||
+ | :''Writes the number of CAN Control modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM'' | ||
+ | |||
+ | :;[number of CAN Control modules] | ||
+ | ::Indicates the number of CAN Control modules that are active and programmed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can control number modules write 2</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ====can debug off==== | ||
+ | |||
+ | :''This instruction will disable the debug function for CAN messages sent and received on the CAN bus.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Deactivate CAN debug mode | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can debug off</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can debug on==== | ||
+ | |||
+ | :''This instruction will enable the debug function for CAN messages sent and received on the CAN bus.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Activate CAN debug mode | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can debug on</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | ====can eeprom list==== | ||
+ | |||
+ | :''This instruction will list the programmed configuration stored in the Brain(+) of all connected Micro CAN's.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::Configuration list of all programmed Micro CAN's | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can eeprom list</code> | ||
+ | |||
+ | :;Returns | ||
+ | -Nr-Bus-ID2.ID1.ID0--Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Modbus-Type | ||
+ | 00 000 100.154.092 009(001) 008(000) 255(255) 255(255) 255(255) 255(255) 000(000) 255(000) 255 255 | ||
+ | 01 100 030.245.232 255(255) 255(255) 010(002) 011(003) 012(004) 013(005) 255(100) 255(255) 255 255 | ||
+ | 02 100 232.121.136 255(255) 255(255) 036(020) 037(021) 035(019) 034(018) 006(100) 255(006) 255 255 | ||
+ | OK | ||
+ | |||
+ | :As you can see in the above example, 1 Micro Can is not responding. If you still want to know the configuration of this Micro Can, you can use the CLI instruction <code>can eeprom list</code> | ||
+ | |||
+ | :These are the explanations of the different items in the "can ping list": | ||
+ | :* Nr: Micro CAN number | ||
+ | :* Bus: This is the Bus number on which the Micro CAN is connected | ||
+ | :** 100: Internal CAN Bus | ||
+ | :** 000: CAN bus of the first CAN Control | ||
+ | :** 001: CAN bus of the second CAN Control | ||
+ | :** 002: CAN bus of the third CAN Control | ||
+ | :** ... | ||
+ | :* Inp.link0-5: This is system input nr of the Brain(+) that is linked to the input (0-5) of the Micro CAN. The value between parenthesis is the input number on that bus and is for developer purposes only and thus can be ignored. | ||
+ | :* Tem.link0-1: This is the system sensor nr of the Brain(+) that is linked to the sensor (0-1) of the Micro CAN. The value between parenthesis is the sensor number on that bus and is for developer purposes only and thus can be ignored. | ||
+ | :* Modbus: Modbus address (255-> not configured) | ||
+ | :* Type: | ||
+ | :**.BIT7: =0->Modbus VOC is used, =1->uCAN VOC is used | ||
+ | :**.BIT6: =0->Modbus CO2 is used, =1->uCAN CO2 is used | ||
+ | :**.BIT5: =0->Modbus humidity is used, =1->uCAN humidity is used | ||
+ | :**.BIT4: =0->Modbus temp is used, =1->uCAN temp is used | ||
+ | :**.BIT3: =0->Modbus LUX is used, =1->uCAN LUX is used | ||
+ | ---- | ||
+ | ====can ping list==== | ||
+ | |||
+ | :''This instruction will request to all connected Micro CAN's the full status and configuration.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::The detailed answers of the connected Micro CAN's | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can ping list</code> | ||
+ | |||
+ | :;Returns | ||
+ | Nr-Bus-ID2.ID1.ID0-Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Type-Firmware-Boot-ID_NE-Modbus-Type-Model-Speed-Stat1-Stat2-Min-MAX-delay--Volt-- | ||
+ | 00 000 100.154.092 NA(NA) NA(NA) NA(NA) NA(NA) NA(NA) NA(NA) NA(NA) NA(NA) NA NA NA NA NA NA NA NA NA NA NA NA >500ms NA | ||
+ | 01 100 030.245.232 255(255) 255(255) 010(002) 011(003) 012(004) 013(005) 255(255) 255(255) 000 F06.00.06 255 069 255 255 255 255 000 255 000 255 001ms 23.48V | ||
+ | 02 100 232.121.136 255(255) 255(255) 028(020) 029(021) 027(019) 026(018) 006(006) 255(255) 060 F06.00.08 255 069 255 255 255 255 000 255 000 255 001ms 23.18V | ||
+ | OK | ||
+ | |||
+ | :As you can see in the above example, 1 Micro Can is not responding. If you still want to know the configuration of this Micro Can, you can use the CLI instruction <code>can eeprom list</code> | ||
+ | |||
+ | :These are the explanations of the different items in the "can ping list": | ||
+ | :* Nr: Micro CAN number | ||
+ | :* Bus: This is the Bus number on which the Micro CAN is connected | ||
+ | :** 100: Internal CAN Bus | ||
+ | :** 000: CAN bus of the first CAN Control | ||
+ | :** 001: CAN bus of the second CAN Control | ||
+ | :** 002: CAN bus of the third CAN Control | ||
+ | :** ... | ||
+ | :* Inp.link0-5: This is system input nr of the Brain(+) that is linked to the input (0-5) of the Micro CAN. The value between parenthesis is the input number on that bus and is for developer purposes only and thus can be ignored. | ||
+ | :* Tem.link0-1: This is the system sensor nr of the Brain(+) that is linked to the sensor (0-1) of the Micro CAN. The value between parenthesis is the sensor number on that bus and is for developer purposes only and thus can be ignored. | ||
+ | :* Type: This is the type sensors connected on the Micro CAN: | ||
+ | :** BIT0=1: Temperature sensor DS1820 1wire found on the first sensor connection | ||
+ | :** BIT1=1: Temperature sensor DS1820 1wire found on the second sensor connection | ||
+ | :** BIT2=1: Honeywell HIH8121 Temp/humidity sensor I2C found | ||
+ | :** BIT3=1: TSL2591 I2C lux sensor found | ||
+ | :** BIT4=1: CCS811 I2C air quality sensor found | ||
+ | :** BIT5=1: T67xx I2C air quality sensor found | ||
+ | :* Firmware: This is the current firmware version | ||
+ | :* Boot: Bootloader mode for next startup | ||
+ | :* ID_NE: 78->New Micro Can, 69->Existing Micro Can | ||
+ | :* CanP1: =1->CanP parameters are validated and ready to be used | ||
+ | :* CanP2: BRGCON1 (18F46K80) | ||
+ | :* CanP3: BRGCON2 (18F46K80) | ||
+ | :* CanP4: BRGCON3 (18F46K80) | ||
+ | :* CanP5: CRC8 of CanP2-CanP4 | ||
+ | :* Stat: Led/Buzzer status | ||
+ | :**.BIT0->Buzzer ON(1)/OFF(0) for all functions | ||
+ | :**.BIT1->Buzzer ON(1)/OFF(0) for non-linked switches | ||
+ | :**.BIT2->TriColor status led ON(1)/OFF(0) | ||
+ | :* Min: Minimum led brightness | ||
+ | :* Max: Maximum led brightness | ||
+ | :* Delay: Trip Round time between request and response | ||
+ | :* Volt: This is the voltage the Micro CAN is measuring. This is an interesting value, when long cables are used, to see how much voltage drop the cables are generating | ||
+ | ---- | ||
+ | ====can config delete ==== | ||
+ | |||
+ | :''This instruction will perform a factory reset of the CAN config in the master as well as in the micro CAN slaves. After this instruction, the micro CAN config is deleted from the eeprom of the master and the micro CAN slaves. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>can config delete</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can config delete</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can module number read==== | ||
+ | |||
+ | :''Read the number of CAN modules that are programmed and active'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Number Of CAN Modules</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can module number read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>6</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can module number write [number of CAN modules]==== | ||
+ | |||
+ | :''Writes the number of CAN modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM'' | ||
+ | |||
+ | :;[number of CAN modules] | ||
+ | ::Indicates the number of CAN modules that are active and programmed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can module number write 7</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can input number read==== | ||
+ | |||
+ | :''Read the number of CAN inputs that are programmed and active'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Number Of CAN inputs</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can input number read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>12</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can input number write [number of CAN inputs]==== | ||
+ | |||
+ | :''Writes the number of CAN inputs that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM'' | ||
+ | |||
+ | :;[number of CAN inputs] | ||
+ | ::Indicates the number of CAN inputs that are active and programmed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can input number write 13</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can sensor number read==== | ||
+ | |||
+ | :''Read the number of CAN sensors that are programmed and active'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Number Of CAN sensors</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can sensor number read</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>4</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can sensor number write [number of CAN sensors]==== | ||
+ | |||
+ | :''Writes the number of CAN sensors that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM'' | ||
+ | |||
+ | :;[number of CAN inputs] | ||
+ | ::Indicates the number of CAN sensors that are active and programmed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can sensor number write 6</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====can speed read==== | ||
+ | :''This instruction will display the CAN bus speed currently in use.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::CAN bus speed | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can speed read</code> | ||
+ | |||
+ | :;Returns | ||
+ | 125kbps | ||
+ | OK | ||
+ | ---- | ||
+ | |||
+ | ====can speed write [speed]==== | ||
+ | :''This instruction will write the new CAN bus speed that will be effective after reset. Supported speeds are 20kbps, 50kbps, 125kbps and 250kbps.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::CAN bus parameters | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can speed write 50</code> | ||
+ | |||
+ | :;Returns | ||
+ | CAN P: 001 031 255 002 060 | ||
+ | OK | ||
+ | :;See https://wiki.openmotics.com/index.php/AIO_Tips_%26_tricks_during_installation_and_troubleshooting#Changing_CAN_bus_speed for detailed use | ||
+ | |||
+ | Notes: | ||
+ | * New uCAN's are programmed at a speed of 125kbps so when new uCAN's are added to an existing network, change the speed to 125kbps, add the uCAN and then change to the required speed. | ||
+ | * The instruction "can speed write" can also be executed without any parameter. Without parameter, the Master will take the values programmed in Eeprom starting at Page0/Byte14 and verify integrity of those values. When the integrity is OK, these values will be distributed towards the uCAN and programmed in the Master to be used after the next reset. This allows custom CAN parameters to be used in a system. | ||
+ | * The speed that a CAN bus is able to support depends on the cable used and the length: Increase in cable length means decrease in CAN speed, decrease in cable quality means decrease in CAN speed. A good quality cable (for example UTP CAT6) at CAN speed of 125kbps can easily support 250 meter. | ||
+ | ---- | ||
+ | ====can message [Bus Nr] [SID] [B0] [B1] [B2] [B3] [B4] [B5] [B6] [B7]==== | ||
+ | |||
+ | : ''This instruction allows to sent direct messages to the CAN bus. To see the response on these messages, turn on the CAN debug functionality ("can debug on"). | ||
+ | :;[Bus Nr] | ||
+ | ::Indicates the Bus Nr on which the CAN message must be sent:100->internal CAN bus, 0->First CAN Control, 1->Second CAN Control etc, 255->Broadcast message on all available CAN busses. | ||
+ | :;[Bx] | ||
+ | ::B1..B8 are the bytes that forms the CAN message, length of the CAN message (Minimum 2, maximum 8 bytes (B1..B8)) | ||
+ | |||
+ | Example: Sent message on the internal CAN bus with SID=6, 5 bytes long message 1 100 0 0 101 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>can message 0 6 1 100 0 0 101</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ===DALI instructions=== | ||
+ | ====dali debug off==== | ||
+ | |||
+ | :''This instruction will disable the debug function for Dali message sent and received on the Dali bus.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Deactivate Dali debug mode | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>dali debug off</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====dali debug on==== | ||
+ | |||
+ | :''This instruction will enable the debug function for Dali message sent and received on the Dali bus.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Activate Dali debug mode | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>dali debug on</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example of received info: | ||
+ | 16:43:48 CAN RX(100) SID=6 L=7 -> 1 96 151 12 143 1 148 2 | ||
+ | Some info of the above example: | ||
+ | * RX -> Received CAN information, TX -> Transmit CAN information | ||
+ | * (100) -> Bus: 100 -> internal can bus, 0 -> first Can Control, 1 -> second Can Control, ... | ||
+ | * L -> length of the CAN message | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====dali input link write [input_nr] [bus_nr] [dali_id]==== | ||
+ | |||
+ | :''This instruction will link a virtual input (input_nr) to a Dali_id on a Dali Bus_nr.'' | ||
+ | :;[bus_nr] | ||
+ | :;*bus_nr=0: Lunatone SCI directly connected to the Brain(+) | ||
+ | |||
+ | :;*bus_nr=1: Lunatone SCI is connected to the first CAN Control | ||
+ | |||
+ | :;*bus_nr=2: Lunatone SCI is connected to the second CAN Control | ||
+ | |||
+ | :;... | ||
+ | |||
+ | :;[input_nr] | ||
+ | ::This is the input nr (of a virtual module created by using instruction "add virtual input module") that will be linked to the Dali_id. | ||
+ | |||
+ | :;[dali_id] | ||
+ | ::dali_id is the address found of the "to be linked" device in the Lunatone cockpit software | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Link input 8 with Dali device on Bus 0 (SCI connected with Brain(+)) with Dali ID 1 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>dali input link write 8 0 1</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====dali input link read [input_nr]==== | ||
+ | |||
+ | :''This instruction will read which bus and Dali ID is linked to virtual input (input_nr).'' | ||
+ | |||
+ | :;[input_nr] | ||
+ | ::This is the input nr (of a virtual module created by using instruction "add virtual input module") that will be linked to the Dali_id. | ||
+ | |||
+ | |||
+ | :;Returns | ||
+ | ::<code>bus_nr dali_id</code> | ||
+ | |||
+ | Example: Check which bus and Dali ID is linked to output 8. Returns that output 8 is linked to bus 0 (SCI connected to Brain(+)) Dali ID 1. | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>dali input link read 8</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>0 1</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====dali output link write [output_nr] [bus_nr] [dali_id]==== | ||
+ | |||
+ | :''This instruction will link a virtual output (output_nr) to a Dali_id on a Dali Bus_nr.'' | ||
+ | :;[bus_nr] | ||
+ | :;*bus_nr=0: Lunatone SCI directly connected to the Brain(+) | ||
+ | |||
+ | :;*bus_nr=1: Lunatone SCI is connected to the first CAN Control | ||
+ | |||
+ | :;*bus_nr=2: Lunatone SCI is connected to the second CAN Control | ||
+ | |||
+ | :;... | ||
+ | |||
+ | :;[output_nr] | ||
+ | ::This is the output nr (of a virtual module created by using instruction "add virtual output module" or "add virtual dimmer module") that will be linked to the Dali_id. | ||
+ | |||
+ | :;[dali_id] | ||
+ | ::dali_id is the address found of the "to be linked" device in the Lunatone cockpit software | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Link output 8 with Dali device on Bus 0 (SCI connected with Brain(+)) with Dali ID 1 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>dali output link write 8 0 1</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====dali output link read [output_nr]==== | ||
+ | |||
+ | :''This instruction will read which bus and Dali ID is linked to virtual output (output_nr).'' | ||
+ | |||
+ | :;[output_nr] | ||
+ | ::This is the output nr (of a virtual module created by using instruction "add virtual output module" or "add virtual dimmer module") that will be linked to the Dali_id. | ||
+ | |||
+ | |||
+ | :;Returns | ||
+ | ::<code>bus_nr dali_id</code> | ||
+ | |||
+ | Example: Check which bus and Dali ID is linked to output 8. Returns that output 8 is linked to bus 0 (SCI connected to Brain(+)) Dali ID 1. | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>dali output link read 8</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>0 1</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====dali group discover==== | ||
+ | |||
+ | :''This instruction will start of the group discovery for all the individual (non group) dali outputs'' | ||
+ | |||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===GROUP instructions=== | ||
+ | |||
+ | A group action is composed of multiple actions that can be executed. Each group action can call other group actions. Group actions can be nested up to 16 levels deep, if you go deeper, those group actions will be ignored. IF THEN ENDIF instructions used inside a group can be nested as well up to 16 levels deep. | ||
+ | The most easy way, when nested group actions including IF THEN ENDIF instructions are used is to use the CLI instruction "group simulate" which gives you a CLI representation of the result of a group action with the included nested group actions (if any). | ||
+ | |||
+ | A group action doesn't have a fixed length, the length and thus the number of group action can be defined at creation by defining the start and end BA. In total, 4200 (BA0 to BA4199) actions can be placed in 255 (0-254) different groups. Each group have a start address and end address. | ||
+ | |||
+ | Start address and end addresses can be changed even when a group has been programmed. | ||
+ | |||
+ | How does group actions work: A normal group action with format 19 0 x y will be added to the queue of immediate action. This queue will process this group action immediately. A group action with format 19 1 x y will not be executed but only simulated and the result will be printed in the CLI screen which is easy to troubleshoot complex group actions. | ||
+ | |||
+ | Group actions can also be delayed in time and only be executed when the defined time trigger has expired (expired seconds or day/hour/minute reached). For example, delayed group action BA 18 0 15 240 will execute BA19 0 15 0 after 240 seconds. | ||
+ | |||
+ | It’s important to note that delayed group actions will be put in the delay queue until the time trigger expires, then this delayed group action will be deleted from the delayed group queue (after executing the related group action). When for example a group action must be executed every 120 seconds, the group delay BA instruction (BA18) that adds the group action to be executed after 120 seconds must be added in the original group action. | ||
+ | |||
+ | When a time trigger occurred and the group action has been executed, the delayed group action is removed from the queue so if you want an action to be executed on a certain hour every day of the week, the delayed group action must be added on the delayed queue after every execution in 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 on the delayed group. 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. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group list==== | ||
+ | |||
+ | :''This instruction will display the list of all programmed group actions (group actions with a valid begin and end address and the first BA programmed) with their name.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::List of programmed group actions | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>-Group---------Name---------</code> | ||
+ | ::<code> 000 -> test</code> | ||
+ | ::<code> 001 -></code> | ||
+ | ::<code> 002 -></code> | ||
+ | ::<code> 003 -></code> | ||
+ | ::<code> 004 -></code> | ||
+ | ::<code> 139 -></code> | ||
+ | ::<code> 167 -></code> | ||
+ | ::<code> 170 -></code> | ||
+ | ::<code> 173 -></code> | ||
+ | ::<code> 176 -></code> | ||
+ | ::<code> 179 -></code> | ||
+ | ::<code> 182 -></code> | ||
+ | ::<code> 185 -></code> | ||
+ | ::<code> 188 -></code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group name read [group nr]==== | ||
+ | |||
+ | :''This instruction will read the name of a group action (0-254).'' | ||
+ | |||
+ | :;Returns | ||
+ | :: name of group action | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group name read 0</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>test</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group name write [group nr] [group name]==== | ||
+ | |||
+ | :''This instruction will program the name of group action (0-254).'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group name write 0 test</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ====group search [Type] [opt: Action] [opt: Device Nr] [opt: Extra]==== | ||
+ | |||
+ | :''This instruction will do a search in all active group actions to see if a certain group action or group family has been used. You can do a search with only 1 parameter (BA Type) or you can add additional optional parameters (Action, Device Nr, Extra) to narrow down the search'' | ||
+ | |||
+ | :;Returns | ||
+ | ::List of all groups and the search result for each group | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: (Example: Search in all groups for outputs that are toggled) | ||
+ | ::<code>group search 0 16</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Group 000 : test</code> | ||
+ | ::<code> -> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer</code> | ||
+ | ::<code>Group 001 :</code> | ||
+ | ::<code>Group 002 :</code> | ||
+ | ::<code>Group 003 :</code> | ||
+ | ::<code>Group 004 :</code> | ||
+ | ::<code>Group 005 : Output Follow</code> | ||
+ | ::<code>Group 006 :</code> | ||
+ | ::<code>Group 007 : Temp follow test</code> | ||
+ | ::<code> -> BA0075 - 000 016 00002 00000 Toggle output 2 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0076 - 000 016 00003 00000 Toggle output 3 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0077 - 000 016 00004 00000 Toggle output 4 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0078 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0079 - 000 016 00006 00000 Toggle output 6 with std timer/dimmer</code> | ||
+ | ::<code>Group 139 :</code> | ||
+ | ::<code>Group 167 :</code> | ||
+ | ::<code> -> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer</code> | ||
+ | ::<code>Group 170 :</code> | ||
+ | ::<code> -> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer</code> | ||
+ | ::<code>Group 173 :</code> | ||
+ | ::<code> -> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer</code> | ||
+ | ::<code>Group 176 :</code> | ||
+ | ::<code> -> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer</code> | ||
+ | ::<code>Group 179 :</code> | ||
+ | ::<code> -> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer</code> | ||
+ | ::<code>Group 188 :</code> | ||
+ | ::<code> -> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> -> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer</code> | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ====group start list==== | ||
+ | |||
+ | :''This instruction will list all the start addresses of each group action.'' | ||
+ | |||
+ | :;Returns | ||
+ | :: List of all start addresses of each group action | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group start list</code> | ||
+ | |||
+ | :;Returns | ||
+ | -Group nr---BA Start--BA Stop-----Name--------- | ||
+ | ::<code> 000 0000 0022 -> test</code> | ||
+ | ::<code> 001 0023 0029 -></code> | ||
+ | ::<code> 002 0030 0034 -></code> | ||
+ | ::<code> 003 0035 0041 -></code> | ||
+ | ::<code> 004 0042 0061 -></code> | ||
+ | ::<code> 005 0062 ---- -></code> | ||
+ | ::<code> 006 ---- ---- -></code> | ||
+ | ::<code> 007 ---- ---- -></code> | ||
+ | ::<code> 008 ---- ---- -></code> | ||
+ | ::<code> 009 ---- ---- -></code> | ||
+ | ::<code> 010 ---- ---- -></code> | ||
+ | ::<code> 011 ---- ---- -></code> | ||
+ | ::<code> 012 ---- ---- -></code> | ||
+ | ::<code> 013 ---- ---- -></code> | ||
+ | ::<code> 014 ---- ---- -></code> | ||
+ | ::<code> 015 ---- ---- -></code> | ||
+ | ::<code> 016 ---- ---- -></code> | ||
+ | ::<code> 017 ---- ---- -></code> | ||
+ | ::<code> 018 ---- ---- -></code> | ||
+ | ::<code> 019 ---- ---- -></code> | ||
+ | ::<code> 020 ---- ---- -></code> | ||
+ | ::<code> ...</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group start end write [group nr] [start ba nr] [end ba nr]==== | ||
+ | |||
+ | :''This instruction will write the start address (0-4199) and end address of group nr x (0-254).'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: write start address BA35 and end address BA46 of group nr 5 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group start write 5 35 46</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group read [group nr]==== | ||
+ | |||
+ | :''This instruction will read a group action (0-254) and display all BA's that this group action contains.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group read 0</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>-Grp--BA Nr---Typ-Act--x--(MSB.LSB)--y--(MSB.LSB)-------BA Description----</code> | ||
+ | ::<code> 000 0000(00) 000 007 00013(000.013) 00000(000.000) -> Output 13 ON and only overrule timer with value 0 (0x1s) when output is not yet on</code> | ||
+ | ::<code> 000 0001(01) 000 016 00005(000.005) 00000(000.000) -> Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code> 000 0002(02) 000 004 00011(000.011) 00020(000.020) -> Output 11 ON and overrule timer with value 20 (20x1s)</code> | ||
+ | ::<code> 000 0003(03) 100 000 00000(000.000) 00000(000.000) -> IF</code> | ||
+ | ::<code> 000 0004(04) 100 010 00012(000.012) 00000(000.000) -> Output 12 is ON</code> | ||
+ | ::<code> 000 0005(05) 100 150 00000(000.000) 00000(000.000) -> THEN</code> | ||
+ | ::<code> 000 0006(06) 000 001 00005(000.005) 00000(000.000) -> Output 5 ON with std timer/dimmer</code> | ||
+ | ::<code> 000 0007(07) 100 200 00000(000.000) 00000(000.000) -> ELSE</code> | ||
+ | ::<code> 000 0008(08) 019 000 00001(000.001) 00000(000.000) -> Execute Group Action 1</code> | ||
+ | ::<code> 000 0009(09) 100 255 00000(000.000) 00000(000.000) -> ENDIF</code> | ||
+ | ::<code> 000 0010(10) 000 016 00015(000.015) 00000(000.000) -> Toggle output 15 with std timer/dimmer</code> | ||
+ | ::<code> 000 0011(11) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0012(12) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0013(13) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0014(14) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0015(15) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0016(16) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0017(17) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0018(18) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0019(19) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0020(20) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0021(21) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code> 000 0022(22) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group ba write [ba nr] [Type] [Action] [Device Nr] [Extra parameter]==== | ||
+ | |||
+ | :''This instruction will write the Basic Action (Type, Action, Device Nr & Extra Parameter) of BA nr (0-4199) for a list of the different BA types that can be used, see [[Action Types AIO]].'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: write BA 35 with instruction output 17 off | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group ba write 35 0 0 17 0</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Remark: | ||
+ | ::* This instruction exist in a 5 and 7 parameter version | ||
+ | ::* The 5 parameter version has following format: "group ba write [ba nr] [Type] [Action] [Device Nr] [Extra parameter]" | ||
+ | ::* The 7 parameter version has following format: "group ba write [ba nr] [Type] [Action] [Device Nr.MSB] [Device Nr.LSB] [Extra parameter.MSB] [Extra parameter.LSB]" | ||
+ | ::* In the 7 parameter version, you split Device Nr and Extra parameter is his Most significant Byte (MSB) and his Least Significant Byte. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group ba read [ba nr]==== | ||
+ | |||
+ | :''This instruction will read the Basic Action (Type, Action, Device Nr & Extra Parameter) of BA nr (0-4199). For a list of the different BA types that can be used, see [[Action Types AIO]].'' | ||
+ | |||
+ | :;Returns | ||
+ | ::BA details | ||
+ | |||
+ | Example: read BA 100 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group ba read 100</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | ::<code>-BA Nr----Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----</code> | ||
+ | ::<code> 0100 000 016 00026(000.026) 00000(000.000) -> Toggle output 26 with std timer/dimmer</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group simulate [group nr] ==== | ||
+ | |||
+ | :''This instruction will simulate the result of a group action (0-254) including nested group actions. Below is an example of 4 nested group actions. As you can see in the below example, abstraction is made of the different group action and everything is represented in one consolidated view.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::Consolidated view of the group action | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group simulate 0</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>15:15:23 BA 000 007 00013(000.013) 00000(000.000) EXEC SIM -> Output 13 ON and only overrule timer with value 0 (0x1s) when output is not yet on</code> | ||
+ | ::<code>15:15:23 BA 000 016 00005(000.005) 00000(000.000) EXEC SIM -> Toggle output 5 with std timer/dimmer</code> | ||
+ | ::<code>15:15:23 BA 000 004 00011(000.011) 00020(000.020) EXEC SIM -> Output 11 ON and overrule timer with value 20 (20x1s)</code> | ||
+ | ::<code>15:15:23 BA 100 000 00000(000.000) 00000(000.000) IF</code> | ||
+ | ::<code>15:15:23 BA 100 010 00012(000.012) 00000(000.000) Output 12 is ON</code> | ||
+ | ::<code>15:15:24 BA 100 150 00000(000.000) 00000(000.000) THEN</code> | ||
+ | ::<code>15:15:24 BA 000 001 00005(000.005) 00000(000.000) SKIP INSTR Output 5 ON with std timer/dimmer</code> | ||
+ | ::<code>15:15:24 BA 100 200 00000(000.000) 00000(000.000) ELSE</code> | ||
+ | ::<code>15:15:24 BA 000 001 00004(000.004) 00000(000.000) EXEC SIM -> Output 4 ON with std timer/dimmer</code> | ||
+ | ::<code>15:15:24 BA 100 000 00000(000.000) 00000(000.000) IF</code> | ||
+ | ::<code>15:15:24 BA 100 011 00013(000.013) 00000(000.000) Output 13 is OFF</code> | ||
+ | ::<code>15:15:24 BA 100 150 00000(000.000) 00000(000.000) THEN</code> | ||
+ | ::<code>15:15:24 BA 100 000 00000(000.000) 00000(000.000) IF</code> | ||
+ | ::<code>15:15:24 BA 100 010 00014(000.014) 00000(000.000) Output 14 is ON</code> | ||
+ | ::<code>15:15:24 BA 100 150 00000(000.000) 00000(000.000) THEN</code> | ||
+ | ::<code>15:15:24 BA 100 000 00000(000.000) 00000(000.000) IF</code> | ||
+ | ::<code>15:15:24 BA 100 010 00007(000.007) 00000(000.000) Output 7 is ON</code> | ||
+ | ::<code>15:15:24 BA 100 090 00000(000.000) 00000(000.000) AND</code> | ||
+ | ::<code>15:15:24 BA 100 011 00008(000.008) 00000(000.000) Output 8 is OFF</code> | ||
+ | ::<code>15:15:24 BA 100 150 00000(000.000) 00000(000.000) THEN</code> | ||
+ | ::<code>15:15:24 BA 000 255 00255(000.255) 00000(000.000) SKIP INSTR Switch OFF all Outputs(x=0), Lights(x=1) or Lights&Outputs(x>1)</code> | ||
+ | ::<code>15:15:24 BA 100 200 00000(000.000) 00000(000.000) ELSE</code> | ||
+ | ::<code>15:15:24 BA 000 001 00010(000.010) 00000(000.000) EXEC SIM -> Output 10 ON with std timer/dimmer</code> | ||
+ | ::<code>15:15:24 BA 000 001 00009(000.009) 00000(000.000) EXEC SIM -> Output 9 ON with std timer/dimmer</code> | ||
+ | ::<code>15:15:24 BA 100 255 00000(000.000) 00000(000.000) ENDIF</code> | ||
+ | ::<code>15:15:24 BA 100 200 00000(000.000) 00000(000.000) ELSE</code> | ||
+ | ::<code>15:15:24 BA 000 001 00003(000.003) 00000(000.000) SKIP INSTR Output 3 ON with std timer/dimmer</code> | ||
+ | ::<code>15:15:24 BA 100 255 00000(000.000) 00000(000.000) ENDIF</code> | ||
+ | ::<code>15:15:24 BA 100 255 00000(000.000) 00000(000.000) ENDIF</code> | ||
+ | ::<code>15:15:24 BA 000 000 00020(000.020) 00000(000.000) EXEC SIM -> Output 20 OFF</code> | ||
+ | ::<code>15:15:24 BA 100 255 00000(000.000) 00000(000.000) ENDIF</code> | ||
+ | ::<code>15:15:25 BA 000 016 00015(000.015) 00000(000.000) EXEC SIM -> Toggle output 15 with std timer/dimmer</code> | ||
+ | |||
+ | :Some remarks: | ||
+ | :- SKIP INSTR: This instruction in the consolidated group view will not be executed when running in execution mode ("group activate") due to the conditions being set (IF THEN ENDIF) | ||
+ | :- EXEC SIM: This instruction will be executed when the group will be running in execution mode | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group activate [group nr] ==== | ||
+ | |||
+ | :''This instruction will execute a group action (0-254). If you want to see what's happening during execution, you can activate verbose mode by using instruction "basic action debug on". Please note that the instruction "basic action debug on" can slow down the processor due to more console printing that needs to be done.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group activate 5</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====group delay queue list==== | ||
+ | |||
+ | :''With BA17 and BA18, Group Actions can be executed at a later stage. This instruction give you an overview which group actions are planned to be executed in the future. | ||
+ | |||
+ | :;Returns | ||
+ | :;List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>group delay queue list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::list | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===VALIDATION Bit instructions=== | ||
+ | |||
+ | ====validation bit group follow read [Bit Nr] ==== | ||
+ | |||
+ | : ''A validation bit (0-255) can trigger a group action when the validation bit value changes. With this instruction, you can read, for validation bit Nr, when a value change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Group Nr | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read the group linked to validation bit 210 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>validation bit group follow read 210</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>63</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====validation bit group follow write [Bit Nr] [Group Nr] ==== | ||
+ | |||
+ | : ''A validation bit (0-255) can trigger a group action when the validation bit value changes. With this instruction, you can write, for validation bit Nr, when a value change occurs, which Group Action will be executed. '' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write group nr 63 must be linked to validation bit 210 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>validation bit group follow write 210 63</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====validation bit group follow list ==== | ||
+ | |||
+ | : ''A validation bit (0-255) can trigger a group action when the validation bit value changes. With this instruction, you can list, for all validation bits, which Group Actions are linked. '' | ||
+ | |||
+ | :;Returns | ||
+ | :;List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>validation bit group follow list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::list | ||
+ | ::<code>OK</code> | ||
+ | ---- | ||
+ | |||
+ | ====validation bit list==== | ||
+ | |||
+ | :''This instruction will display the list of all Validation Bits, the associated value and name.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::List of Validation Bits | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>Validation bit list</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::Validation Bit List | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====validation bit name read [Bit Nr] ==== | ||
+ | |||
+ | : ''With this instruction, you can read, for validation bit nr (0-255), the name of this validation bit '' | ||
+ | |||
+ | :;Returns | ||
+ | ::Validation Bit Name | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: validation bit name read | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>validation bit name read 10</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>test bit name1</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====validation bit name write [Bit Nr] [Bit Name]==== | ||
+ | |||
+ | : ''With this instruction, you can write the name of a validation bit (0-255)'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write the name "test123" for validation bit nr 10 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>validation bit name write 10 test123</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====validation bit read [Bit Nr] ==== | ||
+ | |||
+ | : ''This instruction will read the value (0 or 1) of a validation bit. Validation bits can be freely used and are often applied to remember certain events.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::Validation bit value | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Read bit 230 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>validation bit read 230</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>1</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====validation bit write [Bit Nr] [Bit Value] ==== | ||
+ | |||
+ | : ''This instruction will write Bit Value (0 or 1) in validation bit nr. Validation bits can be freely used and are often applied to remember certain events.'' | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: Write value 0 in validation bit 230 | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>validation bit write 230 0</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ===SHUTTER instructions=== | ||
+ | ====shutter group link list ==== | ||
+ | |||
+ | : ''This instruction will display a list of all shutters. For every shutter, a Y (YES) or N (NO) indicates if this shutter is linked to each of the 16 shutter groups'' | ||
+ | |||
+ | :;Returns | ||
+ | ::shutter group link list | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====shutter list ==== | ||
+ | |||
+ | : ''This instruction will display a list of all shutters with their lock status, output up & down linked, if the shutter is moving as well as the programmed timer setting for up and down '' | ||
+ | |||
+ | :;Returns | ||
+ | ::shutter list | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====shutter name read [shutter nr]==== | ||
+ | |||
+ | :''Read the name of ashutter'' | ||
+ | |||
+ | :;[input nr] | ||
+ | ::Indicates which shutter (0-31) the name has to be displayed. | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Shutter Name</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>shutter name read 15</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>Bedroom Parents</code> | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | ---- | ||
+ | |||
+ | ====shutter name write [shutter nr][shutter name]==== | ||
+ | |||
+ | :''Write the name of a shutter, max 16 characters.'' | ||
+ | |||
+ | :;[shutter nr] | ||
+ | ::Indicates which shutter (0-31) the name has to be written. | ||
+ | |||
+ | :;[shutter name] | ||
+ | ::the ascii name of the shutter (maximum 16 characters). | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
+ | |||
+ | Example: | ||
+ | |||
+ | :;Instruction: | ||
+ | ::<code>shutter name write 15 Bedroom parents</code> | ||
+ | |||
+ | :;Returns | ||
+ | ::<code>OK</code> | ||
---- | ---- |
Latest revision as of 13:48, 2 March 2023
Information about the All In One (AIO) can be found in AIO General Information.
The Gateway has 2 computer systems built-in: A Master Controller (Microchip DSPIC33) and a Gateway Controller (Linux Based Beagle Bone). 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 on the extern RS232 connector.
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)
The advantages of the AIO (All In One) design is that API and CLI mode can be used simultaneously (on 2 different UART ports).
Contents
- 1 Notes
- 2 Notation
- 3 Versioning
- 4 Instruction Set
- 4.1 General instructions
- 4.1.1 change debug off
- 4.1.2 change debug on
- 4.1.3 error list
- 4.1.4 el
- 4.1.5 error clear
- 4.1.6 firmware version
- 4.1.7 health debug off
- 4.1.8 health debug on
- 4.1.9 logging list [number of lines*]
- 4.1.10 pid debug off
- 4.1.11 pid debug on
- 4.1.12 register list
- 4.1.13 reset
- 4.1.14 state machine list
- 4.1.15 module discover start
- 4.1.16 module discover stop
- 4.1.17 startup group read
- 4.1.18 startup group write [group nr]
- 4.1.19 queue list
- 4.1.20 digital output chip read
- 4.1.21 digital output chip write [chip type]
- 4.2 Time & Date instructions
- 4.2.1 days group follow read
- 4.2.2 days group follow write [group nr]
- 4.2.3 hours group follow read
- 4.2.4 hours group follow write [group nr]
- 4.2.5 minutes group follow read
- 4.2.6 minutes group follow write [group nr]
- 4.2.7 time read
- 4.2.8 time write [hours][minutes][seconds]
- 4.2.9 date read
- 4.2.10 date write [day of the week][day][month][year]
- 4.3 Basic Action instructions
- 4.4 Eeprom & Fram instructions
- 4.4.1 eeprom erase [start page][end page][security code]
- 4.4.2 eeprom read [page][byte][Opt: Nr of byte]
- 4.4.3 eeprom read [Id0][Id1][Id2][location]
- 4.4.4 eeprom read [Id0][Id1][Id2][Id3][location]
- 4.4.5 eeprom write [page][byte][data byte]
- 4.4.6 eeprom write [Id0][Id1][Id2][location][data_byte]
- 4.4.7 eeprom write [Id0][Id1][Id2][Id3][location][data_byte]
- 4.4.8 eeprom search [start page][stop page][data byte0][Opt: data byte1][Opt: data byte2][Opt: data byte3][Opt: data byte4][Opt: data byte5]
- 4.4.9 fram erase [start page][end page][security code]
- 4.4.10 fram read [page][byte][Opt: Nr of byte]
- 4.4.11 fram write [page][byte][data byte]
- 4.5 Input instructions
- 4.5.1 add virtual input module [id1] [id2] [id3]
- 4.5.2 input action read [input nr]
- 4.5.3 input action write [input nr] [input action] [BA Type] [BA Action] [BA Device Nr] [BA Extra parameter]
- 4.5.4 input action write [input nr] [input action] [BA Type] [BA Action] [BA Device Nr.MSB] [BA Device Nr.LSB] [BA Extra parameter.MSB] [BA Extra parameter.LSB]
- 4.5.5 input debug off
- 4.5.6 input debug on
- 4.5.7 input link read [input nr]
- 4.5.8 input link write [input nr][output link nr]
- 4.5.9 input list
- 4.5.10 input release [input nr]
- 4.5.11 input press [input nr]
- 4.5.12 input name write [input nr][input name]
- 4.5.13 input name read [input nr]
- 4.5.14 pulse counter read [input nr]
- 4.5.15 input number modules read
- 4.5.16 input number modules write [number of input modules]
- 4.6 Output instructions
- 4.6.1 add virtual dimmer module [id1] [id2] [id3]
- 4.6.2 add virtual output module [id1] [id2] [id3]
- 4.6.3 output all off
- 4.6.4 aoff
- 4.6.5 output status on
- 4.6.6 oso
- 4.6.7 output list
- 4.6.8 output on [output nr] [dimmer value*] [timer value*]
- 4.6.9 on [output nr] [dimmer value*] [timer value*]
- 4.6.10 output off [output nr]
- 4.6.11 off [output nr]
- 4.6.12 output name write [output nr][output name]
- 4.6.13 output name read [output nr]
- 4.6.14 output number modules read
- 4.6.15 output number modules write [number of output modules]
- 4.6.16 output group follow read [Output Nr]
- 4.6.17 output group follow write [Output Nr] [Group Nr]
- 4.6.18 output group follow list
- 4.6.19 output all off group follow read
- 4.6.20 output all off group follow write [Group Nr]
- 4.7 Sensor instructions
- 4.7.1 add virtual sensor module [id1] [id2] [id3]
- 4.7.2 sensor extra list
- 4.7.3 sensor extra name write [sensor nr][sensor name]
- 4.7.4 sensor extra name read [sensor nr]
- 4.7.5 sensor extra group follow read [Sensor Nr]
- 4.7.6 sensor extra group follow write [Sensor Nr] [Group Nr]
- 4.7.7 sensor extra group follow list
- 4.7.8 sensor list
- 4.7.9 sensor name write [sensor nr][sensor name]
- 4.7.10 sensor name read [sensor nr]
- 4.7.11 sensor number modules read
- 4.7.12 sensor number modules write [number of sensor modules]
- 4.7.13 temperature group follow read [Sensor Nr]
- 4.7.14 temperature group follow write [Sensor Nr] [Group Nr]
- 4.7.15 temperature group follow list
- 4.7.16 humidity group follow read [Sensor Nr]
- 4.7.17 humidity group follow write [Sensor Nr] [Group Nr]
- 4.7.18 humidity group follow list
- 4.7.19 brightness group follow read [Sensor Nr]
- 4.7.20 brightness group follow write [Sensor Nr] [Group Nr]
- 4.7.21 brightness group follow list
- 4.7.22 airquality group follow read [Sensor Nr]
- 4.7.23 airquality group follow write [Sensor Nr] [Group Nr]
- 4.7.24 airquality group follow list
- 4.8 CAN module instructions
- 4.8.1 can control number modules read
- 4.8.2 can control number modules write [number of can control modules]
- 4.8.3 can debug off
- 4.8.4 can debug on
- 4.8.5 can eeprom list
- 4.8.6 can ping list
- 4.8.7 can config delete
- 4.8.8 can module number read
- 4.8.9 can module number write [number of CAN modules]
- 4.8.10 can input number read
- 4.8.11 can input number write [number of CAN inputs]
- 4.8.12 can sensor number read
- 4.8.13 can sensor number write [number of CAN sensors]
- 4.8.14 can speed read
- 4.8.15 can speed write [speed]
- 4.8.16 can message [Bus Nr] [SID] [B0] [B1] [B2] [B3] [B4] [B5] [B6] [B7]
- 4.9 DALI instructions
- 4.10 GROUP instructions
- 4.10.1 group list
- 4.10.2 group name read [group nr]
- 4.10.3 group name write [group nr] [group name]
- 4.10.4 group search [Type] [opt: Action] [opt: Device Nr] [opt: Extra]
- 4.10.5 group start list
- 4.10.6 group start end write [group nr] [start ba nr] [end ba nr]
- 4.10.7 group read [group nr]
- 4.10.8 group ba write [ba nr] [Type] [Action] [Device Nr] [Extra parameter]
- 4.10.9 group ba read [ba nr]
- 4.10.10 group simulate [group nr]
- 4.10.11 group activate [group nr]
- 4.10.12 group delay queue list
- 4.11 VALIDATION Bit instructions
- 4.11.1 validation bit group follow read [Bit Nr]
- 4.11.2 validation bit group follow write [Bit Nr] [Group Nr]
- 4.11.3 validation bit group follow list
- 4.11.4 validation bit list
- 4.11.5 validation bit name read [Bit Nr]
- 4.11.6 validation bit name write [Bit Nr] [Bit Name]
- 4.11.7 validation bit read [Bit Nr]
- 4.11.8 validation bit write [Bit Nr] [Bit Value]
- 4.12 SHUTTER instructions
- 4.1 General instructions
Notes
- In CLI mode, characters sent through RS232 can be echoed. In API mode they are never echoed.
- Instructions are case sensitive.
- As opposed to API mode, CLI mode has a variable instruction length.
- Every instruction must be followed by a Carriage return (<CR>, DEC 13).
- 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 AIO section.
- An instruction will only be executed if the Master has responded with “OK”
For the Release Notes of the AIO, please see AIO Release Notes.
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 All In One CLI interface. The All In One module is not yet available and not yet in production so please use CLI Reference Guide used in the current gateway.
Gateway Module FW version |
---|
NOT IN PRODUCTION V0.03 |
Instruction Set
General instructions
change debug off
- This instruction will disable the debug function for changes. When the debug function is activate, every time a sensor value changes (but could also be output or validation bit etc), the changed device number (like sensor) and the new value will be printed.
- Returns
OK
Example: Deactivate change debug mode
- Instruction
change debug off
- Returns
OK
change debug on
- This instruction will enable the debug function for changes. When the debug function is activate, every time a sensor value changes (but could also be output or validation bit etc), the changed device number (like sensor) and the new value will be printed.
- Returns
OK
Example: Activate change debug mode
- Instruction
change debug on
- Returns
OK
error list
el
- This instruction will list all configured modules, their ID's, the number off errors on this module and the status of each module (Good, Degraded1, Degraded2, Degraded3, Offline, Forced Offline)
- Returns
--- Total Uptime: 000334 Hours, Last Startup: 20:23:50 07/12/20 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 26'C --.--V --.--A --- --- PWR RS485/CAN/12V: 1/1/1, CANTERM: 1, BB debug: 0, Fw: 1.0.70 --- -------Output------------ID---------Err-------Status------- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 01 (O E 008->015) 079.222.189.122 00000 GOOD (000) 02 (D E 016->023) 068.072.145.035 00000 GOOD (000) -------Input-------------ID---------Err-------Status------- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 02 (b C 016->023) 098.000.000.002 00000 GOOD (000) 03 (b C 024->031) 098.000.000.003 00000 GOOD (000) 04 (I E 032->039) 073.195.134.013 00000 GOOD (144) -------Sensor------------ID---------Err-------Status------- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 01 (T E 008->015) 084.001.003.007 00000 GOOD (080) -------CAN Control-------ID---------Err-------Status------- 00 (C E 000->000) 067.131.006.013 00000 GOOD (016) -------Micro CAN---------ID---------Err-------Status------- 00 (m C 000->000) 000.100.154.092 00215 DEGRADED 2 (000) 01 (m C 001->001) 100.030.245.232 00000 GOOD (000) 02 (m C 006->006) 100.232.121.136 00000 GOOD (000) OK
- Below, you can find a short explanation what the different items mean:
- First parenthesis first character: module type1 ('O'->RS485 module, 'D'->RS485 dim (0-10V) module, 'l'->Brain(+) internal open collector output, 'i'->Input module, 'o'->output module, 'b'->Micro Can virtual input module, 's'-> Can virtual sensor module, 'T'->RS485 temperature module, 'R'->RS485 output module fully configured as Roller/Shutter module, 'm'->Micro Can module)
- First parenthesis second character: module type2 ('I'-> Internal inputs/outputs of the Brain(+), 'E'->External RS485 module, 'C'->Linked to External Micro CAN module, 'V'->Virtual module)
- First parenthesis 000->007: indicate from for example which input nr is the first and last input of that module
- ID: this is the unique ID of this module
- Err: Number of errors for each of the modules. CLI instruction "error clear" can be used to reset all errors
- Status: 4 status possibilities (GOOD, DEGRADED 1, DEGRADED 2, DEGRADED 3, OFFLINE)
- Second parenthesis: indicates the type of scanning the module will have.
- BB debug: When 1, debug mode is ON and all BA's that are executed will also be forwarded to the BB over UART API
- In the list, you'll also see the health status of the connected Micro CAN's (directly via the internal CAN bus of the Brain(+) or externally via the CAN Control). Each Micro CAN has 3 bytes as an address and as you can see in the above example, you see 4 Bytes:
- The first byte of the 4 bytes address of the Micro CAN in the above list is the Bus number:
- 100: Internal CAN Bus
- 000: CAN bus of the first CAN Control
- 001: CAN bus of the second CAN Control
- 002: CAN bus of the third CAN Control
- ...
- The first byte of the 4 bytes address of the Micro CAN in the above list is the Bus number:
error clear
- This instruction will delete all the errors and will start communicating again with the RS485 modules at the normal pace
- Returns
OK
Example:
- Instruction
error clear
- Returns
OK
firmware version
- This instruction will display the firmware of the Master and all connected slaves. The firmware version of slaves is requested directly via the RS485 bus in other words, when a slave is not online, the firmware version will not be displayed
Example:
- Instruction
firmware version
- Returns
--- Fw version Brain(+): V1.0.68 --- Output: 00 (l I) 108.000.000.000 -> Internal/Virtual 01 (O E) 079.222.189.122 -> V6.0.7 02 (D E) 068.072.145.035 -> V6.0.7 Input: 00 (i I) 105.000.000.000 -> Internal/Virtual 01 (b C) 098.000.000.001 -> Internal/Virtual 02 (b C) 098.000.000.002 -> Internal/Virtual 03 (I E) 073.195.134.013 -> V6.0.12 Sensor: 00 (s C) 115.000.000.000 -> Internal/Virtual 01 (s C) 115.000.000.001 -> Internal/Virtual 02 (T E) 084.001.003.007 -> V6.0.6 Can: 00 (C E) 067.131.006.013 -> V6.0.27 OK
health debug off
- This instruction will disable the CLI console debug function for health related matters. When for example a sensor is not responding for 2 minutes, a debug message will appear when this debug function is enabled
- Returns
- OK
health debug on
- This instruction will enable the CLI console debug function for health related matters. When for example a sensor is not responding for 2 minutes, a debug message will appear when this debug function is enabled
- Returns
- OK
logging list [number of lines*]
- * is an optional value, if the optional value is not used, the system will print the last 32 lines of the FRAM logging
- This instruction will print the FRAM logging. Events, Errors and BA's can be logged depending on the settings in Eeprom, see Memory Model Page0/Byte13
- Returns
logging list 0000(P056/B048): 21/04/19 17:22:11 BA 001 000 000 027 000 000 000 000 0001(P056/B032): 21/04/19 17:22:11 BA 000 016 000 010 000 000 000 000 0002(P056/B016): 21/04/19 17:22:11 BA 001 001 000 027 000 000 000 000 0003(P056/B000): 21/04/19 17:22:10 BA 001 000 000 027 000 000 000 000 0004(P055/B240): 21/04/19 17:22:10 BA 000 016 000 010 000 000 000 000 0005(P055/B224): 21/04/19 17:22:10 BA 001 001 000 027 000 000 000 000 0006(P055/B208): 21/04/19 17:22:10 BA 001 000 000 027 000 000 000 000 0007(P055/B192): 21/04/19 17:22:10 BA 000 016 000 010 000 000 000 000 0008(P055/B176): 21/04/19 17:22:10 BA 001 001 000 027 000 000 000 000 0009(P055/B160): 21/04/19 17:22:10 BA 001 000 000 027 000 000 000 000 0010(P055/B144): 21/04/19 17:22:09 BA 000 016 000 010 000 000 000 000 0011(P055/B128): 21/04/19 17:22:09 BA 001 001 000 027 000 000 000 000 0012(P055/B112): 21/04/19 17:22:08 BA 001 000 000 027 000 000 000 000 0013(P055/B096): 21/04/19 17:22:08 BA 000 016 000 010 000 000 000 000 0014(P055/B080): 21/04/19 17:22:08 BA 001 001 000 027 000 000 000 000 0015(P055/B064): 21/04/19 17:22:07 BA 001 000 000 027 000 000 000 000 0016(P055/B048): 21/04/19 17:22:07 BA 000 016 000 010 000 000 000 000 0017(P055/B032): 21/04/19 17:22:07 BA 001 001 000 027 000 000 000 000 0018(P055/B016): 21/04/19 17:21:49 BA 001 000 000 027 000 000 000 000 0019(P055/B000): 21/04/19 17:21:49 BA 001 001 000 027 000 000 000 000 0020(P054/B240): 21/04/19 17:21:31 BA 000 000 000 010 000 000 000 000 0021(P054/B224): 21/04/19 17:21:22 BA 000 001 000 011 000 000 000 000 0022(P054/B208): 21/04/19 17:21:15 BA 000 001 000 010 000 000 000 000 0023(P054/B192): 21/04/19 17:20:22 BA 000 255 000 255 000 000 000 000 0024(P054/B176): 21/04/19 17:17:05 EV 254 003 000 000 002 004 000 000 0025(P054/B160): 21/04/19 17:16:11 EV 254 002 000 000 000 000 000 000 0026(P054/B144): 21/04/19 16:35:16 ER 005 001 000 004 000 000 000 000 0027(P054/B128): 21/04/19 16:24:07 ER 005 001 000 004 000 000 000 000 0028(P054/B112): 21/04/19 14:40:59 ER 005 001 000 004 000 000 000 000 0029(P054/B096): 21/04/19 13:57:05 ER 005 001 000 004 000 000 000 000 0030(P054/B080): 21/04/19 13:53:07 ER 006 001 011 083 011 083 000 000 0031(P054/B064): 21/04/19 12:48:39 ER 006 001 011 083 011 083 000 000 OK
pid debug off
- This instruction will disable the CLI console debug function for PID related matters (only used in combination with HVAC module).
- Returns
- OK
pid debug on
- This instruction will enable the CLI console debug function for PID related matters (only used in combination with HVAC module).
- Returns
- OK
To enable debugging, use following instruction:
pid debug on
When a PID filter is enabled (when disabled, nothing will be displayed) on 1 of the connected HVAC modules, following will appear on the console (example):
17:51:15 084.075.215.000 pid:0 En:1(H) sensor:19.0(3) setpt:22.5 Err:7 P:49 I:0 D:0 Drive=49 Out=49(0)
Explanation:
- 17:51:15 -> Time
- 084.075.215.000 -> ID of the HVAC module (important when more then 1 HVAC module is connected)
- pid:0 -> PID 0 of the HVAC module is used
- En:1(H) -> Module is enabled (=1) and PÏD filter is in Heating(H) mode. Cooling(C) is also possible
- sensor:19:0(3) -> Sensor is measuring 19.0 degree celsius en Sensor (3) of this HVAC module is used for this PID filter
- sept:22.5 -> The thermostat setpoint is now set at 22.5 degree Celsius
- Err: 7 -> The calculated PID error is 7
- P:49 -> The calculated P result is 49
- I:0 -> The calculated I result is 0
- D:0 -> The calculated D result is 0
- Drive=49 -> The calculated PID drive (P+I+D) is 49
- Out=49(0) -> Analog output (0) will be driven with value 49 (0-255)
When the display rate of the debug information is not high enough, the sampling frequency of the HVAC module can be increased by using eeprom memory location 0/4. For example, increase the speed to display every 8 seconds the PID information:
eeprom write 0 4 10
register list
- This instruction will list all processor registers and the present values. This is for debug purposes
- Returns
---Register Values--- 00 00000 00000 00000 00087 00064 00658 16385 00128 00514 00000 00000 00000 01 00003 00000 00000 00000 00000 00000 32776 32776 32776 32776 01296 01040 02 01040 01296 00131 00272 15376 00960 08252 00000 00195 26115 13088 12290 03 00390 00129 00129 00129 16400 00000 00004 00000 00064 00000 00000 00000 04 00064 00000 00000 00000 00000 06280 49154 00008 00004 00000 00780 00000 05 00000 00000 05188 05188 25668 01089 17476 17476 17476 04676 17476 17476 06 17476 16452 17476 17476 17476 01028 17472 16448 00064 05952 16384 17429 07 17408 17476 17408 17472 17472 01092 00271 32768 32768 00000 00000 00000 08 00000 00000 00000 00000 36896 36896 00016 00016 00000 32768 00000 00000 09 00046 00000 00010 00010 00000 00000 00000 00000 00006 00006 OK
reset
- reset the CAN stack see https://wiki.openmotics.com/index.php/AIO_Release_Notes#Factory_Reset_of_a_full_installation_can_be_done_with_following_guideline
- Returns
- OK
state machine list
- This instruction will list all main state machines with the last, the minimum and maximum execution time
- Returns
#----Last----Min-----Max------Description------------------ 00 03 00004ms 00002ms 01402ms UART1 receive 01 00 00000ms 00000ms 00000ms UART2 receive 02 00 00000ms 00000ms 00000ms UART3 receive 03 01 00000ms 00000ms 00000ms UART4 receive 04 00 00061ms 00001ms 00238ms I2C1 05 00 00002ms 00001ms 00052ms I2C2 06 02 00205ms 00202ms 00258ms Update Time/Date 07 00 00001ms 00001ms 00016ms Immediate Queue 08 00 00002ms 00002ms 00006ms Timer 100ms 09 00 00001ms 00001ms 00005ms Timer 1 second 10 00 00005ms 00001ms 00005ms Timer 1 minute 11 00 15444ms 15444ms 15444ms Perform eeprom activate 12 01 00387ms 00116ms 00822ms CLI print text 13 00 00000ms 00000ms 00000ms CLI action execute 14 05 00001ms 00001ms 00016ms Scan modules over RS485 network 15 00 00035ms 00001ms 00063ms RS485 modules health status check 16 00 00001ms 00001ms 00003ms Check Error, print, store in FRAM 17 00 00001ms 00001ms 00024ms Check input queue and actions 18 00 00000ms 00000ms 00000ms Check input delay queue and actions 19 00 01391ms 01391ms 01391ms CLI print registers 20 00 00002ms 00002ms 00010ms Check CAN1 RX queue 21 00 00013ms 00001ms 00069ms Check CAN1 TX queue 22 00 00000ms 00000ms 00000ms Check hardware health 23 00 00000ms 00000ms 00000ms Check leds 24 00 00001ms 00001ms 00084ms Check internal outputs 25 00 00002ms 00001ms 00009ms Check internal inputs 26 00 00000ms 00000ms 00000ms Execute Group Action 27 00 00002ms 00001ms 00004ms Execute list of actions every minute
module discover start
- This instruction will start the discovery mode of the RS485 Bus for the non-energy modules. When this instruction is executed, the normal function of the bus is stopped to be able to add new modules.
- Returns
OK
Example:
- Instruction
module discover start
- Returns
OK
module discover stop
- This instruction will stop the discovery mode of the RS485 Bus for the non-energy modules
- Returns
OK
Example:
- Instruction
module discover stop
- Returns
OK
startup group read
- A group Action can be defined that needs to be executed when the system starts. This instruction will read the group nr (0-254) that will be executed at startup.
- Returns
group nr
OK
Example:
- Instruction
startup group read
- Returns
5
OK
startup group write [group nr]
- A group Action can be defined that needs to be executed when the system starts. This instruction will write the group nr (0-254) that will be executed at startup.
- [group nr]
- Indicates which group nr that needs to be executed at startup.
- Returns
OK
Example:
- Instruction
startup group write 5
- Returns
OK
queue list
- This instruction will print on console the immediate buffer queue. This instruction can also be used to see what's been happening recently and see the instruction that have just been executed.
- Returns
- Full list of the immediate queue including values of all pointers used
OK
Example:
- Instruction
queue list
- Returns
- Queue list
OK
digital output chip read
AS OF VERSION 1.0.150
- This instruction will print on console the type of digital output chip that is configured (PCA9534 VS PCF8574). Default value is the PCA variant
- Returns
- setting of the configured chip
OK
Example:
- Instruction
digital output chip read
- Returns
- 0x55 == PCF8574
OK
digital output chip write [chip type]
AS OF VERSION 1.0.150
- This instruction will write the type of digital output chip that is configured (PCA9534 VS PCF8574).
- [chip type]
- The type of chip that is placed on the PCB for controlling the digital outputs
- - 0x55 == 85 == PCF8574
- - 0xff == 255 == PCA9534
- Returns
OK
Example:
- Instruction
digital output chip write 85
- Returns
OK
Time & Date instructions
days group follow read
- A group Action can be defined that needs to be executed when the date (day) changes. This instruction will read the group nr (0-254) that will be executed at day change.
- Returns
group nr
OK
Example:
- Instruction
days group follow read
- Returns
5
OK
days group follow write [group nr]
- A group Action can be defined that needs to be executed when the date (day) changes. This instruction will write the group nr (0-254) that will be executed at day change.
- [group nr]
- Indicates which group nr that needs to be executed at day change.
- Returns
OK
Example:
- Instruction
days group follow write 6
- Returns
OK
hours group follow read
- A group Action can be defined that needs to be executed when the time (hour) changes. This instruction will read the group nr (0-254) that will be executed at hour change.
- Returns
group nr
OK
Example:
- Instruction
hours group follow read
- Returns
5
OK
hours group follow write [group nr]
- A group Action can be defined that needs to be executed when the time (hour) changes. This instruction will write the group nr (0-254) that will be executed at hour change.
- [group nr]
- Indicates which group nr that needs to be executed at hour change.
- Returns
OK
Example:
- Instruction
hours group follow write 6
- Returns
OK
minutes group follow read
- A group Action can be defined that needs to be executed when the time (minutes) changes. This instruction will read the group nr (0-254) that will be executed at minute change.
- Returns
group nr
OK
Example:
- Instruction
minutes group follow read
- Returns
5
OK
minutes group follow write [group nr]
- A group Action can be defined that needs to be executed when the time (minutes) changes. This instruction will write the group nr (0-254) that will be executed at minute change.
- [group nr]
- Indicates which group nr that needs to be executed at minute change.
- Returns
OK
Example:
- Instruction
minutes group follow write 6
- Returns
OK
time read
- This instruction will read the time of the internal Real Time Clock.
- Returns
- The time
OK
Example:
- Instruction
time read
- Returns
20:13:19
OK
time write [hours][minutes][seconds]
- This instruction will write the time in the Real Time Chip
- [hours]
- Value 0 to 23
- [minutes]
- Value 0 to 59
- [seconds]
- Value 0 to 99
- Returns
OK
Example:
- Instruction
time write 19 25 57
- Returns
OK
date read
- This instruction will read the date of the internal Real Time Clock.
- Returns
- The date
OK
Example:
- Instruction
date read
- Returns
2 25-12-18
OK
date write [day of the week][day][month][year]
- This instruction will write the date in the Real Time Chip
- [day of the week]
- Value 1 to 7 represents Monday to Sunday.
- [day]
- Value 1 to 31, day of the month.
- [month]
- Value 1 to 12
- [year]
- Value 0 to 99
- Returns
OK
Example:
- Instruction
date write 2 25 12 18
- Returns
OK
Basic Action instructions
basic action debug off
- This instruction will disable the debug function for Basic Actions. When the debug function is activate, every time a Basic Action is executed, the Basic Action Number and Basic Action explanation will be printed on the console.
- Returns
OK
Example: Deactivate Basic Action debug mode
- Instruction
basic action debug off
- Returns
OK
basic action debug on
- This instruction will enable the debug function for Basic Actions. When the debug function is activate, every time a Basic Action is executed, the Basic Action Number and Basic Action explanation will be printed on the console.
- Returns
OK
Example: Activate Basic Action debug mode
- Instruction
basic action debug on
- Returns
OK
basic action activate [Type] [Action] [Device Nr] [Extra parameter]
- This instruction will execute a Basic Action. For a full list of basic actions, see Action Types AIO
- [Type]
- This is the Type of a Basic Action, see [Action Types AIO]].
- [Action]
- This is the Action of a Basic Action, see [Action Types AIO]].
- [Device Nr]
- This is the Device Nr of a Basic Action, see [Action Types AIO]].
- [Extra Parameter]
- This is the Extra Parameter of a Basic Action, see [Action Types AIO]].
- Returns
OK
Example: Toggle output 12
- Instruction
basic action activate 0 16 12 0
- Returns
OK
basic action activate [Type] [Action] [Device Nr.MSB] [Device Nr.LSB] [Extra parameter.MSB] [Extra parameter.LSB]
- This instruction will execute a Basic Action. Since Device Nr and Extra Parameter contains word value, it's sometime needed for ease of use to be able to use the MSB (Most Significant Byte) and LSB (Least Significant Byte) values. For a full list of basic actions, see Action Types AIO
- [Type]
- This is the Type of a Basic Action, see [Action Types AIO]].
- [Action]
- This is the Action of a Basic Action, see [Action Types AIO]].
- [Device Nr.MSB]
- This is the MSB Device Nr of a Basic Action, see [Action Types AIO]].
- [Device Nr.LSB]
- This is the LSB Device Nr of a Basic Action, see [Action Types AIO]].
- [Extra Parameter.MSB]
- This is the MSB Extra Parameter of a Basic Action, see [Action Types AIO]].
- [Extra Parameter.LSB]
- This is the LSB Extra Parameter of a Basic Action, see [Action Types AIO]].
- Returns
OK
Example: Program in the uCAN (ID 26 88 120) for Sensor0 the sensor nr 15
- Instruction
basic action activate 20 18 26 88 120 15
- Returns
OK
Eeprom & Fram instructions
eeprom erase [start page][end page][security code]
- This instruction will erase 1 or more pages of the eeprom. With the start and end page, you can indicate which pages must be erased
- [start page]
- Indicates the start page (0-511) of the pages that must be erased.
- [end page]
- Indicates the end page (0-511) of the pages that must be erased.
- [security code]
- Security code "28883" must be used to be able to activate the erase function
- Returns
- delete progress information
OK
Example: Delete eeprom page 256
- Instruction
eeprom erase 256 256 28883
- Returns
OK
Important: It's NOT possible to undo this instruction. Once the erase is executed, the data is erased and can't be retrieved anymore.
eeprom read [page][byte][Opt: Nr of byte]
- This instruction will read 1 of more bytes from eeprom. Maximum 30 bytes can be read
- [page]
- This is the page (0-511) of the eeprom to be read.
- [byte]
- This is the byte nr to be read (or the start byte when more then 1 byte is requested)
- [Opt
- Nr of byte]
- This optional parameter (2-30) can be added when more then 1 byte must be read
- Returns
eeprom read bytes
OK
Example: Read from page 0 start at byte 2 the next 10 bytes
- Instruction
eeprom read 0 2 20
- Returns
0 2 -> 5 ( )
0 3 -> 1 ( )
0 4 -> 255 ( )
0 5 -> 13 ( )
0 6 -> 7 ( )
0 7 -> 4 ( )
0 8 -> 255 ( )
0 9 -> 255 ( )
0 10 -> 255 ( )
0 11 -> 255 ( )
0 12 -> 255 ( )
0 13 -> 255 ( )
0 14 -> 255 ( )
0 15 -> 255 ( )
0 16 -> 255 ( )
0 17 -> 255 ( )
0 18 -> 255 ( )
0 19 -> 255 ( )
0 20 -> 255 ( )
OK
eeprom read [Id0][Id1][Id2][location]
- CLI instruction "eeprom read" also supports reading the eeprom of uCAN slave modules. This function requires uCAN Firmware Version 6.0.21 or higher. Instead of 2 or 3 arguments being used (for internal eeprom read), 4 arguments are used to read the eeprom of a uCAN.
eeprom read Id0 Id1 Id2 location
- [Id0..Id2]
- This is the 3 bytes ID (without CAN Bus number) of the uCAN
- [location]
- Indicates the eeprom memory read location (0-1023) of the uCAN
- Returns
- Read Byte
OK
Example: Read the value of eeprom location 29 of the uCAN with ID 91.59.166
el --- Total Uptime: 000216 Hours, Last Startup: 08:02:09 02/09/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.109 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (b C 016->023) 098.000.000.002 00000 GOOD (000) 1 03 (b C 024->031) 098.000.000.003 00000 GOOD (000) 1 04 (b C 032->039) 098.000.000.004 00000 GOOD (000) 1 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 100.069.253.220 00001 GOOD (000) 1 01 (m C 001->001) 100.052.078.228 00000 GOOD (000) 1 02 (m C 002->002) 100.135.225.126 00000 GOOD (000) 1 03 (m C 003->003) 100.091.059.166 00000 GOOD (000) 1 OK eeprom read 91 59 166 29 15 OK
eeprom read [Id0][Id1][Id2][Id3][location]
- CLI instruction "eeprom read" also supports reading the internal processor eeprom of RS485 slave modules. Instead of 2 or 3 arguments being used (for internal eeprom read) or 4 arguments (reading uCAN), 5 arguments are used to read the eeprom of a RS485 slave module.
eeprom read Id0 Id1 Id2 Id3 location
- [Id0..Id3]
- This is the 4 bytes ID of the RS485 slave module
- [location]
- Indicates the eeprom memory read location (0-1023) of the RS485 slave
- Returns
- Location -> Read Byte
OK
Example: Read the value of eeprom location 2 of input module with ID 73.20.51.10
eeprom read 73 20 51 10 2 2 -> 20 OK
eeprom write [page][byte][data byte]
- This instruction will write 1 byte in eeprom.
- [page]
- Indicates the eeprom page (0-511) where the byte will be written.
- [byte]
- Indicates the eeprom byte (0-255) where the byte will be written.
- [data byte]
- This is the byte that will be written
- Returns
OK
Example: Write at page 10 byte 200 value 33
- Instruction
eeprom write 10 200 33
- Returns
OK
Note: Your full configuration is stored in eeprom. Programming bytes in eeprom can make your system non-functional so please be careful using this instruction unless you know what you're doing.
eeprom write [Id0][Id1][Id2][location][data_byte]
- CLI instruction "eeprom write" also supports writing the eeprom of RS485 slave modules. Instead of 3 arguments used (for internal eeprom write), 5 arguments are used to write the eeprom of a uCAN.
eeprom write Id0 Id1 Id2 location data_byte
- [Id0..Id2]
- This is the 3 bytes ID (without CAN Bus number) of the uCAN
- [location]
- Indicates the eeprom memory location (0-1023) of the uCAN where the byte will be written.
- [data byte]
- This is the byte (0-255) that will be written in the eeprom of the uCAN
- Returns
- Written Byte
OK
Example: Write a value (20) in eeprom location 29 of the eeprom of the uCAN with ID 91.59.166
el --- Total Uptime: 000216 Hours, Last Startup: 08:02:09 02/09/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.109 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (b C 016->023) 098.000.000.002 00000 GOOD (000) 1 03 (b C 024->031) 098.000.000.003 00000 GOOD (000) 1 04 (b C 032->039) 098.000.000.004 00000 GOOD (000) 1 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 100.069.253.220 00001 GOOD (000) 1 01 (m C 001->001) 100.052.078.228 00000 GOOD (000) 1 02 (m C 002->002) 100.135.225.126 00000 GOOD (000) 1 03 (m C 003->003) 100.091.059.166 00000 GOOD (000) 1 OK eeprom write 91 59 166 29 20 20 OK eeprom read 91 59 166 29 20 OK
eeprom write [Id0][Id1][Id2][Id3][location][data_byte]
- CLI instruction "eeprom write" also supports writing the eeprom of RS485 slave modules. Instead of 3 arguments used (for internal eeprom write) or 5 arguments are used to write the eeprom of a uCAN, this instruction uses 6 arguments to write the eeprom of a RS485 slave module.
eeprom write Id0 Id1 Id2 Id3 location data_byte
- [Id0..Id3]
- This is the 4 bytes ID of the RS485 slave module
- [location]
- Indicates the eeprom memory location (0-1023) of the RS485 slave module where the byte will be written.
- [data byte]
- This is the byte (0-255) that will be written in the eeprom of the RS485 slave module
- Returns
- Written Byte
OK
Example: Write a value (20) in eeprom location 29 of the eeprom of the input module with ID 73.10.22.58
eeprom write 73 10 22 58 29 20 20 (29) OK eeprom read 73 10 22 58 29 20 (29) OK
eeprom search [start page][stop page][data byte0][Opt: data byte1][Opt: data byte2][Opt: data byte3][Opt: data byte4][Opt: data byte5]
- This instruction will read search for data bytes in eeprom. The data bytes will indicate which bytes are being searched. The start and end page defines in which pages of the eeprom the search instruction has to be performed. The eeprom has 512 pages (0-511), each page contains 256 bytes of data. You can select 1 or more (up to 6) data bytes to be searched.
- [start page]
- This is the start page (0-511) of the eeprom where the search will start.
- [stop page]
- This is the stop page (0-511) of the eeprom where the search will stop.
- [data byte0..5]
- This is the data byte that will be searched in eeprom
- Returns
eeprom search result
OK
Example: (search page 0 to 10 in eeprom to find the location where 7 or 13 is written)
- Instruction
eeprom search 0 10 7 13
- Returns
0 5 -> 13
0 6 -> 7
OK
As you can see, on page 0 Byte 5 and 6, the system did found results.
fram erase [start page][end page][security code]
- This instruction will erase 1 or more pages of the FRAM. With the start and end page, you can indicate which pages must be erased
- [start page]
- Indicates the start page (0-127) of the pages that must be erased.
- [end page]
- Indicates the end page (0-127) of the pages that must be erased.
- [security code]
- Security code "28883" must be used to be able to activate the erase function
- Returns
- delete progress information
OK
Example: Delete fram page 30 till 35 (including 35)
- Instruction
fram erase 30 35 28883
- Returns
OK
Important: It's NOT possible to undo this instruction. Once the erase is executed, the data is erased and can't be retrieved anymore.
fram read [page][byte][Opt: Nr of byte]
- This instruction will read 1 of more bytes from FRAM. Maximum 30 bytes can be read
- [page]
- This is the page (0-127) of the FRAM to be read.
- [byte]
- This is the byte nr to be read (or the start byte when more then 1 byte is requested)
- [Opt
- Nr of byte]
- This optional parameter (2-30) can be added when more then 1 byte must be read
- Returns
Fram read bytes
OK
Example: Read from page 0 start at byte 2 the next 10 bytes
- Instruction
fram read 0 2 20
- Returns
0 2 -> 5 ( )
0 3 -> 1 ( )
0 4 -> 255 ( )
0 5 -> 13 ( )
0 6 -> 7 ( )
0 7 -> 4 ( )
0 8 -> 255 ( )
0 9 -> 255 ( )
0 10 -> 255 ( )
0 11 -> 255 ( )
0 12 -> 255 ( )
0 13 -> 255 ( )
0 14 -> 255 ( )
0 15 -> 255 ( )
0 16 -> 255 ( )
0 17 -> 255 ( )
0 18 -> 255 ( )
0 19 -> 255 ( )
0 20 -> 255 ( )
OK
fram write [page][byte][data byte]
- This instruction will write 1 byte in FRAM.
- [page]
- Indicates the FRAM page (1-127) where the byte will be written.
- [byte]
- Indicates the FRAM byte (0-255) where the byte will be written.
- [data byte]
- This is the byte that will be written
- Returns
OK
Example: Write at page 10 byte 200 value 33
- Instruction
fram write 10 200 33
- Returns
OK
Note: Please note that page 0 is protected and can't be written by the user.
Input instructions
add virtual input module [id1] [id2] [id3]
- This instruction will add a virtual input module (id0="i") with id1, id2 and id3. When using this instruction, please make sure that the combination id1, id2 and id3 for the input list is unique and not yet used.
- Example:
el --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 -------CAN Control-------ID---------Err-------Status--------Pwr--- 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 OK add virtual input module 0 0 2 OK el --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 -------CAN Control-------ID---------Err-------Status--------Pwr--- 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 OK
input action read [input nr]
- This instruction will read the BA's that are linked to an input
- Following input actions with associated BA can be linked to an input:
- Action 0: Press Action
- Action 1: Release Action
- Action 2: 1 Sec Press
- Action 3: 2 Sec Press
- Action 4: Double Press
- Returns
----------------Act--Inp-Cnf-Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
0- PRESS : Yes 001 0 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
1- RELEASE : Yes 001 1 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
2- 1SEC PRESS : No 001 2 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
3- 2SEC PRESS : No 001 3 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
4-DOUBLE PRESS: No 001 4 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
OK
input action write [input nr] [input action] [BA Type] [BA Action] [BA Device Nr] [BA Extra parameter]
- This instruction will program for an input and for a certain input action the associated BA
- Input Nr: This is the input number to be programmed
- Input action: Following input actions can be used
- 0: Press Action
- 1: Release Action
- 2: 1 Sec Press
- 3: 2 Sec Press
- 4: Double Press
- BA type, BA action, BA device etc: This is the BA to be executed when an input action occurs, see Action Types AIO
- Returns
OK
input action write [input nr] [input action] [BA Type] [BA Action] [BA Device Nr.MSB] [BA Device Nr.LSB] [BA Extra parameter.MSB] [BA Extra parameter.LSB]
- This instruction will program for an input and for a certain input action the associated BA. This instruction is equal then the above instruction excepts that BA Device Nr and BA Extra Parameter are split in a MSB byte and a LSB byte
- Input Nr: This is the input number to be programmed
- Input action: Following input actions can be used
- 0: Press Action
- 1: Release Action
- 2: 1 Sec Press
- 3: 2 Sec Press
- 4: Double Press
- BA type, BA action, BA device etc: This is the BA to be executed when an input action occurs, see Action Types AIO
- Returns
OK
input debug off
- This instruction will disable the CLI console debug function for inputs. When an input is pressed or released, a debug message will appear when this debug function is enabled
- Returns
- OK
input debug on
- This instruction will enable the CLI console debug function for inputs. When an input is pressed or released, a debug message will appear when this debug function is enabled
- Returns
- OK
input link read [input nr]
- This instruction will read, for an input, which output or action is linked to it.
- [input nr]
- Indicates which input (0-631) that the link has to be read.
- Returns
output nr or link
OK
Example:
- Instruction
input link read 15
- Returns
12
OK
input link write [input nr][output link nr]
- This instruction will write, for an input (0-479), which output (0-479) or action is linked to it.
- [input nr]
- Indicates which input that the link has to be written.
- Returns
OK
Example: Link input 15 with output 12
- Instruction
input link write 15 12
- Returns
OK
To unconfigure an input from an output:
input link read 32 Input 32 is linked to Output 14 OK
input link write 32 65535 OK
input link read 32 Input 32 has no Output nor any action(s) linked OK
input list
- This instruction will display the list of inputs, the status (0-> release state, 1-> press state), the link (is an action configured or an output linked) and the name of each input
- Returns
- The input list
input release [input nr]
- Switch input to release state for virtual modules.
- [input nr]
- Indicates which input that needs to be put in release state, a maximum of 632 (0 - 631) inputs can be used.
- Returns
OK
Example:
- Instruction
input release 28
- Returns
OK
input press [input nr]
- Switch input to press state for virtual modules.
- [input nr]
- Indicates which input that needs to be put in press state, a maximum of 632 (0 - 631) inputs can be used.
- Returns
OK
Example:
- Instruction
input press 28
- Returns
OK
input name write [input nr][input name]
- Write the name of an input, max 16 characters.
- [input nr]
- Indicates which input (0-631) the name has to be written.
- [input name]
- the ascii name of the input (maximum 16 characters).
- Returns
OK
Example:
- Instruction
input name write 28 Bedroom parents
- Returns
OK
input name read [input nr]
- Read the name of an input
- [input nr]
- Indicates which input (0-631) the name has to be displayed.
- Returns
Input Name
OK
Example:
- Instruction
input name read 28
- Returns
Bedroom Parents
OK
pulse counter read [input nr]
- Read the pulse counter number of an input
- [input nr]
- Indicates which input (0-631) the pulse counter number has to be displayed.
- Returns
pulse counter number
OK
Example:
- Instruction
pulse counter read 3
- Returns
2546678
OK
input number modules read
- Read the number of input modules that are programmed and active
- Returns
Number Of Input Modules
OK
Example:
- Instruction
input number modules read
- Returns
6
OK
input number modules write [number of input modules]
- Writes the number of input modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM
- [number of input modules]
- Indicates the number of input modules that are active and programmed.
- Returns
OK
Example:
- Instruction
input number modules write 7
- Returns
OK
Output instructions
add virtual dimmer module [id1] [id2] [id3]
- This instruction will add a virtual dimmer module (id0="d") with id1, id2 and id3. When using this instruction, please make sure that the combination id1, id2 and id3 for the output list is unique and not yet used.
- Important Note: id1..id3 0.0.0, 0.0.1, 0.0.2 and 0.0.3 are reserved for internal use and cannot be used.
- Example:
el --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 01 (s C 008->015) 115.000.000.001 00000 GOOD (000) 1 -------CAN Control-------ID---------Err-------Status--------Pwr--- 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 OK add virtual dimmer module 0 0 4 OK el --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 01 (d V 008->015) 100.000.000.004 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 01 (s C 008->015) 115.000.000.001 00000 GOOD (000) 1 -------CAN Control-------ID---------Err-------Status--------Pwr--- 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 OK
add virtual output module [id1] [id2] [id3]
- This instruction will add a virtual dimmer module (id0="o") with id1, id2 and id3. When using this instruction, please make sure that the combination id1, id2 and id3 for the output list is unique and not yet used.
- Important Note: id1..id3 0.0.0, 0.0.1, 0.0.2 and 0.0.3 are reserved for internal use and cannot be used.
- Example:
el --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 01 (d V 008->015) 100.000.000.004 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 01 (s C 008->015) 115.000.000.001 00000 GOOD (000) 1 -------CAN Control-------ID---------Err-------Status--------Pwr--- 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 OK add virtual output module 0 0 5 OK el --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 01 (d V 008->015) 100.000.000.004 00000 GOOD (000) 1 02 (o V 016->023) 111.000.000.005 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 01 (s C 008->015) 115.000.000.001 00000 GOOD (000) 1 -------CAN Control-------ID---------Err-------Status--------Pwr--- 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 OK
output all off
aoff
- Switch all outputs off.
- Returns
OK
Example:
- Instruction
output all off
will switch all outputs OFF.
- Returns
OK
- Instruction
oaoff
will switch all outputs OFF.
- Returns
OK
output status on
oso
- Returns the list of all outputs that are ON.
- Returns
- List of outputs that are ON
output list
- This instruction will display the list of outputs, the status (On or Off), the dim value, the configured timer value, the timer type (Off, , 100ms timer, 1s timer or 1m timer) and the name of each output
- Returns
- The output list
output on [output nr] [dimmer value*] [timer value*]
on [output nr] [dimmer value*] [timer value*]
- Switch ON an output. * are optional values
- [output nr]
- Indicates which output that needs to be switched ON, a maximum of 640 (0 - 639) outputs can be used.
- [dimmer value*]
- Optional parameter to set the dimmer value (0-255)
- [timer value*]
- Optional parameter to set the timer value (0-65535s)
- Returns
OK
Examples:
- Instruction
output on 127
- will switch ON output 127.
- Returns
OK
- Instruction
output on 127 56
- will switch ON output 127 with dimmer value 56.
- Returns
OK
- Instruction
output on 127 56 3600
- will switch ON output 127 with dimmer value 56 for 3600 seconds.
- Returns
OK
- Instruction
oon 127 56 3600
- will switch ON output 127 with dimmer value 56 for 3600 seconds.
- Returns
OK
output off [output nr]
off [output nr]
- Switch OFF an output.
- [output nr]
- Indicates which output that needs to be switched OFF, a maximum of 640 (0 - 639) outputs can be used.
- Returns
OK
Example:
- Instruction
output off 127
will switch OFF output 127.
- Returns
OK
- Instruction
ooff 127
will switch OFF output 127.
- Returns
OK
output name write [output nr][output name]
- Write the name of an output, max 16 characters.
- [output nr]
- Indicates which output (0-639) the name has to be written.
- [output name]
- the ascii name of the output (maximum 16 characters).
- Returns
OK
Example:
- Instruction
output name write 24 Bedroom 4
- Returns
OK
output name read [output nr]
- Read the name of an output
- [output nr]
- Indicates which output (0-639) the name has to be displayed.
- Returns
output Name
OK
Example:
- Instruction
output name read 24
- Returns
Bedroom 4
OK
output number modules read
- Read the number of output modules that are programmed and active
- Returns
Number Of Output Modules
OK
Example:
- Instruction
output number modules read
- Returns
6
OK
output number modules write [number of output modules]
- Writes the number of output modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM
- [number of output modules]
- Indicates the number of output modules that are active and programmed.
- Returns
OK
Example:
- Instruction
output number modules write 7
- Returns
OK
output group follow read [Output Nr]
- An output activation (switch on, off or change dimmer value) can be programmed to trigger a group action. With this instruction, you can read, for Output Nr, when an output activation occurs, which Group Action will be executed.
- Returns
- Group Nr
OK
Example: Read the group linked to output 35
- Instruction
output group follow read 35
- Returns
10
OK
output group follow write [Output Nr] [Group Nr]
- An output activation (switch on, off or change dimmer value) can be programmed to trigger a group action. With this instruction, you can write, for Output Nr, when an output activation occurs, which Group Action will be executed.
- Returns
OK
Example: Write group nr 10 must be linked to output 35
- Instruction
output group follow write 35 10
- Returns
OK
output group follow list
- An output activation (switch on, off or change dimmer value) can be programmed to trigger a group action. With this instruction, you can list, for all outputs in use, which Group Actions are linked.
- Returns
- List
OK
- Instruction
output group follow list
- Returns
- list
OK
output all off group follow read
- An output all off instruction (like BA????) can be programmed to trigger a group action. With this instruction, you can read which Group Action will be executed.
- Returns
- Group Nr
OK
Example:
- Instruction
output all off group follow read
- Returns
30
OK
Remark:
- When an output all off instruction is executed, only the all off group nr will be executed and not all the individual output group follow actions.
output all off group follow write [Group Nr]
- An output all off instruction (like BA????) can be programmed to trigger a group action. With this instruction, you can write which Group Action will be executed.
- Returns
OK
Example:
- Instruction
output all off group follow write 30
- Returns
OK
Remark:
- When an output all off instruction is executed, only the all off group nr will be executed and not all the individual output group follow actions.
Sensor instructions
add virtual sensor module [id1] [id2] [id3]
- This instruction will add a virtual sensor module (id0="t") with id1, id2 and id3. When using this instruction, please make sure that the combination id1, id2 and id3 for the sensor list is unique and not yet used.
- Example:
el --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 -------CAN Control-------ID---------Err-------Status--------Pwr--- 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 OK add virtual sensor module 0 0 1 OK el --- Total Uptime: 000259 Hours, Last Startup: 16:26:54 24/10/21 --- --- Module Type: BRAIN, RS485 mode: 0, Board: 27'C --.--V --.--A --- --- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.113 --- -------Output------------ID---------Err-------Status--------Pwr--- 00 (l I 000->007) 108.000.000.000 00000 GOOD (000) 1 -------Input-------------ID---------Err-------Status--------Pwr--- 00 (i I 000->007) 105.000.000.000 00000 GOOD (000) 1 01 (b C 008->015) 098.000.000.001 00000 GOOD (000) 1 02 (i V 016->023) 105.000.000.002 00000 GOOD (000) 0 -------Sensor------------ID---------Err-------Status--------Pwr--- 00 (s C 000->007) 115.000.000.000 00000 GOOD (000) 1 01 (t V 008->015) 116.000.000.001 00000 GOOD (000) 1 -------CAN Control-------ID---------Err-------Status--------Pwr--- 00 (C E 000->000) 067.001.230.000 00000 GOOD (016) 1 -------Micro CAN---------ID---------Err-------Status--------Pwr--- 00 (m C 000->000) 000.248.090.233 00000 GOOD (000) 1 OK
sensor extra list
- This instruction will display the list of Extra Sensors. Extra Sensors (max 64, 0-63) can be freely used for example to store the wind direction, windspeed etc of a weather station, power measurement and others. Extra Sensors can also trigger group actions and can be used with IF THEN instructions. The values are being set by using BA instructions. Sensor value used are 16bits.
- Returns
- The sensor extra list
sensor extra name write [sensor nr][sensor name]
- Write the name of an extra sensor, max 16 characters.
- [sensor nr]
- Indicates which sensor (0-63) the name has to be written.
- [sensor name]
- the ascii name of the sensor (maximum 16 characters).
- Returns
OK
Example:
- Instruction
sensor extra name write 15 Windspeed
- Returns
OK
sensor extra name read [sensor nr]
- Read the name of an extra sensor
- [sensor nr]
- Indicates which sensor (0-63) the name has to be displayed.
- Returns
Sensor Name
OK
Example:
- Instruction
sensor extra name read 15
- Returns
Windspeed
OK
sensor extra group follow read [Sensor Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor extra Nr (0-63), when a value change occurs, which Group Action will be executed.
- Returns
- Group Nr
OK
Example: Read the group linked to sensor extra 30
- Instruction
sensor extra group follow read 30
- Returns
20
OK
sensor extra group follow write [Sensor Nr] [Group Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Extra Nr (0-63), when a value change occurs, which Group Action will be executed.
- Returns
OK
Example: Write group nr 20 must be linked to sensor extra 30
- Instruction
sensor extra group follow write 30 20
- Returns
OK
sensor extra group follow list
- A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all Extra Sensors, which Group Actions are linked.
- Returns
- List
OK
- Instruction
sensor extra group follow list
- Returns
- list
OK
sensor list
- This instruction will display the list of sensors, the temperature, the humidity, the brightness and the name of each sensor
- Returns
- The sensor list
sensor name write [sensor nr][sensor name]
- Write the name of a sensor, max 16 characters.
- [sensor nr]
- Indicates which sensor (0-127) the name has to be written.
- [sensor name]
- the ascii name of the sensor (maximum 16 characters).
- Returns
OK
Example:
- Instruction
sensor name write 12 Bedroom 1
- Returns
OK
sensor name read [sensor nr]
- Read the name of a sensor
- [sensor nr]
- Indicates which sensor (0-127) the name has to be displayed.
- Returns
Sensor Name
OK
Example:
- Instruction
sensor name read 12
- Returns
Bedroom 1
OK
sensor number modules read
- Read the number of sensor modules that are programmed and active
- Returns
Number Of Sensor Modules
OK
Example:
- Instruction
sensor number modules read
- Returns
6
OK
sensor number modules write [number of sensor modules]
- Writes the number of sensor modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM
- [number of sensor modules]
- Indicates the number of sensor modules that are active and programmed.
- Returns
OK
Example:
- Instruction
sensor number modules write 7
- Returns
OK
temperature group follow read [Sensor Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor Nr (0-127), when a temperature change occurs, which Group Action will be executed.
- Returns
- Group Nr
OK
Example: Read the group linked to sensor 17
- Instruction
temperature group follow read 17
- Returns
3
OK
temperature group follow write [Sensor Nr] [Group Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Nr (0-127), when a temperature change occurs, which Group Action will be executed.
- Returns
OK
Example: Write group nr 3 must be linked to sensor 17
- Instruction
temperature group follow write 17 3
- Returns
OK
temperature group follow list
- A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all sensor in use, which Group Actions are linked.
- Returns
- List
OK
- Instruction
temperature group follow list
- Returns
- list
OK
humidity group follow read [Sensor Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor Nr (0-127), when a humidity change occurs, which Group Action will be executed.
- Returns
- Group Nr
OK
Example: Read the group linked to sensor 17
- Instruction
humidity group follow read 17
- Returns
4
OK
humidity group follow write [Sensor Nr] [Group Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Nr (0-127), when a humidity change occurs, which Group Action will be executed.
- Returns
OK
Example: Write group nr 4 must be linked to sensor 17
- Instruction
humidity group follow write 17 4
- Returns
OK
humidity group follow list
- A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all sensor in use, which Group Actions are linked.
- Returns
- List
OK
- Instruction
humidity group follow list
- Returns
- list
OK
brightness group follow read [Sensor Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor Nr (0-127), when a brightness change occurs, which Group Action will be executed.
- Returns
- Group Nr
OK
Example: Read the group linked to sensor 17
- Instruction
brightness group follow read 17
- Returns
5
OK
brightness group follow write [Sensor Nr] [Group Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Nr (0-127), when a brightness change occurs, which Group Action will be executed.
- Returns
OK
Example: Write group nr 5 must be linked to sensor 17
- Instruction
brightness group follow write 17 5
- Returns
OK
brightness group follow list
- A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all sensor in use, which Group Actions are linked.
- Returns
- List
OK
- Instruction
brightness group follow list
- Returns
- list
OK
airquality group follow read [Sensor Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can read, for Sensor Nr (0-127), when an air quality (CO2) change occurs, which Group Action will be executed.
- Returns
- Group Nr
OK
Example: Read the group linked to sensor 17
- Instruction
airquality group follow read 17
- Returns
6
OK
airquality group follow write [Sensor Nr] [Group Nr]
- A sensor can trigger a group action when one of their values changes. With this instruction, you can write, for Sensor Nr (0-127), when an air quality (CO2) change occurs, which Group Action will be executed.
- Returns
OK
Example: Write group nr 6 must be linked to sensor 17
- Instruction
airquality group follow write 17 6
- Returns
OK
airquality group follow list
- A sensor can trigger a group action when one of their values changes. With this instruction, you can list, for all sensor in use, which Group Actions are linked.
- Returns
- List
OK
- Instruction
airquality group follow list
- Returns
- list
OK
CAN module instructions
can control number modules read
- Read the number of CAN Control modules that are programmed and active
- Returns
Number Of CAN Control Modules
OK
Example:
- Instruction
can control number modules read
- Returns
2
OK
can control number modules write [number of can control modules]
- Writes the number of CAN Control modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM
- [number of CAN Control modules]
- Indicates the number of CAN Control modules that are active and programmed.
- Returns
OK
Example:
- Instruction
can control number modules write 2
- Returns
OK
can debug off
- This instruction will disable the debug function for CAN messages sent and received on the CAN bus.
- Returns
OK
Example: Deactivate CAN debug mode
- Instruction
can debug off
- Returns
OK
can debug on
- This instruction will enable the debug function for CAN messages sent and received on the CAN bus.
- Returns
OK
Example: Activate CAN debug mode
- Instruction
can debug on
- Returns
OK
can eeprom list
- This instruction will list the programmed configuration stored in the Brain(+) of all connected Micro CAN's.
- Returns
- Configuration list of all programmed Micro CAN's
Example:
- Instruction
can eeprom list
- Returns
-Nr-Bus-ID2.ID1.ID0--Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Modbus-Type 00 000 100.154.092 009(001) 008(000) 255(255) 255(255) 255(255) 255(255) 000(000) 255(000) 255 255 01 100 030.245.232 255(255) 255(255) 010(002) 011(003) 012(004) 013(005) 255(100) 255(255) 255 255 02 100 232.121.136 255(255) 255(255) 036(020) 037(021) 035(019) 034(018) 006(100) 255(006) 255 255 OK
- As you can see in the above example, 1 Micro Can is not responding. If you still want to know the configuration of this Micro Can, you can use the CLI instruction
can eeprom list
- These are the explanations of the different items in the "can ping list":
- Nr: Micro CAN number
- Bus: This is the Bus number on which the Micro CAN is connected
- 100: Internal CAN Bus
- 000: CAN bus of the first CAN Control
- 001: CAN bus of the second CAN Control
- 002: CAN bus of the third CAN Control
- ...
- Inp.link0-5: This is system input nr of the Brain(+) that is linked to the input (0-5) of the Micro CAN. The value between parenthesis is the input number on that bus and is for developer purposes only and thus can be ignored.
- Tem.link0-1: This is the system sensor nr of the Brain(+) that is linked to the sensor (0-1) of the Micro CAN. The value between parenthesis is the sensor number on that bus and is for developer purposes only and thus can be ignored.
- Modbus: Modbus address (255-> not configured)
- Type:
- .BIT7: =0->Modbus VOC is used, =1->uCAN VOC is used
- .BIT6: =0->Modbus CO2 is used, =1->uCAN CO2 is used
- .BIT5: =0->Modbus humidity is used, =1->uCAN humidity is used
- .BIT4: =0->Modbus temp is used, =1->uCAN temp is used
- .BIT3: =0->Modbus LUX is used, =1->uCAN LUX is used
can ping list
- This instruction will request to all connected Micro CAN's the full status and configuration.
- Returns
- The detailed answers of the connected Micro CAN's
Example:
- Instruction
can ping list
- Returns
Nr-Bus-ID2.ID1.ID0-Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Type-Firmware-Boot-ID_NE-Modbus-Type-Model-Speed-Stat1-Stat2-Min-MAX-delay--Volt-- 00 000 100.154.092 NA(NA) NA(NA) NA(NA) NA(NA) NA(NA) NA(NA) NA(NA) NA(NA) NA NA NA NA NA NA NA NA NA NA NA NA >500ms NA 01 100 030.245.232 255(255) 255(255) 010(002) 011(003) 012(004) 013(005) 255(255) 255(255) 000 F06.00.06 255 069 255 255 255 255 000 255 000 255 001ms 23.48V 02 100 232.121.136 255(255) 255(255) 028(020) 029(021) 027(019) 026(018) 006(006) 255(255) 060 F06.00.08 255 069 255 255 255 255 000 255 000 255 001ms 23.18V OK
- As you can see in the above example, 1 Micro Can is not responding. If you still want to know the configuration of this Micro Can, you can use the CLI instruction
can eeprom list
- These are the explanations of the different items in the "can ping list":
- Nr: Micro CAN number
- Bus: This is the Bus number on which the Micro CAN is connected
- 100: Internal CAN Bus
- 000: CAN bus of the first CAN Control
- 001: CAN bus of the second CAN Control
- 002: CAN bus of the third CAN Control
- ...
- Inp.link0-5: This is system input nr of the Brain(+) that is linked to the input (0-5) of the Micro CAN. The value between parenthesis is the input number on that bus and is for developer purposes only and thus can be ignored.
- Tem.link0-1: This is the system sensor nr of the Brain(+) that is linked to the sensor (0-1) of the Micro CAN. The value between parenthesis is the sensor number on that bus and is for developer purposes only and thus can be ignored.
- Type: This is the type sensors connected on the Micro CAN:
- BIT0=1: Temperature sensor DS1820 1wire found on the first sensor connection
- BIT1=1: Temperature sensor DS1820 1wire found on the second sensor connection
- BIT2=1: Honeywell HIH8121 Temp/humidity sensor I2C found
- BIT3=1: TSL2591 I2C lux sensor found
- BIT4=1: CCS811 I2C air quality sensor found
- BIT5=1: T67xx I2C air quality sensor found
- Firmware: This is the current firmware version
- Boot: Bootloader mode for next startup
- ID_NE: 78->New Micro Can, 69->Existing Micro Can
- CanP1: =1->CanP parameters are validated and ready to be used
- CanP2: BRGCON1 (18F46K80)
- CanP3: BRGCON2 (18F46K80)
- CanP4: BRGCON3 (18F46K80)
- CanP5: CRC8 of CanP2-CanP4
- Stat: Led/Buzzer status
- .BIT0->Buzzer ON(1)/OFF(0) for all functions
- .BIT1->Buzzer ON(1)/OFF(0) for non-linked switches
- .BIT2->TriColor status led ON(1)/OFF(0)
- Min: Minimum led brightness
- Max: Maximum led brightness
- Delay: Trip Round time between request and response
- Volt: This is the voltage the Micro CAN is measuring. This is an interesting value, when long cables are used, to see how much voltage drop the cables are generating
can config delete
- This instruction will perform a factory reset of the CAN config in the master as well as in the micro CAN slaves. After this instruction, the micro CAN config is deleted from the eeprom of the master and the micro CAN slaves.
- Returns
can config delete
OK
Example:
- Instruction
can config delete
- Returns
OK
can module number read
- Read the number of CAN modules that are programmed and active
- Returns
Number Of CAN Modules
OK
Example:
- Instruction
can module number read
- Returns
6
OK
can module number write [number of CAN modules]
- Writes the number of CAN modules that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM
- [number of CAN modules]
- Indicates the number of CAN modules that are active and programmed.
- Returns
OK
Example:
- Instruction
can module number write 7
- Returns
OK
can input number read
- Read the number of CAN inputs that are programmed and active
- Returns
Number Of CAN inputs
OK
Example:
- Instruction
can input number read
- Returns
12
OK
can input number write [number of CAN inputs]
- Writes the number of CAN inputs that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM
- [number of CAN inputs]
- Indicates the number of CAN inputs that are active and programmed.
- Returns
OK
Example:
- Instruction
can input number write 13
- Returns
OK
can sensor number read
- Read the number of CAN sensors that are programmed and active
- Returns
Number Of CAN sensors
OK
Example:
- Instruction
can sensor number read
- Returns
4
OK
can sensor number write [number of CAN sensors]
- Writes the number of CAN sensors that are programmed and active. This instruction will, after the write is performed, activate the instruction eeprom activate so all values from eeprom are read and copied in RAM
- [number of CAN inputs]
- Indicates the number of CAN sensors that are active and programmed.
- Returns
OK
Example:
- Instruction
can sensor number write 6
- Returns
OK
can speed read
- This instruction will display the CAN bus speed currently in use.
- Returns
- CAN bus speed
Example:
- Instruction
can speed read
- Returns
125kbps OK
can speed write [speed]
- This instruction will write the new CAN bus speed that will be effective after reset. Supported speeds are 20kbps, 50kbps, 125kbps and 250kbps.
- Returns
- CAN bus parameters
Example:
- Instruction
can speed write 50
- Returns
CAN P: 001 031 255 002 060 OK
Notes:
- New uCAN's are programmed at a speed of 125kbps so when new uCAN's are added to an existing network, change the speed to 125kbps, add the uCAN and then change to the required speed.
- The instruction "can speed write" can also be executed without any parameter. Without parameter, the Master will take the values programmed in Eeprom starting at Page0/Byte14 and verify integrity of those values. When the integrity is OK, these values will be distributed towards the uCAN and programmed in the Master to be used after the next reset. This allows custom CAN parameters to be used in a system.
- The speed that a CAN bus is able to support depends on the cable used and the length: Increase in cable length means decrease in CAN speed, decrease in cable quality means decrease in CAN speed. A good quality cable (for example UTP CAT6) at CAN speed of 125kbps can easily support 250 meter.
can message [Bus Nr] [SID] [B0] [B1] [B2] [B3] [B4] [B5] [B6] [B7]
- This instruction allows to sent direct messages to the CAN bus. To see the response on these messages, turn on the CAN debug functionality ("can debug on").
- [Bus Nr]
- Indicates the Bus Nr on which the CAN message must be sent:100->internal CAN bus, 0->First CAN Control, 1->Second CAN Control etc, 255->Broadcast message on all available CAN busses.
- [Bx]
- B1..B8 are the bytes that forms the CAN message, length of the CAN message (Minimum 2, maximum 8 bytes (B1..B8))
Example: Sent message on the internal CAN bus with SID=6, 5 bytes long message 1 100 0 0 101
- Instruction
can message 0 6 1 100 0 0 101
- Returns
OK
DALI instructions
dali debug off
- This instruction will disable the debug function for Dali message sent and received on the Dali bus.
- Returns
OK
Example: Deactivate Dali debug mode
- Instruction
dali debug off
- Returns
OK
dali debug on
- This instruction will enable the debug function for Dali message sent and received on the Dali bus.
- Returns
OK
Example: Activate Dali debug mode
- Instruction
dali debug on
- Returns
OK
Example of received info:
16:43:48 CAN RX(100) SID=6 L=7 -> 1 96 151 12 143 1 148 2
Some info of the above example:
- RX -> Received CAN information, TX -> Transmit CAN information
- (100) -> Bus: 100 -> internal can bus, 0 -> first Can Control, 1 -> second Can Control, ...
- L -> length of the CAN message
dali input link write [input_nr] [bus_nr] [dali_id]
- This instruction will link a virtual input (input_nr) to a Dali_id on a Dali Bus_nr.
- [bus_nr]
- bus_nr=0
- Lunatone SCI directly connected to the Brain(+)
- bus_nr=1
- Lunatone SCI is connected to the first CAN Control
- bus_nr=2
- Lunatone SCI is connected to the second CAN Control
- ...
- [input_nr]
- This is the input nr (of a virtual module created by using instruction "add virtual input module") that will be linked to the Dali_id.
- [dali_id]
- dali_id is the address found of the "to be linked" device in the Lunatone cockpit software
- Returns
OK
Example: Link input 8 with Dali device on Bus 0 (SCI connected with Brain(+)) with Dali ID 1
- Instruction
dali input link write 8 0 1
- Returns
OK
dali input link read [input_nr]
- This instruction will read which bus and Dali ID is linked to virtual input (input_nr).
- [input_nr]
- This is the input nr (of a virtual module created by using instruction "add virtual input module") that will be linked to the Dali_id.
- Returns
bus_nr dali_id
Example: Check which bus and Dali ID is linked to output 8. Returns that output 8 is linked to bus 0 (SCI connected to Brain(+)) Dali ID 1.
- Instruction
dali input link read 8
- Returns
0 1
OK
dali output link write [output_nr] [bus_nr] [dali_id]
- This instruction will link a virtual output (output_nr) to a Dali_id on a Dali Bus_nr.
- [bus_nr]
- bus_nr=0
- Lunatone SCI directly connected to the Brain(+)
- bus_nr=1
- Lunatone SCI is connected to the first CAN Control
- bus_nr=2
- Lunatone SCI is connected to the second CAN Control
- ...
- [output_nr]
- This is the output nr (of a virtual module created by using instruction "add virtual output module" or "add virtual dimmer module") that will be linked to the Dali_id.
- [dali_id]
- dali_id is the address found of the "to be linked" device in the Lunatone cockpit software
- Returns
OK
Example: Link output 8 with Dali device on Bus 0 (SCI connected with Brain(+)) with Dali ID 1
- Instruction
dali output link write 8 0 1
- Returns
OK
dali output link read [output_nr]
- This instruction will read which bus and Dali ID is linked to virtual output (output_nr).
- [output_nr]
- This is the output nr (of a virtual module created by using instruction "add virtual output module" or "add virtual dimmer module") that will be linked to the Dali_id.
- Returns
bus_nr dali_id
Example: Check which bus and Dali ID is linked to output 8. Returns that output 8 is linked to bus 0 (SCI connected to Brain(+)) Dali ID 1.
- Instruction
dali output link read 8
- Returns
0 1
OK
dali group discover
- This instruction will start of the group discovery for all the individual (non group) dali outputs
- Returns
OK
GROUP instructions
A group action is composed of multiple actions that can be executed. Each group action can call other group actions. Group actions can be nested up to 16 levels deep, if you go deeper, those group actions will be ignored. IF THEN ENDIF instructions used inside a group can be nested as well up to 16 levels deep. The most easy way, when nested group actions including IF THEN ENDIF instructions are used is to use the CLI instruction "group simulate" which gives you a CLI representation of the result of a group action with the included nested group actions (if any).
A group action doesn't have a fixed length, the length and thus the number of group action can be defined at creation by defining the start and end BA. In total, 4200 (BA0 to BA4199) actions can be placed in 255 (0-254) different groups. Each group have a start address and end address.
Start address and end addresses can be changed even when a group has been programmed.
How does group actions work: A normal group action with format 19 0 x y will be added to the queue of immediate action. This queue will process this group action immediately. A group action with format 19 1 x y will not be executed but only simulated and the result will be printed in the CLI screen which is easy to troubleshoot complex group actions.
Group actions can also be delayed in time and only be executed when the defined time trigger has expired (expired seconds or day/hour/minute reached). For example, delayed group action BA 18 0 15 240 will execute BA19 0 15 0 after 240 seconds.
It’s important to note that delayed group actions will be put in the delay queue until the time trigger expires, then this delayed group action will be deleted from the delayed group queue (after executing the related group action). When for example a group action must be executed every 120 seconds, the group delay BA instruction (BA18) that adds the group action to be executed after 120 seconds must be added in the original group action.
When a time trigger occurred and the group action has been executed, the delayed group action is removed from the queue so if you want an action to be executed on a certain hour every day of the week, the delayed group action must be added on the delayed queue after every execution in 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 on the delayed group. 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.
group list
- This instruction will display the list of all programmed group actions (group actions with a valid begin and end address and the first BA programmed) with their name.
- Returns
- List of programmed group actions
OK
Example:
- Instruction
group list
- Returns
-Group---------Name---------
000 -> test
001 ->
002 ->
003 ->
004 ->
139 ->
167 ->
170 ->
173 ->
176 ->
179 ->
182 ->
185 ->
188 ->
OK
group name read [group nr]
- This instruction will read the name of a group action (0-254).
- Returns
- name of group action
OK
Example:
- Instruction
group name read 0
- Returns
test
OK
group name write [group nr] [group name]
- This instruction will program the name of group action (0-254).
- Returns
OK
Example:
- Instruction
group name write 0 test
- Returns
OK
group search [Type] [opt: Action] [opt: Device Nr] [opt: Extra]
- This instruction will do a search in all active group actions to see if a certain group action or group family has been used. You can do a search with only 1 parameter (BA Type) or you can add additional optional parameters (Action, Device Nr, Extra) to narrow down the search
- Returns
- List of all groups and the search result for each group
OK
Example:
- Instruction
- (Example: Search in all groups for outputs that are toggled)
group search 0 16
- Returns
Group 000 : test
-> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer
-> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer
Group 001 :
Group 002 :
Group 003 :
Group 004 :
Group 005 : Output Follow
Group 006 :
Group 007 : Temp follow test
-> BA0075 - 000 016 00002 00000 Toggle output 2 with std timer/dimmer
-> BA0076 - 000 016 00003 00000 Toggle output 3 with std timer/dimmer
-> BA0077 - 000 016 00004 00000 Toggle output 4 with std timer/dimmer
-> BA0078 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer
-> BA0079 - 000 016 00006 00000 Toggle output 6 with std timer/dimmer
Group 139 :
Group 167 :
-> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer
-> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer
Group 170 :
-> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer
-> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer
Group 173 :
-> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer
-> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer
Group 176 :
-> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer
-> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer
Group 179 :
-> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer
-> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer
Group 188 :
-> BA0001 - 000 016 00005 00000 Toggle output 5 with std timer/dimmer
-> BA0010 - 000 016 00015 00000 Toggle output 15 with std timer/dimmer
OK
group start list
- This instruction will list all the start addresses of each group action.
- Returns
- List of all start addresses of each group action
OK
Example:
- Instruction
group start list
- Returns
-Group nr---BA Start--BA Stop-----Name---------
000 0000 0022 -> test
001 0023 0029 ->
002 0030 0034 ->
003 0035 0041 ->
004 0042 0061 ->
005 0062 ---- ->
006 ---- ---- ->
007 ---- ---- ->
008 ---- ---- ->
009 ---- ---- ->
010 ---- ---- ->
011 ---- ---- ->
012 ---- ---- ->
013 ---- ---- ->
014 ---- ---- ->
015 ---- ---- ->
016 ---- ---- ->
017 ---- ---- ->
018 ---- ---- ->
019 ---- ---- ->
020 ---- ---- ->
...
OK
group start end write [group nr] [start ba nr] [end ba nr]
- This instruction will write the start address (0-4199) and end address of group nr x (0-254).
- Returns
OK
Example: write start address BA35 and end address BA46 of group nr 5
- Instruction
group start write 5 35 46
- Returns
OK
group read [group nr]
- This instruction will read a group action (0-254) and display all BA's that this group action contains.
- Returns
OK
Example:
- Instruction
group read 0
- Returns
-Grp--BA Nr---Typ-Act--x--(MSB.LSB)--y--(MSB.LSB)-------BA Description----
000 0000(00) 000 007 00013(000.013) 00000(000.000) -> Output 13 ON and only overrule timer with value 0 (0x1s) when output is not yet on
000 0001(01) 000 016 00005(000.005) 00000(000.000) -> Toggle output 5 with std timer/dimmer
000 0002(02) 000 004 00011(000.011) 00020(000.020) -> Output 11 ON and overrule timer with value 20 (20x1s)
000 0003(03) 100 000 00000(000.000) 00000(000.000) -> IF
000 0004(04) 100 010 00012(000.012) 00000(000.000) -> Output 12 is ON
000 0005(05) 100 150 00000(000.000) 00000(000.000) -> THEN
000 0006(06) 000 001 00005(000.005) 00000(000.000) -> Output 5 ON with std timer/dimmer
000 0007(07) 100 200 00000(000.000) 00000(000.000) -> ELSE
000 0008(08) 019 000 00001(000.001) 00000(000.000) -> Execute Group Action 1
000 0009(09) 100 255 00000(000.000) 00000(000.000) -> ENDIF
000 0010(10) 000 016 00015(000.015) 00000(000.000) -> Toggle output 15 with std timer/dimmer
000 0011(11) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0012(12) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0013(13) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0014(14) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0015(15) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0016(16) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0017(17) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0018(18) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0019(19) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0020(20) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0021(21) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
000 0022(22) 255 255 65535(255.255) 65535(255.255) -> Instruction not in use
OK
group ba write [ba nr] [Type] [Action] [Device Nr] [Extra parameter]
- This instruction will write the Basic Action (Type, Action, Device Nr & Extra Parameter) of BA nr (0-4199) for a list of the different BA types that can be used, see Action Types AIO.
- Returns
OK
Example: write BA 35 with instruction output 17 off
- Instruction
group ba write 35 0 0 17 0
- Returns
OK
Remark:
- This instruction exist in a 5 and 7 parameter version
- The 5 parameter version has following format: "group ba write [ba nr] [Type] [Action] [Device Nr] [Extra parameter]"
- The 7 parameter version has following format: "group ba write [ba nr] [Type] [Action] [Device Nr.MSB] [Device Nr.LSB] [Extra parameter.MSB] [Extra parameter.LSB]"
- In the 7 parameter version, you split Device Nr and Extra parameter is his Most significant Byte (MSB) and his Least Significant Byte.
group ba read [ba nr]
- This instruction will read the Basic Action (Type, Action, Device Nr & Extra Parameter) of BA nr (0-4199). For a list of the different BA types that can be used, see Action Types AIO.
- Returns
- BA details
Example: read BA 100
- Instruction
group ba read 100
- Returns
OK
-BA Nr----Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
0100 000 016 00026(000.026) 00000(000.000) -> Toggle output 26 with std timer/dimmer
OK
group simulate [group nr]
- This instruction will simulate the result of a group action (0-254) including nested group actions. Below is an example of 4 nested group actions. As you can see in the below example, abstraction is made of the different group action and everything is represented in one consolidated view.
- Returns
- Consolidated view of the group action
OK
Example:
- Instruction
group simulate 0
- Returns
15:15:23 BA 000 007 00013(000.013) 00000(000.000) EXEC SIM -> Output 13 ON and only overrule timer with value 0 (0x1s) when output is not yet on
15:15:23 BA 000 016 00005(000.005) 00000(000.000) EXEC SIM -> Toggle output 5 with std timer/dimmer
15:15:23 BA 000 004 00011(000.011) 00020(000.020) EXEC SIM -> Output 11 ON and overrule timer with value 20 (20x1s)
15:15:23 BA 100 000 00000(000.000) 00000(000.000) IF
15:15:23 BA 100 010 00012(000.012) 00000(000.000) Output 12 is ON
15:15:24 BA 100 150 00000(000.000) 00000(000.000) THEN
15:15:24 BA 000 001 00005(000.005) 00000(000.000) SKIP INSTR Output 5 ON with std timer/dimmer
15:15:24 BA 100 200 00000(000.000) 00000(000.000) ELSE
15:15:24 BA 000 001 00004(000.004) 00000(000.000) EXEC SIM -> Output 4 ON with std timer/dimmer
15:15:24 BA 100 000 00000(000.000) 00000(000.000) IF
15:15:24 BA 100 011 00013(000.013) 00000(000.000) Output 13 is OFF
15:15:24 BA 100 150 00000(000.000) 00000(000.000) THEN
15:15:24 BA 100 000 00000(000.000) 00000(000.000) IF
15:15:24 BA 100 010 00014(000.014) 00000(000.000) Output 14 is ON
15:15:24 BA 100 150 00000(000.000) 00000(000.000) THEN
15:15:24 BA 100 000 00000(000.000) 00000(000.000) IF
15:15:24 BA 100 010 00007(000.007) 00000(000.000) Output 7 is ON
15:15:24 BA 100 090 00000(000.000) 00000(000.000) AND
15:15:24 BA 100 011 00008(000.008) 00000(000.000) Output 8 is OFF
15:15:24 BA 100 150 00000(000.000) 00000(000.000) THEN
15:15:24 BA 000 255 00255(000.255) 00000(000.000) SKIP INSTR Switch OFF all Outputs(x=0), Lights(x=1) or Lights&Outputs(x>1)
15:15:24 BA 100 200 00000(000.000) 00000(000.000) ELSE
15:15:24 BA 000 001 00010(000.010) 00000(000.000) EXEC SIM -> Output 10 ON with std timer/dimmer
15:15:24 BA 000 001 00009(000.009) 00000(000.000) EXEC SIM -> Output 9 ON with std timer/dimmer
15:15:24 BA 100 255 00000(000.000) 00000(000.000) ENDIF
15:15:24 BA 100 200 00000(000.000) 00000(000.000) ELSE
15:15:24 BA 000 001 00003(000.003) 00000(000.000) SKIP INSTR Output 3 ON with std timer/dimmer
15:15:24 BA 100 255 00000(000.000) 00000(000.000) ENDIF
15:15:24 BA 100 255 00000(000.000) 00000(000.000) ENDIF
15:15:24 BA 000 000 00020(000.020) 00000(000.000) EXEC SIM -> Output 20 OFF
15:15:24 BA 100 255 00000(000.000) 00000(000.000) ENDIF
15:15:25 BA 000 016 00015(000.015) 00000(000.000) EXEC SIM -> Toggle output 15 with std timer/dimmer
- Some remarks:
- - SKIP INSTR: This instruction in the consolidated group view will not be executed when running in execution mode ("group activate") due to the conditions being set (IF THEN ENDIF)
- - EXEC SIM: This instruction will be executed when the group will be running in execution mode
group activate [group nr]
- This instruction will execute a group action (0-254). If you want to see what's happening during execution, you can activate verbose mode by using instruction "basic action debug on". Please note that the instruction "basic action debug on" can slow down the processor due to more console printing that needs to be done.
- Returns
OK
Example:
- Instruction
group activate 5
- Returns
OK
group delay queue list
- With BA17 and BA18, Group Actions can be executed at a later stage. This instruction give you an overview which group actions are planned to be executed in the future.
- Returns
- List
OK
- Instruction
group delay queue list
- Returns
- list
OK
VALIDATION Bit instructions
validation bit group follow read [Bit Nr]
- A validation bit (0-255) can trigger a group action when the validation bit value changes. With this instruction, you can read, for validation bit Nr, when a value change occurs, which Group Action will be executed.
- Returns
- Group Nr
OK
Example: Read the group linked to validation bit 210
- Instruction
validation bit group follow read 210
- Returns
63
OK
validation bit group follow write [Bit Nr] [Group Nr]
- A validation bit (0-255) can trigger a group action when the validation bit value changes. With this instruction, you can write, for validation bit Nr, when a value change occurs, which Group Action will be executed.
- Returns
OK
Example: Write group nr 63 must be linked to validation bit 210
- Instruction
validation bit group follow write 210 63
- Returns
OK
validation bit group follow list
- A validation bit (0-255) can trigger a group action when the validation bit value changes. With this instruction, you can list, for all validation bits, which Group Actions are linked.
- Returns
- List
OK
- Instruction
validation bit group follow list
- Returns
- list
OK
validation bit list
- This instruction will display the list of all Validation Bits, the associated value and name.
- Returns
- List of Validation Bits
OK
Example:
- Instruction
Validation bit list
- Returns
- Validation Bit List
OK
validation bit name read [Bit Nr]
- With this instruction, you can read, for validation bit nr (0-255), the name of this validation bit
- Returns
- Validation Bit Name
OK
Example: validation bit name read
- Instruction
validation bit name read 10
- Returns
test bit name1
OK
validation bit name write [Bit Nr] [Bit Name]
- With this instruction, you can write the name of a validation bit (0-255)
- Returns
OK
Example: Write the name "test123" for validation bit nr 10
- Instruction
validation bit name write 10 test123
- Returns
OK
validation bit read [Bit Nr]
- This instruction will read the value (0 or 1) of a validation bit. Validation bits can be freely used and are often applied to remember certain events.
- Returns
- Validation bit value
OK
Example: Read bit 230
- Instruction
validation bit read 230
- Returns
1
OK
validation bit write [Bit Nr] [Bit Value]
- This instruction will write Bit Value (0 or 1) in validation bit nr. Validation bits can be freely used and are often applied to remember certain events.
- Returns
OK
Example: Write value 0 in validation bit 230
- Instruction
validation bit write 230 0
- Returns
OK
SHUTTER instructions
shutter group link list
- This instruction will display a list of all shutters. For every shutter, a Y (YES) or N (NO) indicates if this shutter is linked to each of the 16 shutter groups
- Returns
- shutter group link list
OK
shutter list
- This instruction will display a list of all shutters with their lock status, output up & down linked, if the shutter is moving as well as the programmed timer setting for up and down
- Returns
- shutter list
OK
shutter name read [shutter nr]
- Read the name of ashutter
- [input nr]
- Indicates which shutter (0-31) the name has to be displayed.
- Returns
Shutter Name
OK
Example:
- Instruction
shutter name read 15
- Returns
Bedroom Parents
OK
shutter name write [shutter nr][shutter name]
- Write the name of a shutter, max 16 characters.
- [shutter nr]
- Indicates which shutter (0-31) the name has to be written.
- [shutter name]
- the ascii name of the shutter (maximum 16 characters).
- Returns
OK
Example:
- Instruction
shutter name write 15 Bedroom parents
- Returns
OK