Skip to content

Group Membership Discovery

anotherjulien edited this page Sep 16, 2026 · 1 revision

Overview

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

Discovery Workflow

1. Start from the A/PL Address

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.

Device Interview

2. Interview the Device

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.

Identifying the Target Module

3. Match the Address with DIM32

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.

Identifying the Configured Object

4. Resolve the Module through DIM30

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.

MHCatalogue Lookup

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.

Locating Group Properties

5. Query the Object Configuration Schema

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.

Do Not Assume Fixed Group Indexes

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

Firmware-Specific Configuration

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.

Reading Group Membership

6. Request the Configuration

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.

7. Select the Target Module

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

MHCatalogue Resolution

The MHCatalogue is required at two principal stages of the process.

Object Identification

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

Group Property Identification

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.

Complete Resolution Path

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

Summary

Starting with an A/PL address:

  1. Use WHO1001 address discovery to identify the physical Device.
  2. Obtain its hardware ID through DIM13.
  3. Interview it using WHAT10#ID.
  4. Use DIM32 to find the internal Module slot whose intrinsic address matches the requested A/PL.
  5. Use DIM30 to obtain the Object ID configured in that slot.
  6. Resolve the Object through EN_KEY_OBJECT.id_key_object in the MHCatalogue.
  7. Query EN_CONF for that Object and locate its G1...Gn configuration properties.
  8. Obtain their corresponding EN_CONF.idx values.
  9. Apply firmware-specific EN_FILTER / EN_FILTER_RANGE restrictions where applicable.
  10. Request configuration using DIM38.
  11. Select the DIM35 frames belonging to the target internal slot.
  12. Match DIM35.CONF_IDX against the group-property indexes obtained from EN_CONF.
  13. 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

See Also

Clone this wiki locally