-
-
Notifications
You must be signed in to change notification settings - Fork 145
Description
Description
Changing device settings won't have any effect if target_temp_step has been left untouched. It took me countless of hours and trials to learn this important fact!
Steps to Reproduce
- Open BT Settings
- Proceed to next page where you can change special TRV device settings. Change something like "If your TRV can't handle the off mode ..."
- Save
- Wait - maybe a minute or so -> nothing will happen (i.e. no noise from the TRV engine)
- Reopen BT Settings
- Change target_temp_step to a different value. Maybe from "Auto" to "1.0" or vice versa.
- The changes you made to the TRV settings before will take effect. (i.e. I can hear the TRV engine working).
Expected behavior:
- Open BT Settings
- Proceed to next page and change something like "If your TRV can't handle the off mode ..."
- Wait some time, maybe a minute or so
- => The TRV engine will begin working
Actual behavior:
See "Steps to reproduce"
Versions and HW
Home Assistant: 2025.10.1
Better Thermostat: 1.7.0
TRV(s): TS0601
Debug data
diagnostic data
{
"home_assistant": {
"installation_type": "Home Assistant OS",
"version": "2025.10.1",
"dev": false,
"hassio": true,
"virtualenv": false,
"python_version": "3.13.7",
"docker": true,
"arch": "x86_64",
"timezone": "Europe/Berlin",
"os_name": "Linux",
"os_version": "6.12.43-haos",
"container_arch": "amd64",
"supervisor": "2025.10.0",
"host_os": "Home Assistant OS 16.2",
"docker_version": "28.3.3",
"chassis": "vm",
"run_as_root": true
},
"custom_components": {
"eufy_security": {
"documentation": "https://github.com/fuatakgun/eufy_security",
"version": "8.2.1",
"requirements": [
"websocket-client==1.8.0",
"aiortsp==1.4.0"
]
},
"epex_spot": {
"documentation": "https://github.com/mampfes/ha_epex_spot",
"version": "3.0.0",
"requirements": [
"beautifulsoup4"
]
},
"blitzortung": {
"documentation": "https://github.com/mrk-its/homeassistant-blitzortung",
"version": "1.3.11",
"requirements": [
"paho-mqtt>=1.5.0"
]
},
"ostrom": {
"documentation": "https://github.com/oliverwehrens/homeassistant_ostrom_integration",
"version": "1.0.3",
"requirements": [
"requests>=2.25.1"
]
},
"solar_prediction": {
"documentation": "https://github.com/code-chicken/ha-solar-prediction",
"version": "1.0.0",
"requirements": []
},
"webrtc": {
"documentation": "https://github.com/AlexxIT/WebRTC",
"version": "v3.6.1",
"requirements": []
},
"google_assistant_sdk_custom": {
"documentation": "https://github.com/tronikos/google_assistant_sdk_custom",
"version": "0.1.4",
"requirements": [
"beautifulsoup4",
"gassist-text"
]
},
"hacs": {
"documentation": "https://hacs.xyz/docs/use/",
"version": "2.0.5",
"requirements": [
"aiogithubapi>=22.10.1"
]
},
"pyscript": {
"documentation": "https://github.com/custom-components/pyscript",
"version": "1.6.4",
"requirements": [
"croniter==6.0.0",
"watchdog==6.0.0"
]
},
"chime_tts": {
"documentation": "https://nimroddolev.github.io/chime_tts",
"version": "v1.2.2",
"requirements": [
"pydub",
"aiofiles"
]
},
"grad_vol": {
"documentation": "https://github.com/NinDTendo/homeassistant_gradual_volume_control/blob/main/README.md",
"version": "2.0.1",
"requirements": []
},
"pirateweather": {
"documentation": "https://github.com/alexander0042/pirate-weather-ha",
"version": "1.7.7",
"requirements": []
},
"waste_collection_schedule": {
"documentation": "https://github.com/mampfes/hacs_waste_collection_schedule#readme",
"version": "2.10.0",
"requirements": [
"icalendar",
"icalevents>=0.1.26,!=0.1.28",
"beautifulsoup4",
"lxml",
"pycryptodome",
"pypdf"
]
},
"nordpool": {
"documentation": "https://github.com/custom-components/nordpool/",
"version": "0.0.17",
"requirements": [
"backoff"
]
},
"google_home": {
"documentation": "https://github.com/leikoilja/ha-google-home",
"version": "1.13.1",
"requirements": [
"glocaltokens==0.7.6"
]
},
"alarmo": {
"documentation": "https://github.com/nielsfaber/alarmo",
"version": "1.10.12",
"requirements": []
},
"ltss": {
"documentation": "https://github.com/freol35241/ltss",
"version": "2.1.0",
"requirements": [
"sqlalchemy>=2.0,<3.0",
"psycopg2-binary>=2.8,<3.0",
"geoalchemy2>=0.13,<1.0"
]
},
"asterisk": {
"documentation": "https://github.com/TECH7Fox/Asterisk-integration",
"version": "1.0.4",
"requirements": [
"asterisk-ami==0.1.6"
]
},
"ytube_music_player": {
"documentation": "https://github.com/KoljaWindeler/ytube_music_player",
"version": "20250704.03",
"requirements": [
"ytmusicapi==1.9.1",
"pytubefix==v8.13.1",
"integrationhelper==0.2.2"
]
},
"bms_ble": {
"documentation": "https://github.com/patman15/BMS_BLE-HA",
"version": "1.21.0",
"requirements": []
},
"unifigateway": {
"documentation": "https://github.com/custom-components/sensor.unifigateway",
"version": "0.3.3",
"requirements": [
"pyunifi==2.21"
]
},
"better_thermostat": {
"documentation": "https://github.com/KartoffelToby/better_thermostat",
"version": "1.7.0",
"requirements": []
},
"scheduler": {
"documentation": "https://github.com/nielsfaber/scheduler-component",
"version": "v0.0.0",
"requirements": []
}
},
"integration_manifest": {
"domain": "better_thermostat",
"name": "Better Thermostat",
"after_dependencies": [
"climate",
"zwave_js"
],
"codeowners": [
"kartoffeltoby"
],
"config_flow": true,
"dependencies": [
"climate",
"recorder"
],
"documentation": "https://github.com/KartoffelToby/better_thermostat",
"iot_class": "local_push",
"issue_tracker": "https://github.com/KartoffelToby/better_thermostat/issues",
"requirements": [],
"version": "1.7.0",
"is_built_in": false,
"overwrites_built_in": false
},
"setup_times": {
"null": {
"setup": 5.278099999372898e-05
},
"01J920HG6W2H9PQH5PZNX1JRW8": {
"wait_import_platforms": -0.11043445599999302,
"config_entry_setup": 0.18064236899999742
},
"01J920Q3KHZA7QGPW8QAKQETV2": {
"wait_import_platforms": -0.11076853500000539,
"config_entry_setup": 0.17622841600000072
},
"01J920SRZPWREY4C514S255WCY": {
"wait_import_platforms": -0.11085685599999806,
"config_entry_setup": 0.18243927599999665
},
"01J92114PQETA34R39Z3132GWX": {
"wait_import_platforms": -0.11090220100000181,
"config_entry_setup": 0.1824512120000037
},
"01JGDYB9W3JCDBV7RY1YD2JTG5": {
"wait_import_platforms": -0.11093619800000454,
"config_entry_setup": 0.1772256219999946
}
},
"data": {
"info": {
"name": "BT Wohnzimmer",
"temperature_sensor": "sensor.gw1000a_v1_7_5_indoor_temperature",
"off_temperature": 20,
"tolerance": 0.0,
"target_temp_step": 1.0,
"humidity_sensor": "sensor.gw1000a_v1_7_5_indoor_humidity",
"outdoor_sensor": "sensor.gw1000a_v1_7_5_outdoor_temperature",
"window_sensors": "binary_sensor.sensor_balkontur_window_door_is_open",
"weather": "weather.tomorrow_io_home_daily",
"cooler": null,
"window_off_delay": 0,
"window_off_delay_after": 0,
"model": "Thermostat radiator valve/Thermostat radiator valve"
},
"thermostat": {
"climate.heizung_balkonfenster": {
"name": "Heizung Balkonfenster",
"state": "heat",
"attributes": {
"hvac_modes": [
"off",
"heat"
],
"min_temp": 5.0,
"max_temp": 30.0,
"target_temp_step": 0.5,
"preset_modes": [
"none",
"auto",
"manual",
"holiday"
],
"current_temperature": 13.4,
"temperature": 5.0,
"preset_mode": "auto",
"friendly_name": "Heizung Balkonfenster",
"supported_features": 401
},
"bt_config": {
"calibration": "target_temp_based",
"calibration_mode": "fix_calibration",
"protect_overheating": true,
"no_off_system_mode": true,
"heat_auto_swapped": false,
"child_lock": true,
"homematicip": false
},
"bt_adapter": "mqtt",
"bt_integration": "mqtt",
"model": "Thermostat radiator valve"
},
"climate.heizung_schreibtisch": {
"name": "Heizung Schreibtisch",
"state": "heat",
"attributes": {
"hvac_modes": [
"off",
"heat"
],
"min_temp": 5.0,
"max_temp": 30.0,
"target_temp_step": 0.5,
"preset_modes": [
"none",
"auto",
"manual",
"holiday"
],
"current_temperature": 19.7,
"temperature": 5.0,
"preset_mode": "manual",
"friendly_name": "Heizung Schreibtisch",
"supported_features": 401
},
"bt_config": {
"calibration": "target_temp_based",
"calibration_mode": "fix_calibration",
"protect_overheating": true,
"no_off_system_mode": true,
"heat_auto_swapped": false,
"child_lock": true,
"homematicip": false
},
"bt_adapter": "mqtt",
"bt_integration": "mqtt",
"model": "Thermostat radiator valve"
}
},
"external_temperature_sensor": {
"entity_id": "sensor.gw1000a_v1_7_5_indoor_temperature",
"state": "18.7",
"attributes": {
"state_class": "measurement",
"unit_of_measurement": "\u00b0C",
"device_class": "temperature",
"friendly_name": "GW1000A_Pro Indoor Temperature"
},
"last_changed": "2025-10-10T08:57:05.054317+00:00",
"last_reported": "2025-10-10T08:57:05.054317+00:00",
"last_updated": "2025-10-10T08:57:05.054317+00:00",
"context": {
"id": "01K76ND2RYNT0WQEKSTK0MEJPZ",
"parent_id": null,
"user_id": null
}
},
"window_sensor": {
"entity_id": "binary_sensor.sensor_balkontur_window_door_is_open",
"state": "off",
"attributes": {
"device_class": "door",
"friendly_name": "Sensor Balkont\u00fcr Window/door is open"
},
"last_changed": "2025-10-10T07:11:26.253233+00:00",
"last_reported": "2025-10-10T07:11:26.253233+00:00",
"last_updated": "2025-10-10T07:11:26.253233+00:00",
"context": {
"id": "01K76FBMHD5RFF6D76MEGDPPFC",
"parent_id": null,
"user_id": null
}
}
},
"issues": [
{
"created": "2024-12-09T07:54:41.063866+00:00",
"dismissed_version": null,
"domain": "better_thermostat",
"is_persistent": false,
"issue_id": "missing_entity_sensor.sensor_caroline_air_temperature"
},
{
"created": "2024-12-09T07:54:41.064977+00:00",
"dismissed_version": null,
"domain": "better_thermostat",
"is_persistent": false,
"issue_id": "missing_entity_binary_sensor.sensor_caroline_badezimmerfenster_window_door_is_open_3"
},
{
"created": "2025-10-08T18:37:44.254664+00:00",
"dismissed_version": null,
"domain": "better_thermostat",
"is_persistent": false,
"issue_id": "missing_entity_binary_sensor.tursensor_badezimmer_contact"
},
{
"created": "2025-10-08T18:37:44.299153+00:00",
"dismissed_version": null,
"domain": "better_thermostat",
"is_persistent": false,
"issue_id": "missing_entity_climate.heizung_badezimmer_caroline"
},
{
"created": "2025-10-08T18:37:44.305466+00:00",
"dismissed_version": null,
"domain": "better_thermostat",
"is_persistent": false,
"issue_id": "missing_entity_sensor.klima_caroline_temperature"
}
]
}
Additional Information
I can reproduce this behaviour any time.
The bad thing is: It took me countless hours and pulled out hairs because I never found out why this f..... TRVs sometimes accept my changes and sometimes they don't.
The good thing is: now I know how to make sure that settings are being accepted. It is probably not only changing the target_temp_step setting to actually force BT to accept the changed TRV settings. It could also be that other settings on the first page have the same effect.