if (outtemp == intemp)
return;
+ time_t now = ::time(NULL);
boolean want_state = outtemp > intemp;
+
if (id(valve_output).state == want_state) {
ESP_LOGD("control_valve", "Leaving valve %s", want_state ? "ON" : "OFF");
+ if (!want_state && id(pool_pump).state && now > id(control_valve_last_change) + 1800) {
+ auto t = id(sntp_time).now();
+ if (t.is_valid() && t.hour >= 17) {
+ ESP_LOGD("control_value", "Cold for half an hour. Turning pump off for the night");
+ id(pool_pump).turn_off();
+ }
+ }
return;
}
- time_t now = ::time(NULL);
-
if (now < id(control_valve_last_change) + 300) {
ESP_LOGD("control_valve", "Too soon to turn %s (%d seconds)", want_state ? "ON" : "OFF",
now - id(control_valve_last_change));
auto t = id(sntp_time).now();
if (t.is_valid()) {
ESP_LOGD("pump_default", "Setting pump switch at %dh", t.hour);
- if (t.hour >= 7 && t.hour < 19)
+ if (t.hour >= 7 && t.hour < 20)
id(pool_pump).turn_on();
else
id(pool_pump).turn_off();