Complete Thermostat feature

Could we have a slightly more full-featured thermostat in Gladys.
Capable of handling both a heating mode and a cooling (air conditioning) mode.
With several operating modes: away, comfort, frost protection, etc…
Where you can define which device to control, which temperature sensor to use
Be able to set the low activation threshold and the high deactivation threshold.
In Home Assistant (HA) there is this device and it’s quite handy.
No need to go through scenes to set everything, just need to define when to trigger a particular mode





There is also, as an example, the project Versatile Thermostat that I use.

Here are screenshots of an initial preview of the thermostat I made this morning. There’s still a lot of work left…

Mode arrêt:

Mode chauffage actif et thermostat inférieur à la température mesurée

Mode chauffage actif et thermostat supérieur à la température mesurée

Pour modifier la consigne c’est possible avec le curseur ou avec les boutons + / -

Plusieurs préréglages

Mode climatisation

Configuration de la box

5 Likes

Preview with the light theme

3 Likes

Here are today’s changes

Thermostat OFF

Preview in light theme

Edit menu

Advanced mode settings
With choice of operating mode: Heating or air conditioning
Calculation type: Hysteresis or TPI function
Min and max temperature
Parameters for the calculation type
Temperature presets

What I still have to do:

  • manage the user parameter for the temperature unit °C / °F
  • be able to retrieve information in scenes
  • find another icon for the Frost Protection mode, I just wanted a snowflake but it’s not present in the Feather icon set)

Feel free to give me feedback / suggestions

3 Likes

Great job @Will_71 :clap: I can’t wait to try a beta :winking_face_with_tong

Yes, the setpoint dial is operational, as are the buttons.
Both are possible.

By the settings

I indicated that it’s something I still have to do

1 Like

[quote="Will_

The bottom buttons are presets. So if you click on Comfort you’ll apply the comfort temperature; for Eco the preset temperature set for Eco…etc
They’re shortcuts if you prefer.

If you change it yourself with the

1 Like

Yes, and retrieve the state to control a pilot wire module, for example

Quick question @Will_71, where do you put these settings? In the Dashboard?

When you edit your dashboard and apply them to the box.
It’s not global for all the boxes you want to add.

So then, could two users have the same thermostat features with different settings in two dashboards?

Or are features no longer selectable if they’re already in a dashboard?

And otherwise… I love it!! It’s really clean :heart_eyes:

So I don’t completely agree.

If you use a pilot wire, you only control the comfort temperature and the rest is determined automatically by the module and/or the radiator (there I’m not sure which).

If you use hysteresis or TPI, it’s on/off only for the module; however, it’s compatible with any « simple » module that can handle a radiator’s power.

To be honest, I haven’t seen anything that extensive yet.
Currently you can set a different setting per user regardless of the dashboard.
But it’s something that needs to be looked at to avoid conflicts.

1 Like

3 messages have been split into a new topic: Replacing Feather icons with Lucide

The thermostat box will not directly pilot your module; it’s up to you to create the scenes behind it.

You can thus make a scene
If in ECO mode and no heating then you set your pilot wire module to ECO.
If in ECO mode and heating in progress then you set your module to Comfort.

If in Comfort mode and no heating then you set your module to Eco or Off.
If in Comfort mode and heating then you set your module to Comfort.

etc…

When you use a pilot wire you do not control the temperature of your radiator. You only send a command.
That’s how I manage my pilot-wire radiators at home anyway.

The °C / °F conversion is done

2 Likes

Hi @Will_71 :slight_smile:

Interesting development — curious to know how you designed the system because what you describe is much more than a control widget; it’s a home temperature management engine that « replaces » a smart thermostat.

But otherwise it’s super clean :heart_eyes:

2 Likes

Hi @pierre-gilles,

The concept is simple for me at the start: a home automation system must have an « intelligent » thermostat. And incidentally, it’s written in the request title: Complete Thermostat Feature.

Then, for the specs (Cahier des Charges - CDC), I based it on my own needs. At my place, I have a Netatmo thermostat that controls my pellet stove in on/off (TOR - Tout Ou Rien) mode with a schedule. I also have electric radiators controlled by a pilot wire (fil pilote). Today, I manage all of this with the Netatmo integration (thanks @Terdious) and a JS script in Node-RED where I implemented a TPI function to manage my electric heaters.

For info, here is a definition of TPI (the one I implemented in Node-RED):

TPI Thermostat (Time Proportional & Integral)

A TPI-type thermostat based on indoor and outdoor temperatures, with shutoff when a window is open.

The goal is to calculate a heating power based on a given setpoint, the indoor temperature and the outdoor temperature. Power must be 100% when the room temperature is far from the setpoint, then gradually decrease until reaching the setpoint. Then the radiator must remain slightly warm to compensate for heat losses, depending on the outdoor temperature.

The power percentage is calculated by the formula:

Power = coeff\_c * (T_consigne - T_intérieure) + coeff\_t * (T_consigne - T_extérieure)

(with a minimum of 0% and a maximum of 100%).

  • coeff_c is a coefficient that depends on the heating power and the area.
  • coeff_t depends on the room insulation and thermal losses.

For a standard installation conforming to norms, we generally use coeff_c = 0.6 and coeff_t = 0.01.

Example: T_int = 19°C, T_ext = 10°C and setpoint at 20°C => power = 70%.

Taking the outdoor temperature into account is therefore essential to compensate for heat losses and maintain a constant temperature. Then, the calculated power must be transformed into an ON-OFF sequence. This implementation is intended for convectors with pilot wire (type Qubino), but an adaptation is possible for other types of heating.

For our convectors, the required power is recalculated every 10 minutes, which defines the runtime over the period. With a power of 70%, the convector will be ON for 7 min, then OFF for 3 min. The periodicity depends on inertia: 30 min to 1 hour for a boiler, 10 min for a convector. For a pellet stove, the power should be recalculated every 30 min, for example. The thermostat handles window state and turns the radiator off if one of them is open.

My requirements:

  • Remove my dependence on cloud products (Netatmo), because when servers are down or in case of internet loss, it’s problematic.
  • Remove Node-RED. Node-RED allows many things, but if we can centralize everything in Gladys, that’s better.
  • A nice interface, if possible, not just a +/- button that changes a setpoint.
  • Be able to control a heater (boiler, stove…) in on/off (TOR) mode.
  • Be able to control a heater via pilot wire (fil pilote).
  • Simplify the creation of scenes with a calculation function of the Hysteresis or TPI type.
  • Have temperature presets (Away, Eco, Night, Comfort…), which I really appreciate in the Netatmo app.
  • Share the development with the community.

My uncertainties concern how to manage the control:

  • Either via scenes, a bit like for the Alarm box, exposing the different presets (Night, Away, Eco, Comfort…), the heating state info, and each person remains free to control their devices within scenes.
  • Or directly by choosing a device in the settings (which may be complicated to implement depending on each person’s configuration).
  • Or both.

Proposed development breakdown:

  1. Graphical part and control of a simple setpoint with a slider and +/- buttons.
  2. Implementation of hysteresis control integrated into scenes.
  3. Implementation of advanced TPI control.
2 Likes