rename: climate entity to Remote Pre-Conditioning - #3
Conversation
The climate entity reflects REMOTE pre-conditioning only - hvac_mode turns ON solely from preClimateActive/defrost, which the Geely cloud sets only while a remote pre-climate cycle is running and which ends when the car starts. Manual in-cabin HVAC operation is not reported by the API at all (the phone app's AC indicator is the same field), so a car driven with the heater on shows 'off'. The old name 'Climate' implied live cabin state and misled users. Display name only - unique_id and entity_id are unchanged, so existing installations keep their entity and any registry customizations.
…oards Completes #3. With has_entity_name, renaming the entity to "Remote Pre-Conditioning" changed the object_id a *fresh* install generates to climate.<device>_remote_pre_conditioning - but the shipped dashboards, cards, automations and the README adaptation procedure all reference climate.<device>_climate, and existing installs keep that id from the registry, so no one version of the YAML could serve both. The entity now suggests the old object_id (honoured on first registration only), so old and new installs agree. The shipped tiles also overrode the name back to "Climate" (and one to "Cabin"), which hid exactly the clarification the rename exists to make - the cloud only reports remote pre-climate cycles, never manual cabin HVAC. The overrides and the "Cabin climate" heading now say Pre-Conditioning. Co-Authored-By: Claude Fable 5 <[email protected]> Claude-Session: https://claude.ai/code/session_01FKHdFjgidnPWAfMswcmmwA
|
Thank you @scottaki — this is a model PR: a real-world observation, a verified root cause, a minimal diff, and an honest test plan. Merged. 🎉 I reviewed it in depth before merging, and everything you claimed checked out:
One subtlety the review surfaced that your test plan couldn't have seen without a fresh install: with Rather than send it back to you for that — the rename itself is exactly right — I merged as-is and completed it in a follow-up commit (f03eeb5) that pins the suggested object_id so new installs also get Thanks again for taking the time to verify this against a real car and for writing it up so carefully — reports like this are exactly what makes the entity model trustworthy. (This review was performed with the help of Claude Code.) |
Rename the climate entity to "Remote Pre-Conditioning"
Summary
The climate entity is a remote pre-conditioning controller — it only
reflects remote pre-heat/pre-cool cycles. Its old display name "Climate"
implied it showed the live cabin HVAC state, which it cannot: a car driven
with the heater running shows
off, because the Geely cloud simply does notreport manual in-cabin HVAC operation.
This PR renames the entity's display name to
Remote Pre-Conditioninganddocuments the scope in the module docstring and README.
Why
hvac_modeturns ON solely frompreClimateActive/defrost(
custom_components/geely_connect/climate.py). Both fields are set by theGeely cloud only while a remote pre-climate cycle is running — the flag
goes false the moment the cycle ends or the car starts. Manual in-cabin
HVAC (driver presses heat/AC while driving) is not reported anywhere in the
API payload; the phone app has the same blind spot (its AC indicator reads
the same
preClimateActivefield).Verified live on an APAC-market Geely EX5 (2026-08): during a 10-minute
drive with the cabin heater clearly running (interior temp 12.3 → 18.1 °C),
the climate entity stayed
offat every poll becausepreClimateActiveremained false. Remote pre-warm fired from HA correctly showed
heat_cooluntil the cycle ended. The complete
climateStatuspayload contains nofield for manual HVAC state.
Changes
custom_components/geely_connect/climate.py_attr_name:"Climate"→"Remote Pre-Conditioning"remote pre-conditioning only and why
README.md"Remote pre-heat/pre-cool: on/off, set temperature (15.5–28.5 °C),
Rapid Warming, Rapid Cooling. Only reflects remote pre-climate cycles —
the cloud does not report manual cabin HVAC"
Non-breaking
Display name only.
_attr_unique_idand the resultingentity_id(
climate.my_geely_ex5_climate) are unchanged, so existing installationskeep their entity, dashboards, and any entity-registry customizations
(which override this default name anyway).
Test plan
"Geely EX5 (… ) Remote Pre-Conditioning" (device name + entity name)
heat_coolwhile a cycle runs,offatall other times
Note for maintainers
"Remote Pre-Conditioning" is the tested choice from an affected user; if a
shorter label is preferred, "Remote Climate" also reads accurately. The
important part is dropping the implication of live cabin state.