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

anybody????
@ljbotero

It's super difficult to help you troubleshoot this in the abstract. Some things that might help you narrow it down:

  1. Can you activate debug logging and isolate the suspicious events and see what is producing the event. IOW, can you confirm that the event(s) in question is/are being produced with this automation?
  2. Can you reproduce the odd behavior? If so, how?
  3. When you interact with the vent(s) directly through the device details interface in HE, do you notice any bad behavior?
  4. Any error or debug messages in the logs?
  5. Is it possible one or more of your rules are creating the errors?

These are just places to look. If you can provide these kinds of specifics, I find others (like me) can be much more helpful.

I will turn on debug logging to see if I can spot what is causing the INACTIVE vent to operate.
I am beginning to think that even though I have set my system in the native flair app to manual, the native flair app is STILL trying to control my vents due to duct pressure even though they are all wide open.
Yes, I did check on my phone on the native flair app that my system is set to manual.

Could you post your rule that you use? I just want to see what you are doing and see if I am missing something.
I would appreciate it!

So I have disable all my rules that even touch my vents, except my rule to set all vent to inactive and open them all:


The trigger is a virtual switch.
The HVAC mode controller is:
I know it's a mess, but this is what I came up with for different modes and zones:

I have disable this rule also to test my vents.

I didn't include the debug logs because they get HUGE, but I will turn debug on and post.
Thanks for the help! I REALLY want this to work!

I was able to capture when the vents started closing, even though my switch was on and all vents were inactive and were at 100%.
Here are a few screenshots of the log:



My HVAC started calling for cool at 21:00:05 and that is where the vents operated even while inactivated.

So it looks like even though the vents are inactive, the vents are still being controlled.
I thought setting them inactive would "exclude" them from being controlled and they would maintain position.

BTW.. I have switched the log level back to NONE and I STILL get a flood of info.


Anybody here????
Where did ljbotero go? I thought he was the creator of the app?
Please don't treat me like I am stupid or a flake. I wanted to use this app so bad, and I am having problems with it and the info on the app isn't very detailed so asking in this forum is supposed to be helpful.

I'm still here, please bear with me. I've been active on the code, writing tons of unit test to ensure functionality is unbroken with new updates. I'm planning pushing an update probably this coming weekend and address any reported problems in the github beta branch. After that, I'm planning adding more functionality referenced/requested in this forum. I'd love to have outside contributions to the code of anyone wants to venture, I'd be happy to review any pull requests.

2 Likes

OK great!
Thanks for responding.
I was beginning to wonder if you had abandoned ship!
I appreciate the reply and will wait then.
BTW.... can ALL logging be turned off? Somewhere in the code?
All the logging is really stacking up my logs.

I posted all of them in detail with explanations above.

With respect, are you sure it’s the native app that is producing the erroneous events? It’s not something I have experienced. If it truly is coming from native Flair, then I’d recommend you reach out to Flair directly. Can you enable debug logging in the appropriate devices and apps, then identify the specific moment in the logs where the suspicious event(s) occurs and track the logic up to and including that moment?

Wow, I’m sorry to read you are feeling this way! If this is because of something I said, I truly apologize. Not at all my intention. I would just offer a few bits of advice that might make it easier for all the selfless people in this community to be more helpful to you: (1) Be overly patient with people like @ljbotero who are sharing their work out of the goodness of their hearts with zero compensation, little-to-no recognition, and additional headaches. I imagine they all have jobs, families, stress, busy lives, just like you and me. As someone who is not a developer, I suspect I’m a net “taker” from this community — beggars can’t be choosers, I suppose. If it takes someone weeks to respond, continue to be appreciative, as you have been imho. (2). Troubleshoot your problems one cause/effect at a time. Like the way you disabled all your rules temporarily is great because now we know the problem isn’t coming from your rules. That’s one variable eliminated at least. Keep doing that stuff. And per above, if you can share logs of the specific event and the lead up to it, along with your interpretation, it’s also helpful. It’s very difficult to respond helpfully to generalities like “this isn’t working”. (3) Read the plethora of documentation and threads that already exist on your topics of interest. When you don’t, and ask the same question yet again, for the most part people are tolerant and will help anyway, but only to a point. Interesting how we humans prefer to help people that help themselves.

Sorry if this is overly didactic, just struck by your feelings ….

2 Likes

NO NO it was NOT because of anything you said, or ljbotero.
And I do realize that this application is free and out of the kindness of his heart and his fun in doing this.
I have run into other posts/"help" that I have asked questions of before and the "help" just ghosted me and seemingly thought I was annoying and asking stupid questions.
I just wanted to make it clear that I am not trying to bother/annoy/troll this thread, and REALLY am interested in finding out what my problem is, and get this app to work.
I do NOT want "you" to do all the work for me, but wanted to find out what you were doing to get it to work for you.
After looking again, I am doing pretty much the same thing as it really isn't that complex and there are not many commands that are used.
I posted my rules so you can see what I am using, and if there is something that might be wrong. I don't think there is, but would be grateful to find out is there is!

I will disable ALL my extra rules again, and turn on detailed debug logging again, and try and pinpoint what is messing up the vents.
I did check again the flair native app and yes it IS in manual control. I don't know what else, or where else to look for on the app to inhibit control of my vents with the native app.

Once again, I will let things run and try an catch the failure.
A big part of the problem is the log is HUGE with TONS of entries, and this has a tendency to sloooow things down after the log gets too big.
That is why I wanted to find out about the different log levels and why it cannot be turned off completely.

Once again, I will post again if/when I find anything strange.

Well it didn't take long!
ALL rules that affect my vents have been disabled, except the flair HE app.
Dynamic airflow balancing IS turned on.
Close vents on inactive vents is turned OFF.
I did run my rule that sets all vent inactive and opens them to %100. This shows at the beginning of my log.


The vents still operated when the call for cool came on.
These logs are debug level 3

Here is a screenshot of my dashboard showing the vents all inactive, and their positions.

I am going to try forcing them open again, setting them inactive and disabling auto balancing and see if that is being triggered by the hvac calling for cool.

It appears that when turning off "use air flow balance", even withOUT a call to my HVAC the vents do NOT move.
When "use air flow balance" IS used,, even withOUT a call the vents move.

And even WITH all the vents inactive, they STILL MOVE!!!
Here is the log when the "air flow balance" switch was turned ON. NO CALL to my HVAC!
I AM POSITIVE!!!!

and PLEASE PLEASE PLEASE.. WHY doesn't setting debug level to NONE not work!
The app STILL floods my logs with entries!

Just an update....
I found that if I turned off (disabled) Dynamic Airflow balancing, the vents never move and stay where they are set, either by my rules or their position just before balancing was turned off.

@ljbotero How can dynamic airflow balancing be disabled in a rule?

Hi everyone! Thanks for your patience and all the detailed feedback. I've been working on fixes based on your reports, and I'm pleased to announce that version 0.17 is ready in the beta branch with solutions to the main issues:

Fixed in v0.17:

1. @pomonabill220 - Logging Issue: Fixed! The debug level NONE now properly disables all debug logging. The logic was inverted (my bad!), but it's corrected now.

2. @mluck & @pomonabill220 - DAB Disable Mode: Fixed! When Dynamic Airflow Balancing is turned OFF, vents will now respond properly to manual control and rules. The app was keeping vents stuck at their last position when DAB was disabled - this has been resolved.

3. Native Flair App Interference: The integration now maintains manual mode on the Flair structure when DAB is disabled, which should prevent the native app from overriding your Hubitat controls. If you're still seeing interference, make sure:

  • You're using OAuth 2.0 credentials (recommended) or Legacy API OAuth 1.0 credentials
  • The Flair app is set to manual mode for your structure
  • Check if any Flair schedules or rules are still active

4. @mluck - RSSI Errors: The occasional RSSI errors you mentioned have been addressed. The app now handles missing RSSI values gracefully without throwing errors. This typically happens with vents that have poor connectivity.

5. Room Control Feature: Added! You can now control Flair "rooms" active/away settings through the setRoomActive command. This command provides a dropdown with "true" (active) or "false" (away) options in the Hubitat UI. This allows you to leverage Flair's built-in logic while maintaining Hubitat automation control.

OAuth Authentication Notes:

  • OAuth 2.0 is recommended for full functionality and device discovery
  • If using OAuth 1.0, ensure you have Legacy API credentials
  • The app now provides clearer error messages when authentication fails

Installation:

Note: v0.17 is currently in the beta branch for testing. I'll merge it to the main branch once it's proven stable with no new issues reported.

To test v0.17 from the Beta branch:

  1. Go to the Beta branch: GitHub - ljbotero/hubitat-flair-vents at Beta

  2. Download the files:

    • Click on the src folder
    • Click on hubitat-flair-vents-app.groovy
    • Click the "Raw" button
    • Copy all the code (Ctrl+A, then Ctrl+C)
    • In Hubitat go to Apps Code → Find your existing Flair Vents app → Paste and Save
    • Repeat for hubitat-flair-vents-driver.groovy in Drivers Code
  3. Alternative method - Direct import:

    • In Hubitat, go to Apps CodeNew AppImport
    • Paste: https://raw.githubusercontent.com/ljbotero/hubitat-flair-vents/Beta/src/hubitat-flair-vents-app.groovy
    • Click ImportSave
    • Repeat for the driver in Drivers CodeNew DriverImport:
    • Paste: https://raw.githubusercontent.com/ljbotero/hubitat-flair-vents/Beta/src/hubitat-flair-vents-driver.groovy
  4. Or wait for the stable release via Hubitat Package Manager once testing is complete

Regarding Rules:

@mluck - Regarding your question about the rules you're seeing in the logs - these are standard Flair vent operations. When vents adjust, they log their actions. If you want to share your specific rule setup, I can help identify if there's any conflict.

@pomonabill220 - I appreciate your patience with the back-and-forth troubleshooting. All your reported issues (logging, DAB disable mode, and native app interference) should now be resolved in v0.17.

Thanks again for your patience and detailed troubleshooting. Please test v0.17 from the beta branch and let me know if these fixes resolve your issues! Once we confirm everything is stable, I'll merge to the main branch for general release.

1 Like

Awesome to all, thanks @ljbotero

If I want to continue to disable DAB on a room by room basis, can I continue to use Room Active/Inactive and just leave Disable Mode off?

Yes, existing functionality should be unaffected

Ok thanks.

Also fyi (not a big deal) HPM is not updating to this last beta version, even when beta updates are enabled. Something in the manifest perhaps?

I intentionally made it so that Beta is only available to setup manually as it might contain bugs. From HPM you can install Beta by choosing "Install A Package/ From URL" and passing the following: https://raw.githubusercontent.com/ljbotero/hubitat-flair-vents/refs/heads/main/packageManifest-beta.json