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
874 stars 130 forks source link

Delay for window detection #985

Closed darkkatarsis closed 1 year ago

darkkatarsis commented 1 year ago

What is the feature?

Ability to define a delay after the thermostat will be turned off when an open window is detected.

Description

I think a good example is when someone goes out to the balcony for a moment, and closes the door behind. There is no point in turning off/on thermostats that unnecessarily shorten battery life

Additional Information

chuckfy commented 1 year ago

If they didn't change it with a newer version (maybe you can add you debug output so we can see your system version) you can set the delay when setting up the integration.

In #903 I linked a screenshot to this.

darkkatarsis commented 1 year ago

@chuckfy This is exactly what I meant, unfortunately I never saw this option

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.3.1",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.10.10",
    "docker": true,
    "arch": "x86_64",
<img width="574" alt="Screenshot 2023-03-05 at 12 13 13" src="https://user-images.githubusercontent.com/24244919/222957087-86a3f588-77cc-47fa-b1b4-0ea8d38a3955.png">

    "timezone": "Europe/Warsaw",
    "os_name": "Linux",
    "os_version": "5.15.90",
    "supervisor": "2023.01.1",
    "host_os": "Home Assistant OS 9.5",
    "docker_version": "20.10.22",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "average": {
      "version": "2.3.0",
      "requirements": []
    },
    "roborock": {
      "version": "0.1.1",
      "requirements": [
        "python-roborock==0.1.5"
      ]
    },
    "dahua": {
      "version": "0.5.0",
      "requirements": []
    },
    "xiaomi_gateway3": {
      "version": "3.1.0",
      "requirements": [
        "zigpy>=0.42.0"
      ]
    },
    "huesyncbox": {
      "version": "1.23.0",
      "requirements": [
        "aiohuesyncbox==0.0.21"
      ]
    },
    "hacs": {
      "version": "1.31.0",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "discord_game": {
      "version": "4.2.6",
      "requirements": [
        "nextcord==2.0.0a8",
        "addict",
        "aiohttp"
      ]
    },
    "xiaomi_cloud_map_extractor": {
      "version": "v2.2.0",
      "requirements": [
        "pillow",
        "pybase64",
        "python-miio",
        "requests",
        "pycryptodome"
      ]
    },
    "webrtc": {
      "version": "v3.1.0",
      "requirements": []
    },
    "browser_mod": {
      "version": "2.2.0",
      "requirements": []
    },
    "shelly": {
      "version": "1.0.4",
      "requirements": [
        "pyShelly==1.0.2",
        "paho-mqtt==1.6.1",
        "websocket-client"
      ]
    },
    "better_thermostat": {
      "version": "1.0.1",
      "requirements": []
    },
    "spotcast": {
      "version": "v3.6.30",
      "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.1",
    "config_flow": true,
    "dependencies": [
      "climate",
      "recorder"
    ],
    "after_dependencies": [
      "climate"
    ],
    "codeowners": [
      "@kartoffeltoby"
    ],
    "requirements": [],
    "is_built_in": false
  },
  "data": {
    "info": {
      "name": "Bedroom Smart",
      "temperature_sensor": "sensor.bedroom_temperature",
      "off_temperature": 16,
      "humidity_sensor": "sensor.bedroom_humidity",
      "window_sensors": "binary_sensor.bedroom_window_contact",
      "weather": "weather.openweathermap",
      "outdoor_sensor": null,
      "window_off_delay": 0,
      "model": "SRTS-A01"
    },
    "thermostat": {
      "climate.climate_bedroom": {
        "name": "climate_bedroom",
        "state": "heat",
        "attributes": {
          "hvac_modes": [
            "off",
            "heat"
          ],
          "min_temp": 5.0,
          "max_temp": 30.0,
          "target_temp_step": 0.5,
          "preset_modes": [
            "none",
            "manual",
            "away",
            "auto"
          ],
          "current_temperature": 20.3,
          "temperature": 19.0,
          "preset_mode": "manual",
          "away_preset_temperature": "7.0",
          "battery": 100,
          "calibrated": true,
          "child_lock": "UNLOCK",
          "device_temperature": 31,
          "internal_heating_setpoint": 25.5,
          "linkquality": 91,
          "local_temperature": 20.3,
          "occupied_heating_setpoint": 19,
          "power_outage_count": 5,
          "preset": "manual",
          "schedule": null,
          "schedule_settings": null,
          "sensor": "external",
          "setup": false,
          "system_mode": "heat",
          "update": {
            "installed_version": 2329,
            "latest_version": 2329,
            "state": "idle"
          },
          "update_available": false,
          "valve_alarm": false,
          "valve_detection": "OFF",
          "voltage": 3000,
          "window_detection": "OFF",
          "window_open": false,
          "friendly_name": "climate_bedroom",
          "supported_features": 17
        },
        "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": "mqtt",
        "bt_integration": "mqtt",
        "model": "SRTS-A01"
      }
    },
    "external_temperature_sensor": {
      "entity_id": "sensor.bedroom_temperature",
      "state": "20.29",
      "attributes": {
        "state_class": "measurement",
        "battery": 100,
        "humidity": 40.56,
        "linkquality": 87,
        "power_outage_count": 10,
        "pressure": 985.7,
        "temperature": 20.29,
        "voltage": 3005,
        "unit_of_measurement": "\u00b0C",
        "device_class": "temperature",
        "friendly_name": "Bedroom_temperature",
        "icon": "mdi:thermometer"
      },
      "last_changed": "2023-03-05T11:01:56.500209+00:00",
      "last_updated": "2023-03-05T11:01:56.540806+00:00",
      "context": {
        "id": "01GTRPYWNWZNWHZBNQ00WES5J3",
        "parent_id": null,
        "user_id": null
      }
    },
    "window_sensor": {
      "entity_id": "binary_sensor.bedroom_window_contact",
      "state": "off",
      "attributes": {
        "battery": 100,
        "contact": true,
        "device_temperature": 24,
        "linkquality": 72,
        "power_outage_count": 84,
        "temperature": 25,
        "voltage": 3005,
        "device_class": "door",
        "friendly_name": "Window bedroom"
      },
      "last_changed": "2023-03-05T10:13:44.855069+00:00",
      "last_updated": "2023-03-05T11:06:41.353895+00:00",
      "context": {
        "id": "01GTRQ7JT9VJPWQE44E72DARRE",
        "parent_id": null,
        "user_id": null
      }
    }
  }
}
Screenshot 2023-03-05 at 12 13 13