[RELEASE] Best zoned Heating/Cooling Solutions for Hubitat (with smart multizone capabibilities) and virtual zone devices

To whom it may concern,

Here are 3 new zoning smartapps for controlling smart vents (Keen Home, Flair, Econet, etc.) in conjunction with your connected zwave/zigbee/wi-fi tstat(s) based on the concepts of rooms/zones/schedules.

Some virtual zone device(s) can be created for finer control of your vents and/or room thermostats... Each zoning smartapp represents about 3k-6k lines of code...

A contribution fee is required due to the amount of work for the design, development, and testing of the devices (equivalent of a few cups of coffee).


My smartapps are now officially approved by Keen Home:


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]

MyVirtual Zone


  1. Virtual Zone devices

Zone devices created under your hub: each zone is associated to 1 to many rooms under the zoning smartapp. Each room is linked to the related motion/temp/contact sensors in it. When scheduled, the zones are used for average temp calculation (or other calculation methods like median, min, max, heat-min/cool-max), smart ventilation, and (optionally) vent settings based on occupancy (or not). Each zone may be adjusted with a setpoint delta (+/- x degrees Farenheit or Celsius according to your scale) for colder/hotter rooms.

  1. Physical Zone devices

Same as Virtual Zone devices, but coupled with smart vents/dampers to physically "close" an area within your home. Additional attributes & commands are available to manually control the smart vents/dampers.

  1. Independent zones

Refer to houses where multiple thermostats/multiple HVAC systems are installed to control some areas (zones) of a large house. Each zone is independent from each other and, as such, can be controlled independently.

  1. Inter-linked zones

Refer to houses where multiple thermostats/HVAC systems are co-ordinated together to heat/cool them. The thermostats are grouped together and usually share the same/similar settings.

  1. Master thermostat

When multiple thermostats are used in my zoning smartapps, one can elect a master thermostat whose settings (thermostat mode & setpoints) may be sync'ed up with all the slave thermostats in all the configured rooms.

  1. Slave thermostats

In my ScheduleTstatZones & ecobeeSetZoneWithSchedule smartapps, room/zone thermostats are used for controlling mini/window splits, eTRVs, portable heaters/coolers, baseboards, fireplaces, etc. Zone/room thermostats can also be other ecobee/Nest/Honeywell thermostats within inter-linked zones. In the zoning smartapp, the slave thermostats can be controlled with the cooling/heating setpoints (and some optional +/- offset for colder/hotter rooms) defined in the smartapps or follow the master thermostat's setpoints.


  • Hubitat hub

  • A hub connected thermostat (optional for ScheduleRoomTempControl)

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

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

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

  • When used with Nest thermostats, works with MyNextTstat only as the smartapps have tight integration with it for better performance and reliability.

  • 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 bedrooms).
  • Ability to set the thermostat's setpoints to achieve best comfort and energy efficiency during a schedule run.
  • Ability to control room thermostats for radiators, eTRV (hot water valves), radiant floors, fireplaces, electric baseboards, or others

    • You can set a temp delta for each zone based on the main thermostat's setpoints for colder/hotter rooms
    • You can automatically control the room/zone tstat's fan speed based on a given temp differential value in the scheduled zone(s).
    • You can automatically turn off the room/zone tstats that are not part of the running scheduled zones.
  • Automatic & proportional adjustments of the vent settings so that your occupied rooms (based on motion detection) will get the most heating/cooling during a schedule run.

    • By default, the vents are adjusted if the main thermostat's Operating State is not 'Idle' (so your HVAC is either 'Heating' or 'Cooling' or the fan is running).
    • If you want to adjust the vents more often, there is an option in ScheduleSetup>VentSettings to adjust the vents at every cycle (every 5 minutes)
    • The smartapps have the option to open all vents when the thermostat's OperatingState is Fan Only (In SchedulesSetup>VentSettings).
      => The last 2 options can be enabled (above) on a schedule to schedule basis when needed.
  • If you want to control your smart vents with these zoning smartapps, the following safeguards have been implemented to avoid damaging your HVAC:

    • The zoning smartapps check each vent's temperature and makes sure that it's within the minimum and maximum range to provide safe operation.
      If not within the safe temp range (between 45 and 130 degrees Farenheit), it will notify you & open all vents
    • The smartapps check the ratio of closed vents/total connected vents and will ensure that the ratio is not higher than 50%
    • The smartapps ensure that there is a minimum open level (set to 10% by default and it's customizable) for any vents inside the zone(s) scheduled at a given time
  • However, if users wants to bypass the above safeguards, they can do it by setting the bypassSafeguards flag to 'true' (1st setup page: General Setup, scroll down for more options)

  • Please take note of the following warning about the safeguards:

    • You may want to do some research in order to avoid closing too many vents in your home (based on your HVAC model).
  • Virtual zones definition even if your actual home setup does not include vents

  • Ability to run schedules based on the Hubitat location modes (Night, Away, Home, any custom ones)
  • Ability to choose the right temp calculation (Average, Median, Minimum, Maximum value) of any connected indoor sensors to adjust the setpoints and set the thermostat to away or present (ScheduleTstatZones & ecobeeSetZoneWithSchedule).
  • Ability to use alternative cooling using a Damper, big Fan, evaporative cooler switch when needed
  • Ability to trigger alternative cooling based on outdoor temp threshold (ScheduleTstatZones & ecobeeSetZoneWithSchedule).
  • The ScheduleTstatZones & ecobeeSetZoneWithSchedule smartapps can automatically switch to alternative cooling when it's efficient based on an outdoor sensor and a temperature/humidity values table or just based on an outdoor temp threshold (configurable option).

  • Alternative cooling/air circulation features:

    • You can trigger some evaporative cooler/damper/fan switches based on an ideal humidity/temp internal table or some outdoor temp threshold.
    • The switches can also be triggered based on some temp differential between your indoor temp sensors in the scheduled zone(s)
    • Ability to set the thermostat's fanMode ('on', 'auto', 'circulate') during a specific schedule
    • Ability to trigger the thermostat's fan based on some indoor temp differential. The temp differential can be customized for each schedule.
  • Ability to adjust your main thermostat's settings (every 5 minutes) based on an outdoor temp sensor (ScheduleTstatZones & ecobeeSetZoneWithSchedule).

    • coolModeThreshold: set the thermostat to 'cool' mode according to a given outdoor temp threshold (ScheduleTstatZones)
    • heatModeThreshold: set the thermostat to 'heat' mode according to a given outdoor temp threshold (ScheduleTstatZones)
    • moreHeatThreshold: increase the heating setpoint according to a given outdoor temp threshold (ScheduleTstatZones & ecobeeSetZoneWithSchedule)
    • moreCoolThreshold: increase the cooling setpoint according to a given outdoor temp threshold (ScheduleTstatZones & ecobeeSetZoneWithSchedule)
    • lessHeatThreshold: decrease the heating setpoint according to a given outdoor temp threshold (ecobeeSetZoneWithSchedule)
    • lessCoolThreshold: decrease the cooling setpoint according to a given outdoor temp threshold (ecobeeSetZoneWithSchedule)
    • moreFanThreshold: set the thermostat's fanMode ('on', 'auto', 'circulate') according to a given outdoor temp threshold (ScheduleTstatZones & ecobeeSetZoneWithSchedule)
  • Support of ecobee climate settings for temp&fan settings

  • The smartapps are compatible with the US and metric systems (Fahrenheit and Celsius)

Here is more information about the smartapps:

Please refer to the configuration section of the 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 hub 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.

The zoning smartapp 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. The smartapp has been designed specifically for the ecobee users who do not want to rely on the hub scheduling as it is not always 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%)

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

The smartapps are available now for download at my store:




I'd love a smart home solution with "smart" dampers vs. grills.

Are any app/driver updates included in the purchase price?

Yes, of course, it's all indicated under the ToS at my store..


My zoning smartapps can leverage all the capabilities of the Flair devices, as a tight integration has been developed between the two ecosystems.

So, unless a user publicly endorses your code, they are limited in how many updates they can receive? Am I reading/understanding this correctly?

(9) Your contribution allows you to up to 5 downloads (4 minor updates) using the same sellfy download link. You may also contribute to one of my support packages for more minor updates according to their duration. Otherwise, you may have "unlimited & free minor updates" if you "like" or post positive comments about my solutions at the Hubitat community forum under the related thread. After doing so, please send your Hubitat handle via email to get the "unlimited & free minor update" promotion.


That would certainly appear to be so. The following ambiguous clause also applies:

There is no definition of what constitutes "violation of privacy" or "threatening or abusive behavior". For example, does someone discussing issues with the app in public constitute a violation of privacy? Or would that be a threat/abusive behavior?


6 posts were split to a new topic: Blast from the past

My zoning smartapps are tightly integrated with the following drivers under Hubitat for better performance and reliability:

My Next manager

My Ecobee device

My Flair devices



Just want to inform my contributors that new version of MyVirtualZone(v2.2) can be downloaded at my e-commerce solution provider (sellfy) using the original download link.*

  • The new version exposes the heatingSetpoint & coolingSetpoint capabilities based on my custom setThermostatSetpoint capability for easier integration with dashboard such as SharpTools & ActionTiles.
  • All you need to do is to copy &paste the new code over the existing one for MyVirtualZone driver & the corresponding zoning smartapp and save.

You can also refer to the 1st post of this thread for all the use cases supported.

The zoning smartapps (ecobeeSetZoneWithShedulev9.2, ScheduleTstatZonesv9.2, ScheduleRoomTempControlv5.2) are available at my store:


I'm really surprised that Keen officially 'approved' your apps, when they won't support or come remotely close to recommending using any other hub than the official one. The 14-30 day battery life with almost zero vent action is infuritating.

I wonder if Flair is really any better. This market doesn't have much solid competition it seems.

Hi, I've never had any battery problems with the Keen Home vents.

Under the SmartThings platform, I've created a custom driver for the Keen Home vents to avoid polling the vents too often (every 5-10 minutes) instead of every minute and, with this driver, I've only changed my batteries twice in 5 years.. FYI, I was part of the beta testing phase for Keen Home, so long relationship with Keen Home (but I don't talk to them nowadays as they are less active on the different channels).

I think that the battery issue may be more related to the latest firmware versions than the hub. I cannot test this assumption as all my vents come from the 1st production batch.

As far as the Flair vents are concerned, I've changed the batteries once in 3 years...I've coded the driver with performance and reliability in mind. The firmware is not an issue as this is a cloud to cloud integration. The only (minor) problem with Flair is the latency (up to 30 sec) and the fact that you can only open the vents at 50 or 100%, no intermediary state..


1 Like

Lot's of people in these forums have major issues with the vents, including myself. There's a theory that we have newer hardware/firmware. I picked mine up October 2019. I've never seen longer than 30 days, regardless of battery types. (Energizer AA Lithium, Eneloop White/Black, and rechargeable lithiums.)

You mention firmware -- I wonder if I was to pick up the official Keen hub if I could upgrade my 3 vents? Support is totally useless for me. I've asked exactly the same questions and they told me vent firmware was not upgradeable. They were aware of the battery drain issue as well.

For me, I'd want my driver to never poll the vents, or maybe poll for the battery once a day. Even then, the battery reporting is bunk. Maybe just poll right after sending a command to make sure it updates. (Not sure if that's a push/poll/etc.)

Hi, You can try the following custom driver here and modify it according to the instructions
in the configure() method. For the moment, it's basically reporting every 5-10 minutes for temp/pressure values (instead of every minute by default).

This not my driver, but somebody copied over my version of the code from SmartThings. I'm not supporting it obviously.


Thanks, I'll take a look and modify.

Another thought comes to mind -- if Keen officially supports cloud integration with Ecobee, how hard would it be for us to connect it in that manner? I'm thinking of getting the Keen hub for firmware upgrades, etc.

Hilariously, I asked Keen Support how long the batteries SHOULD last if I bought the official hub, and they responded with, "the Keen hub does not have batteries." Yikes. I'm left with massive paperweights like so many in these forums, and I wish I could figure out why.

I have used this driver before, but never modified it. The number one problem I had was that it would report open/close even if the actual vent did not move. I can use the stock driver to check if a vent move failed. Thanks though, I'll look at the modifications.

I purchased this with ST. Do I need to repurchase

Hi, the code has been changed and optimized for the Hubitat platform.

You'd need to download (v9 and up) the latest version using the same sellfy download link.

There is a virtual zone device driver just for Hubitat as the UI is totally different from ST.


1 Like

Is there a way to disable HVAC (turn it into eco mode and shutdown the fan) based on contact sensors in ScheduleTstatZones? I've found that I can close vents in the rooms, but it'd be great if there's also a way to just shutdown HVAC if enough of windows are open. Or if not, I guess using master switch to disable processing in ScheduleTstatZones and writing my own logic to do it would be the way to go?

Hi @marcik4, I have another smartapp for this use case (WindowOrDoorOpen) at my github.

The 2 smartapps can be synchronized using a master switch.


1 Like