KartoffelToby / better_thermostat

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.
https://better-thermostat.org
GNU Affero General Public License v3.0
746 stars 122 forks source link

BT always setting thermostat too high #1305

Open mnul opened 6 months ago

mnul commented 6 months ago

Prerequisites

{
{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2024.2.5",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.12.1",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.6.16-haos",
    "supervisor": "2024.02.1",
    "host_os": "Home Assistant OS 12.0",
    "docker_version": "24.0.7",
    "chassis": "embedded",
    "run_as_root": true
  },
  "custom_components": {
    "moonraker": {
      "version": "1.1.1",
      "requirements": [
        "moonraker-api==2.0.5"
      ]
    },
    "waste_collection_schedule": {
      "version": "1.45.1",
      "requirements": [
        "icalendar",
        "recurring_ical_events",
        "icalevents",
        "beautifulsoup4",
        "lxml"
      ]
    },
    "kia_uvo": {
      "version": "2.22.0",
      "requirements": [
        "hyundai_kia_connect_api==3.17.5"
      ]
    },
    "xiaomi_miot": {
      "version": "0.7.15",
      "requirements": [
        "construct>=2.10.56",
        "python-miio>=0.5.6",
        "micloud>=0.3"
      ]
    },
    "adaptive_lighting": {
      "version": "1.20.0",
      "requirements": [
        "ulid-transform"
      ]
    },
    "mass": {
      "version": "2024.2.0",
      "requirements": [
        "music-assistant==2.0.0b83"
      ]
    },
    "tapo_control": {
      "version": "5.4.13",
      "requirements": [
        "pytapo==3.3.18"
      ]
    },
    "better_thermostat": {
      "version": "1.5.0-beta7",
      "requirements": []
    },
    "samsungtv_tizen": {
      "version": "1.6.1",
      "requirements": [
        "websocket-client>=0.56.0",
        "wakeonlan>=2.0.0",
        "numpy>=1.19.2"
      ]
    },
    "hacs": {
      "version": "1.34.0",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "eufy_security": {
      "version": "8.0.1",
      "requirements": [
        "websocket-client==1.4.2",
        "aiortsp==1.3.7"
      ]
    },
    "google_home": {
      "version": "1.11.0",
      "requirements": [
        "glocaltokens==0.7.0"
      ]
    },
    "samsungtv_smart": {
      "version": "0.13.4",
      "requirements": [
        "websocket-client!=1.4.0,>=0.58.0",
        "wakeonlan>=2.0.0",
        "aiofiles>=0.8.0",
        "casttube>=0.2.1"
      ]
    },
    "webrtc": {
      "version": "v3.5.1",
      "requirements": []
    },
    "thermal_comfort": {
      "version": "2.2.2",
      "requirements": []
    },
    "opnsense": {
      "version": "0.1.0",
      "requirements": [
        "mac-vendor-lookup>=0.1.11",
        "python-dateutil"
      ]
    },
    "teamtracker": {
      "version": "0.1",
      "requirements": [
        "arrow",
        "aiofiles"
      ]
    },
    "proxmoxve": {
      "version": "3.4.0",
      "requirements": [
        "proxmoxer==2.0.1"
      ]
    },
    "ytube_music_player": {
      "version": "20240131.01",
      "requirements": [
        "ytmusicapi==1.4.2",
        "pytube==15.0.0",
        "integrationhelper==0.2.2"
      ]
    },
    "remote_homeassistant": {
      "version": "3.11",
      "requirements": []
    },
    "ui_lovelace_minimalist": {
      "version": "v1.3.9",
      "requirements": [
        "aiofiles==0.8.0",
        "aiogithubapi>=22.2.4"
      ]
    },
    "homematicip_local": {
      "version": "1.56.0",
      "requirements": [
        "hahomematic==2024.2.4"
      ]
    },
    "xiaomi_miio_fan": {
      "version": "2023.12.0.0",
      "requirements": [
        "construct==2.10.68",
        "python-miio>=0.5.12"
      ]
    },
    "alarmo": {
      "version": "v1.9.14",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "better_thermostat",
    "name": "Better Thermostat",
    "after_dependencies": [
      "climate"
    ],
    "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.5.0-beta7",
    "is_built_in": false
  },
  "data": {
    "info": {
      "name": "Wohnzimmer",
      "temperature_sensor": "sensor.home_buttons_wohnzimmer_temperature",
      "off_temperature": 99,
      "tolerance": 0.0,
      "humidity_sensor": "sensor.home_buttons_wohnzimmer_humidity",
      "window_sensors": "binary_sensor.wohnzi_tuer_opening",
      "outdoor_sensor": null,
      "weather": null,
      "cooler": null,
      "window_off_delay": 0,
      "window_off_delay_after": 0,
      "model": "HM-CC-RT-DN",
      "target_temp_step": 0.0
    },
    "thermostat": {
      "climate.thermostat_wohnzimmer_2": {
        "name": "Thermostat Wohnzimmer",
        "state": "heat",
        "attributes": {
          "hvac_modes": [
            "auto",
            "heat",
            "off"
          ],
          "min_temp": 5.0,
          "max_temp": 30.5,
          "target_temp_step": 0.5,
          "preset_modes": [
            "boost",
            "comfort",
            "eco",
            "none"
          ],
          "current_temperature": 25.9,
          "temperature": 24.5,
          "hvac_action": "heating",
          "preset_mode": "none",
          "interface_id": "RaspberryMatic-BidCos-RF",
          "address": "PEQ1631381:4",
          "model": "HM-CC-RT-DN",
          "entity_type": "custom",
          "value_state": "valid",
          "friendly_name": "Thermostat Wohnzimmer",
          "supported_features": 401
        },
        "bt_config": {
          "calibration": "target_temp_based",
          "calibration_mode": "no_calibration",
          "protect_overheating": false,
          "no_off_system_mode": false,
          "heat_auto_swapped": false,
          "child_lock": false,
          "homaticip": true
        },
        "bt_adapter": "homematicip_local",
        "bt_integration": "homematicip_local",
        "model": "HM-CC-RT-DN"
      }
    },
    "external_temperature_sensor": {
      "entity_id": "sensor.home_buttons_wohnzimmer_temperature",
      "state": "21.82",
      "attributes": {
        "unit_of_measurement": "\u00b0C",
        "device_class": "temperature",
        "friendly_name": "Home Buttons Wohnzimmer Temperature"
      },
      "last_changed": "2024-03-01T16:02:38.235395+00:00",
      "last_updated": "2024-03-01T16:02:38.235395+00:00",
      "context": {
        "id": "01HQXC1NGV85H738DY7M7ANCRH",
        "parent_id": null,
        "user_id": null
      }
    },
    "window_sensor": {
      "entity_id": "binary_sensor.wohnzi_tuer_opening",
      "state": "off",
      "attributes": {
        "device_class": "window",
        "icon": "mdi:door",
        "friendly_name": "T\u00fcr Wohnzimmer"
      },
      "last_changed": "2024-03-01T15:45:36.756642+00:00",
      "last_updated": "2024-03-01T15:45:36.756642+00:00",
      "context": {
        "id": "01HQXB2FZM3PYTPZSX58BNFM1H",
        "parent_id": null,
        "user_id": null
      }
    }
  }
}
}

Description

Some of my BT climate entities keep on heating although the target temperature is a lot lower than the room temperature. Today I had a BT target of 20,5°C, actual temp was 22°C and BT set the thermostat to 26°C. This should not happen. In my screenshot you can see that although the actual temp was always well above BTs target temperature, BT set the thermostat to even higher temps. To me the expected behaviour would be once the target temperature is reached, the heating will stop/reduce so it is maintaining the current temp. If the temp is higher it will reduce the target temperature if the temp is lower it will raise the target temperature

The current situation leads to rooms that are way too hot.

bt-ha

Versions

BT: 1.5.0-beta7 HA: 2024.2.5

wtom commented 6 months ago

Homematic has his own algorithm, you should use the "no calibration" mode.