Difference between revisions of "AIO Tips & tricks during installation and troubleshooting"

From OpenMotics
Jump to navigation Jump to search
 
(14 intermediate revisions by 2 users not shown)
Line 231: Line 231:
 
Some slave modules with older firmware might have difficulties to be added. The below procedure might help to manually add a module that didn't work with the normal procedure for adding.
 
Some slave modules with older firmware might have difficulties to be added. The below procedure might help to manually add a module that didn't work with the normal procedure for adding.
  
IMPORTANT NOTE: This procedure will NOT work for multiple 0/1-10V Control modules with Firmware F6.0.13 or lower. When this Firmware is used with multiple modules in the same installation, reprogramming of these modules will be needed or an onsite swap will be needed with modules with at least F6.0.14.
+
IMPORTANT NOTE:  
 +
* This procedure will NOT work for multiple 0/1-10V Control modules with Firmware F6.0.13 or lower. When this Firmware is used with multiple modules in the same installation, reprogramming of these modules will be needed or an onsite swap will be needed with modules with at least F6.0.14.
 +
 
 +
* When an input module with F6.0.23 is used, the below procedure will work correctly
 +
* When an input module with F6.0.17 is used, it might be that the below procedure will not work when the automatic search has been performed (the module doesn't sent init messages when pushing init button). This can be solved by doing the following:
 +
** After Step4, perform a power reset of the full installation
 +
** After the Power reset, continue at Step 5
 +
 
 
    
 
    
 
* Step 1: Go to maintenance mode
 
* Step 1: Go to maintenance mode
Line 245: Line 252:
 
  New Input module (I) found: 073.157.108.015
 
  New Input module (I) found: 073.157.108.015
 
  New Input module (I) found: 073.157.108.015
 
  New Input module (I) found: 073.157.108.015
* Step 7: You can ONLY ADD 1 module to avoid double ID's!! Please Redo the full procedure from Step 4 to 8 when you want to add an additional module
+
* Step 7: Stop discovery mode
* Step 8: Stop discovery mode
 
 
  module discover stop
 
  module discover stop
* Step 9: Set the discovery setting in eeprom to standard again
+
---
 +
'''NOTE: You can ONLY ADD 1 module to avoid double ID's!! Please Redo the full procedure from **Step 4 to 7** when you want to add an additional module'''
 +
---
 +
* Step 8: Set the discovery setting in eeprom to standard again
 
  eeprom write 0 11 255
 
  eeprom write 0 11 255
* Step 10: Activate this setting:
+
* Step 9: Activate this setting:
 
  eeprom activate
 
  eeprom activate
Notes:
 
* When an input module with F6.0.23 is used, the above procedure will work correctly
 
* When an input module with F6.0.17 is used, it might be that the above procedure will not work when the automatic search has been performed (the module doesn't sent init messages when pushing init button). This can be solved by doing the following:
 
** After Step4, perform a power reset of the full installation
 
** After the Power reset, continue at Step5
 
  
 
==Adding uCAN's==
 
==Adding uCAN's==
Line 412: Line 416:
  
 
Wait a minute to see the sensors appear. If this doesn't, write value 70 at position 30 of the Micro CAN by applying the above procedure again.
 
Wait a minute to see the sensors appear. If this doesn't, write value 70 at position 30 of the Micro CAN by applying the above procedure again.
 +
 +
===Double Input or Sensor ID found===
 +
 +
As mentioned before, the Micro CAN has a built-in eeprom that stores also the inputs and sensors being used. Each input has an eeprom location as well as each sensor(2).
 +
 +
See [[CAN Eeprom pages]] table "uCAN GEN3" for the eeprom locations and their explanations.
 +
 +
When the eeprom location is empty (it has value 255), the Micro CAN will negotiate a unique input and/or sensor ID with the Master. Once that negotiation is done, the Micro CAN will store this unique ID in its local eeprom. Once this is done, the Micro CAN will use this ID in the case an input is pressed or to communicate a sensor value.
 +
 +
When an erase of Micro CAN's has not been successfully received by a Micro CAN or a non-empty Micro CAN is used in a new installation, double ID's can be found in a system. This can however be solved easily.
 +
 +
First check which double ID exist in your Micro CAN installation by using following instruction:
 +
can ping list
 +
 +
-Nr-Bus-ID2.ID1.ID0-Hw_Rev----Serial----Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Type-Firmware-Boot-ID_NE-CanP1-CanP2-CanP3-CanP4-CanP5-Stat--Min-MAX-delay--Volt--
 +
00 100 132.069.243  071  210928000245  011(003)  010(002)  008(000)  009(001)  255(255)  255(255) 000(000)  255(255)  004  F06.00.27 000  069  255  255  255  255  255  247  000 255 002ms 23.44V
 +
01 100 148.060.023  071  210928000248  012(004)  013(005)  033(009)  032(008)  014(006)  015(007) 001(001)  255(255)  004  F06.00.27 000  069  255  255  255  255  255  247  000 255 001ms 23.60V
 +
02 100 010.016.126  071  210928000250  008(000)  009(001)  011(003)  010(002)  035(011)  034(010) 000(000)  255(255)  000  F06.00.27 000  069  255  255  255  255  255  247  000 255 001ms 23.38V
 +
03 100 143.096.205  071  210928000246  039(015)  038(014)  034(010)  035(011)  037(013)  036(012) 002(002)  255(255)  004  F06.00.23 255  069  255  255  255  255  255  247  000 255 001ms 23.58V
 +
04 100 176.064.090  071  210928000242  042(018)  041(017)  045(021)  044(020)  043(019)  040(016) 003(003)  255(255)  004  F06.00.23 255  069  255  255  255  255  255  247  000 255 001ms 23.36V
 +
 +
The above instruction will ask live all the parameters and some eeprom values of all connected Micro CANs.
 +
 +
As you can see, the 3rd Micro CAN with ID 10.16.126 contains doubles from the other Micro CAN so this device should be reinitialised in terms of inputs and sensors.
 +
 +
Every time a negotiation is done between Master and Micro CAN, the result is also stored in the eeprom of the Master:
 +
can eeprom list
 +
 +
-Nr-Bus-ID2.ID1.ID0--Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Modbus-Type
 +
00 100 132.069.243  011(003)  010(002)  008(000)  009(001)  255(255)  255(255)  000(100)  255(000)  255  255
 +
01 100 148.060.023  012(004)  013(005)  033(009)  032(008)  014(006)  015(007)  001(100)  255(001)  255  255
 +
02 100 010.016.126  255(255)  255(255)  255(255)  255(255)  255(255)  255(255)  255(100)  255(255)  255  255
 +
03 100 143.096.205  039(015)  038(014)  034(010)  035(011)  037(013)  036(012)  002(100)  255(002)  255  255
 +
04 100 176.064.090  042(018)  041(017)  045(021)  044(020)  043(019)  040(016)  003(100)  255(003)  255  255
 +
 +
If we look at the 3rd Micro CAN, we see that the ID values for inputs and sensors are empty in the Master eeprom and not empty if we look at the values of the Micro CAN itself.
 +
 +
To solve the double ID problem, we will just erase the input and sensor IDs of the concerned Micro CAN. We can write directly in the eeprom of a Micro CAN with following instruction (in our example, we will erase input0-5 and the first sensor):
 +
 +
eeprom write 10 16 126 0 255
 +
 +
eeprom write 10 16 126 1 255
 +
 +
eeprom write 10 16 126 2 255
 +
 +
eeprom write 10 16 126 3 255
 +
 +
eeprom write 10 16 126 4 255
 +
 +
eeprom write 10 16 126 5 255
 +
 +
eeprom write 10 16 126 8 255
 +
 +
Once the above instruction is executed, you can check the result with instruction:
 +
can ping list
 +
 +
When an input is pressed now on this programmed Micro CAN, it will automatically receive a unique ID. Keep maintenance mode open when pressing those inputs, messages will appear on the console.
 +
 +
Note: For the inputs and sensors in the "can ping list" and the "can eeprom list", you see a number and a number between brackets. The number (without brackets) represents the number used by the Master. For example, input 11 is the same input 11 that you will find back when doing "input list" or looking at input 11 in the portal. The number between brackets is the number used on the CAN bus itself, this is the unique ID on CAN bus level for inputs and sensors (both starting from 0).
  
 
==Linking inputs with outputs==
 
==Linking inputs with outputs==
Line 429: Line 492:
  
 
  output off
 
  output off
* Linking for example input 10 with output 5 can done with following instruction: "input link write 10 5". Verify what output is linked to input 5 can be done with instruction "input link read 5"
+
* Linking for example input 10 with output 5 can done with following instruction: "input link write 10 5". Verify what output is linked to input 10 can be done with instruction "input link read 10"
 +
input link write 10 5  
 +
 
 
  input link read
 
  input link read
  
  input link write
+
===Unlinking an input from an output===
 +
 
 +
When an input needs to be unlinked, follow instruction can be used (unlink input 10):
 +
  input link write 10 65535
 +
After this instruction, no output is linked to input 10.
  
 
===Set Standard timer value for an output===
 
===Set Standard timer value for an output===
Line 451: Line 520:
  
 
==Linking inputs to Pulse Counters==
 
==Linking inputs to Pulse Counters==
Available in Master F1.0.126 or higher. Input Firmware F6.0.27 or higher is needed.
+
=== How does this work===
 +
 
 +
External Input Modules as well as the 5 internal inputs of the Brain(+) keeps track of the number of times an input has been activated. This count is kept in the built-in FRAM memory (on Input module and on Brain(+)) so power failure or others will not influence the counters.  
 +
 
 +
The pulse counters are stored double (always locally) in FRAM for each input:
 +
* 4 bytes counter for every input
 +
* 2 bytes CRC16 to guantee correct value
 +
* Every 4 bytes values is stored twice to guarantee integrity
  
=== How does this work===
+
The Brain can be configured with 32 Pulse Counters. Each pulse Counter can be linked with 1 input. Once at least 1 Pulse Counter is configured, every 30 seconds, the Pulse Counter value(s) are retrieved (from internal FRAM or from external Input Modules via RS485). Once a change in Pulse Counter value is detected, API Event 3 is sent so the BB layer will stay in sync without requesting any information from the Master.
 +
 
 +
=== What Firmware is needed ===
 +
 
 +
Requirements for pulse counters to work:
 +
* Master F1.0.126 or higher
 +
* Input Firmware F6.0.27 or higher
  
32 pulse counters can be configured.
+
=== Manually Configure Pulse Counters ===
 +
 
 +
* First, let's check firmware version before getting started:
 +
firmware version
 +
--- Fw version Brain(+): V1.0.126 SN:210921000001(2) ---
 +
  Output:
 +
  00 (l I) 108.000.000.000 -> Internal/Virtual
 +
  Input:
 +
  00 (i I) 105.000.000.000 -> Internal/Virtual
 +
  01 (I E) 073.017.243.000 -> V6.0.27 SN:301221000033(0)
 +
OK
 +
As you can see, we've a Brain with a correct firmware version as well as an external input module with a valid version as well.
 +
* First have a look at the [[Memory Model AIO]] at the Data Input Modules section - Pulse Counter link:
 +
** This section starts at page 81
 +
** Every input module has 2 pages so the first input module (Internal inputs of the Brain(+)) uses page 81 (first page) and page 82 (second page)
 +
** In the above example, our external input module uses page 83 (first page) and page 84 (second page)
 +
** The Pulse Counter link is stored in the first page at Byte 120-127
 +
** So as an example, let's link one of the 5 (0-4) built-in inputs and one of the external input module
 +
* Let's now link input 1 (2nd input of the first module) to Pulse Counter 5 and input 10 (3rd input of the second module in our list) to Pulse Counter 2:
 +
eeprom write 81 121 5
 +
OK
 +
eeprom write 83 122 2
 +
OK
 +
Eeprom activate
 +
OK
 +
* To check that everything is well configured, you can execute the below instruction and verify the column PC (Pulse Counter):
 +
input list
 +
-Input-Status-Invert-lock------Link------Dali----PC---Input Name---
 +
000 (i)  0    No      0    BA  (65535)  255(0)  255
 +
001 (i)  0    No      0    BA  (65535)  255(0)  005
 +
002 (i)  0    No      0    BA  (65535)  255(0)  255
 +
003 (i)  0    No      0    BA  (65535)  255(0)  255
 +
004 (i)  0    No      0    BA  (65535)  255(0)  255
 +
005 (i)  0    No      0    BA  (65535)  255(0)  255
 +
006 (i)  0    No      0    BA  (65535)  255(0)  255
 +
007 (i)  0    No      0    BA  (65535)  255(0)  255
 +
008 (I)  0    No      0    BA  (65535)  255(0)  255
 +
009 (I)  0    No      0    BA  (65535)  255(0)  255
 +
010 (I)  0    No      0    BA  (65535)  255(0)  002
 +
011 (I)  0    No      0    BA  (65535)  255(0)  255
 +
012 (I)  0    No      0    BA  (65535)  255(0)  255
 +
013 (I)  0    No      0    BA  (65535)  255(0)  255
 +
014 (I)  0    No      0    BA  (65535)  255(0)  255
 +
015 (I)  0    No      0    BA  (65535)  255(0)  255
 +
OK
 +
* With the below instruction, you can check the Pulse Counter value:
 +
pulse counter read 2
 +
26
 +
OK
 +
pulse counter read 5
 +
60
 +
OK
 +
* When you activate a configured input, the above counter will increase. Please note that these values are updated every 30 seconds so a delay in updated values is normal.
  
 
==Configuring shutters==
 
==Configuring shutters==
Line 1,095: Line 1,229:
 
  OK
 
  OK
 
When input 31 is now pressed during 2 seconds, all lights will be switched off and all shutters of shutter group 0 will go down.
 
When input 31 is now pressed during 2 seconds, all lights will be switched off and all shutters of shutter group 0 will go down.
 +
 +
Note:
 +
* If you also want to configure an additional function on the same switch for example a short press to toggle a light and a long press to switch all lights off, do the following:
 +
** First configure the Release action (you cannot configure the press action since the system can only determine the action once you've release the switch or when the x seconds are expired)
 +
** Secondly, configure the 2 second action
 +
** The above order must be respected to let this work
  
 
=== Example: With 1 input, switch ON/OFF multiple lights, led following the leading output ===
 
=== Example: With 1 input, switch ON/OFF multiple lights, led following the leading output ===
Line 1,390: Line 1,530:
  
 
===Factory Reset of all RS485 slave modules===
 
===Factory Reset of all RS485 slave modules===
The below instruction will erase the full uCAN configuration and addresses of all connected uCAN's:
+
The below instructions will perform a factory reset of the RS485 slave modules:
 
* First prepare the Master for a Factory Reset:
 
* First prepare the Master for a Factory Reset:
 
  baa 254 2 0 0
 
  baa 254 2 0 0

Latest revision as of 09:28, 27 July 2022

Contents

Introduction

This document contains tips & tricks for using the Brain(+). The tips in this document are all done by using the CLI interface of the Brain(+). The CLI interface gives you the possibility to do "under the motor hood" configurations which is under normal circumstances not needed. For all normal configurations, please use the graphical user interface. The below instructions can be used for simple and more complex configurations and is useful to better understand the Master configuration, to do in-depth troubleshooting and to perform testing.

Using the CLI

  • To use the CLI, please use the Openmotics portal and go to the tab Maintenance Mode.
  • All CLI instruction can be found here: CLI Reference Guide AIO
  • A lot of functions on the CLI console can also be done by using Basic Actions, see Action Types AIO. To execute a Basic Action, you can use the CLI instruction followed by the necessary parameters.
basic action activate 

or

baa 
  • The CLI instruction "baa" or "basic action activate" can be used with 4 parameters or 6 parameters. A Basic Action contains 4 parameters:
    • Type: Byte
    • Action: Byte
    • Device Parameter: Word
    • Extra parameter: Word
  • When "baa" is used with 4 parameters, 2 byte values (Type, action) followed with 2 word values (device parameter, extra parameter) will be entered. Example switch output ON with timer value:
baa 0 3 24 20000
  • When "baa" is used with 6 parameters, 2 byte values (Type, action) followed with 4 byte values (device parameter.MSB, device parameter.LSB, extra parameter.MSB, extra parameter.LSB) will be entered. Example witch buzzer OFF of Micro CAN with ID 30.245.232:
baa 20 105 30 245 232 0
  • To switch ON for example output 10, you can use the instruction
output on 10

or

on 10
  • To switch OFF for example output 10, you can use instruction
output off 10

or

off 10
  • To switch OFF all outputs, you can use instruction
output all off

or

aoff

Followings docs are important:

  • The full static configuration of the Master processor of the Brain(+) resides in EEPROM memory. The full Memory map can be found here: Memory Model AIO
  • The full active configuration of the Master processor of the Brain(+) resides in FRAM memory. The full Memory map can be found here:FRAM Model AIO
  • The different errors that can appear on the CLI console can be found here: Error List AIO
  • The Brain(+) release notes can be found here: AIO Release Notes

Check status of the Brain(+)

The first and probably most used function is the CLI instruction "error list". This instruction returns the status of each (RS485 or virtual) module connected.

error list
--- 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, Firmware Version: 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 00001   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


As you can see in the above example, all modules are in "GOOD" status so no issues detected. You also see that an input module has 1 error. It's normal that with the million of messages happing on the bus, sometimes an error occurs which is nothing to worry about. 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 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
    • ...

You can also check the "status" led and the "can bus" led on the Front Panel of the Brain(+):

  • The "status" led will indicate the status of the RS485 bus and the connected RS485 sales modules:
    • OFF: The Power of the RS485 bus is OFF
    • GREEN (short flashing): No RS485 slave modules have been configured but the POWER of the RS485 bus is ON
    • GREEN (no flashing): RS485 modules are communicating correctly and have the health status "GOOD"
    • ORANGE (flashing): RS485 in search mode (looking for new RS485 modules)
    • ORANGE (no flashing): The initialisation mode is active and modules can be added manually
    • RED (flashing): The RS485 bus has a problem and some modules or all modules are not responding. It takes a few minutes to have modules to degrade state.
    • RED (no flashing): No modules are responding and all modules have a "non-good" status
    • The state change from red (blinking) to green can take a few minutes since all modules must upgrade in state and all have the "good" status.
  • The "can bus" led will indicate the status of the CAN bus (modules directly connected):
    • OFF: The power of the CAN bus is OFF
    • GREEN (no flashing): Normal communication on the BUS. Attention, this doesn't mean that all modules are responding. To check if all modules are OK, use CLI instruction "can ping list"
    • RED (no flashing): Bus is in error state, check jumper (on last module) and cabling

To check the health status of all connected uCAN, use following instruction:

can ping list
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, one uCAN is not responding. 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
  • 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
  • Model: 0=Heatmiser, 1=MC6 color thermostat
  • Speed: 0=4800, 1=9600, 2=19200, 3=38400, 4=57600, 5=115200
  • Stat1: Modbus: 0=Not Configured, 1=Configured and messages being sent, 2=Configured and thermostat is responding
  • Stat2: 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

To check the time the different state machines are consuming, use following instruction:

state machine list
---#----Last----Min-----Max------Description------------------
 00 00 00003ms 00002ms 00031ms  I2C1
 01 01 00001ms 00001ms 00017ms  I2C2
 02 00 00000ms 00000ms 00000ms  UART1 receive
 03 03 00391ms 00007ms 00391ms  UART2 receive
 04 00 00001ms 00001ms 00008ms  UART3 receive
 05 00 00000ms 00000ms 00000ms  UART4 receive
 06 01 00164ms 00105ms 00164ms  Update Time/Date
 07 00 00000ms 00000ms 00015ms  Immediate Queue
 08 00 00000ms 00000ms 00000ms  Group Queue
 09 00 00001ms 00001ms 00002ms  Timer 100ms
 10 00 00001ms 00001ms 00001ms  Timer 1 second
 11 00 00001ms 00001ms 00001ms  Timer 1 minute
 12 00 01899ms 01899ms 02065ms  Perform eeprom activate
 13 01 00380ms 00380ms 00380ms  CLI print text
 14 00 00000ms 00000ms 00000ms  CLI action execute
 15 03 00008ms 00004ms 00017ms  Scan modules over RS485 network
 16 00 00003ms 00002ms 00004ms  RS485 modules health status check
 17 00 00000ms 00000ms 00000ms  Check Error, print, store in FRAM
 18 00 00003ms 00003ms 00003ms  Check input queue and actions
 19 00 00000ms 00000ms 00000ms  Check input delay queue and actions
 20 00 00000ms 00000ms 00000ms  CLI print registers
 21 00 00000ms 00000ms 00002ms  Check CAN1 RX queue
 22 00 00000ms 00000ms 00000ms  Check CAN1 TX queue
 23 00 00000ms 00000ms 00000ms  Check hardware health
 24 00 00001ms 00001ms 00007ms  Check leds
 25 00 00084ms 00084ms 00093ms  Check internal outputs
 26 00 00000ms 00000ms 00001ms  Check internal inputs
 27 00 00000ms 00000ms 00000ms  Check internal dimmers
 28 00 00000ms 00000ms 00000ms  Execute Group Action
 29 00 00000ms 00000ms 00000ms  Execute list of actions every minute
 30 00 00000ms 00000ms 00000ms  Check group delay queue
 31 00 00000ms 00000ms 00000ms  Check sensor health
 32 00 00000ms 00000ms 00000ms  FRAM queue for FRAM writing
 33 00 00000ms 00000ms 00000ms  Check dali sensors
 34 00 00001ms 00001ms 00001ms  Check CAN sensors
 35 00 00000ms 00000ms 00000ms  Check CAN health
OK

Adding additional RS485 modules

Adding modules is fully automatic

  • When the Brain(+) is powered, a check will be done if new modules are found on the RS485 bus. A collision detection and avoidance method is programmed so new modules will automatically be added.
  • A module is successfully added when the status led of this module lights up GREEN indicating that communication is working between the module and the Brain(+)
  • The find procedure can be started by using 1 of the following CLI instructions:
module discover search

or

reset
  • Once a module is added to a system, it will get the label of existing module and cannot be added automatically to another system. If you want to add such a module, you can use the manual procedure (see below)

Modules can also be added manually

  • Use the instruction "module discover start" to start the procedure. All slave modules will be put in discovery mode and the status led should light up orange. If this is not the case, check your cabling.
module discover start
  • Press the init one by one of the modules that needs to be added. A message on the CLI console will appear indicating that a new or existing (when it was already added before) is found
  • A module cannot be added twice so no worries if you push the init button more than once or if your press the button of a module that is already added.
  • To finish the procedure, use the CLI instruction "module discover stop"
module discover stop
  • The status led of the slave modules should light up green now indicating that the communication between the Brain(+) and the corresponding slaves are working now.

Checking if all modules are responding

  • By using CLI instruction "error list", you can verify the status of the module (must have the status GOOD)
error list
  • By using CLI instruction "firmware version", the Brain(+) will request the firmware version of each individual RS485 slave module which also means, if you get a firmware version back of the slave module, the communication is working
firmware version

Finding inputs/outputs/sensors/shutters

  • When you try to locate an input/output/sensor/shutter, following instructions can be used:
input indicate
output indicate
sensor indicate
shutter indicate
  • When you want to find output 14 for example and you want the led of this output to flash for 30 seconds:
output indicate 14
  • When you try to locate an input which is linked to a Micro CAN, you first check the input list
input list
  • Once the input list is checked (Micro CAN input have 'b' between the parenthesis in the input list), you can use following instruction:
input indicate 23
  • The led of the corresponding input will flash and the buzzer of the Micro CAN will be on for +/- 1 minute. If you press a non-linked input of that Micro CAN, the buzzer will be switched off.

Failed adding a slave module

Some slave modules with older firmware might have difficulties to be added. The below procedure might help to manually add a module that didn't work with the normal procedure for adding.

IMPORTANT NOTE:

  • This procedure will NOT work for multiple 0/1-10V Control modules with Firmware F6.0.13 or lower. When this Firmware is used with multiple modules in the same installation, reprogramming of these modules will be needed or an onsite swap will be needed with modules with at least F6.0.14.
  • When an input module with F6.0.23 is used, the below procedure will work correctly
  • When an input module with F6.0.17 is used, it might be that the below procedure will not work when the automatic search has been performed (the module doesn't sent init messages when pushing init button). This can be solved by doing the following:
    • After Step4, perform a power reset of the full installation
    • After the Power reset, continue at Step 5


  • Step 1: Go to maintenance mode
  • Step 2: Stop any discovery ongoing
module discover stop
  • Step 3: Change the automatic discovery setting in eeprom:
eeprom write 0 11 2
  • Step 4: Reset the Master (and the slave modules):
reset
  • Step 5: Start the discovery mode
module discover start
  • Step 6: Push the init button, you will get the below message (it's normal you get 2 times the same message, the ID will of course not be the same as below)
New Input module (I) found: 073.157.108.015
New Input module (I) found: 073.157.108.015
  • Step 7: Stop discovery mode
module discover stop

--- NOTE: You can ONLY ADD 1 module to avoid double ID's!! Please Redo the full procedure from **Step 4 to 7** when you want to add an additional module ---

  • Step 8: Set the discovery setting in eeprom to standard again
eeprom write 0 11 255
  • Step 9: Activate this setting:
eeprom activate

Adding uCAN's

Checking if hardware is installed correctly

First check if you jumpers are correctly placed:

  • The first and the last device on the CAN bus needs a termination Jumper
  • On the Micro CAN, a physical jumper needs to be placed when it's at the end of the Bus
  • The Brain(+) has an electronic jumper that can be configured.
  • Set jumper on the Brain(+) when the Brain(+) is at the end of the bus:


Adding uCAN's happens automatically:

  • When you press a switch, the uCAN is added and the switch is configured during the first press.
  • When you press a second time (and third and fourth etc), the beeper should sound briefly and the input led will go ON as long the input is pressed. This means that the communication between the uCAN and Brain(+) works as expected.
  • To know which input is responding, CLI instruction "input debug on" can be used to see which input is pressed.
  • From the moment that an output is linked to an input, the function of brief sound and the led that goes ON during a press is automatically disabled.
  • When the above function doesn't work for a non-linked input, something is wrong and check cabling must be checked.
  • If you want to know which input is linked to which uCAN, you can use the instruction "can ping list". As you can see in the below example, uCAN with ID 100.145.232 has input 10, 11, 12 en 13 linked.
can ping list
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
  • If the uCAN is not responding, you will not find back the above values. The Brain(+) however is aware of all the uCAN values. This values can be requested by using CLI instruction "can Eeprom list" (see below)
can eeprom list
-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

Checking if uCAN's are responding

The Brain(+) has a ping functions to check if a uCAN is responding. At the same time, during the ping, the uCAN will send its basic data like firmware version and others. The CLI instruction used is "can ping list". Below is an example of this instruction:

can ping list
-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)  036(020)  037(021)  035(019)  034(018)  006(006)  255(255)  000  F06.00.06 255  069   255   255   255   255   000   255  000 255  001ms 23.22V
OK

In the above example, the first uCAN is not responding, all the others are working as expected.

Checking if sensors are working

  • To check if sensors are reporting values, you can use the CLI instruction "sensor list". In this list, all possible sensor values can be found. Please note that it can take a few minutes before all values will be displayed.
sensor list
  • To know when a sensor value changes, you can use the CLI instruction "change debug on". This will enable uCAN messages and new values being updated to be printed on the CLI console. "change debug off" can be used to switch this function off.
change debug on
change debug off
  • When change debugging is switched ON, you will also get messages from the uCAN what's going on. For example, restarting the sensor power of the connected sensor will then be reported. The event messages can be found here: Micro CAN Events
  • If you want to know the link between a uCAN and a sensor, use the instruction "can ping list". You see for example that sensor 6 is reporting (or not reporting values) and you want to know which uCAN this is, just look at the above example, look at the column Temp.link0 or Temp.link1 and check the value without brackets that will indicate the sensor nr.

Changing CAN bus speed

The Brain(+) has the possibility to change the CAN bus speed. Changing CAN bus speed can help in bus stability when using long cable and/or cables of bad quality. The lower the speed, the higher the cable length. On the other hand, when the speed is lowered, loading new releases will take more time. Following speeds are available:

  • 20kbps
  • 50kbps
  • 125kbps (default setting)
  • 250kbps

To change the Bus speed, use following process:

First check that all uCAN's are responding by using following instruction:

can ping list
-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-CanP1-CanP2-CanP3-CanP4-CanP5-Stat--Min-MAX-delay--Volt--
00 100 221.023.196  255(255)  255(255)  255(255)  017(009)  016(008)  015(007)  255(255)  255(255)  000  F06.00.15 255  069   001   079   231   001   238   247  000 255  001ms 23.58V
OK

Please Check that all connected uCAN's have at least firmware version 6.0.15 or higher. If you have a lower version, please do not use this procedure and first upgrade your uCAN's.

In the above example, I only have 1 uCAN. Let's change the speed to 50kbps:

can speed write 50
CAN P: 001 031 255 002 060
OK

The CAN P parameters must be checked that all uCAN have well received them, if not, the instruction "can speed write" must be repeated. To check the CAN P parameters, use the following instruction again:

can ping list
-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-CanP1-CanP2-CanP3-CanP4-CanP5-Stat--Min-MAX-delay--Volt--
00 100 221.023.196  255(255)  255(255)  255(255)  017(009)  016(008)  015(007)  255(255)  255(255)  000  F06.00.15 255  069   001   031   255   002   060   247  000 255  001ms 23.56V

OK

In the can ping list, you'll find parameters CanP1, CanP2 etc. These parameters must be identical to the CAN P parameters received after using the "can speed write" instruction. If all uCAN have the same parameters, you're good to go.

The new CAN speed is only effective after a reset:

reset

After reset, check if all uCAN's are responding:

can ping list

Important Note: 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.

In the event that no uCAN's are responding after a reset, it might be that 1 of the uCAN's is still on the old speed resulting that no uCAN's will be able to communicate. This can be easily resolved by executing following instructions:

can speed write 125
reset

Now wait 1 minute. All the connected uCAN's (with firmware version 6.0.15 or higher) will realise that communication is not possible and will switch to the default speed (125kbps) after 40 seconds. This default speed will be available after the next reset.

reset

The uCAN's should become available again.

Failed adding a Micro CAN

First check if cabling is fine and working correctly.

Some Micro CAN's with firmware older than V6.0.26 have a bug that discovery after a few minutes won't be possible anymore. A simple workaround solves this issue:

  • Switch off the power of the CAN bus (in case of the built-in CAN control):
baa 253 1 0 0
  • Switch off the power of the CAN bus (in case of an external CAN control):
baa 253 3 0 0
  • Switch on the power of the CAN bus (in case of the built-in CAN control):
baa 253 1 1 0
  • Switch on the power of the CAN bus (in case of an external CAN control):
baa 253 3 1 0

Now, you've a few minutes to add Micro CAN's. After those few minutes and additional Micro CAN's (or inputs) needs to be added, do the above procedure again.

Sensor not working or not reliable

The Micro CAN has a built-in eeprom which also contains the configuration of the Micro CAN. 2 major hardware versions exists that have a different hardware routing to the sensor. If the wrong hardware version is selected, the Micro CAN will not display the sensor values or the values will not be reliable. The below procedure will only work if the Micro CAN has firmware version F6.0.21 or higher and Master Firmware F1.0.120 or higher.

Let's assume that Mirco CAN with ID 21.231.15 has a sensor issue:

To solve this, first check the Hardware version (Micro CAN eeprom location 30):

eeprom read 21 231 15 30
30 -> 255
OK

Normally, you can have these versions:

  • Value 69 (="E"): First generation Micro CAN with different hardware routing
  • Value 70 (="F") or higher: Second generation Micro CAN with new hardware sensor routing
  • Value 255: This is the default eeprom value, the hardware is considered being a "E" version

To change the hardware version:

eeprom write 21 231 15 30 70
OK

Switch OFF the power of the built-in CAN bus:

baa 253 1 0 0
OK

Switch OFF the power of the CAN Control bus (when CAN Control are being used):

baa 253 3 0 0
OK

Switch ON the power of the built-in CAN bus:

baa 253 1 1 0
OK

Switch ON the power of the CAN Control bus (when CAN Control are being used):

baa 253 3 1 0
OK

Wait a minute to see the sensors appear. If this doesn't, write value 70 at position 30 of the Micro CAN by applying the above procedure again.

Double Input or Sensor ID found

As mentioned before, the Micro CAN has a built-in eeprom that stores also the inputs and sensors being used. Each input has an eeprom location as well as each sensor(2).

See CAN Eeprom pages table "uCAN GEN3" for the eeprom locations and their explanations.

When the eeprom location is empty (it has value 255), the Micro CAN will negotiate a unique input and/or sensor ID with the Master. Once that negotiation is done, the Micro CAN will store this unique ID in its local eeprom. Once this is done, the Micro CAN will use this ID in the case an input is pressed or to communicate a sensor value.

When an erase of Micro CAN's has not been successfully received by a Micro CAN or a non-empty Micro CAN is used in a new installation, double ID's can be found in a system. This can however be solved easily.

First check which double ID exist in your Micro CAN installation by using following instruction:

can ping list
-Nr-Bus-ID2.ID1.ID0-Hw_Rev----Serial----Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Type-Firmware-Boot-ID_NE-CanP1-CanP2-CanP3-CanP4-CanP5-Stat--Min-MAX-delay--Volt--
00 100 132.069.243  071  210928000245  011(003)  010(002)  008(000)  009(001)  255(255)  255(255) 000(000)  255(255)  004  F06.00.27 000  069   255   255   255   255   255   247  000 255 002ms 23.44V
01 100 148.060.023  071  210928000248  012(004)  013(005)  033(009)  032(008)  014(006)  015(007) 001(001)  255(255)  004  F06.00.27 000  069   255   255   255   255   255   247  000 255 001ms 23.60V
02 100 010.016.126  071  210928000250  008(000)  009(001)  011(003)  010(002)  035(011)  034(010) 000(000)  255(255)  000  F06.00.27 000  069   255   255   255   255   255   247  000 255 001ms 23.38V
03 100 143.096.205  071  210928000246  039(015)  038(014)  034(010)  035(011)  037(013)  036(012) 002(002)  255(255)  004  F06.00.23 255  069   255   255   255   255   255   247  000 255 001ms 23.58V
04 100 176.064.090  071  210928000242  042(018)  041(017)  045(021)  044(020)  043(019)  040(016) 003(003)  255(255)  004  F06.00.23 255  069   255   255   255   255   255   247  000 255 001ms 23.36V

The above instruction will ask live all the parameters and some eeprom values of all connected Micro CANs.

As you can see, the 3rd Micro CAN with ID 10.16.126 contains doubles from the other Micro CAN so this device should be reinitialised in terms of inputs and sensors.

Every time a negotiation is done between Master and Micro CAN, the result is also stored in the eeprom of the Master:

can eeprom list
-Nr-Bus-ID2.ID1.ID0--Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Modbus-Type
00 100 132.069.243  011(003)  010(002)  008(000)  009(001)  255(255)  255(255)  000(100)  255(000)   255   255
01 100 148.060.023  012(004)  013(005)  033(009)  032(008)  014(006)  015(007)  001(100)  255(001)   255   255
02 100 010.016.126  255(255)  255(255)  255(255)  255(255)  255(255)  255(255)  255(100)  255(255)   255   255
03 100 143.096.205  039(015)  038(014)  034(010)  035(011)  037(013)  036(012)  002(100)  255(002)   255   255
04 100 176.064.090  042(018)  041(017)  045(021)  044(020)  043(019)  040(016)  003(100)  255(003)   255   255

If we look at the 3rd Micro CAN, we see that the ID values for inputs and sensors are empty in the Master eeprom and not empty if we look at the values of the Micro CAN itself.

To solve the double ID problem, we will just erase the input and sensor IDs of the concerned Micro CAN. We can write directly in the eeprom of a Micro CAN with following instruction (in our example, we will erase input0-5 and the first sensor):

eeprom write 10 16 126 0 255
eeprom write 10 16 126 1 255
eeprom write 10 16 126 2 255
eeprom write 10 16 126 3 255
eeprom write 10 16 126 4 255
eeprom write 10 16 126 5 255
eeprom write 10 16 126 8 255

Once the above instruction is executed, you can check the result with instruction:

can ping list

When an input is pressed now on this programmed Micro CAN, it will automatically receive a unique ID. Keep maintenance mode open when pressing those inputs, messages will appear on the console.

Note: For the inputs and sensors in the "can ping list" and the "can eeprom list", you see a number and a number between brackets. The number (without brackets) represents the number used by the Master. For example, input 11 is the same input 11 that you will find back when doing "input list" or looking at input 11 in the portal. The number between brackets is the number used on the CAN bus itself, this is the unique ID on CAN bus level for inputs and sensors (both starting from 0).

Linking inputs with outputs

Overview inputs

With the CLI instruction "input list", you can list the overview of all inputs, the name of the input and the output linked.

input list

Overview outputs

With the CLI instruction "output list", you can list the overview of all outputs, the name of the output and the programmed timers.

output list

Linking an input with an output

  • First check which output you want to link. With the CLI instruction "input debug on", you can check the correct input.
input debug on
  • with the CLI instruction "output on" and "output off", you can check if you are looking at the right output. For example, switching on output 5 can be done by using instruction "output on 5".
output on
output off
  • Linking for example input 10 with output 5 can done with following instruction: "input link write 10 5". Verify what output is linked to input 10 can be done with instruction "input link read 10"
input link write 10 5 
input link read

Unlinking an input from an output

When an input needs to be unlinked, follow instruction can be used (unlink input 10):

input link write 10 65535

After this instruction, no output is linked to input 10.

Set Standard timer value for an output

Each output can be programmed with a standard timer value. 3 type of timer exists:

  • 100ms timer (BA0 13)
  • 1s timer (BA0 14)
  • 1m timer (BA0 15)

In our example, we will give Output 5 a timer value of 1200 seconds and will use the second timer:

baa 0 14 5 1200

You can check the programmed timer values by using following CLI instruction:

output list

Linking inputs to Pulse Counters

How does this work

External Input Modules as well as the 5 internal inputs of the Brain(+) keeps track of the number of times an input has been activated. This count is kept in the built-in FRAM memory (on Input module and on Brain(+)) so power failure or others will not influence the counters.

The pulse counters are stored double (always locally) in FRAM for each input:

  • 4 bytes counter for every input
  • 2 bytes CRC16 to guantee correct value
  • Every 4 bytes values is stored twice to guarantee integrity

The Brain can be configured with 32 Pulse Counters. Each pulse Counter can be linked with 1 input. Once at least 1 Pulse Counter is configured, every 30 seconds, the Pulse Counter value(s) are retrieved (from internal FRAM or from external Input Modules via RS485). Once a change in Pulse Counter value is detected, API Event 3 is sent so the BB layer will stay in sync without requesting any information from the Master.

What Firmware is needed

Requirements for pulse counters to work:

  • Master F1.0.126 or higher
  • Input Firmware F6.0.27 or higher

Manually Configure Pulse Counters

  • First, let's check firmware version before getting started:
firmware version
--- Fw version Brain(+): V1.0.126 SN:210921000001(2) ---
 Output:
 00 (l I) 108.000.000.000 -> Internal/Virtual
 Input:
 00 (i I) 105.000.000.000 -> Internal/Virtual
 01 (I E) 073.017.243.000 -> V6.0.27 SN:301221000033(0)
OK

As you can see, we've a Brain with a correct firmware version as well as an external input module with a valid version as well.

  • First have a look at the Memory Model AIO at the Data Input Modules section - Pulse Counter link:
    • This section starts at page 81
    • Every input module has 2 pages so the first input module (Internal inputs of the Brain(+)) uses page 81 (first page) and page 82 (second page)
    • In the above example, our external input module uses page 83 (first page) and page 84 (second page)
    • The Pulse Counter link is stored in the first page at Byte 120-127
    • So as an example, let's link one of the 5 (0-4) built-in inputs and one of the external input module
  • Let's now link input 1 (2nd input of the first module) to Pulse Counter 5 and input 10 (3rd input of the second module in our list) to Pulse Counter 2:
eeprom write 81 121 5
OK
eeprom write 83 122 2
OK
Eeprom activate
OK
  • To check that everything is well configured, you can execute the below instruction and verify the column PC (Pulse Counter):
input list
-Input-Status-Invert-lock------Link------Dali----PC---Input Name---
000 (i)   0    No      0    BA  (65535)  255(0)  255
001 (i)   0    No      0    BA  (65535)  255(0)  005
002 (i)   0    No      0    BA  (65535)  255(0)  255
003 (i)   0    No      0    BA  (65535)  255(0)  255
004 (i)   0    No      0    BA  (65535)  255(0)  255
005 (i)   0    No      0    BA  (65535)  255(0)  255
006 (i)   0    No      0    BA  (65535)  255(0)  255
007 (i)   0    No      0    BA  (65535)  255(0)  255
008 (I)   0    No      0    BA  (65535)  255(0)  255
009 (I)   0    No      0    BA  (65535)  255(0)  255
010 (I)   0    No      0    BA  (65535)  255(0)  002
011 (I)   0    No      0    BA  (65535)  255(0)  255
012 (I)   0    No      0    BA  (65535)  255(0)  255
013 (I)   0    No      0    BA  (65535)  255(0)  255
014 (I)   0    No      0    BA  (65535)  255(0)  255
015 (I)   0    No      0    BA  (65535)  255(0)  255
OK
  • With the below instruction, you can check the Pulse Counter value:
pulse counter read 2
26
OK
pulse counter read 5
60
OK
  • When you activate a configured input, the above counter will increase. Please note that these values are updated every 30 seconds so a delay in updated values is normal.

Configuring shutters

All configuration and usages of shutters is done by using Basic Actions (BA10), see Action Types AIO

Shutter BA's for configuring

Type (Byte) Action (Byte) DeviceNr (Word) Extra parameter (Word) Description
10
100
x
y
SHUTTER: Shutter x is linked to output duo nr y (if shutter x=5 & output y=8 -> shutter 5 is linked to output duo 8 & 9), if y=255 -> shutter not used
10
101
x
y
SHUTTER: For shutter x, if y=0 -> first output of duo is UP, second is DOWN, if y=1 -> first output of duo is DOWN, second is UP
10
102
x
y
SHUTTER: For shutter x, set timer y (in 100ms, max 65535) for direction UP (time needed from 100% to 0%)
10
103
x
y
SHUTTER: For shutter x, set timer y (in 100ms, max 65535) for direction DOWN (time needed from 0% to 100%)
10
104
x
y
SHUTTER: For output duo x, set duo as OUTPUT when y=1, set duo as SHUTTER when y=0
10
105
x
y
SHUTTER: Link shutter x with shutter group y (y<16)
10
106
x
y
SHUTTER: Unlink shutter x with shutter group y (y<16)
10
200
x
-
SHUTTER: Indicate shutter x (the UP led of the output duo will flash if led is available).

Change outputs to shutters

A shutter has always 2 outputs. 1 output is for the UP direction, the other is for the DOWN direction. In a shutter configuration, both outputs can't be ON at the same time to avoid shutter damage. It's also programmed that always 200ms is between the first output switching off and the second output switching on.

  • Step1: Check your list of output to see which set of outputs needs to be converted to a shutter. To verify the list of your outputs, use instruction "output list".
output list
-Output-Type-Status-lock-Dim-Timer--Type---Dali---Name---------
000 (l) OUTPT  OFF    0  063 65535 ( off )  255
001 (l) OUTPT  OFF    0  063 65535 ( off )  255
002 (l) OUTPT  OFF    0  063 65535 ( off )  255
003 (l) OUTPT  OFF    0  063 65535 ( off )  255
004 (l) OUTPT  OFF    0  063 65535 ( off )  255
005 (l) OUTPT  OFF    0  063 65535 ( off )  255 
006 (l) OUTPT  OFF    0  063 65535 ( off )  255
007 (l) OUTPT  OFF    0  063 65535 ( off )  255
008 (O) OUTPT  OFF    0  255 65535 ( off )  255
009 (O) OUTPT  OFF    0  255 65535 ( off )  255
010 (O) OUTPT  OFF    0  255 65535 ( off )  255
011 (O) OUTPT  OFF    0  255 65535 ( off )  255
012 (O) OUTPT  OFF    0  255 65535 ( off )  255
013 (O) OUTPT  OFF    0  255 65535 ( off )  255
014 (O) OUTPT  OFF    0  255 65535 ( off )  255
015 (O) OUTPT  OFF    0  255 65535 ( off )  255
016 (D) OUTPT  OFF    0  255 65535 ( off )  255
017 (D) OUTPT  OFF    0  255 65535 ( off )  255
018 (D) OUTPT  OFF    0  255 65535 ( off )  255
019 (D) OUTPT  OFF    0  255 65535 ( off )  255
020 (D) OUTPT  OFF    0  255 65535 ( off )  255
021 (D) OUTPT  OFF    0  255 65535 ( off )  255
022 (D) OUTPT  OFF    0  255 65535 ( off )  255
023 (D) OUTPT  OFF    0  255 65535 ( off )  255
OK

In the above example, we will use output 10 (and automatically 11) to be converted as shutter. Please be aware that only 2 consecutive outputs can be used as shutter and the first output has always an even number (0, 2, 4, 6 etc). The instruction "output indicate 10" and "output indicate 11" can be used to verify you're working with the right output.

  • Step2: To convert to a shutter, we will use a BA10 100 to link shutter 0 with output 10 and 11:
baa 10 100 0 10

With the instruction "output list", you can verify that change in output status:

output list
-Output-Type-Status-lock-Dim-Timer--Type---Dali---Name---------
000 (l) OUTPT  OFF    0  063 65535 ( off )  255
001 (l) OUTPT  OFF    0  063 65535 ( off )  255
002 (l) OUTPT  OFF    0  063 65535 ( off )  255
003 (l) OUTPT  OFF    0  063 65535 ( off )  255
004 (l) OUTPT  OFF    0  063 65535 ( off )  255
005 (l) OUTPT  OFF    0  063 65535 ( off )  255  
006 (l) OUTPT  OFF    0  063 65535 ( off )  255
007 (l) OUTPT  OFF    0  063 65535 ( off )  255
008 (O) OUTPT  OFF    0  255 65535 ( off )  255
009 (O) OUTPT  OFF    0  255 65535 ( off )  255
010 (O) SHUTR  OFF    0  255 65535 ( off )  255
011 (O) SHUTR  OFF    0  255 65535 ( off )  255
012 (O) OUTPT  OFF    0  255 65535 ( off )  255
013 (O) OUTPT  OFF    0  255 65535 ( off )  255
014 (O) OUTPT  OFF    0  255 65535 ( off )  255
015 (O) OUTPT  OFF    0  255 65535 ( off )  255
016 (D) OUTPT  OFF    0  255 65535 ( off )  255
017 (D) OUTPT  OFF    0  255 65535 ( off )  255
018 (D) OUTPT  OFF    0  255 65535 ( off )  255
019 (D) OUTPT  OFF    0  255 65535 ( off )  255
020 (D) OUTPT  OFF    0  255 65535 ( off )  255
021 (D) OUTPT  OFF    0  255 65535 ( off )  255
022 (D) OUTPT  OFF    0  255 65535 ( off )  255
023 (D) OUTPT  OFF    0  255 65535 ( off )  255
OK
  • Step3: With the instruction "shutter list", you can verify the shutter configuration:
shutter list
-Shutter-Locked-Up:Outp-Timer-Dwn:Outp-Timer-Position-Req_Pos-Moving----Name-----
  000     NO     010    65535   011    65535  00000   00000   NO
  001     --      --     --      --     --     --     --      --
  002     --      --     --      --     --     --     --      --
  003     --      --     --      --     --     --     --      --
  004     --      --     --      --     --     --     --      --
  005     --      --     --      --     --     --     --      --
  006     --      --     --      --     --     --     --      --
  007     --      --     --      --     --     --     --      --
  008     --      --     --      --     --     --     --      --
  009     --      --     --      --     --     --     --      --
  010     --      --     --      --     --     --     --      --
  011     --      --     --      --     --     --     --      --
  012     --      --     --      --     --     --     --      --
  013     --      --     --      --     --     --     --      --
  014     --      --     --      --     --     --     --      --
  015     --      --     --      --     --     --     --      --
  016     --      --     --      --     --     --     --      --
  017     --      --     --      --     --     --     --      --
  018     --      --     --      --     --     --     --      --
  019     --      --     --      --     --     --     --      --
  020     --      --     --      --     --     --     --      --
  021     --      --     --      --     --     --     --      --
  022     --      --     --      --     --     --     --      --
  023     --      --     --      --     --     --     --      --
  024     --      --     --      --     --     --     --      --
  025     --      --     --      --     --     --     --      --
  026     --      --     --      --     --     --     --      --
  027     --      --     --      --     --     --     --      --
  028     --      --     --      --     --     --     --      --
  029     --      --     --      --     --     --     --      --
  030     --      --     --      --     --     --     --      --
  031     --      --     --      --     --     --     --      --
OK

Note: If you want to remove a shutter from the shutter list, do the following (in this example Shutter 0):

baa 10 100 0 65535

Please note, by using the above instruction, both outputs will remain configured as shutter type. To undo that, please use BA10 104.

Change output for up/down direction

As you can see in the above example with instruction "shutter list", output 10 is the UP direction, output 11 is the down direction. In this example, I would like to configure 10 as DOWN and 11 as UP:

baa 10 101 0 1

Executing instruction "shutter list", you can see the change that did happen:

shutter list
-Shutter-Locked-Up:Outp-Timer-Dwn:Outp-Timer-Position-Req_Pos-Moving----Name-----
  000     NO     011    65535   010    65535  00000   00000   NO
  001     --      --     --      --     --     --     --      --
  002     --      --     --      --     --     --     --      --
  003     --      --     --      --     --     --     --      --
  004     --      --     --      --     --     --     --      --
  005     --      --     --      --     --     --     --      --
  006     --      --     --      --     --     --     --      --
  007     --      --     --      --     --     --     --      --
  008     --      --     --      --     --     --     --      --
  009     --      --     --      --     --     --     --      --
  010     --      --     --      --     --     --     --      --
  011     --      --     --      --     --     --     --      --
  012     --      --     --      --     --     --     --      --
  013     --      --     --      --     --     --     --      --
  014     --      --     --      --     --     --     --      --
  015     --      --     --      --     --     --     --      --
  016     --      --     --      --     --     --     --      --
  017     --      --     --      --     --     --     --      --
  018     --      --     --      --     --     --     --      --
  019     --      --     --      --     --     --     --      --
  020     --      --     --      --     --     --     --      --
  021     --      --     --      --     --     --     --      --
  022     --      --     --      --     --     --     --      --
  023     --      --     --      --     --     --     --      --
  024     --      --     --      --     --     --     --      --
  025     --      --     --      --     --     --     --      --
  026     --      --     --      --     --     --     --      --
  027     --      --     --      --     --     --     --      --
  028     --      --     --      --     --     --     --      --
  029     --      --     --      --     --     --     --      --
  030     --      --     --      --     --     --     --      --
  031     --      --     --      --     --     --     --      --
OK

Giving the Shutter a name

In our example, this can be easily done, for shutter 0, by following instruction:

shutter name write 0 Living
shutter list
-Shutter-Locked-Up:Outp-Timer-Dwn:Outp-Timer-Position-Req_Pos-Moving----Name-----
  000     NO     011    65535   010    65535  00000   00000   NO       Living
  001     --      --     --      --     --     --     --      --
  002     --      --     --      --     --     --     --      --
  003     --      --     --      --     --     --     --      --
  004     --      --     --      --     --     --     --      --
  005     --      --     --      --     --     --     --      --
  006     --      --     --      --     --     --     --      --
  007     --      --     --      --     --     --     --      --
  008     --      --     --      --     --     --     --      --
  009     --      --     --      --     --     --     --      --
  010     --      --     --      --     --     --     --      --
  011     --      --     --      --     --     --     --      --
  012     --      --     --      --     --     --     --      --
  013     --      --     --      --     --     --     --      --
  014     --      --     --      --     --     --     --      --
  015     --      --     --      --     --     --     --      --
  016     --      --     --      --     --     --     --      --
  017     --      --     --      --     --     --     --      --
  018     --      --     --      --     --     --     --      --
  019     --      --     --      --     --     --     --      --
  020     --      --     --      --     --     --     --      --
  021     --      --     --      --     --     --     --      --
  022     --      --     --      --     --     --     --      --
  023     --      --     --      --     --     --     --      --
  024     --      --     --      --     --     --     --      --
  025     --      --     --      --     --     --     --      --
  026     --      --     --      --     --     --     --      --
  027     --      --     --      --     --     --     --      --
  028     --      --     --      --     --     --     --      --
  029     --      --     --      --     --     --     --      --
  030     --      --     --      --     --     --     --      --
  031     --      --     --      --     --     --     --      --
OK

Setting a timer for the Up/Down direction

Every shutter can have it's own timer for up and down direction. For shutter 0, we will set an up timer of 40 seconds (programmed in 100ms) and a down timer of 30 seconds (programmed in 100ms):

baa 10 102 0 400
baa 10 103 0 300

You can see the result by using CLI instruction:

shutter list
-Shutter-Locked-Up:Outp-Timer-Dwn:Outp-Timer-Position-Req_Pos-Moving----Name-----
  000     NO     011    00400   010    00300  00000   00000   NO       Living
  001     --      --     --      --     --     --     --      --
  002     --      --     --      --     --     --     --      --
  003     --      --     --      --     --     --     --      --
  004     --      --     --      --     --     --     --      --
  005     --      --     --      --     --     --     --      --
  006     --      --     --      --     --     --     --      --
  007     --      --     --      --     --     --     --      --
  008     --      --     --      --     --     --     --      --
  009     --      --     --      --     --     --     --      --
  010     --      --     --      --     --     --     --      --
  011     --      --     --      --     --     --     --      --
  012     --      --     --      --     --     --     --      --
  013     --      --     --      --     --     --     --      --
  014     --      --     --      --     --     --     --      --
  015     --      --     --      --     --     --     --      --
  016     --      --     --      --     --     --     --      --
  017     --      --     --      --     --     --     --      --
  018     --      --     --      --     --     --     --      --
  019     --      --     --      --     --     --     --      --
  020     --      --     --      --     --     --     --      --
  021     --      --     --      --     --     --     --      --
  022     --      --     --      --     --     --     --      --
  023     --      --     --      --     --     --     --      --
  024     --      --     --      --     --     --     --      --
  025     --      --     --      --     --     --     --      --
  026     --      --     --      --     --     --     --      --
  027     --      --     --      --     --     --     --      --
  028     --      --     --      --     --     --     --      --
  029     --      --     --      --     --     --     --      --
  030     --      --     --      --     --     --     --      --
  031     --      --     --      --     --     --     --      --
OK

Linking an input to a shutter

In this example, we will link 1 button to perform up-stop-down-stop.

  • Step1: Check the input you want to us:
input debug on

Press the input you want to use for our shutter 0, this will appear on your console:

11:02:37 Input Nr 74 has been pressed
11:02:37 Input Nr 74 has been released

So our goal is to link input 74 to shutter 0.

  • Step2: First check if our input has other actions linked:
input action read 74
----------------Act--Inp-Cnf-Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
0-   PRESS    : Yes  074  0  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
1-  RELEASE   : Yes  074  1  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
2- 1SEC PRESS : No   074  2  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
3- 2SEC PRESS : No   074  3  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
4-DOUBLE PRESS: No   074  4  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
OK

We see that nothing is linked so we can use this input for our shutter.

  • Step3: Link our input 74 (at press) to shutter 0:

BA10 3 will be programmed for the Up-Stop-Down-Stop action.

input action write 74 0 10 5 0 0

Explanation of the above instruction:

    • 74 0: 74 as input nr, 0 because we want this instruction to be executed at press state of the input
    • 10 5: BA10 5 will be executed which means shutter up-stop-down-stop
    • 0 0: The first 0 is the shutter number, the second 0 is not in use for this BA, see Action Types AIO
  • Step4: Check your programming
input action read 74
----------------Act--Inp-Cnf-Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
0-   PRESS    : Yes  074  0  010 005 00000(000.000) 00000(000.000) ->  Shutter 0 up_stop_down...
1-  RELEASE   : Yes  074  1  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
2- 1SEC PRESS : No   074  2  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
3- 2SEC PRESS : No   074  3  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
4-DOUBLE PRESS: No   074  4  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
OK

Creating Shutter groups

It's possible to link multiple shutters into a shutter group. This makes it possible to open/close multiple shutters at the same time.

Let's assume we've configured 5 shutters:

shutter list
-Shutter-Locked-Up:Outp-Timer-Dwn:Outp-Timer-Position-Req_Pos-Moving----Name-----
  000     NO     052    00600   053    00600  00000   65530   NO       Slaapkamer P&W
  001     NO     051    00600   050    00600  00000   00005   NO       Slaapkamer Elise
  002     NO     042    00600   043    00600  00000   65530   NO       Slaapkamer Nick
  003     NO     044    00600   045    00600  00000   00005   NO       Keuken
  004     NO     040    00600   041    00600  00000   00005   NO       Living
  005     --      --     --      --     --     --     --      --
  006     --      --     --      --     --     --     --      --
  007     --      --     --      --     --     --     --      --
  008     --      --     --      --     --     --     --      --
  009     --      --     --      --     --     --     --      --
  010     --      --     --      --     --     --     --      --
  011     --      --     --      --     --     --     --      --
  012     --      --     --      --     --     --     --      --
  013     --      --     --      --     --     --     --      --
  014     --      --     --      --     --     --     --      --
  015     --      --     --      --     --     --     --      --
  016     --      --     --      --     --     --     --      --
  017     --      --     --      --     --     --     --      --
  018     --      --     --      --     --     --     --      --
  019     --      --     --      --     --     --     --      --
  020     --      --     --      --     --     --     --      --
  021     --      --     --      --     --     --     --      --
  022     --      --     --      --     --     --     --      --
  023     --      --     --      --     --     --     --      --
  024     --      --     --      --     --     --     --      --
  025     --      --     --      --     --     --     --      --
  026     --      --     --      --     --     --     --      --
  027     --      --     --      --     --     --     --      --
  028     --      --     --      --     --     --     --      --
  029     --      --     --      --     --     --     --      --
  030     --      --     --      --     --     --     --      --
  031     --      --     --      --     --     --     --      --
OK

Let's now link our 5 shutters (0-4) to shutter group 0:

baa 10 105 0 0
baa 10 105 1 0
baa 10 105 2 0
baa 10 105 3 0
baa 10 105 4 0

With following instruction, you can check what you've programmed:

shutter group link list
-Shutter-GRP-00-01-02-03-04-05-06-07-08-09-10-11-12-13-14-15
  000         Y  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  001         Y  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  002         Y  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  003         Y  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  004         Y  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  005         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  006         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  007         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  008         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  009         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  010         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  011         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  012         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  013         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  014         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  015         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  016         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  017         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  018         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  019         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  020         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  021         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  022         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  023         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  024         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  025         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  026         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  027         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  028         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  029         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  030         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  031         -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
  Lock        -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -
OK

Since all the shutters are linked now, the normal shutter BA's can be used but with following modifications:

  • When a shutter number >=256 then a shutter group is addressed
  • Shutter nr x: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)

Using Shutters

Shutter BA's for usage

Type (Byte) Action (Byte) DeviceNr (Word) Extra parameter (Word) Description
10
0
x
-
SHUTTER: Shutter x stop (when x>255 -> Shutter groups are used: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
1
x
-
SHUTTER: Shutter x UP (when x>255 -> Shutter groups are used: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
2
x
-
SHUTTER: Shutter x DOWN (when x>255 -> Shutter groups are used: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
3
x
-
SHUTTER: Shutter x UP-STOP-UP-STOP...(when x>255 -> Shutter groups are used: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
4
x
-
SHUTTER: Shutter x DOWN-STOP-DOWN-STOP...(when x>255 -> Shutter groups are used: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
5
x
-
SHUTTER: Shutter x UP-STOP-DOWN-STOP....(when x>255 -> Shutter groups are used: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
6
x
y
SHUTTER: Move Shutter x to position y (Fully open is 0, fully closed is 65535) -> Not yet operational.
10
20
x
-
SHUTTER: Shutter x Locked (when x>255, all shutters of a Shutter Group will be locked: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
21
x
-
SHUTTER: Shutter x STOP & Locked (when x>255, all shutters of a Shutter Group will be locked: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
22
x
-
SHUTTER: Shutter x UP & Locked (when x>255, all shutters of a Shutter Group will be locked: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
23
x
-
SHUTTER: Shutter x DOWN & Locked (when x>255, all shutters of a Shutter Group will be locked: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)
10
24
x
-
SHUTTER: Shutter x Unlocked (when x>255, all shutters of a Shutter Group will be unlocked: x=256->Group 0, x=257->Group 1, x=258->Group 2 etc)

Group Actions

The system supports group actions. A group action is a set Basic Actions that can be executed. The execution can for example be linked to a sensor being changed, an output status change, a time change, every minute etc. Group actions can be made intelligent by using IF THEN ELSE Basic Actions.

The number of BA's (Basic Actions) can be configured in a flexible a way in other words, as an example, Group 0 can be configured with 10 lines (=10 BA's), Group 1 can be configured with 25 lines.

Group Action Creation

Let's create Group Action 0 with 3 lines (= Max 3 BA's) and Group Action 1 with 10 lines (= Max 10 BA's).

In total, a list of more then 1000 lines (BA's) exist that can be split in multiple group actions. Each group action has a start and end (BA) address. In our example, we will program the following:

  • Group 0: start BA 0 end BA 2 -> 3 lines
  • Group 1: start BA 1 end BA 12 -> 10 lines
group start end write 0 0 2
group start end write 1 3 12

To see the result, you can use following action:

group read 0
group read 1

Write BA's in a Group

Let's have some BA's written in our 2 Groups:

  • Output 5 ON in Group 0 (BA0->First BA in Group 0)
  • Output 6 ON in Group 1 (BA3->First BA in Group 1)
group ba write 0 0 1 5 0
group ba write 3 0 1 6 0

To see the result, you can use:

group read 0
group read 1

To test a group action 1 for example:

baa 19 0 1 0

Give Group Action a name

Every group can have a name:

group write 0 Ventilation ON
group write 1 All screens down

To see the result:

group list

Example: A led follows an output

First create a group action 12 with 3 BA's (start BA33 and end BA35):

group start end write 12 33 35

In this example, we want led 9 (input 9) to follow Output 1. How does this work:

  • When Output 1 changes state, Led 9 should follow the Output state (Output 1 ON -> Led 9 ON, Output 1 OFF -> Led 9 OFF)
  • In Group Action 12, we will activate Led 9
  • Every time Output 1 changes state, it should activate Group Action 12

First we will program in Group 12 (BA33 -> First BA of this group) the activation of Led 9:

group ba write 33 20 50 0 9 255 0

Now, we need to link Output 1 with Group 12:

baa 19 50 0 1 0 12

Example: Input long press to switch all lights off and closes all shutters

First will will create a group action (lets's assume group action 0 with 10 entries: BA0 to BA9):

group start end write 0 0 9

Write in BA0 to switch all lights OFF:

group ba write 0 0 255 1 0

Write in BA1 that Shutter group 0 (shutter group 0->256, shutter group 1 ->257 etc) must go down:

group ba write 1 10 2 256 0

You can give the Group a name:

group name write 0 All Off+shutter dw

You can check you entries by using following instructions:

group list
-Group---------Name---------
 000   ->   All Off+shutter
OK
group read 0
-Grp---BA Nr----Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
 000  0000(00)  000 255 00001(000.001) 00000(000.000) ->  Switch OFF all Outputs(x=0), Lights(x=1) or Lights&Outputs(x>1)
 000  0001(01)  010 002 00256(001.000) 00000(000.000) ->  Shutter 256 down
 000  0002(02)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
 000  0003(03)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
 000  0004(04)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
 000  0005(05)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
 000  0006(06)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
 000  0007(07)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
 000  0008(08)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
 000  0009(09)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
OK

The only thing that needs to happen now is to link as an example input 31 to group 0 when input 31 is pressed during 2 seconds:

input action write 31 3 19 0 0 0

Verify your input:

input action read 31
----------------Act--Inp-Cnf-Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
0-   PRESS    : No   031  0  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
1-  RELEASE   : Yes  031  1  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
2- 1SEC PRESS : No   031  2  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
3- 2SEC PRESS : Yes  031  3  019 000 00000(000.000) 00000(000.000) ->  Execute Group Action 0
4-DOUBLE PRESS: No   031  4  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
OK

When input 31 is now pressed during 2 seconds, all lights will be switched off and all shutters of shutter group 0 will go down.

Note:

  • If you also want to configure an additional function on the same switch for example a short press to toggle a light and a long press to switch all lights off, do the following:
    • First configure the Release action (you cannot configure the press action since the system can only determine the action once you've release the switch or when the x seconds are expired)
    • Secondly, configure the 2 second action
    • The above order must be respected to let this work

Example: With 1 input, switch ON/OFF multiple lights, led following the leading output

When you want to switch a group of lights with 1 input, the output follow function must be used. First link input (30) to the leading output (13):

input link write 30 13

Create a group (1) with 3 BA's:

group start end write 1 10 12

Now we're going to use a special basic action (BA0 21) that is used to follow the leading output. We want output 14 and 15 following our leading output (13). We also want LED of input 30 to follow the output state (BA20 50):

group ba write 10 0 21 14 0
OK
group ba write 11 0 21 15 0
OK
group ba write 12 20 50 0 30 255 0
OK

Check your group action:

group read 1
-Grp---BA Nr----Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
 001  0010(00)  000 021 00014(000.014) 00000(000.000) ->  Output 14 follows group arg. (65535)
 001  0011(01)  000 021 00015(000.015) 00000(000.000) ->  Output 15 follows group arg. (65535)
 001  0012(02)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use

The only thing that now needs to happen is to activate the group follow function of output 13 in other words we will tell that, when every change, group action 1 needs to be activated:

output group follow write 13 1 

You can check the group following list:

output group follow list
--Nr--Group Follow----Group Description---------
 000   No Group
 001   No Group
 002   No Group
 003   No Group
 004   No Group
 005   No Group
 006   No Group
 007   No Group
 008   No Group
 009   No Group
 010   No Group
 011   No Group
 012   No Group
 013    00001
 014   No Group
 015   No Group
 016   No Group
 017   No Group
 018   No Group
 019   No Group
 020   No Group
 021   No Group
 022   No Group
 023   No Group
 024   No Group
 025   No Group
 026   No Group
 027   No Group
 028   No Group
 029   No Group
 030   No Group
 031   No Group
 032   No Group
 033   No Group
 034   No Group
 035   No Group
 036   No Group
 037   No Group
 038   No Group
 039   No Group
 040   No Group
 041   No Group
 042   No Group
 043   No Group
 044   No Group
 045   No Group
 046   No Group
 047   No Group
 048   No Group
 049   No Group
 050   No Group
 051   No Group
 052   No Group
 053   No Group
 054   No Group
 055   No Group
 056   No Group
 057   No Group
 058   No Group
 059   No Group
 060   No Group
 061   No Group
 062   No Group
 063   No Group
 064   No Group
 065   No Group
 066   No Group
 067   No Group
 068   No Group
 069   No Group
 070   No Group
 071   No Group
OK

Example: Multiple leds that needs to follow 1 output

In this example, multiple switches can switch ON/OFF the hall lights (output 62) and the appropriate leds needs to follow that light. First create a group that will contain all leds. First check all inputs that will switch ON/OFF the hall lights so the appropriate leds can be programmed.

input debug on

Following leds will be linked to the hall lights:

  • Led 29
  • Led 43
  • Led 52
  • Led 56

First create our group 2. We will make a larger group so we can add leds later on if we want:

group start end write 2 20 40

Let's give the group a name:

group name write 2 Leds Hall

Program the leds in Group 2 (BA20 50):

group ba write 20 20 50 0 29 255 0
OK
group ba write 21 20 50 0 43 255 0
OK
group ba write 22 20 50 0 52 255 0
OK
group ba write 23 20 50 0 56 255 0
OK

With following instruction, you can check your programming:

group read 2

Now we only have to link our Hall lights (output 62) to Group 2:

output group follow write 62 2

Example: 1 or multiple leds indicating if lights are still ON

In this example, a led will blink if somewhere a light is still ON. This can be easily extended to multiple leds giving the same led feedback. We will program the led to blink until all lights are off.

First you need to check that the outputs have the right property in other words a light should be in the list as a light, an output (such as a boiler connection, a valve connection etc) should have the output label:

output list

First create our group 17 (next one that is free). We will make a larger group so we can add leds later on if we want:

group start end write 17 91 95

Let's give the group a name:

group name write 17 Leds lights on

Program the leds in Group 17 (BA20 71 -> Switch led ON when nr of lights > x): In this example, led 31 will start blinking when nr of lights >0

group ba write 91 20 71 0 31 0 2
OK

More lights can be added in this group.

The last step is to link our group 17 with the change of any output in other words, the change of an output should always trigger this group action. An important not is that this group 17 CANNOT contain any output actions to avoid an endless loop.

To link group 17 with any output change, following action must be executed:

baa 19 56 0 17

Example: Output of 2 garage motors that switches a light

In this example, we've 2 garage motors that switches an output (72) when the garage is open. We've connected each motor relay output to an OpenMotics Input (74 & 75). So when one (or both) of the garages is open, the light should be ON, when both are closed, the light should be OFF.

First create our group 14. We will make a larger group so we can add instructions later on if we want:

group start end write 14 71 80

Let's give the group a name:

group name write 14 Garage light

The logic we will write is the following: IF Input 74 is ON (=Pressed state) OR Input 75 is ON (=Pressed state) THEN Output 72 ON for 30 minutes ELSE Output 10 OFF

Program the IF-THEN logic in Group 14:

group ba write 71 100 0 0 0 0 0
OK
group ba write 72 100 12 0 74 0 0
OK
group ba write 73 100 91 0 0 0 0
OK
group ba write 74 100 12 0 75 0 0
OK
group ba write 75 100 150 0 0 0 0
OK
group ba write 76 0 5 0 72 0 30
OK
group ba write 77 100 200 0 0 0 0
OK
group ba write 78 0 0 0 72 0 0
OK
group ba write 79 100 255 0 0 0 0
OK

Let's check if our group is correctly programmed:

group read 14
-Grp---BA Nr----Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
014  0071(00)  100 000 00000(000.000) 00000(000.000) ->  IF
014  0072(01)  100 012 00074(000.074) 00000(000.000) ->  Input 74 is ON
014  0073(02)  100 091 00000(000.000) 00000(000.000) ->  OR
014  0074(03)  100 012 00075(000.075) 00000(000.000) ->  Input 75 is ON
014  0075(04)  100 150 00000(000.000) 00000(000.000) ->  THEN
014  0076(05)  000 005 00072(000.072) 00030(000.030) ->  Output 72 ON and overrule timer with value 30 (30x1m)
014  0077(06)  100 200 00000(000.000) 00000(000.000) ->  ELSE
014  0078(07)  000 000 00072(000.072) 00000(000.000) ->  Output 72 OFF
014  0079(08)  100 255 00000(000.000) 00000(000.000) ->  ENDIF
014  0080(09)  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
OK

Next to do is link group 14 to the press and release action of input 74 and 75:

input action write 74 0 19 0 14 0
OK
input action write 74 1 19 0 14 0
OK
input action write 75 0 19 0 14 0
OK
input action write 75 1 19 0 14 0
OK

Check if your inputs (74 & 75) are linked to group 14:

input action read 74
----------------Act--Inp-Cnf-Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
0-   PRESS    : Yes  074  0  019 000 00014(000.014) 00000(000.000) ->  Execute Group Action 14
1-  RELEASE   : Yes  074  1  019 000 00014(000.014) 00000(000.000) ->  Execute Group Action 14
2- 1SEC PRESS : No   074  2  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
3- 2SEC PRESS : No   074  3  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
4-DOUBLE PRESS: No   074  4  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
OK
input action read 75
----------------Act--Inp-Cnf-Typ-Act---x--(MSB.LSB)---y--(MSB.LSB)-------BA Description----
0-   PRESS    : Yes  075  0  019 000 00014(000.014) 00000(000.000) ->  Execute Group Action 14
1-  RELEASE   : Yes  075  1  019 000 00014(000.014) 00000(000.000) ->  Execute Group Action 14
2- 1SEC PRESS : No   075  2  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
3- 2SEC PRESS : No   075  3  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
4-DOUBLE PRESS: No   075  4  255 255 65535(255.255) 65535(255.255) ->  Instruction not in use
OK

Configuring DALI

On the Brain(+), DALI modules can be connected. The detailed instructions can be found here: Dali AIO

Configuring HVAC module

On the Brain(+), HVAC modules can be connected. The detailed instructions can be found here: HP Tips & tricks during installation and troubleshooting

Configuring MODBUS thermostats

The uCAN's have the possibility to connect Modbus thermostat by using a special uCAN-Modbus interface. This function however is not yet released and not enabled at this point in time. The detailed instructions can be found here: MODBUS AIO

Checking firmware

  • The firmware of the Brain(+) and the RS485 slaves can be checked by using CLI instruction "firmware version". Example:
firmware version
--- Fw version Brain(+): V1.0.69 ---
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
 04 (b C) 098.000.000.004 -> Internal/Virtual
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
  • The firmware of the uCAN's can be checked by using CLI instruction "can ping list"
can ping list
-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)  036(020)  037(021)  035(019)  034(018)  006(006)  255(255)  000  F06.00.06 255  069   255   255   255   255   000   255  000 255  001ms 23.22V
OK

Factory Reset

Factory Reset of a full installation

To perform a factory reset including all connected RS485 & CAN modules, 2 instructions needs to be executed:

  • Prepare the Master for a factory reset
baa 254 2 0 0
  • Execute the Factory reset
baa 254 3 1769 28883
  • The execution of the last instruction can take a few minutes, once done, you get following message on the CLI console:
Factory Reset done
  • When you restart the processor, the connected and erased modules will be added again in a clean environment
reset
  • All steps during Factory reset are sent as events to the BB and the logging is also kept in FRAM:
fram logging

Notes:

  • A factory reset is irreversible, all configuration will be lost
  • FRAM logging, EEPROM logging and Factory settings will not be erased
  • When a factory Reset is performed, errors might appear on the CLI console (input error, output error etc), this is normal and can be ignored
  • Factory reset is available in following firmwares:
    • Master: V1.0.115 or higher
    • Input Module: V6.0.25 or higher
    • Output Module: V6.0.18 or higher
    • Temperature Module: V6.0.16 or higher
    • Dim Control Module: V6.0.19 or higher
    • CAN Control Module: V6.0.43 or higher

Factory Reset of all uCAN slave modules

The below instruction will erase the full uCAN configuration and addresses of all connected uCAN's:

can config delete

Once this instruction is executed, a reset needs to be performed:

reset

Notes:

  • This instruction will do a full wipe of the eeprom of the uCAN without erasing the reserved eeprom part (which contains production data like serial number)
  • The uCAN as objects will be deleted in the Master, the virtual modules linked to the uCAN's (input and sensor modules) will not be erased) and will be used again once uCAN's are added again

Factory Reset of all RS485 slave modules

The below instructions will perform a factory reset of the RS485 slave modules:

  • First prepare the Master for a Factory Reset:
baa 254 2 0 0
  • Perform the instruction to erase the RS485 slaves (erasing the ID is done for all the modules)
baa 254 4 1769 28883

Important notes:

  • The erase of the RS485 slave modules will not erase the modules in the Master, this must be done manually with below instructions:
input number modules write
output number modules write
can control number modules write

Factory Reset of 1 uCAN slave module

The eeprom of every uCAN can be managed by using CLI instructions in other words, from the CLI, we can change eeprom settings which means that we can erase a uCAN or change for example the CAN ID of a certain uCAN. To perform a factory reset of 1 uCAN, following steps needs to be performed:

  • First check the modules that are known by the Master:
can ping list
-Nr-Bus-ID2.ID1.ID0-Hw_Rev----Serial----Inp.link0-Inp.link1-Inp.link2-Inp.link3-Inp.link4-Inp.link5-Tem.link0-Tem.link1-Type-Firmware-Boot-ID_NE-CanP1-CanP2-CanP3-CanP4-CanP5-Stat--Min-MAX-delay--Volt--
 00 100 042.193.007  000  000000000000  021(005)  020(004)  019(003)  018(002)  017(001)  016(000)  000(000)  255(255)  004  F06.00.26 255  069   255   255   255   255   255   247  000 255 001ms 20.04V
 01 000 150.163.190  000  000000000000  024(008)  023(007)  022(006)  027(011)  026(010)  025(009)  255(255)  255(255)  000  F06.00.25 255  069   255   255   255   255   255   247  000 255 031ms 22.82V
OK
  • In this example, we will factory reset the second uCAN with ID 150.163.190. First check if you can read the eeprom of this uCAN (location 0):
eeprom read 150 163 190 0
8
OK
eeprom read 150 163 190 12
150
OK
eeprom read 150 163 190 13
163
OK
eeprom read 150 163 190 14
190
OK
  • To perform a factory reset of uCAN with ID 150.163.190, execute following instructions:
eeprom write 150 163 190 0 255
OK
eeprom write 150 163 190 1 255
OK
eeprom write 150 163 190 2 255
OK
eeprom write 150 163 190 3 255
OK
eeprom write 150 163 190 4 255
OK
eeprom write 150 163 190 5 255
OK
eeprom write 150 163 190 6 255
OK
eeprom write 150 163 190 7 255
OK
eeprom write 150 163 190 8 255
OK
eeprom write 150 163 190 9 255
OK
eeprom write 150 163 190 10 255
OK
eeprom write 150 163 190 11 255
OK
eeprom write 150 163 190 12 255
OK
eeprom write 150 163 190 13 255
OK
eeprom write 150 163 190 14 255
OK 
  • Perform a reset to load the new value from eeprom in to RAM:
reset
  • Note that the uCAN will now act as a new uCAN and will be added when a button is pushed.
  • Also note that these above instructions will NOT erase the uCAN from the Master

Factory Reset history

When a factory reset has been performed and when modules (uCAN, RS485 & virtual) have been added, this information is stored in a protected area of the Master. This information can be retrieved by using following instruction:

eeprom logging
0000(P510/B064): 19/12/21 08:25:17 EV 030 001 001 079 190 129 000 065
0001(P510/B048): 19/12/21 08:25:17 EV 030 001 000 067 128 047 000 065
0002(P510/B032): 19/12/21 08:25:16 EV 030 001 001 073 206 182 000 065
0003(P510/B016): 19/12/21 08:19:45 EV 200 000 000 008 000 001 000 118
0004(P510/B000): 18/12/21 19:42:44 EV 030 001 001 079 250 007 000 065
0005(P509/B240): 18/12/21 19:42:44 EV 030 001 000 067 160 047 000 065
0006(P509/B224): 18/12/21 19:42:27 EV 200 000 000 008 000 001 000 118
0007(P509/B208): 18/12/21 19:29:22 EV 030 001 001 079 125 003 000 065
0008(P509/B192): 18/12/21 19:29:22 EV 030 001 000 067 032 047 000 065
0009(P509/B176): 18/12/21 19:28:57 EV 200 000 000 008 000 001 000 118
0010(P509/B160): 18/12/21 19:01:11 EV 030 001 001 079 190 129 000 077
0011(P509/B144): 18/12/21 18:59:19 EV 030 001 000 067 064 223 000 065
0012(P509/B128): 18/12/21 18:59:18 EV 030 001 001 079 190 129 000 065
0013(P509/B112): 18/12/21 18:53:37 EV 200 000 000 008 000 001 000 118
0014(P509/B096): 18/12/21 18:50:04 EV 200 000 000 008 000 001 000 118
0015(P509/B080): 18/12/21 08:49:15 EV 200 000 000 008 000 001 000 118
0016(P509/B064): 18/12/21 08:45:43 EV 200 000 000 008 000 001 000 118
0017(P509/B048): 18/12/21 08:30:10 EV 200 000 000 008 000 001 000 118
0018(P509/B032): 18/12/21 08:26:39 EV 200 000 000 008 000 001 000 118
0019(P509/B016): 18/12/21 08:23:24 EV 030 001 002 079 125 003 000 065
0020(P509/B000): 18/12/21 08:23:24 EV 030 001 001 067 160 047 000 065
0021(P508/B240): 18/12/21 08:19:36 EV 200 000 000 008 000 001 000 118
0022(P508/B224): 18/12/21 08:16:05 EV 200 000 000 008 000 001 000 118
0023(P508/B208): 16/12/21 07:47:41 EV 030 001 000 105 000 000 000 077
0024(P508/B192): 16/12/21 07:47:41 EV 030 001 000 108 000 000 000 077
0025(P508/B176): 16/12/21 07:47:41 EV 200 000 000 008 000 001 000 118
0026(P508/B160): 16/12/21 07:44:08 EV 200 000 000 008 000 001 000 118
0027(P508/B144): 15/12/21 17:44:06 EV 030 001 002 079 158 128 000 077
0028(P508/B128): 15/12/21 17:14:17 EV 030 001 001 067 252 255 000 065
0029(P508/B112): 15/12/21 17:13:51 EV 200 000 000 008 000 001 000 118
0030(P508/B096): 15/12/21 17:10:20 EV 200 000 000 008 000 001 000 118
0031(P508/B080): 15/12/21 17:08:20 EV 030 001 001 079 093 002 000 077
OK

Doing an "error list" will give you the link between the modules being added and the eeprom logging:

el
--- Total Uptime: 000407 Hours, Last Startup: 09:43:29 19/12/21   ---
--- Module Type: BRAIN, RS485 mode: 0, Board: 24'C  --.--V --.--A ---
--- PWR RS485/CAN: 1/1, CANTERM: 1, BB Debug: 255, Fw: 1.0.118       ---
-------Output------------ID---------Err-------Status--------Pwr---
 00 (l I 000->007) 108.000.000.000 00000   GOOD       (000)  1
 01 (O E 008->015) 079.190.129.000 00000   GOOD       (000)  1
-------Input-------------ID---------Err-------Status--------Pwr---
 00 (i I 000->007) 105.000.000.000 00000   GOOD       (000)  1
 01 (I E 008->015) 073.206.182.000 00000   GOOD       (016)  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
-------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.128.047.000 00001   GOOD       (016)  1
-------Micro CAN---------ID---------Err-------Status--------Pwr---
 00 (m C 000->000) 100.042.193.007 00000   GOOD       (000)  1
 01 (m C 001->001) 000.150.163.190 00000   GOOD       (000)  1
OK

In the eeprom logging list, you can see that multiple Events are stored of which details can be found here: https://wiki.openmotics.com/index.php/AIO_API_Event_Codes

The following events will appear in the eeprom logging:

  • Factory reset performed (EV200)
  • Module (RS485, virtual or uCAN) being added (EV30)