*** No longer supported *** [RELEASE] Best Zoned Heating/Cooling smartapps

To whom it may concern,

My smartapps are now officially approved by Keen Home:

  • The new UI presentation amongst others adds a custom capability (setZoneSetpoint see image below).

Latest versions of the smartapps

EcobeeSetZoneWithScheduleV9, ScheduleTstatV9, ScheduleRoomTempControlV5: new major version with added custom capability in MyVirtualZone DTH for Setting Zone setpoint under the new Samsung connect app!

V8.8.9 EcobeeSetZoneWithSchedule & v8.8.9 ScheduleTstatZones added some defensive coding to avoid conflict when the master tstat is also included in rooms (as a slave tstat) for the scheduled zones

v8.8.8 ecobeeSetZoneWithSchedule & v8.8.7 ScheduleTstatZones v8.8.7 - Removed some logic in roomTstatEvtHandler() to avoid conflict with Virtual Zone’s setpoints

V8.8.5 ecobeeSetZoneWithSchedule, v8.8.4 ScheduleTstatZones, v4.6.3 ScheduleRoomTempControl corrected set_fan_mode() routine to apply overrides when conditions or no conditions are met

V8.8.2 EcobeeSetZoneWithSchedule, v8.8.1 ScheduleTstatZones, v4.6.1 ScheduleRoomTempControl - new versions to correct some minor icon issues following the release of latest iOS/Android ST classic mobile app

v8.8 Optimized to avoid sending multiple setLevel command to the vents if their current level is already within range of the target level ( to reduce noise).

v8.7.9 Optimized reverting temp adjustment operations (based on outdoor temp thresholds) to avoid unecessary hold commands sent to thermostat

V8.7.8 Minor changes to the ecobeeSetZoneWithSchedule smartapp to listen to any temporary climate hold

V8.7.7 Minor logging & setpoint adjustment changes to ecobeeSetZoneWithSchedule and ScheduleTstatZones (v8.7.6c)

v8.7.6 Minor optimization of the fan settings in ecobeeSetZoneWithSchedule and ScheduleTstatZones

V8.7.5 Alternative cooling optimization in ecobeeSetZoneWithSchedule and ScheduleTstatZones


  • SmartThings hub

  • A ST connected thermostat (optional for ScheduleRoomTempControl)

  • Smart vents such as Keen Home smart vents, EcoVents, and EcoNet , and Flair vents (optional)

    N.B. For the Keen Home vents: I recommend to use the following DTHs (to avoid too much polling):
    GitHub - yracine/keenhome.device-type: Keen Home Smart Vents - device handler (refer to the README for the installation steps).
    jcdevhandlers/devicetypes/jscgs350/my-keen-home-smart-vent.src at master · jsconstantelos/jcdevhandlers · GitHub

  • ST connected Temp/Motion/Contact sensors in rooms (optional) for better vent/temp adjustment

  • When used with ecobee thermstats, works with MyEcobee device only as the smartapps have tight integration with it for better performance and reliability.

    For motion detection, I don’t recommend the ecobee remote sensors as they are not meant for
    HA scenarios. They don’t update in real time in most cases.

  • Outdoor temperature sensor (optional) for ecobeeSetZoneWithSchedule and ScheduleTstatZones

Amongst other features, my zoned heating/cooling solutions have the following capabilities:

  • Ability to create zones inside your home (ex. upstairs bedrooms, basement, ground floor). A zone is composed of 1 to many rooms.
  • Ability to create schedules so that the above zones are active only during a specific period of the day
    * For examples: at nights, the airflow shall be directed only to the upstairs bedrooms; during the
    day, the airflow shall be directed towards the ground floor and the basement, but not the upstairs
  • Ability to set the thermostat’s setpoints to achieve best comfort and energy efficiency during a schedule run.
  • Ability to run schedules based on the ST hello modes (Night, Away, Home, any custom ones)
  • Ability to choose the right temp calculation (Average, Median, Minimum, Maximum value) of any ST connected indoor sensors to adjust the setpoints and set the thermostat to away or present (ScheduleTstatZones & ecobeeSetZoneWithSchedule).
  • Ability to trigger alternative cooling based on outdoor temp threshold (ScheduleTstatZones & ecobeeSetZoneWithSchedule).
  • Ability to control room/zone thermostats for portable heaters, eTRV (hot water valves), windows or split AC units, etc. with zone’s heat/temp differential to be applied for cooler/warmer rooms.
  • Ability to open all vents when the HVAC fan is running.

Here is more information about the smartapps:

Please refer to the configuration section of the ST community wiki for more details on
the use cases that the smartapps can support (refer to links below).

1) ScheduleRoomTempControl

The smartapp enables you to control your smart vents vs. temp (cool and heat) thresholds that you can set for a given zone (composed of 1 or many rooms).

Example: In Heat mode, when above or equal to 78F, the vents will be closed; below 78F, the vents will be open at 100% for all rooms within a zone. You can change the temp threshold at different times of the day using Schedules.

It can work with or without a thermostat.


2) ScheduleTstatZones

The smartapp orchestrates any ST connected thermostat (Nest, Honeywell Lyric, ecobee, CT-100, etc) and smart vents using any connected temp/motion/contact sensors for better comfort inside your home.

It uses the thermostat’s (heat and cool) setpoints as baseline for adjusting the vents.

For example, if you have 3 rooms: Master Bedroom, Kitchen, Family Room in your zone, the smartapp can do the following: the MB’s vents may be open at 20%, the Kitchen’s vents may be open at 60%, and the third at 100% based on room’s temp differential with the target setpoints at the thermostat (77F) and the thermostat mode (heat, cool, auto). You can change the thermostat’s setpoints at different times of the day using Schedules.


3) ecobeeSetZoneWithSchedule (similar to ScheduleTstatZones, but specially designed
for ecobee thermostats)


The smartapp is similar to ScheduleTstatZones, but it uses the program/climate defined at ecobee (scheduled setpoints ) as a baseline for the vents/setpoints adjustments and for scheduling (as the ST scheduling is not as reliable). The smartapp has been designed specifically for the ecobee users who do not want to rely on the ST scheduling as it is not as reliable as the ecobee scheduling. The smartapp can also resume your ecobee program to avoid creating temporary holds at the thermostat when not needed.

Here is a summary of the changes:

  • Added a ConfigDisplayPage which shows the running schedule with
    all zones and room parameters that can impact the thermostat and/or smart vent settings.

You can also use the page to set Level Overrides for your each of your smart vents in the zoned Rooms.

  • Added 3 levels of vent settings

1) The smartapps can calculate the best level based on each room’s temperature and
motion detection.

In ecobeeSetZoneWithSchedule & ScheduleTstatZones, the right level is calculated based on the room’s temp offset (differential) vs. the desired setpoint at your thermostat divided by the average temp offset for all rooms in your zone(s). That way, the colder/hotter rooms will get more heating/cooling.

In ScheduleRoomTempControl, the smartapp simply checks the current temperature vs.a specific cooling/heating threshold and just closes the vents when the threshold is met.**

2) The vent settings can be overridden for all vents in the scheduled zone(s)/room(s)
during a schedule run (ex. mornings, set all my vents at 100%)

3) Each vent’s level can be overridden at the room level (ex. set my bedroom’s vent level
at 60% and my living room’s level at 25% even if all my other smart vents are set at 100% at the schedule level)

  • Override setLevel Bypass at Schedule Level

For a specific Schedule, you can now bypass all vents’ overrides set (ex. at night, bypass
all overrides, and set all my zoned rooms’ vents at 40%)

N.B. All my existing contributors who’ve contributed to the above smartapps will receive
the new release soon!

The smartapps are compatible with the US and metric systems (Farenheit or Celsius):

The smartapps are available now for download at my store:


Here are some screen shots of the new ConfigDisplayPage()


Looks great! Will you be sending a download link to your paid subscribers?

1 Like

Yes, I will do it this weekend,

EDIT: Only to those who contributed for the smartapps.


I added a dashboard to all my zoned cooling/heating smartapps today, so that
users can visualize more easily their active zone(s) and a summary of closed/open vents
in their zone(s).

The new version is available for download at my store:


See picture below:





Today, I added AvgVentTemp and AvgTempLevel for the scheduled zone(s) in the dashboard.

Thanks for all of your work on ScheduleTstatZones! It is pretty much the brains of my house’s heating and A/C. It is way more effective and intelligent than just relying on the thermostat.

1 Like

Thnx @DreamPunk. I know that you’ve been using ScheduleTstatZones with your Nest Thermostat for almost a year now
You also recently added some smart vents from Keen Home to complete your home zoned solution.



Yesterday, I added a new feature to my heating/cooling solutions based on any connected ST thermostat(s), temp & motion sensors and smart vents (econet, ecovent, Keen Home vents).

The solutions are designed to orchestrate all the above components in order to reach the ultimate comfort at your home. Their use cases have been described at the community wiki:




The new feature allows you to avoid false positive in motion detection by inputting the number of motion occurrences needed before the smartapps consider the room to be occupied.

By default, it’s set at 1 motion occurrence, but you may increase it if you want to avoid calling the HVAC for a one off motion in some specific rooms.

The configuration can be done room by room for more flexibility.

The new versions of my smartapps are available for download at my store:


P.S. For those who already purchased my solutions, the new versions will be sent to you today. And, for those who have also purchased my support packages, the upgrade has been done already, so you do not need to worry about it!


1 Like

Just got a nice surprise with an email containing an update for the ScheduleTstatZones From @yvesracine. I have this app running with my Honeywell Lyric Tstat and 3 keen home smart vents, all in a zone named upstairs. I have been able to maintain an even temperature in the zone, which proved impossible before.

I am now saving my pennies for 4 Kent vents for downstairs, so I can even out those rooms.

Thanks for a great app.

1 Like

With the new feature of setting number of motion occurrences, motion detection in room should be more robust now. Thanks for your great work @yvesracine !

1 Like

Hi there, great app! However, with the latest update, when I tried to paste in the new code and publish, I receive the following error in the simulator when testing it out:

java.lang.IllegalArgumentException: Must specify a non-null value for the ‘to’ index in a Range @ line 1035

If I try to edit the configuration of the smartapp on my phone, the smartapp does not open. There is no feedback other than the app not opening for configuration.

Any idea what’s going on? I have even deleted the smartapp entirely and then tried to create it again from scratch, pasting in your latest version of the code to create it, with no changes.

1 Like

Hi, please send me an email to services@maisonsecomatiq.com with your version number.

Also, did you try to just execute the smartapp normally under the ST App?

The smartapp is not meant to be called within the IDE/simulator…


Today, I added some logic in ScheduleTstatZones for alternative cooling when the outdoor temperature & humidity allow it.

In order to be efficient, alternative cooling based on an evaporative cooler or a Big Fan Switch (connected to ST) must be within a calculated range of temperature & humidity values.

The smartapp is now able to determine the ideal conditions for alternative cooling based on a temperature/humidity table, and automatically switches to alternative cooling only when it’s efficient.

In order to enable alternative cooling, the alternative cooling switch has to be set in General Setup, and the alternative cooling flag needs to be set for a given schedule.

You can download the new version at my store:

P.S. The current contributors will receive the new version by email.



Today, I added the same alternative cooling logic in ecobeeSetZoneWithSchedule (see previous post) for all ecobee users out there.

You can download the new version at my store:

Today, in all my heating/cooling zoned smartapps, I implemented the following feature:
Added some configuration parameters in General Setup Page related to safeguards:

  • minOpenVentLevelInZone: let you configure the minimum level for any vents in zone(s) during a schedule run (default=10%)
  • minOpenVentLevelOutZone: let you configure the minimum level for any vents outside of the zone(s) during a schedule run (default=25%)

Any contributor to ecobeeSetZoneWithSchedule (v5.8), ScheduleTstatZones(v5.8.2), and
ScheduleRoomTempControl (v2.0) will receive the code update.

All above smartapps can be downloaded at my store:

For more information about my zoned heating/cooling solutions, please refer to the ST community wiki:





1 Like


I released a new version of my Zoned Heating/Cooling Solutions today with the following changes:

  • Better handling of thermostat’s auto mode for vent settings:
  • When mode is ‘auto’, for the vent settings, the smartapp will calculate the target temperature to be the median between the heating and cooling setpoints.
  • If the current thermostat’s temperature is above the median, the smartapp will consider that the mode is ‘cooling’; otherwise, it will be considered in ‘heating’ mode and calculate the vent levels accordingly

All the current contributors should receive the new version soon.

The new versions for ScheduleTstatZones, ecobeeSetZoneWithSchedule, and ScheduleRoomTempControl are available for download at my store:


I am using a simulated button controller app to turn my aeon minimote into the master switch for this smartapp, which allows me to enable or disable the app processing at the push of a button depending on my family’s current needs. Very cool! Thanks again for a very great and extremely useful smartapp.


Today, I made some changes to my Zoned Heating/Cooling solutions for SmartThings.

Sumary of Changes:

  • Added some icons in the dashboard for a better look & feel
  • Minor changes in the dashboard layout & the General Setup labels

See pictures below:

The Smartapps are available for download at my store:



I just responded to an inquiry about my zoned heating/cooling solutions for SmartThings, and I think that my answer can be instructive for all ST users who are interested in more control over their smart vents and their thermostat.

Smart vents are expensive, so you may want to have the best apps for controlling the vents AND the thermostat.

In my book, the thermostat needs to be controlled in conjunction with the vents, otherwise, it’s not optimal…

So, which apps?

It really depends on your requirements.

If you just need to open (at 100%) or close the vents based on a room temp threshold, then ScheduleRoomTempControl is just what you need.

The smartapp is designed to run with any ST connected thermostat…

If you have an ecobee thermostat (any model, not only the ecobee3) and want more options (especially with many smart vents), and want to direct the airflow towards the right rooms, then I’d recommend ecobeeSetZoneWithSchedule smartapp for the following reasons:

1) The smartapp is designed to run with My Ecobee device, which is the most comprehensive ecobee device for SmartThings. It basically exposes ALL ecobee features for HA.

And, there are many smartapp available at my github for other HA scenarios:

2) The smartapp relies on the ecobee scheduling for setting its programs/climates as the ecobee’s scheduling is usually more reliable than ST. So, even, if your ST hub is not active for a while, there will be some basic thermostat scheduling done by ecobee to control your thermostat.

3) The smartapp will not create successive temporary ‘holds’ at the thermostat. It is able to ‘resume’ your thermostat’s program when needed (ex. when you’re back home).

4) The smartapp is able to set your thermostat to ‘away’ or ‘home’ based on all your motion sensors at home.

5) Contrary to the ecobee3’s follow me feature, you can configure the ‘occupied threshold’ for every room to be different depending on your needs. The ecobee3’s follow me feature is really slow to set your thermostat to ‘away’: it can take up to 2 hours after your departure to set your thermostat to the away program. The smartapp can do it after 5 minutes if you want to set it up this way.

6) The smartapp has many other options for controlling your fan settings, and making adjustments to your setpoints based on all indoor temp sensors (just like the follow me feature on the ecobee3), but with all ST connected temp/motion sensors (not only the proprietary ecobee remote sensors). It can even adjust your thermostat based on an outdoor temp sensor if needed.

7) For controlling the vents, the smartapp is able to adjust them not only when the thermostat is heating/cooling, but also every 5 minutes (if needed) to adjust the vents to the right level (in %) automatically based on the temp differential in each room compared to the average temp differential. So, based on your thermostat’s setpoints, the colder/hotter rooms will always get more airflow…

Finally, I just want to warn you about the ecobee3’s remote motion sensors: do not use them for controlling the vents as they are not meant to be used for real time HA scenarios.

See this known issue at the ST community wiki:


However, you can use the ecobee3’s remote temp sensors as they are reliable and can be refreshed every 5 minutes.

BTW, all my smartapp are described at the ST community wiki if you need more details:


To recap, for the best control of your ecobee3 and your smart vents, you’d need the following:

  • My Ecobee device with remote sensor app (for the temp sensors)
  • EcobeeSetZoneWithSchedule

If you do not own an ecobee thermostat, and you own a Nest or Honeywell thermostat (or even a zwave or zigbee one), you can use ScheduleTstatZones if you want more control over your thermostat and your vents. See this thread for more details:

One of my contributor, for example, is a doctor in LA whose wife works from home on certain days of the week, he wanted to control his vents in the office a different way on Tuesdays, Wednesdays, and Fridays than the other days. On top of it, he wanted to control his guest room’s vent based on a guest presence sensor.

My heating/cooling solutions can do all this, provided that you configure them properly…

My solutions are available now at my store:


Thanks for your help @yvesracine, I’ve been using ecobeeSetZoneWithSchedule with his ecobee device and I’ve finally got my keen vents working. I’m using it to control my vents upstairs in my bedrooms, the master bedroom is always hot and the other bedrooms tend to be cooler, so it’s been a challenge to get things evened out with the ecobee alone. I’ve got it setup so that it will open/close them dynamically as needed to keep them within the setpoint range, and it can even close the vents upstairs entirely, if it’s only the downstairs that needs cooling/heating.

1 Like