Repository navigation
Remove thermostat entities moved to zha-quirks - #996
Draft
zigpy-review-bot wants to merge 3 commits into
Draft
zigpy-review-bot wants to merge 3 commits into
zigpy-review-bot wants to merge 3 commits into
Conversation
The climate presets of the Moes HY368 and ZONNSMART TV01-ZG TRVs moved into their quirks (zigpy/zha-device-handlers), which now create the climate entity.
The Stelpro SORB and Zehnder thermostat entities moved into quirks (zigpy/zha-device-handlers).
They are identical to the base Thermostat entity, which ZHA picks for these devices without them.
This was referenced Oct 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Removes the manufacturer-specific thermostat entity classes that moved into zha-quirks with its new entity API, plus two that were identical to the base
Thermostat.MoesThermostatandZONNSMARTThermostat.StelproFanHeaterandZehnderThermostat.Draft until a zha-quirks release has those PRs: the quirks replace exactly ZHA's base
Thermostat, so they only take effect once these classes are gone, and ZHA's tests import the v1 classes the first PR removes. This should go in with the zha-quirks bump.Changes
MoesThermostat,ZONNSMARTThermostatand their manufacturer lists, and the tests ported to zha-quirks (test_set_moes_preset,test_set_moes_operation_mode,test_set_zonnsmart_preset,test_set_zonnsmart_operation_mode).StelproFanHeaterandZehnderThermostat, andtest_set_hvac_mode_zehnder(ported).test_climate_hvac_action_running_state_zehnderstays; it now gets the quirk's entity.ZenWithinThermostatandCentralitePearl: same cluster match asThermostat, only at a higher priority, so those devices get the identical base entity.Testing
With the three zha-quirks branches installed:
tze200-mudxchsu-ts0601-0x00000045.json:ZONNSMARTThermostat→ZonnsmartTV01Climateand the newquirk_class; same presets and unique ID.tze200-sur6q7ko-ts0601-0x00000045.json: gains the ZONNSMART presets (this model wasn't in ZHA's list).tze200-cpmgn2cf-ts0601.json: the importer reconstructed its signature with a ZCL thermostat (see its row in Audit diagnostics-importer "legacy attribute" allowlist (zha#799): missing quirks for lumi.curtain.acn003 & Legrand Contactor zha-device-handlers#5120), so neither the v1 nor the v2 quirk applies; it loses the Moes presets, which wrote an attribute that cluster doesn't have, and gets the off mode back.zehnder-group-vaux-andigny-alcantara2-d1-00p1-02z1-00.json: now quirked; the entity is unchanged.zen-within-zen-01-0x0000021f.json: class name only.tests/test_climate.pypasses; full suite: 1774 passed.Additional information
_cluster_match#813 (draft), which edits the@register_entitylines ofMoesThermostatandZONNSMARTThermostat.BecaThermostatis removed separately by RemoveBecaThermostatfor Moes_TZE200_b6wax7g0TRV #906;SinopeTechnologiesThermostatstays (Move ZHA's Sinope thermostat entities into the Sinope quirks zha-device-handlers#5626).