Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Heaters did not shut off after maintenance
#1
Today I used maintenance mode (30 minutes) to do some tank maintenance and frag gluing.  I noticed over an hour after I finished that the heaters were stuck on and did not shut off.

At 11:49:19 I started maintenance mode and at 12:15:17 it ended.

[Image: T8Lgqf_imjSt0yHC5GmQ1LgV8h6iE2-b5JzEc8wd...63-h947-no]

Heaters will still on at 1:22:01 when I noticed and hit "Resume" which turned them off.

[Image: mWKeM9RczYT39tvyvuX0v5UL_mtQHEVyMyFDPupM...63-h947-no]


Here is the graph, when I turned hit resume, temp was 79.0 degrees (set point is on at 77 off at 78)

[Image: R9_f1BxIrwwjVkPVp1FP-YbC-hSNSKIoEtpVzSlv...63-h947-no]


I'm concerned that if I hadn't noticed, they would have just continued to heat until hitting the manual setting on the heaters (81).

Looked a bit at the code in regard to heaters:

Code:
void outlets::monitorHeaters()  // monitors heaters/chillers
{
 if (maintenance.maintRunning() == 0)
 {
   for (byte a=0; a < _totalHeaters; a++)
   {
     if (sensorsTemp.tempCorF() == 1)
     {
       if (sensorsTemp.temp(_heatSenID[a]) <= _heatOn[a]) {outletOn(_heatOID[a],1);} // turn on heater
       else if (sensorsTemp.temp(_heatSenID[a]) >= _heatOff[a]) {outletOff(_heatOID[a],1);} // turn off heater
     }
     else
     {
       if (sensorsTemp.temp(_heatSenID[a]) <= ((_heatOn[a]-32)*5/9)) {outletOn(_heatOID[a],1);} // turn on heater
       else if (sensorsTemp.temp(_heatSenID[a]) >= ((_heatOff[a]-32)*5/9)) {outletOff(_heatOID[a],1);} // turn off heater
     }
     
//      else if ((sensorsTemp.temp(_heatSenID[a]) > _heatOn[a]) && (sensorsTemp.temp(_heatSenID[a]) < _heatOff[a])) {outletOff(_heatOID[a],1);} // turn off heater
   }
 }
}

Doesn't seem like anything should EVER stop the monitoring of heaters, this should be one routine that runs all the time without exception.  I'm wondering if somehow maintenance.maintRunning() failed to set maintenance mode to off after it finished.
Reply to top
#2
I just checked now, display mis-reported heaters were off, they were still on and heated to 80 degrees. I restarted the display via top left corner, said they were off, but still on. Restarted controller via top right corner, now they are off
Reply to top
#3
Hi midwestE, sorry about the trouble, I will look into this. Just for reference which version are you running, maybe v5.04?

First thing that sticks out is you mentioned you had a 30 minutes maintenance but looks like it only ran 25 minutes?

Now maybe you can convince me otherwise but this is why I don't have the heaters/chillers being monitored during maintenance. I imagine, as is my case, when someone typically does maintenance it involves removing water from the tank and can leave the heater exposed so you wouldn't want it to turn on. My thought was the heater outlet would be turned off by using the option to turn off an outlet on the maintenance settings page. Then once maintenance ends the heater would resume how it was. (Maybe I should have the heaters auto turn off when maintenance starts). This also disables the chiller which I think would be good as you wouldn't want a surprise and have it turn on in the middle of maintenance.

If you don't like that idea you can simply remove or add // in front of these 2 lines

if (maintenance.maintRunning() == 0)
{

and then do the same to the 2nd last closing }

I would still like to hear why you don't think the heaters should be off during maintenance?

If you can remember, were the heaters on or off when maintenance started?
Reply to top
#4
Currently running 5.04.  Sorry the 11:49 was a typo, the image correctly shows maintenance starting at 11:45:19 and ending at 12:15:17.  "If you can remember, were the heaters on or off when maintenance started?"  Looks like the heaters turned on 3 minutes or so before I started maintenance mode.

My thoughts on nothing ever changing the behavior of the heaters "behind the scenes" is as follows:

-Livestock is by far the most valuable thing in nearly every aquarium setup and by far the most likely cause of complete livestock loss is a heater that is stuck on or stuck off.  The cost of a heater running dry and breaking would be maybe $100 max, the cost of heater sticking on or off could be thousands of dollars
-I would proffer that a majority of aquarium keepers likely have a sump, and locate their heaters in an area of the sump that would never drop below a certain point unless specifically draining the sump.  Anyone doing this would likely be aware of exposing their heaters.  When doing water changes and the pump is off, the water in the sump is at a high state.  A higher state than normal running level, covering the heaters
-Maintenance mode already allows the user to choose to specifically turn off the heater outlets on the maintenance screen if they choose to, thereby allowing anyone that would want the heaters off during maintenance to specifically do so.  Same holds true for feed mode, setup allows for heater outlets to be shut off if desired

"(Maybe I should have the heaters auto turn off when maintenance starts). This also disables the chiller which I think would be good as you wouldn't want a surprise and have it turn on in the middle of maintenance."

In my opinion, anything that the setting itself allows the user to configure should behave exactly as configured. So if the user doesn't specifically turn off the chiller for maintenance, it should stay on, if the user doesn't turn off the heater, that should stay on. It's more intuitive that it works like the settings are set, so imo better to have 100% of the items work as configured and not have a assumptions or "hidden" exceptions.

If the chiller went on while in maintenance mode, intuitively the user would go the maintenance mode setup screen to check and say to themselves "Ahhh, I didn't turn the chiller off, thats why it went on". It would be more of a surprise to a user if they look at the settings and something happens that doesn't match with what the settings shows.
Reply to top
#5
Sorry I can't see any of the images, they appeared to be blocked from the host, they just display an icon.

Thanks for your thoughts, everything you said makes sense.

So I've been going through the maintenance code and have found some issues, a little disappointed as I spent so much time testing everything but there was some definite problems. I have figured out why you experienced what you did and this is why.

First issue was heaters/chillers were disabled for 255 minutes after maintenance starts no matter on duration set. Because I added custom rules to only run during or after maintenance I had to put a limit on when maintenance actually finished so I went with 255 minutes. This means if you turned any outlets/DC accessories on/off using the maintenance settings page they would resume once set duration expires but the custom rules based on maintenance would continue to be monitored for the remaining 255 minutes. As an example the custom rule can be set to run 2 hours after maintenance is finished even if maintenance only lasts 30 minutes. This could be good for possible dosing or whatever.

This was supposed to be setup so once the duration set was reached the heaters would be enabled again but that was only happening on the display because it doesn't monitor custom rules. That's why when you restarted just the display the heater appeared on but the controller still wouldn't let it come on. For timing reasons during startup I had to add a one time function that only runs when display starts which sets the icons to the correct state for only the heaters and chillers, that's why you had that discrepancy, I'm going to change that so like everything else the controller tells the display what to lite up.

I've been busy cleaning up the issues I found and will take your advice. I should have an update in a few hours.
Reply to top
#6
Ok so things should be working as expected now. It's kinda crazy, after going through the code I realized how you explained it was exactly what I had in mind when I did the display but somehow went the route I did when doing the controller code. Anyways you can read more details on the other thread.

https://www.robo-tank.ca/forum/Thread-Ro...65#pid4165

The only thing I left locked out for now during maintenance and feed is the ATO for the duration set for the mode, shortly I'm going to add the option to disable ATO during either mode, there's plenty of room on the ATO settings screen so that will be better yet.
Reply to top
#7
Thanks so much Rob for addressing this. I'll be flashing 5.06 today
Reply to top


Forum Jump:

Current time: 08-24-2019, 08:18 PM