Skip to content

Known Limitations

Things the integration does not do, or does with a caveat, and the reason. Where a limitation is a design decision it links to the discussion; where it is a gap it names the trace or hardware needed to close it (see the Roadmap and RFC #248). The full feature matrix is in Supported Functions.

Bus and gateway

Limitation Why Workaround
One command session per gateway on MH200 / MH200N / MH201. Commands are queued and paced (150 / 80 / 60 ms). Those gateways refuse or drop overlapping sessions; the pacing is what keeps them alive. Keep the worker count at the profile default. F454 / F455 / MyHOMEServer1 / MH202 take more workers.
Entities can be unavailable for up to 60 s after a gateway drop. The availability grace period hides short reconnects instead of flapping every entity. Nothing needed; a longer outage marks entities unavailable and they recover on reconnect.
A gateway's model can be mislabelled. Only the WHO 13 device-type reply is available in-band, and its official table stops at 2006 hardware. The identification rules correct manual choices and raise a repair issue when evidence contradicts SSDP; use the reconfigure flow to set the model explicitly.
Serial (Legrand 3578) gateways are not discovered. No SSDP on a USB port. Add the integration manually and pick the serial transport.
No HMAC on MH200 / MH200N / MH201 / AM4890 / 3578. Those gateways only implement the numeric (SHA-less) password. Configure the numeric OpenWebNet password on the gateway.
Broadcast, Area 00, and General 0 frames do not generate entities. Broadcast frames (WHERE="0", "00") coordinate multiple actuators and do not represent individual physical devices (except WHO 5 where WHERE="0" is the alarm central unit). Creating entities from these frames produced phantom entities like sensor.zone_00 or climate.climate_zone_00. Control individual actuators or use YAML declared groups (where: '#G') and manual scenes.
Secondary energy meters (52–59) require bus activity or manual configuration for initial setup. Startup discovery queries factory default meter 51 (*#18*51*51##, *#18*51*113##) to avoid long startup sweep delays. Secondary meters appear automatically when they transmit power/energy readings on the bus, or immediately when running myhome.sweep_bus. They can also be declared in myhome.yaml.

Lighting (WHO 1)

Limitation Why Workaround
Group, area and general commands from wall switches re-sync with a ~250 ms delay, and only areas with a known light. (P7, #368) A debounced re-sync (see runtime behaviour) only sweeps *#1*A## per area/group, or skips the sweep entirely if the gateway already echoed each member's status; there is still no trace from a gateway that echoes nothing to confirm the fallback is sufficient there. Disable Sweep group/area/general light addresses for status in the Options Flow if your gateway needs a different cadence, and report a bus trace on #368.
A declared group (where: '#G' in myhome.yaml) never auto-discovers its membership. (P7, #368) OpenWebNet has no command to read back which actuators a group was programmed with - that is set on the plant itself (MyHOME_Suite or a physical group-programmed actuator), not on the bus. Declare members: yourself if you want derived on/off, brightness and colour state; without it the entity is assumed_state and shows separate On/Off controls.
Colour modes are learned, not configured. A DALI DT8 light shows colour temperature only after its first dimension 14 frame. The bus does not describe an actuator's capabilities; it only reports what it does. Set color_temp: true / rgb: true / hs: true in myhome.yaml to declare the mode up front.
Native transitions depend on the actuator. Some dimmers ignore the fade parameter. Keep the default software_stepped transition mode.
Physical sensors sharing an actuator address (e.g. 3477 twilight photocell) trigger the actuator directly on the wire. Point-to-point SCS physical addressing binds the sensor contact interface directly to the relay. Hardware turn-ons cannot be prevented before they execute on the bus. Use the Hardware-Coupled Sensors Guide and Dusk Curfew Blueprint to enforce bedtime curfews and companion synchronization, or decouple the sensor address.

Covers (WHO 2)

Limitation Why Workaround
Timed covers report a calculated position. It drifts if the motor runs at a different speed than assumed, or after a manual stop mid-travel. The actuator has no encoder; only position-reporting actuators (dimension 10) know where the shutter is. Calibrate with myhome.calibrate_cover (or myhome.set_cover_travel_time); a full open or close resynchronises the estimate.
Calibration on an MH200 / MH200N can fail with no stop status from the actuator. The single-session gateway delays or drops the actuator's stop status; some actuators also enforce a 60 s safety cut-off that ends the run early. Measure the run with a stopwatch and store the timings via myhome.set_cover_travel_time.
One calibration at a time per gateway. Two motors on one paced session make the timings meaningless. Queue is automatic; myhome.stop_cover_calibration cancels it.
Rapid concurrent point-to-point commands behind an F422 interface can drop frames. The physical F422 interface internal FIFO buffer and secondary SCS bus arbitration saturate under rapid unpaced bursts. Use native General broadcast covers (where: '0', bus_interface: '<id>') which send a single OpenWebNet broadcast (*2*WHAT*0#4#<id>##), or rely on the integration's automatic 0.3 s paced member fan-out for position control. See Covers.
No slat / tilt control. Not implemented; the frames exist in OWNd. myhome.send_message with the tilt frame.

Thermoregulation (WHO 4)

Limitation Why Workaround
Weekly programs, holiday and scenario modes are not exposed. Only manual set-point, auto, off and the seasonal modes are modelled on the climate entity. myhome.send_message with the central-unit mode frame (*4*<mode>*#0##).
4-zone central unit 4695 (#0#1) is verified on synthetic frames only. No community trace from a 4695 plant yet. Please attach a trace to RFC #248 if you own one.
Probes (WHERE ≥ 100) are read-only and push-driven. They NACK the explicit poll (*#4*ZPP*15##) and push readings on their own schedule. Nothing needed; a probe that goes silent is polled again after 5 min.

Burglar alarm (WHO 5)

Limitation Why Workaround
Zones are not entities; the panel follows the central unit. Some plants (F454 + 3486) surface several zone objects with no arm / disarm frames answered (#311). WHO 5 zone and sensor discovery needs a bus trace from a physical central unit to model correctly; the current implementation is built on golden frames. Zone frames are available as myhome_message_event (with Generate Events on) and alarm state changes as myhome_alarm_event; a trace attached to #311 unblocks the design.
Arming requires the central unit to accept the command. Central units reject arming while a zone is open or the engineer code is active; the bus only reports the refusal. Watch the bus-monitor card for the NACK.

Sound system (WHO 16)

Limitation Why Workaround
Streaming needs a network decoder per concurrent stream. With two decoders mapped, a third room asks for All audio matrix inputs are currently in use. The F441 matrix routes one physical input per source; the integration claims one decoder per playing zone. Map more decoders in the options flow, or group rooms on the decoder side.
Removing the group leader interrupts the music briefly. Unticking the leader in Music Assistant, or turning it off (Home Assistant or wall panel), stops the sound for a few seconds before the remaining rooms resume. Music Assistant owns one queue per player and can only move it by stopping it and starting a new stream on another player; a powered-off player cannot keep a queue. The bus itself is not interrupted: MyHOME switches only the leader's amplifier off and hands the decoder to the next room. See Why deselecting the group leader gives a short gap. Play to a Music Assistant Sync Group with Dynamic members on, so any room can be ticked and unticked; see Recommended: one Music Assistant Sync Group for the house. With temporary groups, play to a room that stays on: removing a member never interrupts anything.
Plants that use only the later sound-diffusion dialect (WHO 22) get no audio entities. The integration speaks the WHO 16 sound system (amplifiers, sources, the F441 / F441M matrix). WHO 22 is BTicino's later sound-diffusion dialect and is not implemented; it is not the FM tuner, which the integration handles as a WHO 16 source. —

Scenario buttons (WHO 15 / 25)

Limitation Why Workaround
CEN / CEN+ devices are stateless. They have no entity, only device triggers. Pushbuttons report presses, not a state. Use the device triggers (see CEN & CEN+) or the community blueprint.
Multi-click bursts are verified on synthetic frames only. No physical wall-switch burst trace yet. Please attach one to RFC #248.

Home Assistant integration surface

Limitation Why Workaround
entity_name in myhome.yaml only applies to sensors and binary sensors. On a light, switch, cover, thermostat, audio zone or alarm panel it is ignored: those entities are their device and carry the device name. Home Assistant's device / entity naming model; entity_name never named those platforms in earlier versions either. Rename the device in the UI, or change name.
Fresh installs name sensor ids after the device class (sensor.house_power, binary_sensor.cancello_opening) where 2.0.0b12 produced sensor.house, sensor.house_2, binary_sensor.cancello. The previous ids were the device name with numeric suffixes for the second and third sensor of a device. Existing installations keep their ids; automations on a fresh install use the new ids.
Strict typing is complete. mypy --strict is fully enforced across all 31 source modules as of 2.0.0b13 (Platinum Quality Scale). —
myhome.yaml is a compatibility path, not the primary configuration. Devices are discovered from the bus; YAML only adds names, device classes and options. v2 is UI-first. Keep myhome.yaml for names and travel_time; delete devices you no longer want from the device page.
Deleting a device does not stop it from coming back. Devices are re-discovered from bus traffic; a device that still exists reappears on its next status frame. Only delete devices that are physically gone.
Home Assistant 2026.3 or newer is required (hacs.json). Current cores need Python 3.14 and dropped the pre-2026 device-registry and static-path APIs; carrying shims for cores nobody can test any more is not honest support. Stay on integration 2.0.0b12 on older cores.