Given that you've submitted a pull request for MQTT HVAC, I'm going to assume you know its source code far better than I do and can answer this question:
Why isn't it using "temp_step
In the code there's "temp_step". It's ostensibly the setpoint temperature's step-size. By default it's 1 which is fine when you're adjusting the setpoint in Fahrenheit but not for Celsius (ought be 0.5). Whereas "max_temp" and "min_temp" are documented (max and min settings for setpoint range) "temp_step" is not. Ignoring that, I added "temp_step: 0.5
" to configuration.yaml and, in turn, Home Assistant ignored it and continued to use a step-size of one.
I looked at the OpenTherm component's documentation and code and it uses the term "precision" to specify the step-size. I compared it to MQTT HVAC's code
but I can't quite pin down why "temp_step" isn't processed. My best guess is that it is not being read from configuration.yaml because it's missing from this line (but I wouldn't bet any money on it):
Line 14 says:
from homeassistant.components.climate import ( STATE_HEAT, STATE_COOL, STATE_DRY, STATE_FAN_ONLY, ClimateDevice, PLATFORM_SCHEMA as CLIMATE_PLATFORM_SCHEMA, STATE_AUTO, ATTR_OPERATION_MODE, SUPPORT_TARGET_TEMPERATURE, SUPPORT_OPERATION_MODE, SUPPORT_SWING_MODE, SUPPORT_FAN_MODE, SUPPORT_AWAY_MODE, SUPPORT_HOLD_MODE, SUPPORT_AUX_HEAT, DEFAULT_MIN_TEMP, DEFAULT_MAX_TEMP)
I see min_temp and max_temp but no temp_step.
Way down around line 129, I see it hard-codes temp_step to 1 rather than from a value recorded in configuration.yaml.
vol.Optional(CONF_MIN_TEMP, default=DEFAULT_MIN_TEMP): vol.Coerce(float),
vol.Optional(CONF_MAX_TEMP, default=DEFAULT_MAX_TEMP): vol.Coerce(float),
vol.Optional(CONF_TEMP_STEP, default=1.0): vol.Coerce(float)
If you can shed any light I would appreciate it.
In addition, (obvious newbie question coming up) where the heck does Home Assistant store the components it uses? I'd like to take a copy of MQTT HVAC's code from github, put it on my HA server, and experiment with it. However, I don't know where to place the code so HA uses it instead of the release version.