Skip to content

feat(thermostat): configurable min/max temperature limits#82

Open
sebglon wants to merge 12 commits into
athombv:masterfrom
sebglon:feat/thermostat/configurable-temperature-limits
Open

feat(thermostat): configurable min/max temperature limits#82
sebglon wants to merge 12 commits into
athombv:masterfrom
sebglon:feat/thermostat/configurable-temperature-limits

Conversation

@sebglon

@sebglon sebglon commented Mar 24, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds a new "Temperature limits" settings group to the thermostat with min_temperature (default 4°C) and max_temperature (default 35°C) number fields, allowing users to configure the target temperature slider range
  • Adds optional ga_temperature_min / ga_temperature_max KNX group address fields (DPT9.1, read-only) that dynamically override the static limits at runtime when telegrams arrive — KNX values take precedence
  • Exposes target_temperature_min and target_temperature_max as Homey capabilities, making current limits visible in the device UI and available in flows

Motivation

Fixes #79 — thermostats used for hot water regulation or other non-HVAC use cases need a wider temperature range (e.g. up to 70°C) than the hardcoded 4–35°C default. KNX devices like the OT-box can also send setpoint limits over the bus.

Test Plan

  • Open thermostat device settings → confirm "Temperature limits" group with min=4 / max=35 defaults
  • Change max_temperature to 70 → confirm target temperature slider extends to 70°C
  • Verify target_temperature_min and target_temperature_max appear as capabilities on the device card
  • Configure ga_temperature_max with a valid KNX GA → send a DPT9.1 telegram (e.g. 65°C) → confirm slider max updates
  • Remove ga_temperature_max and change max_temperature in settings → confirm static value is applied again
  • Confirm existing thermostats with no changes to settings are unaffected (defaults preserve previous 4–35°C range)

🤖 Generated with Claude Code

sebglon and others added 12 commits March 24, 2026 15:11
…ty, and validation

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Expand target_temperature_min/max capability options before calling
setCapabilityValue so values outside the built-in 4–35 range are
accepted. Also call setCapabilityOptions on target_temperature before
setCapabilityValue so the slider validation uses the updated range.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add ga_temperature_min and ga_temperature_max input fields to the
thermostat fieldset in the select_groupaddresses pairing screen, and
include their values in the device save handler. Add i18n strings
for all 13 supported locales.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

@ttherbrink ttherbrink left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see the use of having a configurable min/max. However having 3 points where this value can be edited is overkill in my opinion.
I think that only a setting is enough as this is normally not a value that is adjusted regularly (for example daily).

What is the benefit from reading this value from an knx adress?

@ttherbrink

Copy link
Copy Markdown
Contributor

Also i know it has been a while. if you are not interested anymore in finishing this PR let me know

@sebglon

sebglon commented Jul 22, 2026

Copy link
Copy Markdown
Contributor Author

This feature is always required.
Why reading the min / max values from KNX; because some component and installer define it during knx config and we need them to apply the range to the thermostat Component on Homey.
But some component not provide it. and in this case we need to config it at Homey component level; but not directly accessible outside config wizard and component setup screen

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

On Thermostat, the Target temperature is limited between between 4 and 35°c

2 participants