Skip to content

Add support for ALTHRSQ800WRF (Salus UG800 / Altech ecosystem)#55

Open
awfvantets wants to merge 3 commits into
epoplavskis:masterfrom
awfvantets:master
Open

Add support for ALTHRSQ800WRF (Salus UG800 / Altech ecosystem)#55
awfvantets wants to merge 3 commits into
epoplavskis:masterfrom
awfvantets:master

Conversation

@awfvantets

Copy link
Copy Markdown

Setup

Altech-branded Salus system (Altech is a Salus Controls affiliate, sold via CEDEO/Van Marcke in FR/BE/NL):

  • Gateway: ALTHUG800 (reports as UG800, coordinator fw 20250609, sw 020280251020)
  • 5× ALTHRSQ800WRF wireless zone thermostats on a ducted heat pump (cooling + heating)

Problem

Reads work fine, but all writes were rejected with IT600CommandError: iT600 gateway rejected 'write' command. The library treats any non-FC600 model as an sIT600TH thermostat, but this device family only accepts the sTherS/sComm data classes (like the FC600).

Verified by direct _make_encrypted_request testing on the device

  • {"sIT600TH": {"SetHeatingSetpoint_x100": ...}}rejected
  • {"sIT600TH": {"SetHoldType": 7}}rejected
  • {"sTherS": {"SetCoolingSetpoint_x100": 2150}}accepted, confirmed on the wall unit (target changed to 21.5)
  • {"sTherS": {"SetHeatingSetpoint_x100": 2150}}accepted

Changes

  1. Treat ALTHRSQ800WRF like FC600 in the three model checks (preset / mode / temperature writes).
  2. Expose HVAC_MODE_OFF in hvac_modes for the sTherS branch and derive it from sComm.HoldType == 7. Without this, HomeKit (via HA's HomeKit Bridge) cannot represent or set the off state.
  3. set_climate_device_mode: map HVAC_MODE_OFFsComm.SetHoldType 7; when switching on, clear the hold (SetHoldType 2) together with sTherS.SetSystemMode. Also fixes a latent bug where the string constant HVAC_MODE_AUTO was written as the SystemMode value instead of the Zigbee enum (1).

Tested

Full round-trip verified on hardware: temperature set, mode changes (cool/off/on), state correctly reflected in HA and Apple Home, heat pump physically responding.

Note: change 2 also gives FC600 users an explicit OFF hvac_mode (previously only available as preset) — consistent with the existing hvac_action/preset logic, but flagging it for review.

@awfvantets

Copy link
Copy Markdown
Author

Added two follow-up fixes found during further testing:

  1. hvac_action strings: "heating (idling)" / "cooling (idling)" are not valid HA HVACAction values. HA's HomeKit Bridge drops climate accessories at startup when an entity reports them. Changed both to "idle".

  2. RunningState detection: RunningState is a Zigbee bitmap (bit 0 = heat, bit 1 = cool). The FC600 reports 66 and the ALTHRSQ800WRF reports 6 while cooling — both have the cool bit set. Matching on bits instead of exact values covers both device families (and future ones), so hvac_action now correctly reports cooling/heating on the SQ800 series.

All changes verified on hardware (UG800 + 5× ALTHRSQ800WRF): tiles in Apple Home now correctly show off/idle/cooling states.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant