Optimising my Tado heating with Apilio

We have been using Tado smart thermostats for quite some time now and the system is doing a great job. Various smart thermostats control the radiators and a central control is attached to our oil-fired boiler, so it can completely shut if off when not needed.

Shutting it of completely is important because even when no radiator needs heat, it would still circle hot water throughout the house and waste energy.

The Tado components do a good job lowering our energy bill so far, but I still see room for improvement.

In transitional periods, on sunny but cold days, I often observed the following:

  • Rooms on the north side are being heated, even though it would not be necessary.
  • The measured temperature in rooms on the north side is below the set temperature, but the perceived temperature is actually ok.

Even if it is heating only one room, this situation is inefficient because all the hot water still circles throughout the whole house.
So I figured out a way to stop heating under some circumstances. Thanks to Apilio, I can use custom advanced logic to further optimise the system. I defined some conditions, under which the heating can be completely turned off. The conditions are:

  • Between 8 and 17
  • If the living room temperature is ok
  • And the weather-forecast is
    • Temperature above 15 degrees
    • Temperature above 12 degrees and sunny conditions
  • And the temperature in the coldest room is above 18 degrees

Apilio can switch off heating via IFTTT and also return it to auto-mode. During the first days, I used Apilio’s “warning” feature. With it, I can see when the optimisation kicks in, stop it if necessary and tweak my logic :slight_smile:

For the weather forecast, I use IFTTT’s Weather Underground service. For the room temperature, I have Zigbee temperature sensors on my Tuya Zigbee hub.


It is a very interesting use case. I also use Tado for my heating and I like it a lot.

However, sometimes I find the integration between Tado and IFTTT to be quite slow, with events like changing status to Home/Away in Tado taking a long time to be processed by IFTTT.

Aren’t you tempted to build a native integration of Tado into Apilio? :wink:

1 Like

Sure, but they don’t have a public API :roll_eyes:
That seems to be a tend unfortunately. In the early days of Web 2.0, it was normal that any product had an API. But nowadays even big corporations like Wyze don’t skip doing it.


Oh, damn! It is a pity they don’t support a public API… I guess we’ll have to live with IFTTT pseudo-real time applets then…

1 Like

I’m stunned by how much I was able to reduce the heating time with the extra logic provided by Apilio.
The last ten days we had pretty consistent weather and I activated the extra logic on the 19th.
To get a comparison to the normal Tado operation, I deactivated the rules on the 25th.

With Apilio, I was able to save around 4 hours of heating time! That’s 4 hours where the circulation pump (15-20 watts) is not running and the boiler is not kept hot by burning oil.

Of course the rooms are a bit less warm, but it’s not relevant on days like these.

I wish it was easy to simplify Apilio in a way to make it accessible to more pople, or to put this logic in a simple to use feature that can be applied right away :sob:


While it is not directly related to Apilio, I have an IFTTT based automation for Tado that may be useful for some.

My Tado schedule is se to reach the target temperature (20ºC) at 8:00 am, which is the time when I wake up when I am working from home. This means that the boiler starts heating around 7:00 am.

However, some days, I need to wake up much earlier (e.g. 6:30), so I’d like Tado to start heating earler (e.g. 5:30). For that purpose, I am using an applet in IFTTT which checks my Google Calendar and, if it finds an event called “Wake-up time”, it turns on the boiler one hour before that event starts (and sends me a notification via Vybit).

So I simply add an event called “Wake-up time” to my Google Calendar for each day that I need to wake up earlier than usual, and IFTTT takes care of the rest.

IF section:

THEN section:


That’s a nice one - thanks!

1 Like

Nice idea @teknofilo

I agree that using calendar entries via IFTTT is really useful for heating control.

Related to this, using Nest heating in my case, based on calendar notifications I control the heating in a holiday let property to be on when guests are present and set to Eco mode if they are not. All holiday let booking systems (Airbnb, VRBO, etc) have an accessible calendar for when places are booked, so this does not require me to create specific “wake up” event entries and is always up to date. However, in this case I do have to use some Apilio logic to process things as the calendar entries are all full-day events (so start/end occurs at midnight) and I need heating to start the day before anyone comes and finish at check-out time.

Apilio in conjunction with IFTTT works really well for this situation. When a booking event starts (at midnight before people arrive) I switch the heating on and set a Boolean flag in Apilio to say that a booking has started. When a booking event ends (at midnight before people leave the following day) I get IFTTT to set another Boolean flag in Apilio to say that guests are leaving soon.

An Apilio timer at check-out time each day (10:00 am) tests these flags, and if the ‘leaving’ flag is set without a corresponding ‘arriving’ flag, it switches the heating back to Eco mode (overlapping bookings generate both a ‘leaving’ and an ‘arriving’ entry, so it is important to keep the heating on in this case). It then resets both flags.