This custom component for Home Assistant will add crucial features to your climate-controlling TRV (Thermostatic Radiator Valves) to save you the work of creating automations to make it smart. It combines a room-temperature sensor, window/door sensors, weather forecasts, or an ambient temperature probe to decide when it should call for heat and automatically calibrate your TRVs to fix the imprecise measurements taken in the radiator's vicinity.
Can't reconfigure from GUI. TS0601 `{ "home_assistant": { "installation_type": "Home Assistant Supervised", "version": "2022.9.7", "dev": false, "hassio": true, "virtualenv": false, "python_version": "3.10.5", "docker": true, "arch": "x86_64", "timezone": "Europe/Warsaw", "os_name": "Linux", "os_version": "4.19.0-22-amd64", "supervisor": "2022.10.0", "host_os": "Debian GNU/Linux 10 (buster)", "docker_version": "20.10.17", "chassis": "desktop", "run_as_root": true }, "custom_components": { "miio2": { "version": "2022.3.3", "requirements": [ "construct==2.10.56", "python-miio==0.5.12" ] }, "powercalc": { "version": "v0.26.1", "requirements": [ "numpy>=1.21.1" ] }, "tapo_control": { "version": "3.7.0", "requirements": [ "pytapo==2.3", "onvif-zeep-async==1.2.0" ] }, "xiaomi_miot_raw": { "version": "v1.3.1", "requirements": [ "construct", "python-miio>=0.5.3" ] }, "better_thermostat": { "version": "1.0.0-beta28", "requirements": [] }, "xiaomi_miio_airpurifier": { "version": "2022.8.0.0", "requirements": [ "construct==2.10.56", "python-miio>=0.5.12" ] }, "hacs": { "version": "1.27.2", "requirements": [ "aiogithubapi>=22.2.4" ] }, "nodered": { "version": "1.1.2", "requirements": [] }, "zadnego_ale": { "version": "1.0.0", "requirements": [ "zadnegoale==0.6.5" ] }, "ytube_music_player": { "version": "20220205.01", "requirements": [ "ytmusicapi==0.19.5", "pytube==10.5.1", "integrationhelper==0.2.2" ] }, "burze_dzis_net": { "version": "v1.0.4", "requirements": [ "zeep" ] }, "composite": { "version": "2.2.1", "requirements": [] }, "blitzortung": { "version": "1.0.1", "requirements": [ "paho-mqtt>=1.5.0" ] }, "scheduler": { "version": "v0.0.0", "requirements": [] }, "localtuya": { "version": "4.1.0", "requirements": [] }, "xiaomi_cloud_map_extractor": { "version": "v2.2.0", "requirements": [ "pillow", "pybase64", "python-miio", "requests", "pycryptodome" ] } }, "integration_manifest": { "domain": "better_thermostat", "name": "Better Thermostat", "documentation": "https://github.com/KartoffelToby/better_thermostat", "issue_tracker": "https://github.com/KartoffelToby/better_thermostat/issues", "iot_class": "local_push", "version": "1.0.0-beta28", "config_flow": true, "dependencies": [ "climate", "recorder" ], "after_dependencies": [ "climate" ], "codeowners": [ "@kartoffeltoby", "@RubenKelevra" ], "requirements": [], "is_built_in": false }, "data": { "info": { "name": "kibelek", "thermostat": "climate.glowica_lazienka", "temperature_sensor": "sensor.aqara_lazienka_temperature", "window_off_delay": 30, "off_temperature": 20, "calibration_round": true, "valve_maintenance": false, "heat_auto_swapped": true, "child_lock": false, "outdoor_sensor": "sensor.aqara_balkon_temperature", "window_sensors": "group.okna_salon", "local_calibration": null, "weather": null, "model": "TS0601_thermostat", "calibration": "target_temp_based", "homaticip": false }, "thermostat": { "entity_id": "climate.glowica_lazienka", "state": "auto", "attributes": { "hvac_modes": [ "heat", "auto", "off" ], "min_temp": 5.0, "max_temp": 35.0, "target_temp_step": 0.5, "preset_modes": [ "none", "schedule", "manual", "boost", "complex", "comfort", "eco" ], "current_temperature": 23.0, "temperature": 24.5, "hvac_action": "heating", "preset_mode": "manual", "auto_lock": "MANUAL", "away_mode": "OFF", "away_preset_days": 1, "away_preset_temperature": 15, "battery_low": false, "boost_time": 100, "child_lock": "UNLOCK", "comfort_temperature": 21, "current_heating_setpoint": 24.5, "device": { "applicationVersion": 87, "dateCode": "", "friendlyName": "G\u0142owica \u0141azienka", "hardwareVersion": 1, "ieeeAddr": "0x60a423fffea7e316", "manufacturerID": 4098, "manufacturerName": "_TZE200_ckud7u2l", "model": "TS0601_thermostat", "networkAddress": 13177, "powerSource": "Battery", "stackVersion": 0, "type": "EndDevice", "zclVersion": 3 }, "eco_temperature": 18, "force": "normal", "holidays": [ { "hour": 4, "minute": 0, "temperature": 23 }, { "hour": 8, "minute": 0, "temperature": 23 }, { "hour": 8, "minute": 4, "temperature": 23 }, { "hour": 21, "minute": 2, "temperature": 20 }, { "hour": 21, "minute": 3, "temperature": 20 }, { "hour": 22, "minute": 0, "temperature": 20 } ], "holidays_schedule": "04:00/23\u00b0C 08:00/23\u00b0C 08:04/23\u00b0C 21:02/20\u00b0C 21:03/20\u00b0C 22:00/20\u00b0C", "linkquality": 115, "local_temperature": 23, "local_temperature_calibration": 0.5, "max_temperature": 30, "min_temperature": 5, "position": 100, "preset": "manual", "running_state": "heat", "system_mode": "auto", "update": { "state": "idle" }, "update_available": false, "valve_detection": null, "week": "7", "window_detection": "OFF", "window_detection_params": { "minutes": 10, "temperature": 5 }, "window_open": false, "workdays": [ { "hour": 4, "minute": 0, "temperature": 23 }, { "hour": 8, "minute": 0, "temperature": 20 }, { "hour": 14, "minute": 1, "temperature": 22 }, { "hour": 17, "minute": 2, "temperature": 23 }, { "hour": 21, "minute": 3, "temperature": 20 }, { "hour": 21, "minute": 4, "temperature": 20 } ], "workdays_schedule": "04:00/23\u00b0C 08:00/20\u00b0C 14:01/22\u00b0C 17:02/23\u00b0C 21:03/20\u00b0C 21:04/20\u00b0C", "friendly_name": "G\u0142owica \u0141azienka", "supported_features": 17 }, "last_changed": "2022-10-11T06:08:21.725622+00:00", "last_updated": "2022-10-11T06:08:21.725622+00:00", "context": { "id": "01GF2TH3PX32JGXYXQRHJR3Y4H", "parent_id": null, "user_id": null } }, "external_temperature_sensor": { "entity_id": "sensor.aqara_lazienka_temperature", "state": "22.3", "attributes": { "state_class": "measurement", "battery": 100, "device": { "applicationVersion": 5, "dateCode": "20191205", "friendlyName": "Aqara \u0141azienka", "hardwareVersion": 30, "ieeeAddr": "0x00158d0006694b1b", "manufacturerID": 4151, "manufacturerName": "LUMI", "model": "WSDCGQ11LM", "networkAddress": 49801, "powerSource": "Battery", "softwareBuildID": "3000-0001", "stackVersion": 2, "type": "EndDevice", "zclVersion": 1 }, "humidity": 45.1, "linkquality": 107, "power_outage_count": 13, "pressure": 1009.4, "temperature": 22.3, "voltage": 3025, "unit_of_measurement": "\u00b0C", "device_class": "temperature", "friendly_name": "Aqara \u0141azienka temperature" }, "last_changed": "2022-10-11T05:21:17.631879+00:00", "last_updated": "2022-10-11T05:59:33.925600+00:00", "context": { "id": "01GF2T1095QBVAWDWV5B2CX5Q4", "parent_id": null, "user_id": null } }, "window_sensor": { "entity_id": "group.okna_salon", "state": "off", "attributes": { "entity_id": [ "binary_sensor.okno_balkon_contact", "binary_sensor.okno_salon_contact", "binary_sensor.okno_sypialnia_contact" ], "order": 3, "friendly_name": "okna_salon" }, "last_changed": "2022-10-11T04:35:00.723827+00:00", "last_updated": "2022-10-11T04:35:00.723827+00:00", "context": { "id": "01GF2N65ZK38MCM5TBXQXEF23M", "parent_id": null, "user_id": null } } } }