-
Notifications
You must be signed in to change notification settings - Fork 31
Diagnostic WHAT Reference
Diagnostic WHAT commands are used to control the state and behavior of a Diagnostic WHO session.
Unlike DIM messages, which primarily exchange Device, Module, Object, and configuration data, WHAT commands appear to control operations such as:
- Device discovery;
- Device selection;
- programming selection;
- phase transitions;
- completion and synchronization.
The detailed semantics of these commands are not fully documented in the public OpenWebNet material. The interpretations on this page are therefore primarily derived from observed MyHOME Suite communication.
The currently investigated WHAT values are:
| Command | Current interpretation | Confidence |
|---|---|---|
WHAT2 |
End/finalize programming session | Strong |
WHAT4 |
Phase/Object completion or application | Strong behavioral correlation; exact semantics unknown |
WHAT6 |
Configuration-read completion | Strong |
WHAT9 |
Select Device for programming | Very strong |
WHAT10 |
Select Device for interview | Confirmed by capture |
WHAT11 |
Discovery acknowledgement/suppression | Strong |
WHAT12 |
Discovery reset/release | Strong |
WHAT14 |
Prepare/open programming phase | Strong |
WHAT52 |
Post-Object programming operation | Strong behavioral correlation; exact semantics unknown |
This list represents commands encountered during the current reverse-engineering work and should not be considered an exhaustive list of all Diagnostic WHAT values.
Several WHAT commands participate in Device discovery.
WHAT11 appears to acknowledge a Device encountered during enumeration and suppress that Device from further participation in the current discovery cycle.
This behavior is particularly relevant during hardware-ID discovery.
Conceptually:
Request Device enumeration
│
▼
Device responds
│
▼
Device is processed
│
▼
WHAT11
│
▼
Device suppressed from
further enumeration
This allows MyHOME Suite to progressively enumerate Devices rather than repeatedly processing the same Device.
See Diagnostic Device Discovery.
WHAT12 appears to reset or release the discovery state so that Devices can participate in a new enumeration.
A typical WHO1001 hardware-ID discovery begins:
*1001*12*0##
*#1001*0*13##
The first frame prepares or resets the enumeration state, while the second requests hardware IDs using DIM13.
Conceptually:
WHAT12
│
▼
Reset discovery state
│
▼
DIM13 request
│
▼
Devices participate
in enumeration
The same WHAT12 pattern has been observed for:
-
WHO1001— Automation; -
WHO1004— Temperature Control; -
WHO1018— Energy Management; -
WHO1023— Access Control.
This provides strong evidence that WHAT12 belongs to a common Diagnostic WHO discovery mechanism.
The diagnostic protocol distinguishes between selecting a Device for reading/interview and selecting one for programming.
WHAT10 selects a physical Device by hardware ID and initiates an individual Device interview.
After the command, the Device reports information such as:
DIM1
DIM2
DIM3–DIM7 where applicable
DIM13
DIM30
DIM32 where applicable
followed by configuration reading.
The state transition is:
Known hardware ID
│
▼
WHAT10#ID
│
▼
Device selected
│
▼
Device Interview
When the hardware ID is already known, WHAT10 can be used directly.
A preceding bus-wide DIM13 discovery is therefore not required.
See Diagnostic Device Interview.
WHAT9 selects a physical Device by hardware ID for a programming/configuration-write operation.
It appears to be the write-side counterpart of WHAT10.
Conceptually:
_ Hardware ID
│
┌───────────┴───────────┐
│ │
▼ ▼
WHAT10 WHAT9
│ │
▼ ▼
Read / Interview Programming
The programming capture demonstrates that Device selection is followed by verification of the existing Device state before configuration writes begin.
See Diagnostic Device Programming.
WHAT4 commonly appears after the Device has reported its initial description and Module structure.
For example:
Device identity
│
Firmware
│
Diagnostics
│
DIM13
│
DIM30 / DIM32
│
▼
WHAT4
│
▼
DIM38 configuration request
This originally suggested that WHAT4 might simply mean Device description complete.
Programming captures disproved that narrow interpretation.
WHAT4 also appears after the DIM30/DIM35 writes associated with an individual Module/Object:
#DIM30
│
#DIM35
│
#DIM35
│
▼
WHAT4
It therefore has a more general role.
The strongest current interpretation is that WHAT4 represents some form of validation/application/completion for the current operation or Object context.
Its exact effect is not yet known.
During a typical Device interview:
Device description
│
▼
DIM30 / DIM32
│
▼
WHAT4
│
▼
DIM38
│
▼
DIM35 / Object-specific data
│
▼
WHAT6
WHAT6 consistently appears at the end of the configuration-reading phase.
WHAT6 is therefore interpreted as marking completion of configuration reading.
This is a behavioral interpretation rather than a confirmed formal protocol definition.
Programming introduces several additional WHAT operations.
The observed high-level sequence is:
WHAT9
│
▼
Select Device for programming
│
▼
Verify Device state
│
▼
WHAT14
│
▼
Open / prepare programming
│
▼
#DIM30 / #DIM35
│
▼
WHAT4
│
▼
WHAT52
│
▼
next Module/Object
│
▼
WHAT2
During the captured configuration push, the command occurs after:
- the Device has been selected using
WHAT9; - its existing state has been read and verified;
- the initial description phase has completed;
but before the first configuration write.
For example:
WHAT9#DEVICE_ID
│
▼
Current Device description
│
▼
WHAT4
│
▼
WHAT14
│
▼
#DIM30
│
▼
#DIM35
WHAT14 appears to prepare, enable, or open the configuration-write phase.
It may establish a programming context before writable dimensions such as #DIM30 and #DIM35 are accepted.
WHAT52 appears to perform a post-Object operation after the Object's configuration has been written.
Possible roles include:
- persisting the Object configuration;
- activating the Object;
- advancing the programming context;
- closing the current Object programming context.
Current evidence is insufficient to distinguish among these possibilities. The safest documentation description is:
WHAT52is a post-Object programming operation observed afterWHAT4and before programming proceeds to the next Object.
The command occurs after all requested Module/Object programming operations have completed:
Program Object A
│
▼
WHAT4
│
WHAT52
│
▼
Program Object B
│
▼
WHAT4
│
WHAT52
│
▼
WHAT2
WHAT2 appears to close or finalize the overall programming session.
Its exact internal effect on the Device is unknown.
One of the clearest patterns in the observed WHAT commands is the distinction between WHAT10 and WHAT9.
Physical Device
│
▼
Hardware ID
│
┌───────────┴───────────┐
│ │
▼ ▼
WHAT10 WHAT9
│ │
▼ ▼
Interview / Read Programming
This suggests that the diagnostic protocol establishes an explicit Device context before performing either operation.
The Device is therefore not simply identified by the WHERE field of every subsequent frame.
WHAT and DIM messages play complementary roles.
A useful conceptual distinction is:
WHAT
│
└── controls the diagnostic operation/state
DIM
│
└── exchanges Device/Module/Object data
For example:
WHAT10
↓
Select Device
↓
DIM1 / DIM2 / DIM13
↓
Describe Device
↓
DIM30 / DIM32
↓
Describe Modules
↓
DIM38
↓
Request configuration
↓
DIM35
↓
Return configuration
↓
WHAT6
↓
Complete read
The currently understood commands can be organized by their observed role.
WHAT12
│
▼
Initialize/reset enumeration
WHAT11
│
▼
Acknowledge/suppress discovered Device
WHAT10#DEVICE_ID
│
▼
Select Device for interview
WHAT4
│
▼
Phase boundary after description
WHAT6
│
▼
Configuration-read completion
WHAT9#DEVICE_ID
│
▼
Select Device for programming
WHAT14
│
▼
Prepare programming
WHAT4
│
▼
Per-Object phase/application boundary
WHAT52
│
▼
Post-Object operation
WHAT2
│
▼
Programming-session completion
WHAT |
Typical form | Observed phase | Current interpretation | Confidence |
|---|---|---|---|---|
WHAT2 |
*1001*2*0## |
Programming | End/finalize programming session | Strong |
WHAT4 |
*1001*4*0## |
Interview + Programming | Completion/application boundary | Strong behavior; exact semantics unknown |
WHAT6 |
*1001*6*0## |
Configuration read | Configuration-read completion | Strong |
WHAT9 |
*1001*9#ID*0## |
Programming | Select Device by hardware ID for programming | Very strong |
WHAT10 |
*1001*10#ID*0## |
Interview | Select Device by hardware ID for interview | Confirmed by capture |
WHAT11 |
varies | Discovery | Acknowledge/suppress discovered Device | Strong |
WHAT12 |
*1001*12*0## |
Discovery | Reset/release discovery state | Strong |
WHAT14 |
*1001*14#0*0## |
Programming | Prepare/open programming phase | Strong |
WHAT52 |
*1001*52*0## |
Programming | Post-Object programming operation | Strong behavior; exact semantics unknown |
- OpenWebNet Diagnostic Protocol
- Diagnostic Device Discovery
- Diagnostic Device Interview
- Diagnostic Configuration Reading
- Diagnostic Device Programming
- Diagnostic DIM Reference
- DIM13 - Hardware ID
- Device Modules and DIM30
- DIM35 - Module Configuration
- Diagnostic Protocol Reverse Engineering
- Open Questions