Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion apps/predbat/temperature.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,10 @@ async def run(self, seconds, first):
Main run loop - polls API every hour
"""
try:
if not self.temperature_enable:
# Re-read enable flag dynamically so runtime UI toggles are respected
temperature_enable = self.get_arg("temperature_enable", self.temperature_enable)
if not temperature_enable:
self.update_success_timestamp()
return True
if first or (seconds % (60 * 60) == 0):
# Fetch temperature data every hour
Expand Down
18 changes: 17 additions & 1 deletion apps/predbat/tests/test_temperature.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,18 @@ def update_success_timestamp(self):
def last_updated_time(self):
return self._last_updated_time

def get_arg(self, arg, default=None, **kwargs):
"""Mock get_arg - returns stored config values"""
if arg == "temperature_enable":
return self.temperature_enable
if arg == "temperature_latitude":
return self.temperature_latitude
if arg == "temperature_longitude":
return self.temperature_longitude
if arg == "temperature_url":
return self.temperature_url
return default

def get_state_wrapper(self, entity_id, default=None, attribute=None):
"""Mock get_state_wrapper"""
if entity_id in self.state_storage:
Expand Down Expand Up @@ -742,7 +754,11 @@ def run_test():
print(" ERROR: fetch_temperature_data should not be called when disabled")
return 1

print(" PASS: run returns True without fetching when disabled")
if temp_api._last_updated_time is None:
print(" ERROR: update_success_timestamp should be called when disabled to keep component healthy")
return 1

print(" PASS: run returns True without fetching when disabled, and marks component healthy")
return 0

return run_test()
Expand Down