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
775 stars 122 forks source link

BT beta-54: Danfoss Ally overheating #789

Closed bsafh closed 1 year ago

bsafh commented 1 year ago

Prerequisites

climate.trv_dannfoss_schlafzimmer_tur_thermostat
hvac_modes:
  - 'off'
  - heat
min_temp: 5
max_temp: 35
current_temperature: 19.9
temperature: 19.7
hvac_action: heating
system_mode: '[<SystemMode.Heat: 4>]/heat'
occupied_heating_setpoint: 1970
pi_heating_demand: 27
friendly_name: TRV_Dannfoss_Schlafzimmer_Tür Thermostat
supported_features: 1
target_temp_step: 0.5
climate.trv_danfoss_schlafzimmer_fenster_thermostat
hvac_modes:
  - 'off'
  - heat
min_temp: 5
max_temp: 35
current_temperature: 20.1
temperature: 35
hvac_action: heating
system_mode: '[<SystemMode.Heat: 4>]/heat'
occupied_heating_setpoint: 3500
pi_heating_demand: 81
friendly_name: TRV_Danfoss_Schlafzimmer_Fenster Thermostat
supported_features: 1
target_temp_step: 0.5
climate.trv_ai_schlafzimmer_1
hvac_modes:
  - heat
  - 'off'
min_temp: 5
max_temp: 35
target_temp_step: 0.5
current_temperature: 18.7
temperature: 18
hvac_action: heating
window_open: false
call_for_heat: true
last_change: '2022-12-18T10:04:03.827501'
saved_temperature: null
humidity: 43.4
main_mode: heat
heating_power: 0.01
friendly_name: TRV_AI_Schlafzimmer_1
supported_features: 1
climate.trv_ai_schlafzimmer_2
hvac_modes:
  - heat
  - 'off'
min_temp: 5
max_temp: 35
target_temp_step: 0.5
current_temperature: 17.9
temperature: 35
hvac_action: heating
window_open: false
call_for_heat: true
last_change: '2022-12-19T11:23:44.697611'
saved_temperature: null
humidity: 59.3
main_mode: heat
heating_power: 0.01
friendly_name: TRV_AI_Schlafzimmer_2
supported_features: 1
{
 {
  "home_assistant": {
    "installation_type": "Home Assistant Supervised",
    "version": "2022.12.7",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.7",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "5.10.0-19-amd64",
    "supervisor": "2022.11.2",
    "host_os": "Debian GNU/Linux 11 (bullseye)",
    "docker_version": "20.10.21",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "version": "1.28.4",
      "requirements": [
        "aiogithubapi>=22.2.4"
      ]
    },
    "openweathermap_all": {
      "version": "0.0.1",
      "requirements": [
        "owm2json==0.1.89"
      ]
    },
    "climate_group": {
      "version": "0.4.2",
      "requirements": []
    },
    "holidays": {
      "version": "1.9.0",
      "requirements": [
        "python-dateutil>=2.8.2",
        "holidays>=0.14.2"
      ]
    },
    "openwrt": {
      "version": "0.0.1",
      "requirements": []
    },
    "homematicip_local": {
      "version": "1.24.2",
      "requirements": [
        "hahomematic==2022.12.4"
      ]
    },
    "kodi_media_sensors": {
      "version": "3.8.0",
      "requirements": []
    },
    "truenas": {
      "version": "0.0.0",
      "requirements": []
    },
    "tvh_rec": {
      "version": "0.0.1",
      "requirements": []
    },
    "nodered": {
      "version": "1.1.2",
      "requirements": []
    },
    "daily_schedule": {
      "version": "1.4.1",
      "requirements": []
    },
    "browser_mod": {
      "version": "2.1.2",
      "requirements": []
    },
    "kodi_recently_added": {
      "version": "2.0.3",
      "requirements": []
    },
    "better_thermostat": {
      "version": "1.0.0-beta54",
      "requirements": []
    },
    "ferienapidotde": {
      "version": "0.3.0",
      "requirements": [
        "ferien-api==0.3.7"
      ]
    },
    "climate_scheduler": {
      "version": "0.1.0",
      "requirements": []
    },
    "webrtc": {
      "version": "v2.3.1",
      "requirements": []
    },
    "gismeteo": {
      "version": "2.5.0",
      "requirements": []
    },
    "frigate": {
      "version": "3.0.0",
      "requirements": []
    },
    "zha_toolkit": {
      "version": "v0.8.28",
      "requirements": [
        "packaging>=20.8",
        "pytz"
      ]
    },
    "reversotts": {
      "version": "1.0.2",
      "requirements": [
        "pyttsreverso==0.4"
      ]
    },
    "tapo_control": {
      "version": "4.1.3",
      "requirements": [
        "pytapo==2.5",
        "onvif-zeep-async==1.2.0"
      ]
    },
    "picotts_remote": {
      "version": "1.0.1",
      "requirements": []
    },
    "smart_thermostat": {
      "version": "2021.11.1",
      "requirements": []
    },
    "scheduler": {
      "version": "v0.0.0",
      "requirements": []
    },
    "dwd_weather": {
      "version": "1.2.24",
      "requirements": [
        "simple_dwd_weatherforecast==1.1.5",
        "markdownify==0.6.5"
      ]
    },
    "shelly": {
      "version": "1.0.2",
      "requirements": [
        "pyShelly==1.0.2",
        "paho-mqtt==1.6.1",
        "websocket-client"
      ]
    },
    "opnsense": {
      "version": "0.1.0",
      "requirements": [
        "mac-vendor-lookup>=0.1.11"
      ]
    },
    "mass": {
      "version": "2022.12.1",
      "requirements": [
        "music-assistant==1.8.7.2",
        "git+https://github.com/music-assistant/databases@fix-breaking-sqlalchemy-cursor-changes#databases==0.6.3"
      ]
    },
    "dwains_dashboard": {
      "version": "3.3.0",
      "requirements": []
    }
  },
  "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-beta54",
    "config_flow": true,
    "dependencies": [
      "climate",
      "recorder"
    ],
    "after_dependencies": [
      "climate"
    ],
    "codeowners": [
      "@kartoffeltoby",
      "@RubenKelevra"
    ],
    "requirements": [],
    "is_built_in": false
  },
  "data": {
    "info": {
      "name": "TRV_AI_Schlafzimmer_1",
      "temperature_sensor": "sensor.temp_hum_schlafzimmer_3_temperature",
      "window_off_delay": 120,
      "off_temperature": 20,
      "humidity_sensor": "sensor.temp_hum_schlafzimmer_3_humidity",
      "outdoor_sensor": "sensor.temp_hum_terrase_3_temperature",
      "window_sensors": "binary_sensor.fenster_tur_schlafzimmer",
      "weather": "weather.openweathermap",
      "model": "eTRV0100"
    },
    "thermostat": {
      "climate.trv_dannfoss_schlafzimmer_tur_thermostat": {
        "name": "TRV_Dannfoss_Schlafzimmer_T\u00fcr Thermostat",
        "state": "heat",
        "attributes": {
          "hvac_modes": [
            "off",
            "heat"
          ],
          "min_temp": 5.0,
          "max_temp": 35.0,
          "current_temperature": 19.9,
          "temperature": 19.7,
          "hvac_action": "heating",
          "system_mode": "[<SystemMode.Heat: 4>]/heat",
          "occupied_heating_setpoint": 1970,
          "pi_heating_demand": 29,
          "friendly_name": "TRV_Dannfoss_Schlafzimmer_T\u00fcr Thermostat",
          "supported_features": 1,
          "target_temp_step": 0.5
        },
        "bt_config": {
          "calibration": "target_temp_based",
          "calibration_mode": "heating_power_calibration",
          "protect_overheating": true,
          "no_off_system_mode": false,
          "heat_auto_swapped": false,
          "child_lock": false,
          "homaticip": false
        },
        "bt_adapter": "zha",
        "bt_integration": "zha",
        "model": "eTRV0100"
      }
    },
    "external_temperature_sensor": {
      "entity_id": "sensor.temp_hum_schlafzimmer_3_temperature",
      "state": "18.7",
      "attributes": {
        "state_class": "measurement",
        "unit_of_measurement": "\u00b0C",
        "device_class": "temperature",
        "friendly_name": "Temp_Hum_Schlafzimmer_3 Temperature"
      },
      "last_changed": "2022-12-19T12:28:10.580595+00:00",
      "last_updated": "2022-12-19T12:28:10.580595+00:00",
      "context": {
        "id": "01GMN5P5EMVP9KGJVX432NZ6MQ",
        "parent_id": null,
        "user_id": null
      }
    },
    "window_sensor": {
      "entity_id": "binary_sensor.fenster_tur_schlafzimmer",
      "state": "off",
      "attributes": {
        "entity_id": [
          "binary_sensor.fenster_tur_5_ias_zone",
          "binary_sensor.fenster_tur_6_ias_zone",
          "binary_sensor.fenster_tur_9_ias_zone"
        ],
        "device_class": "opening",
        "friendly_name": "Fenster T\u00fcr Schlafzimmer"
      },
      "last_changed": "2022-12-19T04:46:34.169128+00:00",
      "last_updated": "2022-12-19T04:46:34.169128+00:00",
      "context": {
        "id": "01GMMB8Y5NM7J9SS47GCRK668D",
        "parent_id": null,
        "user_id": null
      }
    }
  }
}
}
{
{
  "home_assistant": {
    "installation_type": "Home Assistant Supervised",
    "version": "2022.12.7",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.7",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "5.10.0-19-amd64",
    "supervisor": "2022.11.2",
    "host_os": "Debian GNU/Linux 11 (bullseye)",
    "docker_version": "20.10.21",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "version": "1.28.4",
      "requirements": [
        "aiogithubapi>=22.2.4"
      ]
    },
    "openweathermap_all": {
      "version": "0.0.1",
      "requirements": [
        "owm2json==0.1.89"
      ]
    },
    "climate_group": {
      "version": "0.4.2",
      "requirements": []
    },
    "holidays": {
      "version": "1.9.0",
      "requirements": [
        "python-dateutil>=2.8.2",
        "holidays>=0.14.2"
      ]
    },
    "openwrt": {
      "version": "0.0.1",
      "requirements": []
    },
    "homematicip_local": {
      "version": "1.24.2",
      "requirements": [
        "hahomematic==2022.12.4"
      ]
    },
    "kodi_media_sensors": {
      "version": "3.8.0",
      "requirements": []
    },
    "truenas": {
      "version": "0.0.0",
      "requirements": []
    },
    "tvh_rec": {
      "version": "0.0.1",
      "requirements": []
    },
    "nodered": {
      "version": "1.1.2",
      "requirements": []
    },
    "daily_schedule": {
      "version": "1.4.1",
      "requirements": []
    },
    "browser_mod": {
      "version": "2.1.2",
      "requirements": []
    },
    "kodi_recently_added": {
      "version": "2.0.3",
      "requirements": []
    },
    "better_thermostat": {
      "version": "1.0.0-beta54",
      "requirements": []
    },
    "ferienapidotde": {
      "version": "0.3.0",
      "requirements": [
        "ferien-api==0.3.7"
      ]
    },
    "climate_scheduler": {
      "version": "0.1.0",
      "requirements": []
    },
    "webrtc": {
      "version": "v2.3.1",
      "requirements": []
    },
    "gismeteo": {
      "version": "2.5.0",
      "requirements": []
    },
    "frigate": {
      "version": "3.0.0",
      "requirements": []
    },
    "zha_toolkit": {
      "version": "v0.8.28",
      "requirements": [
        "packaging>=20.8",
        "pytz"
      ]
    },
    "reversotts": {
      "version": "1.0.2",
      "requirements": [
        "pyttsreverso==0.4"
      ]
    },
    "tapo_control": {
      "version": "4.1.3",
      "requirements": [
        "pytapo==2.5",
        "onvif-zeep-async==1.2.0"
      ]
    },
    "picotts_remote": {
      "version": "1.0.1",
      "requirements": []
    },
    "smart_thermostat": {
      "version": "2021.11.1",
      "requirements": []
    },
    "scheduler": {
      "version": "v0.0.0",
      "requirements": []
    },
    "dwd_weather": {
      "version": "1.2.24",
      "requirements": [
        "simple_dwd_weatherforecast==1.1.5",
        "markdownify==0.6.5"
      ]
    },
    "shelly": {
      "version": "1.0.2",
      "requirements": [
        "pyShelly==1.0.2",
        "paho-mqtt==1.6.1",
        "websocket-client"
      ]
    },
    "opnsense": {
      "version": "0.1.0",
      "requirements": [
        "mac-vendor-lookup>=0.1.11"
      ]
    },
    "mass": {
      "version": "2022.12.1",
      "requirements": [
        "music-assistant==1.8.7.2",
        "git+https://github.com/music-assistant/databases@fix-breaking-sqlalchemy-cursor-changes#databases==0.6.3"
      ]
    },
    "dwains_dashboard": {
      "version": "3.3.0",
      "requirements": []
    }
  },
  "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-beta54",
    "config_flow": true,
    "dependencies": [
      "climate",
      "recorder"
    ],
    "after_dependencies": [
      "climate"
    ],
    "codeowners": [
      "@kartoffeltoby",
      "@RubenKelevra"
    ],
    "requirements": [],
    "is_built_in": false
  },
  "data": {
    "info": {
      "name": "TRV_AI_Schlafzimmer_2",
      "temperature_sensor": "sensor.temp_hum_schlafzimmer_1_temperature",
      "window_off_delay": 120,
      "off_temperature": 20,
      "humidity_sensor": "sensor.temp_hum_schlafzimmer_1_humidity",
      "outdoor_sensor": "sensor.temp_hum_terrase_3_temperature",
      "window_sensors": "binary_sensor.fenster_tur_schlafzimmer",
      "weather": "weather.openweathermap",
      "model": "eTRV0100"
    },
    "thermostat": {
      "climate.trv_danfoss_schlafzimmer_fenster_thermostat": {
        "name": "TRV_Danfoss_Schlafzimmer_Fenster Thermostat",
        "state": "heat",
        "attributes": {
          "hvac_modes": [
            "off",
            "heat"
          ],
          "min_temp": 5.0,
          "max_temp": 35.0,
          "current_temperature": 20.0,
          "temperature": 35.0,
          "hvac_action": "heating",
          "system_mode": "[<SystemMode.Heat: 4>]/heat",
          "occupied_heating_setpoint": 3500,
          "pi_heating_demand": 86,
          "friendly_name": "TRV_Danfoss_Schlafzimmer_Fenster Thermostat",
          "supported_features": 1,
          "target_temp_step": 0.5
        },
        "bt_config": {
          "calibration": "target_temp_based",
          "calibration_mode": "heating_power_calibration",
          "protect_overheating": true,
          "no_off_system_mode": false,
          "heat_auto_swapped": false,
          "child_lock": false,
          "homaticip": false
        },
        "bt_adapter": "zha",
        "bt_integration": "zha",
        "model": "eTRV0100"
      }
    },
    "external_temperature_sensor": {
      "entity_id": "sensor.temp_hum_schlafzimmer_1_temperature",
      "state": "18.0",
      "attributes": {
        "state_class": "measurement",
        "unit_of_measurement": "\u00b0C",
        "device_class": "temperature",
        "friendly_name": "Temp_Hum_Schlafzimmer_1 temperature"
      },
      "last_changed": "2022-12-19T12:33:41.836840+00:00",
      "last_updated": "2022-12-19T12:33:41.836840+00:00",
      "context": {
        "id": "01GMN608YCNHG6Q4RA5KG9PG83",
        "parent_id": null,
        "user_id": null
      }
    },
    "window_sensor": {
      "entity_id": "binary_sensor.fenster_tur_schlafzimmer",
      "state": "off",
      "attributes": {
        "entity_id": [
          "binary_sensor.fenster_tur_5_ias_zone",
          "binary_sensor.fenster_tur_6_ias_zone",
          "binary_sensor.fenster_tur_9_ias_zone"
        ],
        "device_class": "opening",
        "friendly_name": "Fenster T\u00fcr Schlafzimmer"
      },
      "last_changed": "2022-12-19T04:46:34.169128+00:00",
      "last_updated": "2022-12-19T04:46:34.169128+00:00",
      "context": {
        "id": "01GMMB8Y5NM7J9SS47GCRK668D",
        "parent_id": null,
        "user_id": null
      }
    }
  }
}
}

Description

Both BT-devices are set to the same temperature.

one of them opens the valve to maximum and is set (by BT) to the maximum possible temperature and stays there forever.

the other is set to a more reasonable temperature and changes target temp according to external temp - BUT the external temperature which is finally reached is 2°C ABOVE the desired target temperature.

BOTH BT devices use "AI time based" algorithm and BOTH have "do not heat" activated.

Despite that, both behave totally different.

real TRV image image

BT TRV image image

Steps to Reproduce

  1. set temperature in BT UI card
  2. wait

Expected behavior:

both TRV behave the same and reach target temperature

Actual behavior:

one TRV goes to max and stays there forever, the over overheats by 2 °C

Versions

2022.12.6 beta-54

Additional Information

purposestesting commented 1 year ago

I have already reported that and also asked for danfoss ally integration but it´s good to see that more people have the same issues.

bsafh commented 1 year ago

Still the same with Beta-55 - but only with one of the two radiators in that room. Both are Danfoss Ally TRVs

image

image

real TRVs (same order as above):

image

image

settings are

purposestesting commented 1 year ago

Any news about this?

wtom commented 1 year ago

How is it with version 1.0?

purposestesting commented 1 year ago

I have nearly the same setup. It is annoying. Some TRV´s are overheating, other never reach target temperature. Danfoss ally needs more attention. They really need offset calibration.

https://github.com/Koenkk/zigbee2mqtt/discussions/11257 https://community.home-assistant.io/t/zha-zigbee2mqtt-danfoss-ally-send-external-temperature-to-trv/465213/ https://community.home-assistant.io/t/danfoss-ally-trv-working-with-remote-temp-sensor

purposestesting commented 1 year ago

https://github.com/KartoffelToby/better_thermostat/issues/207 It seems, someone just started adding danfoss ally / popp (they are the same trv´s) a long time ago, but never finished.

purposestesting commented 1 year ago

I added links which could be helpful. https://github.com/KartoffelToby/better_thermostat/issues/770