1) Give a description of the problem
I’ve been using a few components in place of a smart TRV to control my CH system for some time now (thanks for the previous help!). System consists of (in part) a switch connected to a thermal actuator acting as a TRV. System isn’t running as efficiently as it could, as TRVs (or actuators) take around 90 secs to open fully. Other heating logic is built around whether this is on/off.
It’s been on my New Year List ( ) to improve this.
I’d like to have some kind of webcore logic which detects when the TRV is flicked on, and slowly counts up from “0” (off) to “100” (on). The value of this will be used to control a virtual switch, which in turn will be used to control the boiler.
As the moment it’s down to the TRV being ON or OFF. My idea was to have this virtual switch ONLY be on once the count has reached 100.
The current value needs to be able to be read/displayed.
Sounds like a lot, but perhaps my explanation isn’t great.
2) What is the expected behaviour?
Switch on, countdown starts from wherever is was last, and counts upwards in increments every x seconds.
Switch off, countdown starts from whatever is was last, and counts down until is reaches zero.
If I’ve switched it off, and it’s managed to get down to say, 30, then I flick it back on, it should start counting from 30 upwards. If it gets to 90, and is switched off again, it should start to count down from 90.
Once the figure has remained steady for x amount of seconds, set an external variable to reflect this.
3) What is happening/not happening?
Most of this works fine already in theory. However, occasionally during a bit of stress-testing (flicking on/off to simulate human error or a rapidly changing mind - i.e. the wife), it seems that the action of the switch change is missed. And thus the count stops entirely until you slow things down, stop, allow it to breathe again, and flick the switch again and let the logic/counters catch up with it all and return to normal.
4) Post a Green Snapshot of the piston
In this image, the internal variable can be seen to update from 0 to 100 in increments of 10. After the stress testing, it sometimes stops changing.
And when it stays unchanged for 10 secs (I should have made this longer, this is just testing), then this external variable does update as planned to reflect the level.
5) Attach logs after turning logging level to Full
no logs as I think the description covers it?
REMOVE BELOW AFTER READING
If a solution is found for your question then please mark the post as the solution.