Leave out unusable rooms instead of pausing; add keep-last-value option
A single stale, unavailable, missing or invalid room sensor paused learning and forecasts for every room. That is not acceptable once the MPC may control heating. Now such a room is left out: the weighted temperature, learning and the optimizer use the remaining rooms with their weights re-normalized, and a room learns only across poll pairs where it was usable at both ends. Readiness considers only the rooms used. Everything pauses only when no room is usable or a shared input (relay, thermostat, outdoor temperature) is missing. A new setup/Configure checkbox, room_stale_use_last_value (default off), keeps using a stale room sensor's last value instead, for sensors that report only on change. It never applies to unavailable or invalid sensors, or to a sensor silent for more than 24 hours. Status adds excluded_rooms, weight_coverage and a per-room "used" flag. English and Romanian labels and help text added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
cd8b65ac2f
commit
3076beebfb
10 files changed
+184
-34
No files matched your search
@@ -48,5 +48,7 @@ class FreshnessTests(unittest.TestCase):
|
||||
data = json.loads((ROOT / name).read_text())
|
||||
for section, step in (('config', 'user'), ('options', 'init')):
|
||||
labels = data[section]['step'][step]['data']
|
||||
for key in ('room_max_age_minutes', 'weather_max_age_minutes'):
|
||||
for key in ('room_max_age_minutes', 'weather_max_age_minutes', 'room_stale_use_last_value'):
|
||||
self.assertTrue(labels[key])
|
||||
help_text = data[section]['step'][step]['data_description']
|
||||
self.assertIn('24', help_text['room_stale_use_last_value'])
|
||||
Reference in new issue
Block a user