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

Dual Setpoint Support #12

Open
KazWolfe opened this issue Mar 27, 2024 · 1 comment
Open

Dual Setpoint Support #12

KazWolfe opened this issue Mar 27, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@KazWolfe
Copy link
Collaborator

KazWolfe commented Mar 27, 2024

It would be great to add support for both heating and cooling setpoints through the library. This would allow users to set an ideal temperature range which the system would try to respect.

As heat pumps do not appear to natively have a dual setpoint mode, the ESP will be responsible for resolving the proper mode/setpoint to send to the heat pump. In its simplest form, all the ESP will need to do is check if a setpoint is met or breached. If so, send a command to the heat pump to swap to the required mode and setpoint. Note that the built-in single-point auto mode should not be used for this, as that may cause the heat pump to not properly handle the deadzone.

Special Considerations

  • This will likely require the implementation of Sammy1Am/temp-issues#11 for proper MHK2 support, since it's thought that the MHK2 will also auto-resolve the proper setpoints.
  • The algorithm may require some extra tweaks to preemptively choose a setpoint (e.g. turn on heating mode and assign the setpoint 0.5 deg C above the heating setpoint to push the heat pump into "very low" mode) for efficiency purposes. Research into what the MHK2 does will be necessary.
  • Some considerations will need to be made for state tracking purposes since heat pumps may receive commands from other units (e.g. IR remotes). In this case, auto mode should be disabled and the current setting should be imported.
    • This will likely require we start tracking the "expected state" and handling it appropriately.
  • There are likely minimum runtimes that will need to be enforced to prevent over-cycling the heat pump. While we should be able to rely a bit on thermal mass of rooms to manage setpoints, care should still be taken to not damage equipment.

Prior Art

@KazWolfe
Copy link
Collaborator Author

extra tweaks to preemptively choose a setpoint

A sample algorithm for this case:

  1. If the current temperature meets or exceeds a setpoint, send the appropriate mode and setpoint command.
  2. If both setpoints are satisfied and the temperature difference between setpoints is less than 2 degrees C, do nothing (or maintain the last state).
  3. If both setpoints are satisfied and the temperature difference between setpoints is greater than or equal to 2 degrees C, preemptively set the mode if the current temperature is within clamp((cool_setpoint - heat_setpoint) / 4, 0.5, 1) degrees of the setpoint.

This algorithm guarantees a minimum 1 degree Celsius of dead zone, and a minimum 0.5 degree Celsius of temperature "maintenance." It attempts to leverage the heat pump's built-in operation rules to decide when to properly kick in heating/cooling.

@Sammy1Am Sammy1Am added the enhancement New feature or request label Apr 2, 2024
@Sammy1Am Sammy1Am transferred this issue from Sammy1Am/mitsubishi-uart May 12, 2024
@Sammy1Am Sammy1Am transferred this issue from another repository May 12, 2024
@KazWolfe KazWolfe moved this to Todo in mUART Project May 23, 2024
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
Status: Todo
Development

No branches or pull requests

2 participants