Skip to content

Diagnostic WHAT Reference

anotherjulien edited this page Sep 13, 2026 · 1 revision

Overview

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.

Discovery Commands

Several WHAT commands participate in Device discovery.

WHAT11 — Discovery Acknowledgement / Suppression

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 — Discovery Reset / Release

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

Cross-Domain Evidence

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.

Device Selection Commands

The diagnostic protocol distinguishes between selecting a Device for reading/interview and selecting one for programming.

WHAT10 — Select Device for Interview

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

Discovery Is Not Required

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 — Select Device for Programming

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.

Configuration-Read Commands

WHAT4 — Phase / Object Completion Operation

During Device Interview

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.

During Programming

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.

Current Interpretation

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.

WHAT6 — Configuration-Read Completion

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 Commands

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

WHAT14 — Prepare / Open Programming Phase

During the captured configuration push, the command occurs after:

  1. the Device has been selected using WHAT9;
  2. its existing state has been read and verified;
  3. 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 — Post-Object Programming Operation

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:

WHAT52 is a post-Object programming operation observed after WHAT4 and before programming proceeds to the next Object.

WHAT2 — End / Finalize Programming Session

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.

Read versus Write Selection

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.

Relationship with DIM Messages

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

WHAT Commands by Protocol Phase

The currently understood commands can be organized by their observed role.

Discovery

WHAT12
   │
   ▼
Initialize/reset enumeration

WHAT11
   │
   ▼
Acknowledge/suppress discovered Device

Device Interview

WHAT10#DEVICE_ID
   │
   ▼
Select Device for interview

WHAT4
   │
   ▼
Phase boundary after description

WHAT6
   │
   ▼
Configuration-read completion

Device Programming

WHAT9#DEVICE_ID
   │
   ▼
Select Device for programming

WHAT14
   │
   ▼
Prepare programming

WHAT4
   │
   ▼
Per-Object phase/application boundary

WHAT52
   │
   ▼
Post-Object operation

WHAT2
   │
   ▼
Programming-session completion

Reference Table

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

See Also

Clone this wiki locally