-
Notifications
You must be signed in to change notification settings - Fork 31
Group Membership Discovery
Group membership can be obtained from a known A/PL address by combining the WHO1001 diagnostic protocol with the MHCatalogue.
There is no need to infer membership by sending functional group commands. Instead, the Device configuration can be read directly.
The overall process is:
A/PL address
│
▼
Identify physical Device
│
▼
Identify Module at that address
│
▼
Identify configured Object
│
▼
Use MHCatalogue to locate group properties
│
▼
Read DIM35 configuration
│
▼
Group membership
The key protocol dimensions are:
| Dimension | Purpose |
|---|---|
DIM13 |
Physical Device hardware ID |
DIM30 |
Internal Module slot, Object ID, enabled state |
DIM32 |
Intrinsic A/PL address of a Module/Object |
DIM35 |
Configuration attributes and values |
DIM38 |
Configuration-read request |
Suppose the group membership is required for:
A = 1
PL = 1
WHERE = 11
Use WHO1001 address discovery to locate the physical Device associated with this address.
See Diagnostic Address Discovery.
The Device hardware ID can then be obtained through DIM13:
*#1001*WHERE*13*DEVICE_ID##
The hardware ID identifies the physical Device independently of its BUS address.
Once the hardware ID is known, select the Device for interview:
*1001*10#<DEVICE_ID>*0##
The Device automatically reports its Module structure.
The two dimensions of particular interest are:
DIM30 → Module / Object association
DIM32 → intrinsic Module address
For example:
DIM30:
slot 1 → Object 6
slot 2 → Object 6
DIM32:
slot 1 → 11
slot 2 → 16
This describes a physical Device containing two addressable Modules.
DIM32 reports the intrinsic configured address of a Module/Object:
*#1001*WHERE*32#INTERNAL_SLOT*1*CONFIGURED_WHERE##
For example:
slot 1 → 11
slot 2 → 16
Since the requested address is 11:
A/PL 11
│
▼
DIM32
│
▼
internal slot 1
The target is therefore internal slot 1.
This step is important because one physical Device can expose several Modules with different intrinsic A/PL addresses.
See Module Addressing and DIM32.
A DIM30 frame has the form:
*#1001*WHERE*30*INTERNAL_SLOT*OBJECT_ID*DISABLED##
For the target Module, suppose:
INTERNAL_SLOT = 1
OBJECT_ID = 6
DISABLED = 0
The Module is enabled and configured with Object 6.
The OBJECT_ID maps directly to:
EN_KEY_OBJECT.id_key_object
in the MHCatalogue.
The Object can be identified with:
SELECT
id_key_object,
descr
FROM EN_KEY_OBJECT
WHERE id_key_object = 6;This resolves Object 6 as:
Light actuator
The complete address-to-Object relationship is now:
A/PL 11
│
▼
DIM32
│
▼
internal slot 1
│
▼
DIM30
│
▼
Object 6
│
▼
MHCatalogue
EN_KEY_OBJECT
│
▼
Light actuator
See Device Modules and DIM30 and Objects.
Once the Object is known, the MHCatalogue can be used to determine which configuration indexes represent group membership.
Configuration properties are defined in:
EN_CONF
and are associated with an Object through:
EN_CONF.id_key_object
For example:
SELECT
idx,
conf_name,
descr
FROM EN_CONF
WHERE id_key_object = 6
ORDER BY idx;For many actuator Objects, group properties appear as:
EN_CONF.idx |
conf_name |
|---|---|
240 |
G1 |
241 |
G2 |
242 |
G3 |
| ... | ... |
249 |
G10 |
The catalogue lookup is therefore:
DIM30.OBJECT_ID
│
▼
EN_KEY_OBJECT.id_key_object
│
▼
EN_CONF.id_key_object
│
▼
G1 ... Gn
│
▼
EN_CONF.idx
These idx values identify the corresponding properties in DIM35.
Configuration indexes are Object-local.
Although 240..249 correspond to G1..G10 for many Objects examined so far, these indexes should not be treated as universally defined group indexes.
The correct procedure is always:
OBJECT_ID
│
▼
MHCatalogue EN_CONF
│
▼
find G1 ... Gn
│
▼
obtain their idx values
The generic Object schema can contain properties or values that are unavailable on a particular Device firmware.
Where applicable, the effective configuration should therefore be resolved through the firmware-specific catalogue structures:
Device
│
▼
Firmware
│
▼
Object
│
▼
EN_CONF
│
▼
EN_FILTER / EN_FILTER_RANGE
│
▼
Effective configuration
This prevents properties defined by the generic Object from being incorrectly assumed to exist on every Device implementing that Object.
See Configuration Filters and MHCatalogue Configuration Schema.
After the initial Device-description phase, request its configuration using DIM38:
*#1001*0*38#0##
The Device then reports configuration properties using DIM35.
The observed form is:
*#1001*WHERE*35#CONF_IDX#INTERNAL_SLOT*VALUE##
The fields required for group decoding are:
| Field | Role |
|---|---|
CONF_IDX |
Corresponds to EN_CONF.idx
|
INTERNAL_SLOT |
Identifies the Module |
VALUE |
Current configured value |
See Module Configuration and DIM35.
The target A/PL address was previously mapped through DIM32 to:
INTERNAL_SLOT = 1
Only DIM35 frames belonging to this internal slot need to be considered.
For example:
idx 240, slot 1 → 1
idx 241, slot 1 → 3
idx 242, slot 1 → 0
...
idx 249, slot 1 → 0
From the MHCatalogue configuration schema:
idx 240 → G1
idx 241 → G2
idx 242 → G3
...
idx 249 → G10
The live configuration therefore gives:
G1 = 1
G2 = 3
G3 = 0
...
The resulting group membership is:
Address:
A=1
PL=1
Object:
Light actuator
Groups:
1
3
The MHCatalogue is required at two principal stages of the process.
DIM30 provides the numeric Object ID:
DIM30.OBJECT_ID
│
▼
EN_KEY_OBJECT.id_key_object
│
▼
EN_KEY_OBJECT.descr
For example:
OBJECT_ID = 6
│
▼
EN_KEY_OBJECT.id_key_object = 6
│
▼
Light actuator
Once the Object is known:
OBJECT_ID
│
▼
EN_CONF.id_key_object
│
▼
find conf_name = G1 ... Gn
│
▼
EN_CONF.idx
│
▼
DIM35.CONF_IDX
A practical query is:
SELECT
idx,
conf_name,
descr
FROM EN_CONF
WHERE id_key_object = :OBJECT_ID
AND conf_name LIKE 'G%'
ORDER BY idx;If interpretation of the raw configuration value requires an enumeration or range, the corresponding EN_CONF_RANGE entries should also be consulted.
The complete process from A/PL address to group membership is:
Known A/PL
│
▼
WHO1001 address discovery
│
▼
Physical Device
│
│ DIM13
▼
Hardware ID
│
│ WHAT10#ID
▼
Device interview
│
├────────────── DIM30
│ │
│ ├── INTERNAL_SLOT
│ └── OBJECT_ID
│ │
│ ▼
│ MHCatalogue
│ EN_KEY_OBJECT
│ │
│ ▼
│ Object
│
└────────────── DIM32
│
├── INTERNAL_SLOT
└── CONFIGURED_WHERE
│
▼
Match requested A/PL
│
▼
Target Module
│
▼
OBJECT_ID
│
▼
MHCatalogue
│
▼
EN_CONF
│
▼
Find G1 ... Gn
│
▼
Obtain CONF_IDX
│
▼
DIM38
│
▼
DIM35
│
CONF_IDX + INTERNAL_SLOT
│
▼
Group configuration
│
▼
Group membership
Starting with an A/PL address:
- Use
WHO1001address discovery to identify the physical Device. - Obtain its hardware ID through
DIM13. - Interview it using
WHAT10#ID. - Use
DIM32to find the internal Module slot whose intrinsic address matches the requested A/PL. - Use
DIM30to obtain the Object ID configured in that slot. - Resolve the Object through
EN_KEY_OBJECT.id_key_objectin theMHCatalogue. - Query
EN_CONFfor that Object and locate itsG1...Gnconfiguration properties. - Obtain their corresponding
EN_CONF.idxvalues. - Apply firmware-specific
EN_FILTER/EN_FILTER_RANGErestrictions where applicable. - Request configuration using
DIM38. - Select the
DIM35frames belonging to the target internal slot. - Match
DIM35.CONF_IDXagainst the group-property indexes obtained fromEN_CONF. - Decode the resulting values to obtain the Module's group membership.
The essential relationship is:
A/PL
→ DIM32
→ internal slot
→ DIM30
→ Object ID
→ MHCatalogue EN_KEY_OBJECT
→ MHCatalogue EN_CONF
→ group configuration indexes
→ DIM35
→ group membership
- Diagnostic Address Discovery
- Diagnostic Device Interview
- Device Modules and DIM30
- Module Addressing and DIM32
- Module Configuration and DIM35
- DIM30, 32 and 35 ‐ Object and Module Configuration Identification
- Objects
- Configuration Filters
- MHCatalogue Database
- MHCatalogue Configuration Schema
- Diagnostic DIM Reference