From 531acd4d0569588475a07f3cafee7411e0b1964f Mon Sep 17 00:00:00 2001 From: Gilles Grandou Date: Fri, 10 May 2024 18:51:22 +0200 Subject: [PATCH] cleaned filtration time * filtration time is now fixed inside each range, instead of trying to follow linear curve * don't bother being super accurate, that's too much over-engineering after all ;) --- pool.js | 53 ++++++++++++++++++++++++++++------------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/pool.js b/pool.js index 73198b8..d03ba2e 100644 --- a/pool.js +++ b/pool.js @@ -28,12 +28,22 @@ let status = { // temperature->duration chart let filt_time = [ - [ 5, 1.0 ], // at 5°C, 1 hour of filtering - [ 10, 2.0 ], - [ 12, 4.0 ], - [ 16, 6.0 ], - [ 24, 8.0 ], - [ 27, 12.0 ], + [ 5, 2.0 ], // at 5°C, 2 hours of filtering + [ 8, 3.0 ], + [ 10, 4.0 ], + [ 11, 5.0 ], + [ 12, 6.0 ], + [ 14, 7.0 ], + [ 16, 8.0 ], + [ 18, 9.0 ], + [ 20, 10.0 ], + [ 22, 11.0 ], + [ 24, 12.0 ], + [ 25, 14.0 ], + [ 26, 17.0 ], + [ 27, 20.0 ], + [ 28, 22.0 ], + [ 29, 23.0 ], [ 30, 24.0 ] ]; @@ -62,25 +72,19 @@ function compute_filtration_time(t) { // [ start1, stop1, start2, stop2, ... ] function compute_schedule_filt(d) { - let s = null; - if (d < 2) { - s = [ 9, 9+d ]; - } else if (d < 8) { - s = [ 9, 10, 14, 14+d-1 ]; - } else if (d < 11) { - s = [ 9, 11, 14, 14+d-2 ]; - } else if (d < 14) { - s = [ 9, 9+d-9, 14, 23]; - } else if (d < 15) { - s = [ 9, 9+d ]; - } else if (d < 18) { - s = [ 24-d, 0 ]; - } else if (d < 24) { - s = [ 6, d-18 ]; - } else { - s = [ 6 ]; + let start = 17 - d/2; + let stop = 17 + d/2; + + while (stop >= 24) + stop = stop - 24; + + if (d < 24) { + let s = [ start, stop ]; } - + else { + let s = [ start ]; + } + return s; } @@ -142,7 +146,6 @@ function do_call(calls) { } // compute & configure pump schedule -// TODO force on when duration==24 // TODO force off when duration==0 // TODO freeze mode if cur < 1