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

Binding does not support temporary set point override based on schedule #17

Open
Nebula83 opened this issue Mar 6, 2018 · 16 comments
Open

Comments

@Nebula83
Copy link
Owner

Nebula83 commented Mar 6, 2018

Only permanent changes are supported. Binding needs to be aware of the schedule of the zone and use that info to create a temporary set point override with a maximum duration of 24 hours.

@VibroAxe
Copy link

VibroAxe commented Mar 7, 2018

Some thoughts on this to kick off discussion on how is it best to handle temporary set points,

3 options spring to mind

  1. Apply setpoint until next schedule point (this is how the evohome_python rules perform)
    Definitely my personal preference as it's easiest for the end user and offers similar functionality to standard heating controllers / the evohome controller itself

  2. Provide a config option as part of the thing to specify how long the override should be applied for
    Simple to implement, but not "easily" changable at runtime

  3. Provide a channel option to specify how long the override should be applied for
    ie:
    Set channel overrideTime to 4 hours
    Change set point

@Nebula83
Copy link
Owner Author

Nebula83 commented Mar 7, 2018

  1. Yes, this would be my proposal as well. Still allows for configuration, albeit via the evohome device itself
  2. Not very practical I think as well
  3. Crossed my mind as well. It isn't very OH-ish though; having a 2-stage rocket.

@smar000
Copy link

smar000 commented Mar 8, 2018

WRT 3, if this is an optional channel then would it be really against OH approach? For example, the default for this override duration channel could be 0. In this case, the binding simply carries out option 1, ie. any temporary change expires at the next schedule change. If the value in this channel is >0, then it is taken as the number of minutes for any overrides to that zone. I am using a similar approach at the moment via python scripts to achieve temporary set points.

@Nebula83
Copy link
Owner Author

Nebula83 commented Mar 8, 2018

Interesting approach, and I'm not saying I'm against it. But usually channels do not influence each other in my experience. The override time channel would do nothing but set some internal state instead of actually doing something on it's own. If you do know about an example in the existing binding then I'm eager to learn about it.

@smar000
Copy link

smar000 commented Mar 8, 2018

The override time channel would do nothing but set some internal state instead of actually doing something on it's own

Sorry, I don't think I explained clearly as I didn't mean that the override time channel should do anything by itself - it should work exactly as you state by setting an internal state. The temporary setpoint channel would then use this state only if it had been defined.

An example could be say the DMX binding (https://docs.openhab.org/addons/bindings/dmx/readme.html). I haven't used the binding myself but from reading the documentation, it looks as if the color channel sets the desired colour that the light will be set to once it is turned on. However, only the brightness channel can turn it on or off - i.e. the color channel itself will not turn the light on or off, but just holds an internal state.

@Rick-Jongbloed
Copy link

Rick-Jongbloed commented Nov 19, 2018

in the Evohome (Android) app we have a few defined statuses:

  • Energy saving: ECO
  • Away
  • Day off
  • Special day

If we could support these statuses it would be great (possibly in addition to a manual set).

For example, my schedule is set to use the heater from 18:00-22:00 every work-day and from 10:00-22:00 in the weekends. I would like to overrule this default setting based on presence information from Openhab. This way we can automatically set Away when there's no presence detected in the weekends, or set it to Day off when there's a presence through the week.

@Nebula83
Copy link
Owner Author

@ricadelic but this you can do already with the current binding. The system is available for reading and writing.

Topic of discussion is influencing a single zone in the system.

@Nebula83 Nebula83 reopened this Nov 25, 2018
@Nebula83
Copy link
Owner Author

@ALL currently there is only one channel for setting the zones set point. I'd like to make a binding setting for the operation of that channel. Mode 1: permanent. Mode 2: override until next scheduling point. Any other variation you can then do with timers within openhab.

@VibroAxe
Copy link

Seems a sensible way to handle it

@CurtisFeatures
Copy link

Not sure if its possible, Think someone else already suggested this but it would be useful if you gave the end use the option of how long to set it for. Whether that me minutes or hours or both.

@Nebula83
Copy link
Owner Author

Nebula83 commented Jan 17, 2019

@CurtisFeatures That could be a third option, indeed. If you could raise that as a separate issue?

@VibroAxe
Copy link

Having just had a poke at the latest version (which I believe doesn't do mode 2 yet) I would actually suggest that mode 2 should be the default, as this is the Evohome control display default action.

Also, if mode 1 sets a permanent override, how do you get it to return to schedule? (does setting the mode string reset this i'd assumed it was read only?)

@VibroAxe
Copy link

VibroAxe commented Jan 23, 2019

@Nebula83 Having finally got my home install up to date and running the latest version of the binding (fantastic work btw) I've run up a dev environment and started having a look at this over here:
https://github.com/VibroAxe/openhab2-evohome/tree/setpoint-modes

@Nebula83
Copy link
Owner Author

Nebula83 commented Jan 23, 2019

@VibroAxe as a user you will be able to select the behavior. Personally I think permanent override suits openhab better. Ideally you'd set up your schedules in OH. The schedule bound overrides don't make much sense then.

Returning to schedule can be done by sending a zero to the O override channel, as per the docs. Give it a minute or two to snap back.

The mode is not read only, it allows you to set the actual mode as well. This was actually the reason for me to start the binding in the first place 😊

@VibroAxe
Copy link

@Nebula83 yeah I discovered the setting 0, didn't see that in the docs :S

The problem with evohome and openhab running the schedules is that if your net connection goes out / tcc is down (an unfortunately regular occurrence at the moment) then your entire heating stop running. Personally I'm a big fan of specifying the basic schedule into evohome (as I suspect most users with an evohome already have) and then being apply to apply overrides as appropriate.

This is also replicates the setpoint override from the TRVs and the TCS display/app itself.

I appear to have got slightly carried away in my initial investigations and came up with a PR which largely implements what we've been discussing here over the last year.

@Nebula83
Copy link
Owner Author

It's this bit: https://www.openhab.org/addons/bindings/evohome/

SetPoint Number Allows for viewing and permanently overriding the temperature set point of the zone. Sending 0 cancels any active set point overrides.

And yeah, what you discribe is how I would use it as well :-) Regardless, it's not necessarily the OH way of doing things. The main reason to not do permanent overrides really boils down to not trusting the communication channel. I think it be different if the controls where local like with a hgi80.

Anyway, thanks for the PR. I'll have a look and see if we can get it in!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants