Skip to content

Writing unregistered parameter ID_Einst_BA_Lueftung_akt (ventilation mode, KHZ-LW80) causes socket to hang/become unreachable #270

Description

@Oxbow6

Description

Writing the ventilation operating mode parameter ID_Einst_BA_Lueftung_akt via the
luxtronik2.write service (Home Assistant, BenPru/luxtronik integration on top of
this library) reliably causes the heat pump controller's TCP socket to hang and
become unreachable shortly after the write completes.

Environment

  • Heat pump: Alpha Innotec KHZ-LW80 (compact unit: heat pump + ventilation module,
    ventilation controlled via a "Compactmodul" plugged onto the main Luxtronik board)
  • Controller firmware: V1.90.0
  • Integration: BenPru/luxtronik (Home Assistant, domain luxtronik2)
  • Underlying library: python-luxtronik 0.3.14

Steps to reproduce

  1. Call the write service with an unregistered parameter:
    service: luxtronik2.write
    data:
      parameter: "ID_Einst_BA_Lueftung_akt"
      value: "Automatic"
  2. First write appears to succeed (no immediate error).
  3. A second write shortly after (e.g. value "Party") times out.
  4. Shortly after, the coordinator's polling starts failing entirely:
    Socket error during read/write
      File "lux_helper.py", line 316, in _write
        cmd = struct.unpack(">i", self._socket.recv(4))[0]
      TimeoutError: timed out
    
    Failed to connect: [Errno 113] Host is unreachable
    Error fetching luxtronik2 data: Error fetching data: [Errno 113] Host is unreachable
    
  5. The controller recovers on its own after a few minutes (no data loss / heating
    itself is unaffected — the heat pump continues operating autonomously).

Notes / suspected cause

  • ID_Einst_BA_Lueftung_akt is not in luxtronik/definitions/parameters.py, so it's
    written as a raw/unmapped value rather than through the normal enum-mapped
    parameter path (compare with the working ID_Ba_Hz_akt → "Automatic"/"Party"/...
    mapping).
  • The manufacturer's own built-in web interface (same device, same port 8889) can
    set this exact value reliably and without any connection issue — so the controller
    itself accepts the parameter fine when encoded correctly. This suggests the issue
    is on the encoding side of this library/the raw-parameter write path, not a
    hardware/firmware limitation.

Request

Could ID_Einst_BA_Lueftung_akt (ventilation operating mode: Automatic/Party/
Holidays/Off) be added as an officially mapped parameter, similar to
ID_Ba_Hz_akt? This would make ventilation control on KHZ-LW80-style compact units
usable without risking the socket hang described above.

Happy to provide more logs / test a patch if useful.

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