Thermostat

The thermostat actor is used to control the temperature of climate entities.

Often, people ask me whether Schedy can be used with their particular heating setup. I always tend to repeat myself in these situations, hence I want to explain here what the exact preconditions for using Schedy for heating control actually are.

  1. You need at least one thermostat in each room you want to control. Such a thermostat must be recognized as a climate entity in Home Assistant, and setting the target temperature from the Home Assistant web interface should work reliably. Wall thermostats can be controlled the same way as radiator thermostats, as long as they fulfill these conditions as well. If you only have a switchable heater and an external temperature sensor, have a look at Home Assistant’s Generic Thermostat platform to build a virtual thermostat first.
  2. If your thermostat is used for both heating and cooling, there has to be an automatic HVAC mode which does heating/cooling based on the difference between current and set target temperature. Schedy will only switch the HVAC mode between on and off (exact names can be configured) and set the target temperature according to the room’s schedule.

If you are happy with these points and your setup fulfills them, there should be nothing stopping you from integrating Schedy’s great scheduling capabilities with your home’s heating. You can then go on and create a Schedy configuration with thermostat actors.

Configuration

This is a full actor configuration with comments on each available setting. The default values are provided as well. If you don’t need a particular setting, omit it or leave it commented out.

# Delta that is added to the temperature value sent to this
# thermostat in order to correct potential inaccuracies of
# the temperature sensor.
#delta: 0

# The minimum/maximum temperature the thermostat supports.
# If configured, temperatures outside the supported range are changed
# to the minimum/maximum value before they're sent to the thermostat.
# null means there is no limitation.
#min_temp: null
#max_temp: null

# When this is set to something different than "OFF", Schedy will
# rewrite the value OFF into this temperature before sending it to
# the thermostat. You can set it to 4.0 degrees (if your thermostat
# supports this low value) in order to prevent frost-induced damage
# to your heating setup.
# This setting is required when you want to send OFF to thermostats with
# disabled HVAC mode support.
#off_temp: "OFF"

# Set this to false if your thermostat doesn't support HVAC modes.
# Please note that you won't be able to turn it off completely without
# HVAC mode support. Remember to also configure off_temp when you
# disable this feature.
#supports_hvac_modes: true

# These two settings can be used to tweak the names of the HVAC modes.
#hvac_mode_on: heat
#hvac_mode_off: "off"

Supported Values

Your schedules must generate valid temperature values. Those can be integers (20) or floats (21.5). Strings are tried to be converted to numbers automatically for you.

A special value is OFF, which is an object available in the evaluation environment when using the thermostat actor type. If this object is returned from an expression, it will turn the thermostats off. The equivalent for the OFF object to use when using plain values instead of expressions is the string "OFF" (case-insensitive).

Note

When working with the Add() postprocessor and the result is OFF, it will stay OFF, no matter what’s being added to it.

Statistical Parameters

The following statistical parameters are available when using this actor type. In order to learn how to configure a statistical parameter, see the chapter about Statistics.

temp_delta

This parameter measures the difference between target and current temperature for all thermostats in the associated rooms. It can be used to control a source of heating energy, such as a fuel oven, with Home Assistant automations.

Options provided because this is a TempDeltaParameter:

  • off_value: Specify how to handle thermostats which are turned off. Specify either the number to assume as the delta or null, which causes the thermostat to be excluded from statistics collection. The default value is 0.

Options provided because this is a RoomBasedParameter:

  • rooms: A list of rooms this parameter should consider. When you leave the list empty, all rooms are considered.

Note

When you see something like some_id or other_id in the following examples, these are meant to be replaced by entity ids of individual actors.

The parameter calculates the minimum, average and maximum of all collected values and adds them as min, avg and max attributes to the parameter entity.

Reacting to changes of the attributes can easily be done with the numeric_state trigger, together with a value_template like {{ state.attributes.max }} in Home Assistant.

Options provided because this is a MinAvgMaxParameter:

  • factors: Specify a factor which an individual value should be multiplied with before adding it to the list of values. Note that this doesn’t change the weighting of a value for calculating the average, it instead changes the value itself. The default factor is 1.

    factors:
      some_id: 1.5
      other_id: 2
    
  • weights: Specify how individual values should be weighted when calculating the average value. The default weight is 1 and a weight of 0 causes the value to be excluded completely. You may want to use this feature to indicate that some values are more or less important than others and have this fact reflected in the statistics.

    weights:
      some_id: 0.5
      other_id: 0