SergiuToporjinschi / node-red-contrib-heater-controller

Heater controller for node-red dashboard
GNU General Public License v3.0
18 stars 17 forks source link

Suggestion: Cooling option #23

Open mrillies opened 5 years ago

mrillies commented 5 years ago

Hi, This widget looks quite powerful and well built.

It would be nice to have a cool or dual output function, making it similar to software version of an STC-1000.

From what i can see would only require a second output (or an additional message so as not to break current compatibility) and a second set of hysterisis values.

Thoughts or best to fork this to a seperate project?

SergiuToporjinschi commented 5 years ago

Hi, sorry for the late response... Let me see if I understood. You want, basically to set a temperature interval and keep the temp in that interval. Let's say you put an upper limit and a lower limit. Low: 20 and High; 25 and if the current temperature is 18 then turn the heater on and the cooler off; if the current temperature is above 25 like 28 then turn the cooler on and heater off; if the current temperature is 23 then turn the heater and the cooler off; I understood correctly?

mrillies commented 5 years ago

More like two back to back hysterisis.

Set point 20deg

Heat Hyst off= 1 Heat Hyst on =2

Cool Hyst off= 0 Cool Hyst on = 2

Start 20 Drop to 18 - heater turns on Raise to 19 heater turns off Natural rise to 22 cooler turns on Drop to 20 cooler turns off

Basically it’s just a second copy of the hysterisis but inverted, and maybe a parameter for “dead time” so it dosent switch on heat and cool too quickly after the other

On Mon, 3 Jun 2019 at 22:13, Sergiu Toporjinschi notifications@github.com wrote:

Hi, sorry for the late response... Let me see if I understood. You want, basically to set a temperature interval and keep the temp in that interval. Let's say you put an upper limit and a lower limit. Low: 20 and High; 25 and if the current temperature is 18 then turn the heater on and the cooler off; if the current temperature is above 25 like 28 then turn the cooler on and heater off; if the current temperature is 23 then turn the heater and the cooler off; I understood correctly?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SergiuToporjinschi/node-red-contrib-heater-controller/issues/23?email_source=notifications&email_token=AA6R3BGZFAZFUTGQHBKPNSTPYV3PLA5CNFSM4HR72BOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW2RZFQ#issuecomment-498408598, or mute the thread https://github.com/notifications/unsubscribe-auth/AA6R3BCVEVFOBQSJ7JXA2DTPYV3PLANCNFSM4HR72BOA .

SergiuToporjinschi commented 5 years ago

I understood you want to have a single temperature and not an interval like I described. and with hysteresis. I would go on intervals like I proposed first time but with hysteresis for not killing the cooler and the heater. And I would go like this because I see it more flexible and I think would work for you too if you are setting both low and high on the same value. I think;

The problem is that I do not have time know and I'm planning to refactor this project because I don't like my code that I wrote. In fact I never like my code after it passes some time :)...

So, if you fork it I cannot grantee that I will be able to merge it after. and to merge it before refactoring is possible to be hard to refactor...

But nevertheless is a great idea and I will implement it; Meanwhile, maybe you can achieve what you need by using same not twice in a workflow one for lowering temperature and one for rising it... I think you would have some work to there and is not user friendly ....

mrillies commented 5 years ago

Yeah I very much like your complete implementation, having two seperate widgets is not ideal.

Based on your plans I will just fork and quick hack your current implementation and come back to this later :)

Thanks for taking the time to discuss :)

On Tue, 4 Jun 2019 at 20:00, Sergiu Toporjinschi notifications@github.com wrote:

I understood you want to have a single temperature and not an interval like I described. and with hysteresis. I would go on intervals like I proposed first time but with hysteresis for not killing the cooler and the heater. And I would go like this because I see it more flexible and I think would work for you too if you are setting both low and high on the same value. I think;

The problem is that I do not have time know and I'm planning to refactor this project because I don't like my code that I wrote. In fact I never like my code after it passes some time :)...

So, if you fork it I cannot grantee that I will be able to merge it after. and to merge it before refactoring is possible to be hard to refactor...

But nevertheless is a great idea and I will implement it; Meanwhile, maybe you can achieve what you need by using same not twice in a workflow one for lowering temperature and one for rising it... I think you would have some work to there and is not user friendly ....

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SergiuToporjinschi/node-red-contrib-heater-controller/issues/23?email_source=notifications&email_token=AA6R3BGBMF6VXDDLDM2I5PDPY2UTFA5CNFSM4HR72BOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODW5MECQ#issuecomment-498778634, or mute the thread https://github.com/notifications/unsubscribe-auth/AA6R3BDOXGOMZ5KMEH76VS3PY2UTFANCNFSM4HR72BOA .

SergiuToporjinschi commented 5 years ago

aa no problem, be my guest :) yah maybe I can merge it ...

ahmaddxb commented 4 years ago

What part of the code would need to be changed in order for this to work for cooling. I want it to turn on when the temperature is higher then the target value rather than lower as it work now.

shortyishere commented 4 years ago

Did we add this an option for it to switch heating or cooling or add it as one module? I would like the same