Skip to content

Releases: sandreialexandru/Smart-Heating-Control

Smart Heating Control v2.6.2b8

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:38

Integration

  • 🔥 Start and stop the source by its temperature (#6):
    a thermostat as the heat source of the house (Hive, Nest, Tado, Netatmo, a
    Generic Thermostat) starts the boiler only by its own target and sensor, so
    switched to heat with a low target it never fired it. Now, like a TRV
    heated by the room sensors, it stays in its heat mode and gets the Maximum temperature of the
    house to start (not above its own maximum) and the Frost protection of the
    house to stop (not below its minimum): the boiler fires when the rooms ask,
    and the thermostat still protects against frost if Home Assistant stops. A
    target set on it by hand is taken back. New option Start and stop the source by its temperature
    (Heat source and heat demand → Heat source), on by default; off keeps the
    old behaviour (only its mode, heat / off). A thermostat without a target
    temperature is still switched by its mode.
  • 🌡️ Heat source idle temperature (optional, with Start and stop the source by its temperature): what the
    thermostat source gets while no room asks, instead of the frost protection
    (e.g. 17.5 °C for a hallway thermostat that also heats radiators without
    TRVs). Below the maximum of the house.

Setup

  • 🏷️ Clearer choices for the heating of the whole house. Other thermostats
    / TRVs
    is now Another thermostat for the whole home, and No heating
    devices yet
    is now Each room heats separately (TRVs, heaters, AC): a
    house with TRVs on the radiators picks the second one and adds its rooms.
    Only the labels and the explanations change; existing houses are not
    affected. The guide has a new section, Which setup for my house?, with
    every kind of home, and the configurator a new case for a thermostat that
    starts the boiler.
  • 🏷️ No more options called boost. For the whole-house zone, Boost TRV
    temperature while heating
    is now Heat by the room sensors (also for a
    thermostat, not only for TRVs), with its page Heating by the room sensors.
    For a room it is now Heat by the room sensor, with its page Heating by
    the room sensor
    (was TRV boost); Boost temperature is now Temperature
    while heating
    in both. For the heat source the new option is Start and
    stop the source by its temperature
    . The explanation of each says when to
    choose the other one. The card shows By the room sensor instead of TRV
    boost
    . The explanations of the zone and of the room options now say what
    the devices get while heating: the Temperature while heating, by default
    the maximum temperature of the house. Only the labels and the explanations
    change; the settings are kept.

Card

  • 🔌 Devices in the Details: every entity of the room (thermostats,
    relays, temperature and humidity sensors, windows, occupancy, calibration)
    with its role and its state now; an unavailable, unknown or missing one is
    marked, a tap opens it. New devices attribute of the Decision sensor.

Development

  • 🧪 Tests for what mutation testing found unchecked: the coldest wall below
    0 °C outside and the mold thresholds, distances between coordinates and a
    zone without them, far → nearby as an arrival, times like 24:00 or 06:60,
    the start of a schedule day that does not begin at midnight, the highest
    sun of the day in Bucharest in June and November, the clouds of every
    weather condition, and the renaming of a whole-house zone named like the
    house.
  • 🧪 Tests from the first full mutation run (Python 62.8 %, card 30.2 % of
    the mutants noticed): the limit of ±3 °C on the adjustments, the levels
    exactly at the maximum or the frost protection, the edges of the band with
    the learned inertia, no optimal stop when it is off and the ones exactly on
    time, the texts in °F, which stretches the learning uses, the time to the
    target and the expected temperature during an optimal stop, every attribute
    of the Decision sensor, a preset or an hvac mode set by hand coming back
    after a window, the calibration within the range of its number, the valve
    exercise (5 minutes, after a manual change, only on its day), the alert for
    rooms that stay cold; in the card the history, the prediction and the
    tooltip values, and every button (mode, pause, guests, buttons of the
    house and the room, a temperature for a while, vacation dates, the
    heating time period, the schedule editor and its profiles).
  • 🧬 The card's mutation jobs are split by how many mutants their lines have
    (12 jobs of about 400), not by equal lines (from 74 to 919).

Smart Heating Control v2.6.2b7

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:29

Integration

  • 🔥 Start and stop the source by its temperature (#6):
    a thermostat as the heat source of the house (Hive, Nest, Tado, Netatmo, a
    Generic Thermostat) starts the boiler only by its own target and sensor, so
    switched to heat with a low target it never fired it. Now, like a TRV
    heated by the room sensors, it stays in its heat mode and gets the Maximum temperature of the
    house to start (not above its own maximum) and the Frost protection of the
    house to stop (not below its minimum): the boiler fires when the rooms ask,
    and the thermostat still protects against frost if Home Assistant stops. A
    target set on it by hand is taken back. New option Start and stop the source by its temperature
    (Heat source and heat demand → Heat source), on by default; off keeps the
    old behaviour (only its mode, heat / off). A thermostat without a target
    temperature is still switched by its mode.
  • 🌡️ Heat source idle temperature (optional, with Start and stop the source by its temperature): what the
    thermostat source gets while no room asks, instead of the frost protection
    (e.g. 17.5 °C for a hallway thermostat that also heats radiators without
    TRVs). Below the maximum of the house.

Setup

  • 🏷️ Clearer choices for the heating of the whole house. Other thermostats
    / TRVs
    is now Another thermostat for the whole home, and No heating
    devices yet
    is now Each room heats separately (TRVs, heaters, AC): a
    house with TRVs on the radiators picks the second one and adds its rooms.
    Only the labels and the explanations change; existing houses are not
    affected. The guide has a new section, Which setup for my house?, with
    every kind of home, and the configurator a new case for a thermostat that
    starts the boiler.
  • 🏷️ No more options called boost. For the whole-house zone, Boost TRV
    temperature while heating
    is now Heat by the room sensors (also for a
    thermostat, not only for TRVs), with its page Heating by the room sensors.
    For a room it is now Heat by the room sensor, with its page Heating by
    the room sensor
    (was TRV boost); Boost temperature is now Temperature
    while heating
    in both. For the heat source the new option is Start and
    stop the source by its temperature
    . The explanation of each says when to
    choose the other one. The card shows By the room sensor instead of TRV
    boost
    . Only the labels and the explanations change; the settings are kept.

Card

  • 🔌 Devices in the Details: every entity of the room (thermostats,
    relays, temperature and humidity sensors, windows, occupancy, calibration)
    with its role and its state now; an unavailable, unknown or missing one is
    marked, a tap opens it. New devices attribute of the Decision sensor.

Development

  • 🧪 Tests for what mutation testing found unchecked: the coldest wall below
    0 °C outside and the mold thresholds, distances between coordinates and a
    zone without them, far → nearby as an arrival, times like 24:00 or 06:60,
    the start of a schedule day that does not begin at midnight, the highest
    sun of the day in Bucharest in June and November, the clouds of every
    weather condition, and the renaming of a whole-house zone named like the
    house.
  • 🧪 Tests from the first full mutation run (Python 62.8 %, card 30.2 % of
    the mutants noticed): the limit of ±3 °C on the adjustments, the levels
    exactly at the maximum or the frost protection, the edges of the band with
    the learned inertia, no optimal stop when it is off and the ones exactly on
    time, the texts in °F, which stretches the learning uses, the time to the
    target and the expected temperature during an optimal stop, every attribute
    of the Decision sensor, a preset or an hvac mode set by hand coming back
    after a window, the calibration within the range of its number, the valve
    exercise (5 minutes, after a manual change, only on its day), the alert for
    rooms that stay cold; in the card the history, the prediction and the
    tooltip values, and every button (mode, pause, guests, buttons of the
    house and the room, a temperature for a while, vacation dates, the
    heating time period, the schedule editor and its profiles).
  • 🧬 The card's mutation jobs are split by how many mutants their lines have
    (12 jobs of about 400), not by equal lines (from 74 to 919).

Smart Heating Control v2.6.2b6

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:19

Integration

  • 🔥 Start and stop the source by its temperature (#6):
    a thermostat as the heat source of the house (Hive, Nest, Tado, Netatmo, a
    Generic Thermostat) starts the boiler only by its own target and sensor, so
    switched to heat with a low target it never fired it. Now, like a TRV
    heated by the room sensors, it stays in its heat mode and gets the Maximum temperature of the
    house to start (not above its own maximum) and the Frost protection of the
    house to stop (not below its minimum): the boiler fires when the rooms ask,
    and the thermostat still protects against frost if Home Assistant stops. A
    target set on it by hand is taken back. New option Start and stop the source by its temperature
    (Heat source and heat demand → Heat source), on by default; off keeps the
    old behaviour (only its mode, heat / off). A thermostat without a target
    temperature is still switched by its mode.
  • 🌡️ Heat source idle temperature (optional, with Start and stop the source by its temperature): what the
    thermostat source gets while no room asks, instead of the frost protection
    (e.g. 17.5 °C for a hallway thermostat that also heats radiators without
    TRVs). Below the maximum of the house.

Setup

  • 🏷️ Clearer choices for the heating of the whole house. Other thermostats
    / TRVs
    is now Another thermostat for the whole home, and No heating
    devices yet
    is now Each room heats separately (TRVs, heaters, AC): a
    house with TRVs on the radiators picks the second one and adds its rooms.
    Only the labels and the explanations change; existing houses are not
    affected. The guide has a new section, Which setup for my house?, with
    every kind of home, and the configurator a new case for a thermostat that
    starts the boiler.
  • 🏷️ Two options that were both called boost now have their own names. For
    the whole-house zone, Boost TRV temperature while heating is now Heat by
    the room sensors
    (also for a thermostat, not only for TRVs), with its own
    page Heating by the room sensors. For the heat source the new option is
    Start and stop the source by its temperature. The explanation of each
    says when to choose the other one. Only the labels and the explanations
    change.

Card

  • 🔌 Devices in the Details: every entity of the room (thermostats,
    relays, temperature and humidity sensors, windows, occupancy, calibration)
    with its role and its state now; an unavailable, unknown or missing one is
    marked, a tap opens it. New devices attribute of the Decision sensor.

Development

  • 🧪 Tests for what mutation testing found unchecked: the coldest wall below
    0 °C outside and the mold thresholds, distances between coordinates and a
    zone without them, far → nearby as an arrival, times like 24:00 or 06:60,
    the start of a schedule day that does not begin at midnight, the highest
    sun of the day in Bucharest in June and November, the clouds of every
    weather condition, and the renaming of a whole-house zone named like the
    house.
  • 🧪 Tests from the first full mutation run (Python 62.8 %, card 30.2 % of
    the mutants noticed): the limit of ±3 °C on the adjustments, the levels
    exactly at the maximum or the frost protection, the edges of the band with
    the learned inertia, no optimal stop when it is off and the ones exactly on
    time, the texts in °F, which stretches the learning uses, the time to the
    target and the expected temperature during an optimal stop, every attribute
    of the Decision sensor, a preset or an hvac mode set by hand coming back
    after a window, the calibration within the range of its number, the valve
    exercise (5 minutes, after a manual change, only on its day), the alert for
    rooms that stay cold; in the card the history, the prediction and the
    tooltip values, and every button (mode, pause, guests, buttons of the
    house and the room, a temperature for a while, vacation dates, the
    heating time period, the schedule editor and its profiles).
  • 🧬 The card's mutation jobs are split by how many mutants their lines have
    (12 jobs of about 400), not by equal lines (from 74 to 919).

Smart Heating Control v2.6.2b5

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 14:35

Integration

  • 🔥 Boost the heat source (#6):
    a thermostat as the heat source of the house (Hive, Nest, Tado, Netatmo, a
    Generic Thermostat) starts the boiler only by its own target and sensor, so
    switched to heat with a low target it never fired it. Now, like the TRV
    boost, it stays in its heat mode and gets the Maximum temperature of the
    house to start (not above its own maximum) and the Frost protection of the
    house to stop (not below its minimum): the boiler fires when the rooms ask,
    and the thermostat still protects against frost if Home Assistant stops. A
    target set on it by hand is taken back. New option Boost the heat source
    (Heat source and heat demand → Heat source), on by default; off keeps the
    old behaviour (only its mode, heat / off). A thermostat without a target
    temperature is still switched by its mode.
  • 🌡️ Heat source idle temperature (optional, with the boost): what the
    thermostat source gets while no room asks, instead of the frost protection
    (e.g. 17.5 °C for a hallway thermostat that also heats radiators without
    TRVs). Below the maximum of the house.

Setup

  • 🏷️ Clearer choices for the heating of the whole house. Other thermostats
    / TRVs
    is now Another thermostat for the whole home, and No heating
    devices yet
    is now Each room heats separately (TRVs, heaters, AC): a
    house with TRVs on the radiators picks the second one and adds its rooms.
    Only the labels and the explanations change; existing houses are not
    affected. The guide has a new section, Which setup for my house?, with
    every kind of home, and the configurator a new case for a thermostat that
    starts the boiler.

Card

  • 🔌 Devices in the Details: every entity of the room (thermostats,
    relays, temperature and humidity sensors, windows, occupancy, calibration)
    with its role and its state now; an unavailable, unknown or missing one is
    marked, a tap opens it. New devices attribute of the Decision sensor.

Development

  • 🧪 Tests for what mutation testing found unchecked: the coldest wall below
    0 °C outside and the mold thresholds, distances between coordinates and a
    zone without them, far → nearby as an arrival, times like 24:00 or 06:60,
    the start of a schedule day that does not begin at midnight, the highest
    sun of the day in Bucharest in June and November, the clouds of every
    weather condition, and the renaming of a whole-house zone named like the
    house.
  • 🧪 Tests from the first full mutation run (Python 62.8 %, card 30.2 % of
    the mutants noticed): the limit of ±3 °C on the adjustments, the levels
    exactly at the maximum or the frost protection, the edges of the band with
    the learned inertia, no optimal stop when it is off and the ones exactly on
    time, the texts in °F, which stretches the learning uses, the time to the
    target and the expected temperature during an optimal stop, every attribute
    of the Decision sensor, a preset or an hvac mode set by hand coming back
    after a window, the calibration within the range of its number, the valve
    exercise (5 minutes, after a manual change, only on its day), the alert for
    rooms that stay cold; in the card the history, the prediction and the
    tooltip values, and every button (mode, pause, guests, buttons of the
    house and the room, a temperature for a while, vacation dates, the
    heating time period, the schedule editor and its profiles).
  • 🧬 The card's mutation jobs are split by how many mutants their lines have
    (12 jobs of about 400), not by equal lines (from 74 to 919).

Smart Heating Control v2.6.2b4

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 12:53

Integration

  • 🔥 Boost the heat source (#6):
    a thermostat as the heat source of the house (Hive, Nest, Tado, Netatmo, a
    Generic Thermostat) starts the boiler only by its own target and sensor, so
    switched to heat with a low target it never fired it. Now, like the TRV
    boost, it stays in its heat mode and gets the Maximum temperature of the
    house to start (not above its own maximum) and the Frost protection of the
    house to stop (not below its minimum): the boiler fires when the rooms ask,
    and the thermostat still protects against frost if Home Assistant stops. A
    target set on it by hand is taken back. New option Boost the heat source
    (Heat source and heat demand → Heat source), on by default; off keeps the
    old behaviour (only its mode, heat / off). A thermostat without a target
    temperature is still switched by its mode.
  • 🌡️ Heat source idle temperature (optional, with the boost): what the
    thermostat source gets while no room asks, instead of the frost protection
    (e.g. 17.5 °C for a hallway thermostat that also heats radiators without
    TRVs). Below the maximum of the house.

Card

  • 🔌 Devices in the Details: every entity of the room (thermostats,
    relays, temperature and humidity sensors, windows, occupancy, calibration)
    with its role and its state now; an unavailable, unknown or missing one is
    marked, a tap opens it. New devices attribute of the Decision sensor.

Development

  • 🧪 Tests for what mutation testing found unchecked: the coldest wall below
    0 °C outside and the mold thresholds, distances between coordinates and a
    zone without them, far → nearby as an arrival, times like 24:00 or 06:60,
    the start of a schedule day that does not begin at midnight, the highest
    sun of the day in Bucharest in June and November, the clouds of every
    weather condition, and the renaming of a whole-house zone named like the
    house.
  • 🧪 Tests from the first full mutation run (Python 62.8 %, card 30.2 % of
    the mutants noticed): the limit of ±3 °C on the adjustments, the levels
    exactly at the maximum or the frost protection, the edges of the band with
    the learned inertia, no optimal stop when it is off and the ones exactly on
    time, the texts in °F, which stretches the learning uses, the time to the
    target and the expected temperature during an optimal stop, every attribute
    of the Decision sensor, a preset or an hvac mode set by hand coming back
    after a window, the calibration within the range of its number, the valve
    exercise (5 minutes, after a manual change, only on its day), the alert for
    rooms that stay cold; in the card the history, the prediction and the
    tooltip values, and every button (mode, pause, guests, buttons of the
    house and the room, a temperature for a while, vacation dates, the
    heating time period, the schedule editor and its profiles).
  • 🧬 The card's mutation jobs are split by how many mutants their lines have
    (12 jobs of about 400), not by equal lines (from 74 to 919).

Smart Heating Control v2.6.2b3

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 11:47

Integration

  • 🔥 Boost the heat source (#6):
    a thermostat as the heat source of the house (Hive, Nest, Tado, Netatmo, a
    Generic Thermostat) starts the boiler only by its own target and sensor, so
    switched to heat with a low target it never fired it. Now, like the TRV
    boost, it stays in its heat mode and gets the Maximum temperature of the
    house to start (not above its own maximum) and the Frost protection of the
    house to stop (not below its minimum): the boiler fires when the rooms ask,
    and the thermostat still protects against frost if Home Assistant stops. A
    target set on it by hand is taken back. New option Boost the heat source
    (Heat source and heat demand → Heat source), on by default; off keeps the
    old behaviour (only its mode, heat / off). A thermostat without a target
    temperature is still switched by its mode.

Card

  • 🔌 Devices in the Details: every entity of the room (thermostats,
    relays, temperature and humidity sensors, windows, occupancy, calibration)
    with its role and its state now; an unavailable, unknown or missing one is
    marked, a tap opens it. New devices attribute of the Decision sensor.

Development

  • 🧪 Tests for what mutation testing found unchecked: the coldest wall below
    0 °C outside and the mold thresholds, distances between coordinates and a
    zone without them, far → nearby as an arrival, times like 24:00 or 06:60,
    the start of a schedule day that does not begin at midnight, the highest
    sun of the day in Bucharest in June and November, the clouds of every
    weather condition, and the renaming of a whole-house zone named like the
    house.
  • 🧪 Tests from the first full mutation run (Python 62.8 %, card 30.2 % of
    the mutants noticed): the limit of ±3 °C on the adjustments, the levels
    exactly at the maximum or the frost protection, the edges of the band with
    the learned inertia, no optimal stop when it is off and the ones exactly on
    time, the texts in °F, which stretches the learning uses, the time to the
    target and the expected temperature during an optimal stop, every attribute
    of the Decision sensor, a preset or an hvac mode set by hand coming back
    after a window, the calibration within the range of its number, the valve
    exercise (5 minutes, after a manual change, only on its day), the alert for
    rooms that stay cold; in the card the history, the prediction and the
    tooltip values, and every button (mode, pause, guests, buttons of the
    house and the room, a temperature for a while, vacation dates, the
    heating time period, the schedule editor and its profiles).
  • 🧬 The card's mutation jobs are split by how many mutants their lines have
    (12 jobs of about 400), not by equal lines (from 74 to 919).

Smart Heating Control v2.6.2b2

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 09:43

Card

  • 🔌 Devices in the Details: every entity of the room (thermostats,
    relays, temperature and humidity sensors, windows, occupancy, calibration)
    with its role and its state now; an unavailable, unknown or missing one is
    marked, a tap opens it. New devices attribute of the Decision sensor.

Development

  • 🧪 Tests for what mutation testing found unchecked: the coldest wall below
    0 °C outside and the mold thresholds, distances between coordinates and a
    zone without them, far → nearby as an arrival, times like 24:00 or 06:60,
    the start of a schedule day that does not begin at midnight, the highest
    sun of the day in Bucharest in June and November, the clouds of every
    weather condition, and the renaming of a whole-house zone named like the
    house.
  • 🧪 Tests from the first full mutation run (Python 62.8 %, card 30.2 % of
    the mutants noticed): the limit of ±3 °C on the adjustments, the levels
    exactly at the maximum or the frost protection, the edges of the band with
    the learned inertia, no optimal stop when it is off and the ones exactly on
    time, the texts in °F, which stretches the learning uses, the time to the
    target and the expected temperature during an optimal stop, every attribute
    of the Decision sensor, a preset or an hvac mode set by hand coming back
    after a window, the calibration within the range of its number, the valve
    exercise (5 minutes, after a manual change, only on its day), the alert for
    rooms that stay cold; in the card the history, the prediction and the
    tooltip values, and every button (mode, pause, guests, buttons of the
    house and the room, a temperature for a while, vacation dates, the
    heating time period, the schedule editor and its profiles).
  • 🧬 The card's mutation jobs are split by how many mutants their lines have
    (12 jobs of about 400), not by equal lines (from 74 to 919).

Smart Heating Control v2.6.2b1

Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Nov 09:05

Card

  • 🔌 Devices in the Details: every entity of the room (thermostats,
    relays, temperature and humidity sensors, windows, occupancy, calibration)
    with its role and its state now; an unavailable, unknown or missing one is
    marked, a tap opens it. New devices attribute of the Decision sensor.
  • 🔥 Why the heat source runs: under the house tiles, the line Heat:
    asked by Living, Bathroom
    , or how many rooms are still needed, the
    reference room it follows, the rooms in frost protection or with their own
    heating and the minimum on / off time it waits for. New attributes of the
    house Heat demand sensor: rooms, frost_rooms, own_heat_rooms,
    needed, reference_room, source_configured, waiting.

Development

  • 🧪 Tests for what mutation testing found unchecked: the coldest wall below
    0 °C outside and the mold thresholds, distances between coordinates and a
    zone without them, far → nearby as an arrival, times like 24:00 or 06:60,
    the start of a schedule day that does not begin at midnight, the highest
    sun of the day in Bucharest in June and November, the clouds of every
    weather condition, and the renaming of a whole-house zone named like the
    house.
  • 🧪 Tests from the first full mutation run (Python 62.8 %, card 30.2 % of
    the mutants noticed): the limit of ±3 °C on the adjustments, the levels
    exactly at the maximum or the frost protection, the edges of the band with
    the learned inertia, no optimal stop when it is off and the ones exactly on
    time, the texts in °F, which stretches the learning uses, the time to the
    target and the expected temperature during an optimal stop, every attribute
    of the Decision sensor, a preset or an hvac mode set by hand coming back
    after a window, the calibration within the range of its number, the valve
    exercise (5 minutes, after a manual change, only on its day), the alert for
    rooms that stay cold; in the card the history, the prediction and the
    tooltip values, and every button (mode, pause, guests, buttons of the
    house and the room, a temperature for a while, vacation dates, the
    heating time period, the schedule editor and its profiles).
  • 🧬 The card's mutation jobs are split by how many mutants their lines have
    (12 jobs of about 400), not by equal lines (from 74 to 919).

Smart Heating Control v2.6.1

Choose a tag to compare

@github-actions github-actions released this 03 Nov 22:04

🔥 Relays, on / off thermostats and TRVs with the boost now start and stop by
the inertia the room has learned, so slow heating no longer overshoots. 📈 The
predicted temperature of the chart follows how each device really switches.
🖼️ The card is easier to read: an arrow shows whether a room warms or cools,
the learning shows as tiles and the chart legend hides or shows each line.
🧪 Many more tests, now also of the card, and a weekly mutation testing.

🧠 After the update

  • ✅ The learning is kept: rooms that learned with 2.6.0 go on from there.
  • 🔥 Use the learned inertia is on by default for relays, on / off
    thermostats and the TRV boost: it acts once the room has learned its model,
    only inside the hysteresis band. It can be turned off in the room options.

Card

  • ↕️ Warming or cooling: an arrow in the opening of the arc (also on the
    folded rows and compact tiles) while the room warms (↑) or cools (↓) by at
    least 0.2 °C per hour over the last 30 minutes, that is one step of a usual
    sensor (0.1 °C) in 30 minutes. New temperature_trend attribute of the
    Decision sensor (1, −1, 0).
  • 🧠 Learning in Details: while learning, two bars (with heating 2 of
    4 h
    , without heating 1 of 4 h); once learned, one tile each for the
    heating, the inertia, the weather curve, the sun and the heat loss.
  • 📈 Chart: tapping a legend item hides or shows its series (kept in the
    browser); the expected sun is a faint yellow area in the outdoor band, once
    the room has learned that the sun warms it.
  • ⏳ A manual change with an end shows the time it has left (until 15:10 ·
    1 h 30 min left
    ).
  • 🏠 The house tiles are two by two on a narrow card and in one row on a wide
    one; the room buttons have short labels (For a while, Levels).
  • 🔲 The line of a compact tile: the time to the target while the room heats,
    else the next change (the manual change and the open window are shown by
    their icons).

Integration and card

  • 🐛 A level that the thermostat has no preset for and whose temperature is
    unknown (e.g. a Generic Thermostat without that preset) was taken as already
    reached: nothing was sent and the preset missing alert never came. Now the
    alert comes.
  • 🔥 Use the learned inertia (new option of the On / off control and
    TRV boost steps, on by default): for a relay, a thermostat commanded
    On / off or TRVs with the boost, once the room has learned its model, the
    heating stops a little early when the heat already given would take the
    room to the top of the hysteresis band, and starts a little early when the
    room would fall to its bottom before the heat arrives. The band and the
    minimum on / off times stay the limits; until the room has learned, only
    the band decides. In simulations the mean distance from the target fell
    from 0.33 to 0.27 °C with cast iron radiators on a relay (no more time
    above target + 0.5 °C, before 14 %), from 0.9 to 0.45 °C with floor
    heating, and from 0.28 to about 0.24 °C with TRVs with the boost (time
    above target + 0.5 °C from 5 – 7 % to almost 0). The card says stopped
    early: the heat already given still takes the room to ~21.3°
    while it
    waits (no_heat_reason inertia). See the guide.
  • 📈 The predicted temperature follows the device. The chart switches the
    heating ahead as the device does: Generic Thermostat by its cold and hot
    tolerance, relays, on / off control and the TRV boost by the hysteresis (and
    the learned inertia), thermostats without hvac_action by the hysteresis.
    The line now goes up and down around the target as the room does, instead
    of staying flat with many short heating periods. Thermostats and TRVs that
    regulate by themselves, and a Generic Thermostat set up in YAML (its
    tolerances cannot be read), still hold the target; their heating ahead is
    one period. The Heating rate sensor has the band in its model.
  • 🏠 Clearer words for the presence of the house: the house state is Home
    instead of the house is home (starea casei e „acasă” in Romanian), in
    the setup forms and in the guest mode banner of the card, so it is not
    mistaken for the level home.

Development

  • 🧪 The tests of the card are in the repository (tests/card, 55 checks in
    Chromium with a fake Home Assistant) and run in CI on every push.
  • 📊 CI measures the test coverage (on the newest Home Assistant) and shows it
    in the summary of the run; it must stay at least 93 %.
  • 🧪 New tests of the rooms as they are used: Generic Thermostat, thermostats
    with their own presets or on / off, TRVs in summer, a relay turned on by
    hand around an open window, the child lock, manual changes for the whole
    house or until the next reevaluation, the valve exercise, a Schedule helper,
    a calendar event, a thermostat as the heat source, tariff and solar
    adjustments, unavailable devices, low batteries, offset calibration, the
    buttons and the services (coverage from 89 % to 93 % or more).
  • 🧬 Mutation testing (tests/mutation): about 3,700 small changes of the
    Python code, and those of the card with Stryker, each run against the
    tests, to find the mistakes no test would notice. A workflow runs it every
    week in the night to Sunday (and by hand from the Actions tab) and writes a
    report of the survivors.
  • 🧩 The room controller is split by job into room.py (state, schedule,
    decision) and room_devices.py, room_override.py, room_optimal.py,
    room_alerts.py, room_status.py. Nothing changes in what it does.

Documentation

  • 📖 A new README that shows what the integration does, with a video of the
    card (40 s, played in the page) and new pictures. The technical
    details that were in it are in the new Reference.
    The same pictures, the GIF and the video are in the card chapter of the
    guide.
  • 🏠 The same wording for the presence of the house in the guide, the
    specification and the configurator.
  • 🧭 The configurator explains Use the learned inertia, the learned sun and the external temperature
    written again every 30 minutes.

Smart Heating Control v2.6.1b6

Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Nov 21:02

Beta: relays, on / off thermostats and TRVs with the boost start and stop by
the inertia the room has learned, so slow heating no longer overshoots; the
predicted temperature of the chart follows how each device switches. The
card is easier to read: an arrow shows whether a room warms or cools, the
learning shows as tiles and the chart legend hides or shows each line.

Card

  • ↕️ Warming or cooling: an arrow in the opening of the arc (also on the
    folded rows and compact tiles) while the room warms (↑) or cools (↓) by at
    least 0.2 °C per hour over the last 30 minutes, that is one step of a usual
    sensor (0.1 °C) in 30 minutes. New temperature_trend attribute of the
    Decision sensor (1, −1, 0).
  • 🧠 Learning in Details: while learning, two bars (with heating 2 of
    4 h
    , without heating 1 of 4 h); once learned, one tile each for the
    heating, the inertia, the weather curve, the sun and the heat loss.
  • 📈 Chart: tapping a legend item hides or shows its series (kept in the
    browser); the expected sun is a faint yellow area in the outdoor band, once
    the room has learned that the sun warms it.
  • ⏳ A manual change with an end shows the time it has left (until 15:10 ·
    1 h 30 min left
    ).
  • 🏠 The house tiles are two by two on a narrow card and in one row on a wide
    one; the room buttons have short labels (For a while, Levels).
  • 🔲 The line of a compact tile: the time to the target while the room heats,
    else the next change (the manual change and the open window are shown by
    their icons).

Integration and card

  • 🐛 A level that the thermostat has no preset for and whose temperature is
    unknown (e.g. a Generic Thermostat without that preset) was taken as already
    reached: nothing was sent and the preset missing alert never came. Now the
    alert comes.

  • 🔥 Use the learned inertia (new option of the On / off control and
    TRV boost steps, on by default): for a relay, a thermostat commanded
    On / off or TRVs with the boost, once the room has learned its model, the
    heating stops a little early when the heat already given would take the
    room to the top of the hysteresis band, and starts a little early when the
    room would fall to its bottom before the heat arrives. The band and the
    minimum on / off times stay the limits; until the room has learned, only
    the band decides. In simulations the mean distance from the target fell
    from 0.33 to 0.27 °C with cast iron radiators on a relay (no more time
    above target + 0.5 °C, before 14 %), from 0.9 to 0.45 °C with floor
    heating, and from 0.28 to about 0.24 °C with TRVs with the boost (time
    above target + 0.5 °C from 5 – 7 % to almost 0). The card says stopped
    early: the heat already given still takes the room to ~21.3°
    while it
    waits (no_heat_reason inertia). See the guide.

  • 📈 The predicted temperature follows the device. The chart switches the
    heating ahead as the device does: Generic Thermostat by its cold and hot
    tolerance, relays, on / off control and the TRV boost by the hysteresis (and
    the learned inertia), thermostats without hvac_action by the hysteresis.
    The line now goes up and down around the target as the room does, instead
    of staying flat with many short heating periods. Thermostats and TRVs that
    regulate by themselves, and a Generic Thermostat set up in YAML (its
    tolerances cannot be read), still hold the target; their heating ahead is
    one period. The Heating rate sensor has the band in its model.

  • 🏠 Clearer words for the presence of the house: the house state is Home
    instead of the house is home (starea casei e „acasă” in Romanian), in
    the setup forms and in the guest mode banner of the card, so it is not
    mistaken for the level home.

Development

  • 🧪 The tests of the card are in the repository (tests/card, 55 checks in
    Chromium with a fake Home Assistant) and run in CI on every push.
  • 📊 CI measures the test coverage (on the newest Home Assistant) and shows it
    in the summary of the run; it must stay at least 93 %.
  • 🧪 New tests of the rooms as they are used: Generic Thermostat, thermostats
    with their own presets or on / off, TRVs in summer, a relay turned on by
    hand around an open window, the child lock, manual changes for the whole
    house or until the next reevaluation, the valve exercise, a Schedule helper,
    a calendar event, a thermostat as the heat source, tariff and solar
    adjustments, unavailable devices, low batteries, offset calibration, the
    buttons and the services (coverage from 89 % to 93 % or more).
  • 🧩 The room controller is split by job into room.py (state, schedule,
    decision) and room_devices.py, room_override.py, room_optimal.py,
    room_alerts.py, room_status.py. Nothing changes in what it does.

Documentation

  • 📖 A new README that shows what the integration does, with a video of the
    card (40 s, played in the page) and new pictures. The technical
    details that were in it are in the new Reference.
    The same pictures, the GIF and the video are in the card chapter of the
    guide.
  • 🏠 The same wording for the presence of the house in the guide, the
    specification and the configurator.
  • 🧭 The configurator explains Use the learned inertia, the learned sun and the external temperature
    written again every 30 minutes.