Purpose
Group Addresses serve the purpose of making Group Objects part of building functions.
In order to be operational, a Group Address has to be linked with at least two Group Objects, one for sending telegrams to the bus and the other for receiving from the bus.
A Group Object can also be linked with several Group Addresses, all linked Group Addresses can be used in order to update the value of the Group Object via the bus (i.e. received telegrams) but only the first one assigned can be used in order to send updated values of the Group Object to the bus.
Data Length
A Group Address has a data length of 16 bit. In a telegram, a Group Address is divided over two octets, i.e. the high address and the low address. The high address is always sent first.
Structure (ETS)
The so called Group Address structure correlates with its representation style in ETS, see also the relevant ETS Professional article. The information about the ETS Group Address representation style itself is NOT included in the Group Address.
'3-level' = main/middle/sub
- main = D7+D6+D5+D4+D3 of the first octet (high address)
- middle = D2+D1+D0 of the first octet (high address)
- sub = the entire second octet (low address)
- ranges: main = 0..31, middle = 0..7, sub = 0..255
'2-level' = main/sub
- main = D7+D6+D5+D4+D3 of the first octet (high address)
- sub = D2+D1+D0 of the first octet (high address) + the entire second octet (low address)
- ranges: main = 0..31, sub = 0..2047
Rules
There is actually only one rule: a Group Address cannot be zero. For an ETS project with 3-level representation this means that '0/0/0' is not allowed and for 2-level that '0/0' is not allowed.
Limitations
First generation devices didn't support the full 16-bit Group Address range, i.e. D7 = 0, the consequence for an ETS project with 2 or 3-level representation: the range of 'main' = 0..15.