Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature Request: Set System configuration such as Target DAT, Per Zone CFM through the integration #184

Closed
subtlybeast opened this issue Jul 28, 2022 · 21 comments · Fixed by #192
Labels
enhancement New feature or request
Projects

Comments

@subtlybeast
Copy link

Problem:
The IHarmony zoning system disables the variable capacity/variable blower speed in both the Furnace and the AC; The Zoning controller mainly works by setting fixed CFM demand per zone, and a fixed Target Discharge Air Temperature. Because of that, a very advanced system is reduced to barely a 2 staged system at best that cycles on and off instead of a continuous efficient operation as it is supposed to be, and as it works if zoning is disabled.

Feature Request:
Can the integration set equipment configuration parameters such as the CFM demand per zone, target Discharge Air Temperature, etc?

How can it solve the problem:
Now having historical data of heating/cooling power % , DAT, etc, I can figure out optimal operating parameters based on outside air temperature and indoor target temperature, and based on that information, I can write automation to change the Lennox equipment configuration for optimal performance per set point.

Future:
IHarmony control algorithm is not only lacking and inefficient, but it is also buggy; in cases when it fails to meet the cooling demand for a certain zone, it kicks the AC to 100% (disabled modulation) disregarding the zone capacity, and that results in coil freeze and the whole system stuck on a short cycling loop that cannot be broken unless the whole system is hard restarted.
If we get to a point where we can, using this integration, directly set the cooling/heating capacity and blower speed, we can then leverage software-driven algorithms and Fuzzy Logic concepts to drive the HVAC control algorithms instead of the outdated deterministic algorithms that do not and cannot work.

Unfortunately, my HVAC contractor is not able to grasp those points, and Lennox dismisses my communication with defects as well as enhancements cause they need to come from a contractor, and when the contractor calls them, they direct him into the regular process of checking wires and connections that lead to nowhere.
That was a rant that does not add value to this feature request, thank you for reading that far :)

Thanks

@PeteRager
Copy link
Owner

PeteRager commented Jul 28, 2022

There is a switch entity in the integration to toggle zoning on/off - which may help. #160

Those setting are part of the “parameters” section of the equipment config message (this same message also contains the diagnostics). There is an existing request #110 open to be able to set the fan CFM; which is also one of these parameters. There is a “dealer setup” app that runs on iPad or Android that is used to set these. Some of them are also settable from the S30 (like fan CFM) - maybe they are all settable from either?

I started working on #110 a while back, and have not been able to figure out the message sequence to send to change the parameters. So these work differently than all other items we are able to set. Observationally, when I change the fan CFM from the S30 panel, it goes through a system test after I exit the menu and then the HVAC is back online in ~15 seconds. In the integration message log, I do see the parameter update; but if I send this same message it does not update it, the system does not test, restart, etc.

To solve this the message sequence needs to be captured (between the dealer app and the S30) or the android APK needs to be analyzed, or perhaps both. I haven’t had much success yet on either.

@PeteRager PeteRager added the enhancement New feature or request label Jul 28, 2022
@subtlybeast
Copy link
Author

subtlybeast commented Jul 28, 2022

Thanks.
I am not sure about the dealer app, I know for sure those parameters can be set using the S30 > advanced > equipment > smarthub (for the Target Cooling and Heating DAT, Zone min runtime etc.) and the S30>Advanced>Tests> to change the CFM per zone for heating and cooling.

Same behavior on my side: once the smart hub configs change, system goes in test mode for few seconds then comes back online. That is not the case if I change the CFM per zone from the test menu, the system responds instantaneously.

I have seen the fan CFM only as part of the zoning configurations, and setting max and min airflows for heating and cooling equipment, but I have not seen a setting that would change the CFM of the fan while operating (my units are modulating).

@PeteRager
Copy link
Owner

I’ll check out that test menu.

I don’t think it’s possible to dynamically control the variable speed of the compressor or fans. In #110, what I was trying to do is set the CFM for when the system is in circulate mode, so that is more of a static configuration setting - like the min / max. What you want to do is replace the control algorithm. You’d probably need custom firmware.

@subtlybeast
Copy link
Author

I agree - that is probably impossible without custom firmware.
If we can get to set those configuration parameters, same as done from the S30 menu, that would be a good alternative.

@PeteRager
Copy link
Owner

Sounds good. I’ll park this until someone can figure out how to set them.

@PeteRager
Copy link
Owner

We have made some progress and now know how to set the parameters - see info in #110. While I could make number entities for all these parameters, I am thinking instead to make sensors and require the user to use a service call to set them, just to make it harder to do and require some thought (and hopefully prevent someone from causing their HVAC to fail). Thoughts on this?

I also believe it is possible to directly control device on the RSBus. There is an end-point to send an RSBusCommand. Problem is I don't have any examples of commands.

@subtlybeast
Copy link
Author

This is super cool!!
I hear you on making it "harder" to access to limit possible misconfigurations and failures, yet those are easily accessible from the S30 screens.

I would take it either way, but personally, I would slightly prefer to have them as number entities and I control their access through my HA dashboards etc. for an easier experience.
I am very excited about this!

Thank you

@PeteRager
Copy link
Owner

That is a very good point. We’ll go the number entity approach.

@subtlybeast
Copy link
Author

I finished an initial automation that relies on Helpers for max and min CFM demand per zone and adjusts the target per zone CFM based on the gap between the set temp and current temperature.
I cannot wait to test it out with the new release once it is ready.

@PeteRager
Copy link
Owner

Sounds very cool. The code is getting there, have number and select entities being created for the parameters. So maybe a week or so and I’ll have pre-release to check out.

There are definitely some parameters that If set badly would probably hose the system. So I’m still trying to figure out how to keep it safe for users while still allowing power users to easily do stuff. Couple of ideas:

  • create a switch (call it the safety switch), when the safety is on, parameters won’t be settable, when the safety is off, parameters will be settable. The safety will automatically turn back on after some delay (1 minute). So from an automation or UI first step will be to turn safety off, then set parameters.

  • if the user changes a bunch of stuff and doesn’t remember what they changed and there system becomes inoperable they’ll need to call a service tech. So it’d be good to have a record of what the parameters were and changes in a log file, so they can go back. Scenes may be another way to do this.

@subtlybeast
Copy link
Author

This is fantastic work!

I like the safety switch idea, especially on the UI front. I intend to run my automation every 2 minutes while the system is in demand mode (this might change when we actually start testing how the system responds), and it is not a big deal to always turn the safety switch off each run.

I also like the snapshot idea (scenes is an interesting and very user-friendly way to do it), maybe the first time the safety switch is turned off we take a snapshot of all parameters? at least this way we can always return to a baseline, then subsequent changes or testing different parameters can be the responsibility of the user to maintain?

@PeteRager PeteRager linked a pull request Aug 26, 2022 that will close this issue
@PeteRager PeteRager added this to In progress in 2022.9.0 Aug 26, 2022
@PeteRager
Copy link
Owner

I'm running into some problems with setting the parameters.

When I set the parameter from the Panel, it goes through an 8 second test cycle.

When I set the parameter from the Integration, the S30 panel goes into testing mode and stays that way for 5 minutes. However, during this time it seems like the AC is still working and I'm getting data.

So this is not great news.

@subtlybeast
Copy link
Author

From the Panel, when I change parameters such as High Heating or High Cooling CFM, Target Discharge Air Temperature, etc the system does indeed go in testing mode for ~8 secs.

When I change the CFM per zone parameters (S30>Advanced>Testing) the system responds instantaneously without even stopping the current cycle if any.

Is there anything I can do from my side to help?

@PeteRager
Copy link
Owner

PeteRager commented Aug 29, 2022

"When I change the CFM per zone parameters (S30>Advanced>Testing) the system responds instantaneously without even stopping the current cycle if any."

That is interesting. Those may be different commands. I'll do some looking at that.

I've done some more testing. When I change from the panel it takes ~8 seconds to clear the test message. The current cycle stops and then restarts in 1 minutes 3 seconds. Here's the chart of the fan CFM. Par changes was around 12:09

fancfm

When I change it from the integration, the total elapsed time is 4 minutes. During the first 3 minutes, the panel is unresponsive and no diagnostic data is received by the integration - the only updates appear to be outdoor temperature. Then after 3 minutes is goes through the same 1 minute process when changing it from the panel.

It appears the panel must be doing something additional to "apply" the parameter change now.

The net is setting parameter may be useful for changing configuration. For example, there are times I want the indoor blower to operate at a higher or lower level and while I'd rather have that take a minute rather than 4.

What could be helpful is to capture a message log, while going into the panel are using the zone testing controls you described, I don;'t have a zoned system. The log may help us determine what commands are being sent.

@subtlybeast
Copy link
Author

This is quite interesting!
In my case, I would not want to change that parameter (the blower CFM demand) often, generally the max cooling/heating airflow are fixed and would not change.
What I change is the Per Zone Heating/Circulation/Cooling airflow, and that is what I get to change instantaneously without any impact from the Panel.

Newbie here, how can I capture those logs?

@PeteRager
Copy link
Owner

PeteRager commented Aug 30, 2022

Yes, agree that your use case is different. I was able to accelerate the parameter change from the integration and it now takes about 1 minute like it does from the panel. There are two command the integration needs to send. So I'm sending these back to back for now. I'm not sure how that will work if multiple parameters get changed. But I think with this I can move towards packaging it up, so you can try it out.

This provides information on how to enable message logging:

https://github.com/PeteRager/lennoxs30#reporting-bugs

The file will be big, post the whole thing or pull out the section that corresponds to when you are manipulating the zone airflow testing. I don't have any options in Testing on my S30 to control anything, just ability to run tests. Hopefully that will yield some results.

Also, see if the equipment diagnostics for the zone CFM track as you change it from the panel. I would expect it to.

If not, I have figured out how to run the Lennox system commissioning ipad app and capture the messages it send. The setup is a bit involved - includes setting up a new wifi network, running a burp proxy, etc.

@PeteRager
Copy link
Owner

When it that screen, you can set the CFM which then sets the parameter. In order to test it you press the "start" button on the left side of the screen.

That sends this message (CFM at 215)

 {  "MessageType":"Command",
    "SenderID":"dca_71824885284",
    "MessageID":"00000000-0000-0000-0000-000000000005",
    "TargetID":"LCC",
    "AdditionalParameters":"/systemControl",
    "Data":  {
       "systemControl": {
             "zoneTestControl":{
                    "enable":true,
                    "parameterNumber":256,
                    "value":200
 }}}}

When you press stop is then sends this message

 {  "MessageType":"Command",
    "SenderID":"dca_71824885284",
    "MessageID":"00000000-0000-0000-0000-000000000005",
    "TargetID":"LCC",
    "AdditionalParameters":"/systemControl",
    "Data":  {
       "systemControl": {
             "zoneTestControl":{
                    "enable":false,
                    "parameterNumber":256,
                    "value":200
 }}}}

Is that your experience also. You press that start button and then can directly manipulate the flow?

If so, we'd need a similar mechanism to do this - e.g. enabling/disabling the test and setting the parameter value. For now, I'm thinking of exposing a service call, that would fit into your automation? I'll provide a table of parameter numbers to use.

Thoughts?

@subtlybeast
Copy link
Author

subtlybeast commented Aug 31, 2022

Great news!
I cannot wait to test it and report back.

Update - just saw your last entry:
I do not press start nor stop, I just update the CFM value without running the test and then exit the screen, the new CFM value is applied instantaneously and the blower demand adjusts without even stopping the current heat/cool cycle.

@PeteRager
Copy link
Owner

Wow, then it should just work. I am halfway through implementing the zone test control. I’ll finish that up, that way there will be a full set of options for you to test with. Should have that wrapped up by Sunday.

@subtlybeast
Copy link
Author

Super excited!
we are onto something here :)

@PeteRager PeteRager reopened this Sep 3, 2022
@PeteRager
Copy link
Owner

PeteRager commented Sep 3, 2022

Release is here:

https://github.com/PeteRager/lennoxs30/releases/tag/2022.9.0

Docs

https://github.com/PeteRager/lennoxs30/blob/master/docs/parameters.md

Let's continue the discussion here:

#197

@PeteRager PeteRager moved this from In progress to Done in 2022.9.0 Sep 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

2 participants