Skip to content

Gate and garage door remain unknown after restart because status request position is ignored #679

@mnaggatz

Description

@mnaggatz

During live testing with a gate and a garage door, both devices stayed in an unknown state for a long time after a Home Assistant restart. The initial node snapshot can contain an unknown current position for these device types, so pyvlx depends on later state updates to recover the actual position.

The heartbeat already sends GW_STATUS_REQUEST_REQ calls for all nodes when heartbeat_load_all_states=True. However, NodeUpdater.process_frame_status_request_notification() currently applies position data from GW_STATUS_REQUEST_NTF only for Blind and DualRollerShutter. Generic OpeningDevice types such as Gate and GarageDoor are not updated from the main parameter (MP, NodeParameter(0)) in the status request response.

As a result, even if the KLF200 returns a concrete position for the gate or garage door in the status request notification, pyvlx ignores it. The HA entity can therefore remain unknown until a later house monitor / node state position notification arrives, often only after movement or another gateway update.

Suggested fix:

For OpeningDevice instances that are not handled by the specialized Blind / DualRollerShutter branches, read NodeParameter(0) from FrameStatusRequestNotification.parameter_data and update node.position when the value is concrete. This should ignore UNKNOWN / IGNORE values and include a regression test with a Gate or GarageDoor starting at UNKNOWN and recovering its position from a status request notification.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions