Difference between revisions of "Memory Model AIO"

From OpenMotics
Jump to navigation Jump to search
Line 908: Line 908:
 
:Byte 2: ID_0 of the first CAN module of this page
 
:Byte 2: ID_0 of the first CAN module of this page
 
:Byte 3: Sensor Link 0 of the first CAN module of this page
 
:Byte 3: Sensor Link 0 of the first CAN module of this page
:Byte 4: Sensor Link 1 of the first CAN module of this page  
+
:Byte 4: Sensor Link 1 of the first CAN module of this page
:Byte 5: Input Link 0 of the first CAN module of this page  
+
:Byte 5: Sensor Type
:Byte 6: Input Link 1 of the first CAN module of this page
+
:Byte 6: Input Link 0 of the first CAN module of this page  
:Byte 7: Input Link 2 of the first CAN module of this page
+
:Byte 7: Input Link 1 of the first CAN module of this page
:Byte 8: Input Link 3 of the first CAN module of this page
+
:Byte 8: Input Link 2 of the first CAN module of this page
:Byte 9: Input Link 4 of the first CAN module of this page
+
:Byte 9: Input Link 3 of the first CAN module of this page
:Byte 10: Input Link 5 of the first CAN module of this page
+
:Byte 10: Input Link 4 of the first CAN module of this page
 +
:Byte 11: Input Link 5 of the first CAN module of this page
 +
:Byte 12: Input Link 6 of the first CAN module of this page
 +
:Byte 13: Input Link 7 of the first CAN module of this page
  
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
Line 927: Line 930:
 
:Byte 18: ID_0 of the second CAN module of this page
 
:Byte 18: ID_0 of the second CAN module of this page
 
:Byte 19: Sensor Link 0 of the second CAN module of this page
 
:Byte 19: Sensor Link 0 of the second CAN module of this page
:Byte 20: Sensor Link 1 of the second CAN module of this page  
+
:Byte 20: Sensor Link 1 of the second CAN module of this page
:Byte 21: Input Link 0 of the second CAN module of this page  
+
:Byte 21: Sensor Type
:Byte 22: Input Link 1 of the second CAN module of this page
+
:Byte 22: Input Link 0 of the second CAN module of this page  
:Byte 23: Input Link 2 of the second CAN module of this page
+
:Byte 23: Input Link 1 of the second CAN module of this page
:Byte 24: Input Link 3 of the second CAN module of this page
+
:Byte 24: Input Link 2 of the second CAN module of this page
:Byte 25: Input Link 4 of the second CAN module of this page
+
:Byte 25: Input Link 3 of the second CAN module of this page
:Byte 26: Input Link 5 of the second CAN module of this page
+
:Byte 26: Input Link 4 of the second CAN module of this page
 +
:Byte 27: Input Link 5 of the second CAN module of this page
 +
:Byte 28: Input Link 6 of the second CAN module of this page
 +
:Byte 29: Input Link 7 of the second CAN module of this page
  
 
:...
 
:...

Revision as of 11:50, 2 December 2018

General Configuration Bytes

Page 0 -> Controller specific data
Page Byte
0 1
Number of output modules: This byte specifies the number of output (output, dim control, shutter/curtain ...) modules known by the Master controller on the RS485 bus. Maximum 80.
Page Byte
0 2
Number of input modules: This byte specifies the number of input (input, can control ...) modules known by the Master controller on the RS485 bus. Maximum 80.
Page Byte
0 3
Number of sensor modules: This byte specifies the number of sensor modules known by the Master controller on the RS485 bus. Maximum 16.
Page Byte
0 4
Scan time RS485 sensor modules: This value (between 1 and 254) will indicate the scan time (in 100ms) between a full scan of sensor modules. If the value =255 or =0, the standard value (10) will be taken (=scan every second).
Page Byte
0 5
Nr of CAN Inputs: This value indicate the number of CAN inputs found on the CAN bus. When this value is 0 or 255 then no inputs have been found yet.
Page Byte
0 6
Nr of CAN sensors: This value indicate the number of CAN sensors found on the CAN bus. When this value is 0 or 255 then no sensors have been found yet.
Page Byte
0 7
Nr of CAN modules: This value indicate the number of CAN modules found on the CAN bus. When this value is 0 or 255 then no CAN modules have been found yet.

Data output modules

Page 1 – 80 -> Contains data of the output modules (80 modules maximum, 640 outputs -> 0-639)

The output data can be found back from page 1 till page 80. These Pages that contains active data depending on Page0/Byte1.

Every output Module (that can be configured in normal or Roller/Shutter mode) has its own output page which contains the normal output data and the Roller/Shutter data:

Page Byte
1 x
This page is entirely used for output module 0.
Page Byte
2 x
This page is entirely used for output module 1.
Page Byte
3 x
This page is entirely used for output module 2.

...

Page Byte
80 x
This page is entirely used for output module 79.


Every output page has following structure

Output data

Page Byte
1-80 0-3
Byte 0: Type device (more information see document “Technical device information”)
Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
Byte 2: ID2
Byte 3: ID3
Page Byte
1-80 4-6
Byte 4: Firmware Version F1 (Major)
Byte 5: Firmware Version F2 (Minor)
Byte 6: Firmware Version F3 (Built)
Page Byte
1-80 7-22
Standard Timer values for an output to be used. Each timer value has a word format and is programmed in 2 bytes (first byte LSB). The function of this word is decibed in the Timer Type Byte..
Byte 7 (LSB) and 8 (MSB) will specify the timer value for output 0
Byte 9 (LSB) and 10 (MSB) will specify the timer value for output 1
...
Byte 21 (LSB) and 22 (MSB) will specify the timer value for output 7
Page Byte
1-80 23-30
Standard Timer values for an output to be used. Each output has a timer type
Byte 23 Timer type for output 0
Byte 24 Timer type for output 1
...
Byte 30 Timer type for output 7


When Timer Type=0 or 255 -> Timer not active or not configured
When Timer Type=1 -> Timer value contains 100ms value in other words, if for example the Timer value (word) = 6004, the timer is set to 600.4 seconds
When Timer Type=2 -> Timer value contains second value in other words, if for example the Timer value (word) = 6004, the timer is set to 604 seconds
When Timer Type=3 -> Time value contains switch off time (MSB=Hour, LSB=minute)
Page Byte
1-80 31-38
Byte 31: Output type byte output0 (=0: standard output, >0: Light output)
Byte 32: Output Type byte output1 (=0: standard output, >0: Light output)
Byte 38: Output Type byte output7 (=0: standard output, >0: Light output)
Output Type byte will indicate if the indicated output is a light or not. When specific instruction (by using action type 163 for example) to switch off a light will be used, only lights (and not outputs) will be switched off.


Page Byte
1-80 39-46
Byte 39: Minimum output level when dimming for Output 0.
Byte 40: Minimum output level when dimming for Output 0.
Byte 46: Minimum output level when dimming for Output 7.
Note: When the standard value (255) of eeprom is used, the minimum value is set on 8. The programmed value should be between 0 and 62.
Page Byte
1-80 47-54
Byte 47: Maximum output level when dimming for Output 0.
Byte 48: Maximum output level when dimming for Output 0.
Byte 54: Maximum output level when dimming for Output 7.

Up/Down Timer settings of an individual Roller/Shutter

Page Byte
1-80 64-71
Byte 64: Up Timer for Roller/Shutter 0
Byte 65: Down Timer for Roller/Shutter 0
Byte 66: Up Timer for Roller/Shutter 1
Byte 67: Down Timer for Roller/Shutter 1

Byte 70: Up Timer for Roller/Shutter 3
Byte 71: Down Timer for Roller/Shutter 3

Note: This timer setting is in seconds, when 0 the timer is not in use.

Roller/Shutter config byte

Page Byte
1-80 72-75
Byte 72: config byte for Roller/Shutter0.
  • BIT0 (Least significant): UP/DOWN config BIT: If BIT0=1 then the first output of the 2 outputs will be the UP direction (and the other output will be the DOWN direction), if BIT0=0 then the second output will be the UP direction
  • BIT1: Not used yet
  • BIT2: Not used yet
  • BIT3: Not used yet
  • BIT4: Not used yet
  • BIT5: Not used yet
  • BIT6: Not used yet
  • BIT7 (Most significant): Not used yet
Byte 73: config byte for Roller/Shutter1.
  • BIT0 (Least significant): UP/DOWN config BIT: If BIT0=1 then the first output of the 2 outputs will be the UP direction (and the other output will be the DOWN direction), if BIT0=0 then the second output will be the UP direction
  • BIT1: Not used yet
  • BIT2: Not used yet
  • BIT3: Not used yet
  • BIT4: Not used yet
  • BIT5: Not used yet
  • BIT6: Not used yet
  • BIT7 (Most significant): Not used yet
Byte 74: config byte for Roller/Shutter2.
  • BIT0 (Least significant): UP/DOWN config BIT: If BIT0=1 then the first output of the 2 outputs will be the UP direction (and the other output will be the DOWN direction), if BIT0=0 then the second output will be the UP direction
  • BIT1: Not used yet
  • BIT2: Not used yet
  • BIT3: Not used yet
  • BIT4: Not used yet
  • BIT5: Not used yet
  • BIT6: Not used yet
  • BIT7 (Most significant): Not used yet
Byte 75: config byte for Roller/Shutter3.
  • BIT0 (Least significant): UP/DOWN config BIT: If BIT0=1 then the first output of the 2 outputs will be the UP direction (and the other output will be the DOWN direction), if BIT0=0 then the second output will be the UP direction
  • BIT1: Not used yet
  • BIT2: Not used yet
  • BIT3: Not used yet
  • BIT4: Not used yet
  • BIT5: Not used yet
  • BIT6: Not used yet
  • BIT7 (Most significant): Not used yet

ascii Names outputs

Page Byte
1-80 128-255
Byte 128 – 143: ascii name of the first output of this module (16 characters)
Byte 144 – 159: ascii name of the second output of this module (16 characters)
Byte 240 – 255: ascii name of the last output (16 characters)

Data input modules

Page 81 – 238 -> Contains data of the input modules (79 modules maximum, 632 inputs -> 0-631)

The input data can be found back from page 81 till page 238, each input module has 2 pages. These Pages that contains active data depending on Page0/Byte2.

Every input Module has 2 input pages which contains all the input and configuration data:

Page Byte
81-82 x
These pages are entirely used for input module 0. Page 81 is the first page, 82 the second.
Page Byte
83-84 x
These pages are entirely used for input module 1. Page 83 is the first page, 84 the second.
Page Byte
85-86 x
These pages are entirely used for input module 2. Page 85 is the first page, 86 the second.

...

Page Byte
237-238 x
These pages are entirely used for input module 78. Page 237 is the first page, 238 the second.


Every input page has following structure

Input data

Page Byte
First page 0-3
Byte 0: Type device (more information see document “Technical device information”)
Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
Byte 2: ID2
Byte 3: ID3
Page Byte
First page 4-6
Byte 4: Firmware Version F1 (Major)
Byte 5: Firmware Version F2 (Minor)
Byte 6: Firmware Version F3 (Built)

Input configuration

Page Byte
First page 7-14

Each input has 1 configuration byte, 8 configuration bytes per module. Each BIT of the configuration byte represents an input configuration. BIT0 is the least significant BIT of the configuration BYTE, BIT7 is the most significant BIT.

Page Byte
First page 7
Configuration Byte of first input (0) of this module:
BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).
Page Byte
First page 8
Configuration Byte of second input (1) of this module:
BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).

Page Byte
First page 14
Configuration Byte of last input (7) of this module:
BIT0: On the different inputs of the OpenMotics system, both NC (normally close, BIT0=0) and NO (normally open, BIT0=1) switches can be connected. In this byte, in BIT0, you can program for each input if the input is NO or NC. Standard, all inputs are programmed as NO (BIT0=1).

ascii Names inputs

Page Byte
First page 128-255
Byte 128 – 143: ascii name of the first input of this module (16 characters)
Byte 144 – 159: ascii name of the second input of this module (16 characters)
Byte 240 – 255: ascii name of the last input (16 characters)

Toggle input link

Page Byte
Second page 0-15

For each input, an output or a special function (basic actions) can be linked. This is configured in the following bytes:

Byte 0: MSB of the input link word of input 0 of this input module
Byte 1: LSB of the input link word of input 0 of this input module
Byte 2: MSB of the input link word of input 1 of this input module
Byte 3: LSB of the input link word of input 1 of this input module
Byte 4: MSB of the input link word of input 2 of this input module
Byte 5: LSB of the input link word of input 2 of this input module

The input link word has following configuration:

  • BIT 0-9: These bits contains the output number of the output to be toggled by input x (only works when BIT10,12,13,14,15=0)
  • BIT10: 0->Toggle output in BIT0-9 is used, 1->"input action press" basic actions, "input action release" basic actions etc are being used
  • BIT11: 1-> Dimming up when the BIT10=0 and BIT0-9 contains a dimmer output, 0->Dimming down when the BIT10=0 and BIT0-9 contains a dimmer output (this bit can be ignored when programming the input link word)
  • BIT12: 1-> 1 second press & hold function is programmed, 0-> 1 second press & hold function is not programmed
  • BIT13: 1-> 2 second press & hold function is programmed, 0-> 2 second press & hold function is not programmed
  • BIT14: Not used
  • BIT15: 1-> Double press is programmed, 0-> Double press is not programmed

Notes:

  • When Input link BIT10=1, the PRESS and RELEASE basic action will work.
  • For the 1SEC, 2SEC or DOUBLE PRESS actions to work BIT10=0 and BIT(12 and/or 13 and/or 15)=1
  • When 1SEC or 2SEC or DOUBLE PRESS actions is activated, the RELEASE action will work but not the PRESS action

Input action "Press"

Page Byte
Second page 16-63

Each input can be linked to a basic action (6 bytes) when the input is pressed. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 16-21

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 16: Type
Byte 17: Action
Byte 18: Device Nr (MSB)
Byte 19: Device Nr (LSB)
Byte 20: Extra Parameter (MSB)
Byte 21: Extra Parameter (LSB)
Page Byte
Second page 22-27

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 22: Type
Byte 23: Action
Byte 24: Device Nr (MSB)
Byte 25: Device Nr (LSB)
Byte 26: Extra Parameter (MSB)
Byte 27: Extra Parameter (LSB)

...

Input action "Release"

Page Byte
Second page 64-111

Each input can be linked to a basic action (6 bytes) when the input is released. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 64-69

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 64: Type
Byte 65: Action
Byte 66: Device Nr (MSB)
Byte 67: Device Nr (LSB)
Byte 68: Extra Parameter (MSB)
Byte 69: Extra Parameter (LSB)
Page Byte
Second page 70-75

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 70: Type
Byte 71: Action
Byte 72: Device Nr (MSB)
Byte 73: Device Nr (LSB)
Byte 74: Extra Parameter (MSB)
Byte 75: Extra Parameter (LSB)

...

Input action "1 second press"

Page Byte
Second page 112-159

Each input can be linked to a basic action (6 bytes) when the input is pressed for 1 second. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 112-117

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 112: Type
Byte 113: Action
Byte 114: Device Nr (MSB)
Byte 115: Device Nr (LSB)
Byte 116: Extra Parameter (MSB)
Byte 117: Extra Parameter (LSB)
Page Byte
Second page 118-123

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 118: Type
Byte 119: Action
Byte 120: Device Nr (MSB)
Byte 121: Device Nr (LSB)
Byte 122: Extra Parameter (MSB)
Byte 123: Extra Parameter (LSB)

...

Input action "2 second press"

Page Byte
Second page 160-207

Each input can be linked to a basic action (6 bytes) when the input is pressed for 2 seconds. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 160-165

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 160: Type
Byte 161: Action
Byte 162: Device Nr (MSB)
Byte 163: Device Nr (LSB)
Byte 164: Extra Parameter (MSB)
Byte 165: Extra Parameter (LSB)
Page Byte
Second page 166-171

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 166: Type
Byte 167: Action
Byte 168: Device Nr (MSB)
Byte 169: Device Nr (LSB)
Byte 170: Extra Parameter (MSB)
Byte 171: Extra Parameter (LSB)

...

Input action "double press"

Page Byte
Second page 208-255

Each input can be linked to a basic action (6 bytes) when the input is double pressed. if an input is single pressed, the action "Release" will be executed. See Action Types AIO for more details about the possible basic actions that can be used.

Page Byte
Second page 208-213

These 6 bytes represents the basic action bytes for input 0 of this module:

Byte 208: Type
Byte 209: Action
Byte 210: Device Nr (MSB)
Byte 211: Device Nr (LSB)
Byte 212: Extra Parameter (MSB)
Byte 213: Extra Parameter (LSB)
Page Byte
Second page 214-219

These 6 bytes represents the basic action bytes for input 1 of this module:

Byte 214: Type
Byte 215: Action
Byte 216: Device Nr (MSB)
Byte 217: Device Nr (LSB)
Byte 218: Extra Parameter (MSB)
Byte 219: Extra Parameter (LSB)

...

Data Sensor modules

Page 239 – 254 -> Contains data of the Sensor modules (16 modules maximum, 128 Sensors -> 0-127)

The sensor data can be found back from page 229 till page 254. These Pages that contains active data depending on Page0/Byte3.

Page Byte
239 x
This page is entirely used for sensor module 0.
Page Byte
240 x
This page is entirely used for sensor module 1.
Page Byte
241 x
This page is entirely used for sensor module 2.

...

Page Byte
254 x
This page is entirely used for sensor module 15.


Every sensor page has following structure

Sensor data

Page Byte
239-254 0-3
Byte 0: Type device (more information see document “Technical device information”)
Byte 1: ID1 (ID1, 2, 3 gives the unique ID of the device)
Byte 2: ID2
Byte 3: ID3
Page Byte
239-254 4-6
Byte 4: Firmware Version F1 (Major)
Byte 5: Firmware Version F2 (Minor)
Byte 6: Firmware Version F3 (Built)

ascii Names Sensors

Page Byte
239-254 128-255
Byte 128 – 143: ascii name of the first sensor of this module (16 characters)
Byte 144 – 159: ascii name of the second sensor of this module (16 characters)
Byte 240 – 255: ascii name of the last sensor (16 characters)

Group Actions Pages

A Group Action is a list of Basic Actions (BA's) to be executed together. Group actions are implemented in a flexible way in other words, a group action can contain a flexible number of BA's. As an example, you can configure Group Action 0 to be able to contain 7 BA's, Group Action 1 for 33 BA's.

Group Actions are configured in Eeprom and consist of 3 eeprom sections:

  • Page 256-257: GAT (Group Allocation table): This table indicates the start and end address of the BA's of each group action
  • Page 259-274: Contains the Group names of each Group Action
  • Page 283-382: Contains all the BA's of each Group

Group Action GAT Pages

The Group Allocation Table (GAT) will define the start and end address of each Group Action. The End address is defined by the start address of the next Group Action. For example, when Group Action 5 has BA Start Address 52 (so the first BA of Group Action 5 is BA 52) and Group Action 6 has BA start address 61, the End address of Group Action 5 is BA 60. These both pages defines the start and end addresses of 255 (0-254) group actions. The last 2 bytes of the second page contains the end address of Group Action 254.

Page 256 – 257 -> Contains the Start Address of 254 Group Actions
Page Byte
256 0-1
These 2 bytes contains the start address of Group Action 0 (0->LSB, 1->MSB)
Page Byte
256 2-3
These 2 bytes contains the start address of Group Action 1 (2->LSB, 3->MSB), this start address-1 contains the end address of Group Action 0.
Page Byte
256 4-5
These 2 bytes contains the start address of Group Action 2 (4->LSB, 5->MSB), this start address-1 contains the end address of Group Action 1.
...
Page 258 -> Reserved for future extension of the number of Group Actions

Group Action Name Page

Page 259 – 274 -> Contains the Group Actions name.
Page Byte
259-274 0-255
Page 259 Byte 0 – 15: ascii name of Group Action 0 (16 characters)
Page 259 Byte 16 – 31: ascii name of Group Action 1 (16 characters)
Page 259 Byte 32 – 47: aascii name of Group Action 2 (16 characters)
...
Page 259 Byte 240 – 255: ascii name of Group Action 15 (16 characters)
Page 260 Byte 0 – 15: ascii name of Group Action 16 (16 characters)
...
Page 275 – 282 -> Reserved for extension Group Action Names.

Group Action BA Pages

Each Page contains 42 BA's. Each BA is made of 6 bytes. The first BA of each page is written in Byte 0-5, the second BA is written in Byte 6-11 etc

Page 283 – 382 -> Contains data of 4200 BA's.
Page Byte
283 x
This page is entirely used for BA 0 - 41.
Page Byte
284 x
This page is entirely used for BA 42 - 83.
Page Byte
285 x
This page is entirely used for BA 84 - 125.

...

CAN slave modules

Page 383-386 -> Contains the configuration data of the CAN slave modules (64 modules maximum)
Page Byte
383 x
This page is entirely used for the configuration data of the CAN slave modules 0-15.
Page Byte
384 x
This page is entirely used for the configuration data of the CAN slave modules 16-31.
Page Byte
385 x
This page is entirely used for the configuration data of the CAN slave modules 32-47.
Page Byte
386 x
This page is entirely used for the configuration data of the CAN slave modules 48-63.
Page Byte
383-386 0-15
Byte 0: ID_2 of the first CAN module of this page
Byte 1: ID_1 of the first CAN module of this page
Byte 2: ID_0 of the first CAN module of this page
Byte 3: Sensor Link 0 of the first CAN module of this page
Byte 4: Sensor Link 1 of the first CAN module of this page
Byte 5: Sensor Type
Byte 6: Input Link 0 of the first CAN module of this page
Byte 7: Input Link 1 of the first CAN module of this page
Byte 8: Input Link 2 of the first CAN module of this page
Byte 9: Input Link 3 of the first CAN module of this page
Byte 10: Input Link 4 of the first CAN module of this page
Byte 11: Input Link 5 of the first CAN module of this page
Byte 12: Input Link 6 of the first CAN module of this page
Byte 13: Input Link 7 of the first CAN module of this page
Page Byte
383-386 16-31
Byte 16: ID_2 of the second CAN module of this page
Byte 17: ID_1 of the second CAN module of this page
Byte 18: ID_0 of the second CAN module of this page
Byte 19: Sensor Link 0 of the second CAN module of this page
Byte 20: Sensor Link 1 of the second CAN module of this page
Byte 21: Sensor Type
Byte 22: Input Link 0 of the second CAN module of this page
Byte 23: Input Link 1 of the second CAN module of this page
Byte 24: Input Link 2 of the second CAN module of this page
Byte 25: Input Link 3 of the second CAN module of this page
Byte 26: Input Link 4 of the second CAN module of this page
Byte 27: Input Link 5 of the second CAN module of this page
Byte 28: Input Link 6 of the second CAN module of this page
Byte 29: Input Link 7 of the second CAN module of this page
...