Appliance support¶
This page says plainly what is verified against real hardware, what is inferred from reading the official app, and what is untested. The underlying library does the same in its decompiled API reference, and it matters here for the same reason: an untested feature that looks supported wastes somebody's evening.
The integration is developed against the hardware its authors and reporters own. Nobody has access to the full Dimplex range.
By family¶
| Family | Status | Notes |
|---|---|---|
| Panel heaters, PLX, other simple room heaters | Verified | Exercised routinely. Climate, presets, setpoint writes and modes all confirmed. |
| QRAD | Verified | As above, plus energy telemetry. |
| Quantum storage heaters | Partly verified | Modes and energy confirmed. Setpoint and timer writes are rejected on some units — see below. |
| Hot water cylinders | Untested | Endpoints exist in the library, confirmed from the app, never run against hardware. No entities are created. |
| Air-source heat pumps (ASHW) | Untested | Detected by the capability matrix; no dedicated support. |
| Hygiene / anti-legionella cycles | Untested | Mode bit is read but never written; no entity. |
If you own something in the untested rows and are willing to try it, say so on an issue — a diagnostics download alone is genuinely useful.
Quantum and other storage heaters¶
Charge-based heaters store heat overnight at the cheap rate and release it during the day. Two consequences that repeatedly confuse people:
A target does nothing until there is stored charge. Set 22 °C at midday on a heater that has exhausted its charge and nothing observable happens — not because the write failed, but because there is no heat to release. Two of the tests in #163 came back inconclusive for exactly this reason.
Some units reject remote writes. SetApplianceSetpointTemperature and SetTimerMode can
come back HTTP 403. The integration handles this:
- Setpoint writes fall back to the older schedule-rewrite path, so you keep the capability.
- If that is refused too, you get a readable error naming the appliance rather than a generic "unknown error" — this was #149.
When comparing behaviour, compare against the official app at the same moment, not against what a panel heater would do.
Hot water cylinders¶
The library implements the hot water surface — read state, set target, schedules, hygiene — and every endpoint is confirmed from the official app. None of it has been run against hardware, so this is what the integration does with it:
- A Hot water available diagnostic sensor, disabled by default, reading the cloud's
AvailableHotWater. It has no unit: that field is a bare number and nothing in the app or the API reference says whether it is °C, litres or a percentage. Turn it on and tell us what it shows. - Two actions,
dimplex.set_hot_water_temperatureanddimplex.set_hot_water_hygiene, gated on thehot_waterandhygieneflags. - No number or select entity, deliberately. Nothing reads the normal, boost or hygiene values back, so such an entity could be set and could never show what it was actually set to — worse than no entity.
- The capability matrix marks cylinder-only appliances as
climate: false, so they get no thermostat and no advance (there is no "next comfort period" to jump to). - Library callers can reach the endpoints directly and are warned in every docstring.
How capabilities are decided¶
The matrix resolves the flags from four sources, in increasing specificity:
flowchart TB
T["Type / model / name tokens<br/>quantum · storage · qrad · charge<br/>cylinder · dhw · hotwater<br/>ashw · heatpump"]
P["Product catalogue row<br/>GET /Appliances/GetProductModels"]
A["AUTOMATIC_PROVISIONING<br/>charge_capacity · rated_power"]
S["Live status fields<br/>BoostTemperature · AwayDateTime<br/>AvailableHotWater · RoomTemperature"]
C["Capability flags"]
T --> C
P --> C
A --> C
S --> C
The catalogue is fetched once per account and matched to each appliance on its model, then its
type. It carries the AUTOMATIC_PROVISIONING metadata — and it is the only place storage,
energy_meter, hot_water and heat_pump come from, which is why the integration calls it
rather than guessing from the appliance's own name. An account whose catalogue cannot be read
falls back to the type tokens and is retried on the next poll.
charge_capacity > 0, or a storage-ish token → storagerated_power > 0, or a storage-ish token → energy meter- a cylinder token, or
AvailableHotWaterpresent → hot water, andclimate: falseunless a room temperature also appears - an
ashw/ heat-pump token → heat pump (and hot water)
Control flags — boost, away, advance, open window, EcoStart, frost, timer, setpoint writes — default to enabled. That is deliberate: the cloud exposes these generically, and guessing "unsupported" would lock people out of endpoints that work. The cost is that an unsupported call fails at the cloud rather than being hidden, which is why control errors are surfaced with a readable message.
Your appliance's resolved flags are in a
diagnostics download under capabilities.
Confirmed but deliberately not exposed¶
| Endpoint | Why not |
|---|---|
ECO mode (bit 64) |
Behaviour on real hardware unknown. See modes. |
HOLIDAY, MANUAL, HYGIENE, STANDBY and other mode bits |
Read into diagnostics, never written. |
SetSetbackTemperature used to be on this list. It is now written by the
setback target number entity, gated on the capability matrix's
setback_write — treated as inferred from the app until someone confirms it against a real
appliance.
Schedule writes are exposed as two actions rather than a full editor — copy a schedule and edit one period. Creating, deleting or reordering periods still needs the official app.
Temperature ranges¶
Only two are confirmed:
| Mode | Range | Status |
|---|---|---|
| Away | 7–18 °C | Verified — live, and matches the app's picker |
| Frost protection | fixed 7 °C | Verified |
| Normal setpoint, boost, advance, manual | 7–30 °C | Inferred from the app |
Away turning out to be an exception means the 7–30 figures should not be fully trusted. dimplex-controller-py#98 tracks re-reading each mode's range.
Next¶
- Modes & presets — what each mode does
- Diagnostics — see your own appliance's resolved capabilities
- Troubleshooting