This issue compares the Encyclopedia with the Home Assistant integration MyHOME and the parser library under it, OWNd. It has three parts:
- places where the code does something different from what the Encyclopedia documents;
- what the code does not cover yet, ranked by importance;
- things the code relies on that the Encyclopedia does not document yet.
All links point to fixed commits:
- Encyclopedia:
3052786 (main, 2026-09-21)
- MyHOME:
3699dbe (v2-phase1-architecture)
- OWNd:
f082e8a (master). Bug 1.2 is also in the released 2.0.0b6 that MyHOME's tests run against.
This comes from reading the code and the documentation side by side. None of it has been tested against a gateway yet. The fixes belong in MyHOME and OWNd; parts 1 and 2 are here so the Encyclopedia pages they cite are all listed in one place.
1. Code that disagrees with the Encyclopedia
1.1 WHO 2: shutter level 255 ("unknown position") is used as a real position
- Code: OWNd reads
shutterLevel without checking for 255 (message.py L702). MyHOME then copies it straight into the cover position (cover.py L1157-L1159).
- Encyclopedia:
who-2-automation/dimensions.md L37 says 255 means Unknown position. L71 adds that it is not a target position.
- Effect:
*#2*WHERE*10*10*255*…## sets the Home Assistant cover to position 255, which is outside the valid 0–100 range. It should be treated as unknown (None).
1.2 WHO 16: volume down sends WHAT 1000, which WHO 16 does not define
- Code:
OWNSoundCommand.volume_down builds *16*1000*WHERE## (message.py L2679-L2680). MyHOME's media player uses it for volume down.
- Encyclopedia:
who-16-sound-system/README.md L17-L18: volume up is 1001..1015 and volume down is 1101..1115. 1000 is not in the WHO 16 table.
- Effect: pressing volume down in Home Assistant sends a frame the amplifier will not treat as a volume step. It should send
*16*1101*WHERE##.
1.3 WHO 4: manual, programmed and generic modes are mapped to the wrong HVAC modes
- Code: message.py L824-L859:
110, 111 and 115 map to HEAT; 210, 211 and 215 map to COOL;
310, 311 and 315 map to AUTO.
- Encyclopedia:
who-4-temperature-control/what.md L37-L45:
x10 is manual adjustment;
x11 is programmed/automatic;
- the first digit is the context: 1 = heating, 2 = conditioning, 3 = generic.
- Effect:
- A generic manual zone (
310) shows up as AUTO.
- A programmed heating or cooling zone (
111, 211) shows up as manual HEAT or COOL.
- "Programmed or manual" is being mixed up with "heating or cooling".
1.4 WHO 4: the program number in 115#PROGRAM is read as a temperature
- Code: when a mode frame has a WHAT parameter, it is always read as a setpoint (message.py L879-L880).
- Encyclopedia:
what.md L59 and L66: for 115# / 215# / 315# the parameter is a weekly program (1101..3103), or in events the program number (ordinal).
- Effect:
*4*115#1101*#0## is reported as a setpoint of 10.1 °C.
1.5 WHO 4: generic central-unit programs, scenarios and vacation are reported as "unknown"
- Code: the same block (L824-L859) handles
11xx, 12xx, 13DDD, 21xx, 22xx and 23DDD. Anything else falls through to "mode unknown".
- Encyclopedia:
what.md L55-L62 also lists 3101..3103, 3100, 3201..3216, 3200, 33DDD#PROGRAM, 3000 and 3000#PROGRAM.
1.6 WHO 1: dimension 4 is decoded as dimension 1, and WHAT 17 is fixed at 30 s
- Code: message.py L501 treats
dimension == 1 or dimension == 4 the same way. L486 hard-codes WHAT 17 as a 30 s timer.
- Encyclopedia:
1.7 WHO 15: CEN triggers fire at the wrong time, and rotary triggers are offered for CEN
1.8 WHO 5: state values are sent as arm, disarm and panic commands
- Code: OWNd arms with
*5*1*WHERE##, disarms with *5*2*WHERE## and triggers with *5*17*WHERE## (message.py L2386-L2409). arm_home and arm_away send the same frame. MyHOME uses them at alarm_control_panel.py L139-L151.
- Encyclopedia:
- Effect: if a central unit does accept these frames, that is not documented anywhere. See 3.4.
2. Documented in the Encyclopedia but not covered by MyHOME / OWNd (most important first)
-
Discovering and interviewing devices through the diagnostic families (guides/discover-devices.md, diagnostics/device-interview.md). This is the base for items 1a–1c:
- 1a. An actuator's group memberships (
guides/retrieve-actuator-group-memberships.md). MyHOME's known-limitations page currently says this cannot be read back.
- 1b. The CEN buttons configured on a device (
guides/retrieve-configured-cen-buttons.md), so CEN devices can be created automatically.
- 1c. Product identity per device from
MHCatalogue.db. This includes the gateway BRAND / LINE fields of WHO 1013 DIMENSION 1, which MyHOME reads but ignores.
-
WHO 1 dimension 3, "only lights that are ON" (*#1*WHERE*3##, who-1-lighting/dimensions.md). This could fill in light states at startup, which MyHOME currently lists as impossible.
-
WHO 4 central-unit programs, scenarios, holiday and vacation: WHATs x10x, x20x, x15#, x3DDD and 3000, plus dimensions 30/31 for the holiday end. MyHOME would expose these as climate presets.
-
WHO 17 scenario management (MH200N scenes 1–300: start, stop, enable, disable; dimensions 40/41) and WHO 0 scenario activation, including states 45 and 46. There are no entities for either yet.
-
WHO 18 beyond metering:
- Stop&Go breakers (
1N, dimensions 250–263);
- load actuators (
7N#0, WHATs 71/73/74, dimension 71);
- totalizers and reset (dimension 72, WHAT 75);
- differential current (dimension 73).
OWNd can already read the hourly and daily series (dimensions 511–514), but MyHOME does not use them.
-
WHO 5 system states as entities: battery (4/5/10), mains (6/7), technical alarm (12/13), tamper (16) and silent alarm (31). Zone status through *#5*#N## is also missing.
-
WHO 2 advanced commands: step movement and priority (10/11/12 with parameters), plus the priority and shutterInfo fields of dimension 10 (disabled, command not executed, PUL).
-
Sending a virtual CEN or CEN+ press (*15*B*W##, *25*21#B*W##, …). OWNd has the command builders, but MyHOME does not expose them.
-
WHO 16:
- tones and balance (dimensions 2–4, WHATs
2001…/2101…);
- sleep (
30/33/40) and Follow Me (50/53);
- the base-band variants
0/10.
The tuner (dimensions 6–10, WHATs 5000–6115) is in progress in MyHOME#427.
-
WHO 4, the rest:
- split control (dimension 22);
- status and fault WHATs
20–24, 30, 31 and 40;
- the MyHOME_Suite dimension 7 comfort, eco and protection actions;
WHO 1004 fault diagnostics (diagnostics/temperature-control-faults.md).
-
WHO 1, the rest: lamp working time (dimensions 8 and 9), step up/down 30/31 with #LEVELS#SPEED, blinking 20–29 (parsed but not exposed), and riser (#3) addresses.
-
WHO 13: uptime (dimension 19). The ZigBee scan and product-database operations and WHO 1000 DIMENSION 81 neighbour discovery are missing, as are …#9 ZigBee addresses and the ZigBee variants of WHO 1, 2, 4 and 18. MyHOME's setup flow offers a "3578 / OpenZigBee" gateway, but none of these are modelled.
-
WHO 3 load management, WHO 22 Sound Diffusion (MyHOME#424) and WHO 24 lighting management.
-
WHO 6, 7, 8, 23 and 27. The Encyclopedia itself has little vocabulary for these families.
3. What the Encyclopedia does not document yet
These are things MyHOME / OWNd rely on that I could not find anywhere in the Encyclopedia (full-text search on 3052786).
3.1 WHO 1: dimensions 5, 6, 7, 12 and 14, and WHAT 34
The dimension table only lists 1, 2, 3, 4, 8 and 9. OWNd also decodes the following (message.py L495-L565):
| Item |
Meaning |
Evidence |
WHAT 34 |
Motion detected |
None in the MyHOME golden corpus; OWNd code only |
| dim 5 |
PIR sensitivity, 0–3 |
None in the MyHOME golden corpus; OWNd code only |
| dim 6 |
Illuminance in lux |
None in the MyHOME golden corpus; OWNd code only |
| dim 7 |
Motion timeout H*M*S |
None in the MyHOME golden corpus; OWNd code only |
| dim 12 |
HSV colour (F429 DALI); 511*127*255 means "not supported" |
Community plant captures in MyHOME tests/golden/frames/who01_lighting.yaml |
| dim 14 |
Colour temperature in mireds; 1 means "not supported" |
Community plant captures in the same file |
3.2 WHO 4: dimensions 15 and 60
The dimension table does not list:
- dim 15: probe temperature (the external / secondary probe);
- dim 60: humidity.
OWNd decodes both (L962, L1094). As far as I know, there is no capture of either in the MyHOME corpus yet.
3.3 WHO 9 has no WHAT table
The WHO 9 page leaves the vocabulary open. OWNd reads AUX WHATs 0..10 as states (OWNAuxEvent), and MyHOME turns AUX 1–9 into binary sensors. There is a golden fixture: MyHOME tests/golden/frames/who09_auxiliary.yaml.
3.4 WHO 5 has no command vocabulary
The Encyclopedia documents only states for WHO 5. What is the documented way to arm, disarm or trigger a central unit, if there is one? Is *5*1* / *5*2* / *5*17* (1.8) ever accepted, or is WHO 5 read-only over OpenWebNet? A capture from a 3485 or 3486 would settle it (MyHOME#311).
3.5 WHO 22 does not mention the WHO 16 mirror frames
An MH200N sends a WHO 22 frame alongside every WHO 16 sound event, for example *16*3*111## together with *22*2#4#1*5#2#1## (MyHOME tests/golden/frames/who22_sound_diffusion.yaml, MyHOME#424). The WHO 22 page documents the dialect but not that the two appear together.
3.6 WHO 16 matrix routing (*16*3*1ES##)
Addressing an environment's route to a source is missing from the WHERE table on main. It is already written up on docs/who16-matrix-routing (509026f). Listed here only so it doesn't get lost.
3.7 WHO 13 dimension 15: model codes after 13
The model table stops at 13 (H4684). Only 200 is mentioned, in the text.
- MyHOME recognises more codes (
WHO13_* tables in const.py): the codes Nmap has listed since 2017, and 200 observed on F454, MH202 and MyHOMEServer1.
- Evidence: MyHOME#420, #370, #297, and nmap
openwebnet-discovery.nse.
3.8 A general status query for WHO 1
Is *#1*0## (or *#1*0*3##) valid on a TCP gateway? MyHOME currently documents *#1*0## as invalid. The Encyclopedia's addressing page allows WHERE 0, but no status flow shows it. A clear statement would settle how MyHOME fills in light states at startup (see 2.2).
This issue compares the Encyclopedia with the Home Assistant integration MyHOME and the parser library under it, OWNd. It has three parts:
All links point to fixed commits:
3052786(main, 2026-09-21)3699dbe(v2-phase1-architecture)f082e8a(master). Bug 1.2 is also in the released 2.0.0b6 that MyHOME's tests run against.This comes from reading the code and the documentation side by side. None of it has been tested against a gateway yet. The fixes belong in MyHOME and OWNd; parts 1 and 2 are here so the Encyclopedia pages they cite are all listed in one place.
1. Code that disagrees with the Encyclopedia
1.1 WHO 2: shutter level
255("unknown position") is used as a real positionshutterLevelwithout checking for255(message.py L702). MyHOME then copies it straight into the cover position (cover.py L1157-L1159).who-2-automation/dimensions.mdL37 says255means Unknown position. L71 adds that it is not a target position.*#2*WHERE*10*10*255*…##sets the Home Assistant cover to position 255, which is outside the valid 0–100 range. It should be treated as unknown (None).1.2 WHO 16: volume down sends
WHAT 1000, which WHO 16 does not defineOWNSoundCommand.volume_downbuilds*16*1000*WHERE##(message.py L2679-L2680). MyHOME's media player uses it for volume down.who-16-sound-system/README.mdL17-L18: volume up is1001..1015and volume down is1101..1115.1000is not in the WHO 16 table.*16*1101*WHERE##.1.3 WHO 4: manual, programmed and generic modes are mapped to the wrong HVAC modes
110,111and115map to HEAT;210,211and215map to COOL;310,311and315map to AUTO.who-4-temperature-control/what.mdL37-L45:x10is manual adjustment;x11is programmed/automatic;310) shows up as AUTO.111,211) shows up as manual HEAT or COOL.1.4 WHO 4: the program number in
115#PROGRAMis read as a temperaturewhat.mdL59 and L66: for115#/215#/315#the parameter is a weekly program (1101..3103), or in events the program number (ordinal).*4*115#1101*#0##is reported as a setpoint of 10.1 °C.1.5 WHO 4: generic central-unit programs, scenarios and vacation are reported as "unknown"
11xx,12xx,13DDD,21xx,22xxand23DDD. Anything else falls through to "mode unknown".what.mdL55-L62 also lists3101..3103,3100,3201..3216,3200,33DDD#PROGRAM,3000and3000#PROGRAM.1.6 WHO 1: dimension 4 is decoded as dimension 1, and
WHAT 17is fixed at 30 sdimension == 1 or dimension == 4the same way. L486 hard-codesWHAT 17as a 30 s timer.who-1-lighting/dimensions.mdL60-L62 says "Do not invent its payload fromDIMENSION 1".who-1-lighting/what.mdL29 and L38: the duration ofWHAT 17is unresolved (30 s or 30 min).1.7 WHO 15: CEN triggers fire at the wrong time, and rotary triggers are offered for CEN
Code: in MyHOME gateway.py L687-L694:
short_press;#3frame is reported as a newlong_press.Rotary trigger types are offered for all CEN devices (device_trigger.py L34-L43).
Encyclopedia:
who-15-cen/README.mdL13-L16: the first frame means Pressure, before it is known whether the press is short or long.#3frames "represent continued pressure, not separate button activations".who-25-transversal/cen-plus.mdL102: rotary events are "not defined in the published CEN table".Effect:
short_press.long_pressabout every 0.5 s.1.8 WHO 5: state values are sent as arm, disarm and panic commands
*5*1*WHERE##, disarms with*5*2*WHERE##and triggers with*5*17*WHERE##(message.py L2386-L2409).arm_homeandarm_awaysend the same frame. MyHOME uses them at alarm_control_panel.py L139-L151.who-5-alarm/what.mdL6-L7 lists1and2as states.who-5-alarm/protocol.mdL27: state values "must not be interpreted as permission to transmit them as control operations".2. Documented in the Encyclopedia but not covered by MyHOME / OWNd (most important first)
Discovering and interviewing devices through the diagnostic families (
guides/discover-devices.md,diagnostics/device-interview.md). This is the base for items 1a–1c:guides/retrieve-actuator-group-memberships.md). MyHOME's known-limitations page currently says this cannot be read back.guides/retrieve-configured-cen-buttons.md), so CEN devices can be created automatically.MHCatalogue.db. This includes the gatewayBRAND/LINEfields ofWHO 1013 DIMENSION 1, which MyHOME reads but ignores.WHO 1 dimension 3, "only lights that are ON" (
*#1*WHERE*3##,who-1-lighting/dimensions.md). This could fill in light states at startup, which MyHOME currently lists as impossible.WHO 4 central-unit programs, scenarios, holiday and vacation: WHATs
x10x,x20x,x15#,x3DDDand3000, plus dimensions 30/31 for the holiday end. MyHOME would expose these as climate presets.WHO 17 scenario management (MH200N scenes 1–300: start, stop, enable, disable; dimensions 40/41) and WHO 0 scenario activation, including states
45and46. There are no entities for either yet.WHO 18 beyond metering:
1N, dimensions 250–263);7N#0, WHATs 71/73/74, dimension 71);OWNd can already read the hourly and daily series (dimensions 511–514), but MyHOME does not use them.
WHO 5 system states as entities: battery (
4/5/10), mains (6/7), technical alarm (12/13), tamper (16) and silent alarm (31). Zone status through*#5*#N##is also missing.WHO 2 advanced commands: step movement and priority (
10/11/12with parameters), plus the priority andshutterInfofields of dimension 10 (disabled, command not executed, PUL).Sending a virtual CEN or CEN+ press (
*15*B*W##,*25*21#B*W##, …). OWNd has the command builders, but MyHOME does not expose them.WHO 16:
2001…/2101…);30/33/40) and Follow Me (50/53);0/10.The tuner (dimensions 6–10, WHATs
5000–6115) is in progress in MyHOME#427.WHO 4, the rest:
20–24,30,31and40;WHO 1004fault diagnostics (diagnostics/temperature-control-faults.md).WHO 1, the rest: lamp working time (dimensions 8 and 9), step up/down
30/31with#LEVELS#SPEED, blinking20–29(parsed but not exposed), and riser (#3) addresses.WHO 13: uptime (dimension 19). The ZigBee scan and product-database operations and
WHO 1000 DIMENSION 81neighbour discovery are missing, as are…#9ZigBee addresses and the ZigBee variants of WHO 1, 2, 4 and 18. MyHOME's setup flow offers a "3578 / OpenZigBee" gateway, but none of these are modelled.WHO 3 load management, WHO 22 Sound Diffusion (MyHOME#424) and WHO 24 lighting management.
WHO 6, 7, 8, 23 and 27. The Encyclopedia itself has little vocabulary for these families.
3. What the Encyclopedia does not document yet
These are things MyHOME / OWNd rely on that I could not find anywhere in the Encyclopedia (full-text search on
3052786).3.1 WHO 1: dimensions 5, 6, 7, 12 and 14, and
WHAT 34The dimension table only lists 1, 2, 3, 4, 8 and 9. OWNd also decodes the following (message.py L495-L565):
WHAT 34H*M*S511*127*255means "not supported"tests/golden/frames/who01_lighting.yaml1means "not supported"3.2 WHO 4: dimensions 15 and 60
The dimension table does not list:
OWNd decodes both (L962, L1094). As far as I know, there is no capture of either in the MyHOME corpus yet.
3.3 WHO 9 has no WHAT table
The WHO 9 page leaves the vocabulary open. OWNd reads AUX WHATs
0..10as states (OWNAuxEvent), and MyHOME turns AUX 1–9 into binary sensors. There is a golden fixture: MyHOMEtests/golden/frames/who09_auxiliary.yaml.3.4 WHO 5 has no command vocabulary
The Encyclopedia documents only states for WHO 5. What is the documented way to arm, disarm or trigger a central unit, if there is one? Is
*5*1*/*5*2*/*5*17*(1.8) ever accepted, or is WHO 5 read-only over OpenWebNet? A capture from a 3485 or 3486 would settle it (MyHOME#311).3.5 WHO 22 does not mention the WHO 16 mirror frames
An MH200N sends a WHO 22 frame alongside every WHO 16 sound event, for example
*16*3*111##together with*22*2#4#1*5#2#1##(MyHOMEtests/golden/frames/who22_sound_diffusion.yaml, MyHOME#424). The WHO 22 page documents the dialect but not that the two appear together.3.6 WHO 16 matrix routing (
*16*3*1ES##)Addressing an environment's route to a source is missing from the
WHEREtable onmain. It is already written up ondocs/who16-matrix-routing(509026f). Listed here only so it doesn't get lost.3.7 WHO 13 dimension 15: model codes after
13The model table stops at
13(H4684). Only200is mentioned, in the text.WHO13_*tables inconst.py): the codes Nmap has listed since 2017, and200observed on F454, MH202 and MyHOMEServer1.openwebnet-discovery.nse.3.8 A general status query for WHO 1
Is
*#1*0##(or*#1*0*3##) valid on a TCP gateway? MyHOME currently documents*#1*0##as invalid. The Encyclopedia's addressing page allowsWHERE 0, but no status flow shows it. A clear statement would settle how MyHOME fills in light states at startup (see 2.2).