NEW] Control Flair Vents with Hubitat - Free Open Source App and Driver

Thank you so much for the kind words! I’m really glad my previous reply helped clarify your thoughts. And hey, there’s no such thing as a “stupid” question here—we’re all just figuring out how to make our setups as awesome as possible. :blush:

The pictures you shared of your old vents with the adjustable louvers are super helpful—thank you for including them! I can see how they’d give you more control over airflow direction. I love the idea of trying to retrofit the Flair vent louvers into your existing vents. That could be a really creative solution, though I imagine it might take some tinkering to make it work. If you do go that route, I’d love to hear how it turns out!

As for your question about the Thermostat Controller 2.0 app and the Honeywell T6 thermostat:
Yes, my app uses the standardized capabilities from the Hubitat device, as documented here: Hubitat Capability List. This means it uses the current temperature, as well as the heating setpoint and cooling setpoint from the device driver you’ve selected. Since you’re pointing to the Thermostat Controller app as the active thermostat, those values will be what my app reads for vent balancing.

I’ll do my best to keep answering questions as time allows, but I’d also love for other community members to chime in whenever possible. My time is a bit limited, and your collective experiences can really enrich these discussions. For those of us who enjoy diving into the technical details, everything about how the app works can be found in the code on GitHub. If anyone feels inspired to contribute, that would be amazing—it would help make this app more sustainable in the long term!

Thanks again for your enthusiasm and all the great ideas. Looking forward to hearing more about your experiments and setups!

Cheers!

@ljbotero
Hello and thank you for taking the time to answer my questions! I appreciate it.

Thank you!
The reason I mention this is I didn't want the nag you so much, and I did read the WHOLE thread before asking, because if my questions have already been answered, I didn't want to annoy with repeated questions.... but thanks again for the detailed answers!

What I plan to do is remove the "rear"louvers and cobble the Flair vents in there place, leaving the stationary front louvers to direct the airflow.... we'll see how THAT goes!

When I do the mod, I will take pics and let you know!

This is good news! and what I was hoping for. I didn't want your app to use the T6's temperature as the T6 is in a bad location for that, and I wanted to use the Therm Contoller's averaging that changes using different combinations of temp sensors depending on my different modes throughout the day, in my home.

Yet ANOTHER question....
Would it be possible to, along with selecting a stat for balancing, be able to select switches for the different modes (heat/cool/idle), a temp sensor for the "stat temp", a variable for heat and a variable for cool setpoints.... basically making a "custom thermostat" and not needing a physical stat?

I know that could REALLY open up problems because you don't have the safety features of a stat, like compressor protection (short cycling, time delay, etc.)

just a thought....

Also, how does your app handle disabling Air Flow balancing without a stat?
What would be used for heat/cool modes?

How about no thermostats on the different vents?
What is used for temperature and rate of change calculation? These options seem to be optional... that is why I am curious.

Another thought... would it be possible to specify minimum vent opening, either per vent or globally...?

Sorry for the multitude of questions as I know you are busy with other things outside of HE, and you have a life too!
Thanks again for your help! This app is just what the doctor ordered!

@ljbotero
Thank you for this app!

If I understand correctly, when using Dynamic Airflow Balancing the app is using the setpoint on the controlling thermostat to balance the airflow, i.e., to try to get each room to this set temperature. Is this correct? Is it possible to have different temperature setpoints per room, or temperature offsets from the thermostat setpoint per room?

Hi @pomonabill220,

Thank you for the thoughtful questions! Let me address each one as best as I can:

  • Would it be possible to select switches for modes, a temp sensor for "stat temp," and variables for setpoints to create a "custom thermostat"?
    I see where you’re coming from with this idea, but I’m not sure I see the full benefit compared to using virtual switches to trigger HVAC modes or temperature setpoints. Virtual switches can provide similar flexibility while keeping the setup more manageable. If you have specific use cases in mind where this approach would be superior, feel free to share—I’m always open to understanding new perspectives!

  • How does the app handle airflow balancing when no thermostat is assigned?
    If no thermostat is assigned to a vent, the app defaults to using the thermostat associated with the vent via the Flair app. This behavior is visible in the app's code, particularly in the function that handles getting room temperatures:
    View code here.

  • Would it be possible to specify a minimum vent opening, either per vent or globally?
    Yes, this is already somewhat supported. There’s a global variable named MIN_PERCENTAGE_OPEN that determines the minimum percentage a vent can open. You can find it in the code here:
    View code here. Per-vent minimum settings aren’t currently implemented, but it’s an interesting idea worth exploring if there’s enough demand for it!


Thanks again for your ideas and feedback—I really appreciate your creativity and enthusiasm for this app! Let me know if you have more thoughts or questions, and I’ll do my best to answer (though I always welcome community input and contributions, too).

Hi @user3451,

Thank you for the kind words—I’m glad you’re finding the app useful! :blush:

You’re absolutely correct that when using Dynamic Airflow Balancing, the app uses the setpoint from the controlling thermostat as the target temperature to balance airflow across the rooms. It works to adjust vent openings to get each room as close as possible to this target temperature.

Currently, the app does not support different setpoints per room or offsets from the thermostat setpoint per room. All rooms are balanced using the global setpoint from the controlling thermostat.

That said, I’d welcome any code contributions if you’re interested in implementing this feature! If there’s considerable interest in this enhancement, I’ll consider adding it to the app myself. Feel free to add a +1 to the feature request on GitHub here: Feature Request.

Also, for any other enhancement ideas, I encourage you and others to create new enhancement requests directly on my GitHub here: Submit Enhancement. Just make sure to choose the "enhancement" label when submitting.

Thanks again for your support and great question!

Again... WOW!!! I appreciate your detailed answers and I will SURLEY look into "customizing" the min_open variable! I love to try new things and thank you for the detail!

Since I do not have any stats in the Flair app, I assigned a stat for the air balancing (the T6 CONTROLLER app , NOT the physical T6 that the CONTROLLER app is controlling, since it's temp sensor is not in a good location), and it seems to be working great!

Outside of the Flair vents whistling very loudly (hence the min opening test), the vents seem to be working fine.... before I hard wire them and poke holes in my ductwork for the wiring, I wanted to try them out to see if I like them.. NOT a problem with your app... your app is GREAT!

If I think of anything that I might find useful, I'll post on your github.

Thank you and have a GREAT Thanksgiving!

Hey did this ever happen? Is it in the HPM codeset or still its own branch?

The main reason I asked about this is because two of my vent WHISTLE VERY loud and according to a spectrum analyer app on my phone, the whistle is at 3KHz and about -45dB at 3 feet!! VERY loud an annoying.
I tried setting the minimum open to 20% and the slop in the vents operator STILL has them slammed shut.

What is the "granularity" of MIN_PERCENTAGE_OPEN? 1,2,3,4,5.... %?
I might try seeing if I can "tighten up" the linkage in the vent to make it operate better.
It is kinda sloppy design....

Also, on each vent there is a "device polling interval" that is set default to 3 minutes.
IF I change it to 1 minute, will that trigger any kind of DOA to Flair's servers? or is that a local interval that HE uses?

And another question.... (sorry)

During a heating call, will the vents adjust as the room temperature reaches the calling stat's setpoint and start to close (modulate) the room's damper? or does your app set the vent's position when the call starts?

Is the efficiency of each room calculated during each call and used for the future calls?

Hope you have a GREAT Thanksgiving with TONS of good food and good friends!

You can contact flair and they can make an adjustment remotely to how tight the vents close, which can help, but I've found the vent's design contributes to this. The side screwholes let air through, and in some case air will flow around and under the mounting plate. I used trim kits from etsy and some aluminum tape over the holes and it got rid of almost all whistling: https://www.etsy.com/listing/1578534089/flair-vent-trim-kit-vent-adapter-kit-all

Also, a partially open vent at small openings (like the dynamic balancing this app does) can cause whistling, which is why I don't use that feature.

Only problem is I am NOT using Flair's control. I am using ljbotero's app with HE.
He gave me a variable in his code that limits the minimum close percentage and I am trying different values there.

My vents are ceiling mounted so the screw holes for the grill and for the vent have screws in them, so they are blocked.
The whistling is coming from the louvers, and I am going to see if I can use a physical stop on them to keep them from closing tight.
Like I said, the linkage is very sloppy and with the back pressure and commanded even 10% open, the louvers are actually closed all the way.

Unfortunately, there is no position feedback to the louver operator and they are "estimated" the position only.

Thanks though for the ideas and thoughts!

It doesn't matter whether you are using their controls or not. It sets the point of the stop limits in the firmware, so that when set to 0% the motor put more pressure on them. When I contacted flair, they told me there are 3 settings (normal, tighter, and tightest) and they are only accessible server side by their support staff.

While you are correct, the linkage is kind of sloppy, I'm willing to bet that the outer surround of your vent is not as sealed as you think it is. The screw holes are slotted, the flair vents are usually much smaller than the openings, the surface the vents are mounted on is rarely completely smooth, and the vent cover does not fit tight enough over the vent to stop the airflow through the mounting holes. Air will go around the vent, under the mounting bracket, and through screw holes or under the vent mounting plate.

I too originally thought the majority of the sound was coming through the louvers (some of it is), but I figured out where and tested it by taking the trim plate off and covering the mounting surface with tape. It got rid of most of the higher frequency noise, with the flair support settings cleaning up the last bit of it.

YMMV, but it's a cheap test and you might be surprised at the results.

Thanks for your suggestions!
I will look into how much leakage I have and maybe even where the noise is coming from.
I could even use some foam tape around the frame to see if that would work.

The code is merged into the main branch

1 Like

Diving into this app to test it out. I have 1 Flair puck, currently.

I've installed from HPM, entered my API creds, activated, and clicked on discover. At this point, nothing is discovered. I checked Flair app and puck is there. I do have the "no thermostat" error in Flair, but I thought I read that that was fixed on the Hubitat side.

Could my API creds be stale if I haven't used them in a while? Seems unlikely since they authenticate.