-
Notifications
You must be signed in to change notification settings - Fork 31
Diagnostic Device Discovery
Diagnostic Device Discovery is the process used to determine which physical Devices are present within a Diagnostic WHO domain before they are individually interviewed or configured.
Two principal discovery methods are used:
Device Discovery
│
┌──────────────┴──────────────┐
│ │
▼ ▼
By Hardware ID By Domain Address
│ │
▼ ▼
Physical Devices Occupied Addresses
│ │
└──────────────┬──────────────┘
▼
Individual Device
Interview
The two methods answer slightly different questions:
- Hardware-ID discovery asks which physical Devices are present.
- Address discovery asks which addresses within a diagnostic domain are occupied.
Once a Device has been found, MyHOME Suite can proceed with a Diagnostic Device Interview.
If the hardware ID or address of the Device is already known, the discovery phase can be skipped entirely.
Hardware-ID discovery enumerates physical Devices independently of their configured functional address.
This is particularly useful because a hardware ID remains capable of identifying a Device even when the Device is unconfigured or its normal system address is unknown.
DIM13 discovery is Device-oriented and that native A/PL discovery is documented in Diagnostic Address Discovery
Under the Automation Diagnostic domain (WHO1001), a complete scan begins with:
*1001*12*0##
*#1001*0*13##
The second frame requests DIM13, which carries the hardware ID.
Devices respond with frames of the general form:
*#1001*WHERE*13*DEVICE_ID##
For example:
*#1001*0015*13*147801279##
The value 147801279 is the Device's hardware ID represented as a decimal integer on the wire.
The same identifier can conventionally be represented as an eight-character hexadecimal value:
147801279 decimal
↓
08CF44BF hexadecimal
Hardware IDs should therefore be normalized in documentation and tooling as eight-character, zero-padded, uppercase hexadecimal values.
Hardware-ID enumeration is not simply a broadcast DIM13 request repeated indefinitely.
Captured MyHOME Suite sessions indicate that the diagnostic protocol maintains discovery state.
Two WHAT commands are particularly associated with this process:
| WHAT | Current interpretation | Confidence |
|---|---|---|
11 |
Acknowledge/suppress an already discovered Device | Strong |
12 |
Reset/release discovery suppression | Strong |
A typical discovery cycle therefore begins with:
*1001*12*0##
followed by:
*#1001*0*13##
As Devices are discovered, MyHOME Suite can use the discovery-state mechanism to prevent already processed Devices from repeatedly participating in enumeration.
The exact formal meanings of WHAT11 and WHAT12 are not yet documented, so these interpretations should be treated as behavioral descriptions rather than official command names.
See Diagnostic WHAT Reference.
WHO1001 hardware-ID discovery supports filtering according to whether a Device is configured.
Three forms have been observed:
| Request | Result |
|---|---|
*#1001*0*13## |
All Devices |
*#1001*0*13#0## |
Unconfigured Devices |
*#1001*0*13#1## |
Configured Devices |
Therefore:
DIM13 Discovery
│
┌─────────────┼─────────────┐
│ │ │
▼ ▼ ▼
No parameter Parameter 0 Parameter 1
│ │ │
▼ ▼ ▼
All Devices Unconfigured Configured
Devices Devices
This behavior has been directly observed for WHO1001.
Equivalent filtering should not yet be assumed for other Diagnostic WHO domains without additional capture evidence.
Hardware ID is not the only way to discover Devices.
MyHOME Suite can also enumerate Devices according to the native addressing topology of the selected Diagnostic WHO domain.
This mechanism has been investigated in detail under WHO1001.
The Automation domain uses A/PL addressing. Address-based discovery can be performed over an Ambient rather than querying every possible point individually.
For example:
*#1001*00*1##
was observed when MyHOME Suite scanned addresses within Ambient A=0.
For Ambient A=1, the corresponding request was:
*#1001*1*1##
These are DIM1 requests using a WHERE that represents an Ambient/range scope rather than an individual Device address.
Devices at occupied addresses respond to the Ambient discovery request with their DIM1 information.
For example:
*#1001*01*1*107*6*6*8##
*#1001*03*1*107*6*6*8##
*#1001*05*1*107*6*6*8##
*#1001*06*1*107*6*6*8##
The response WHERE identifies the occupied address.
The important discovery information at this stage is therefore:
Ambient scan
│
▼
DIM1 responses
│
▼
Occupied WHERE values
│
▼
Known Device addresses
The DIM1 values themselves provide additional Device identity information, but their detailed interpretation belongs to DIM1 - Device Identity.
After discovering occupied addresses, MyHOME Suite proceeds to interview each Device individually.
For example, after discovering addresses such as:
01
03
05
06
it sends individual requests such as:
*#1001*01*0##
*#1001*03*0##
*#1001*05*0##
*#1001*06*0##
The resulting interaction is no longer enumeration. It is an individual Diagnostic Device Interview.
During that interview, the Device also reports its hardware ID through DIM13.
This creates a useful association:
Domain address
│
▼
Individual interview
│
├── Device identity
├── Firmware
├── Hardware ID
└── Modules
Address-based discovery can therefore ultimately establish the relationship between a Device's native system address and its unique hardware identity.
If the desired address is already known, MyHOME Suite does not need to enumerate the entire Ambient.
For example, a manual scan specifically targeting:
A=0
PL=1
used:
*#1001*01*0##
and immediately entered the individual Device interview.
The distinction is therefore:
Unknown addresses
│
▼
Enumerate Ambient
│
▼
Discover occupied WHEREs
│
▼
Interview each address
versus:
Known address
│
▼
Interview address directly
This distinction is important because an individual address scan should not be interpreted as evidence that address discovery itself requires probing every possible A/PL combination.
The two enumeration mechanisms can now be compared directly.
| Hardware-ID Discovery | Address Discovery | |
|---|---|---|
| Primary purpose | Find physical Devices | Find occupied domain addresses |
| WHO1001 discovery DIM | DIM13 |
DIM1 |
| Result | Hardware IDs | WHERE/address values |
| Requires configured address | No | Yes |
| Useful for unconfigured Devices | Yes | Generally no |
| Followed by individual interview | Yes | Yes |
| WHO1001 topology | Independent of A/PL | A/PL |
| Observed across multiple Diagnostic WHO domains | Yes | Mechanism assumed; domain syntax not yet established |
Conceptually:
Diagnostic WHO
│
┌──────────┴──────────┐
│ │
▼ ▼
Hardware-ID scan Address scan
│ │
DIM13 domain-specific
│ enumeration
▼ ▼
Hardware IDs Occupied addresses
│ │
└──────────┬──────────┘
▼
Individual Device
Interview
The current working model is that the mechanism is shared across Diagnostic WHO domains while the native address representation is domain-specific.
This gives two largely independent discovery concepts:
Hardware-ID enumeration
│
└── common DIM13-based mechanism
and:
Domain-address enumeration
│
├── WHO1001 → Automation A/PL
├── WHO1004 → Thermoregulation topology
├── WHO1018 → Energy topology
└── WHO1023 → Access Control topology
The first has already been observed across several Diagnostic WHO domains.
The second is experimentally established for WHO1001, while the corresponding address-discovery syntax for WHO1004, WHO1018, and WHO1023 remains to be determined.
At a high level, a full scan can be represented as:
START
│
▼
Select Diagnostic WHO
│
▼
Reset / initialize discovery
│
├───────────────────────────────┐
│ │
▼ ▼
Enumerate by ID Enumerate by address
│ │
▼ ▼
Collect hardware IDs Collect occupied addresses
│ │
└───────────────┬───────────────┘
▼
Select one Device
│
▼
Individual interview
│
▼
Enumerate Modules
│
▼
Read configuration
Discovery therefore ends once enough information is available to address an individual physical Device.
Everything after that point belongs to the Device interview and configuration phases rather than to discovery itself.