Skip to content

Commit

Permalink
Fine tune some logging
Browse files Browse the repository at this point in the history
  • Loading branch information
theyosh committed Mar 8, 2024
1 parent 3e8a70d commit cfe239a
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
7 changes: 4 additions & 3 deletions hardware/relay/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -160,17 +160,18 @@ def __set_hardware_value(self, state):

@retry(terrariumRelayUpdateException, tries=3, delay=0.5, max_delay=2, logger=logger)
def __get_hardware_value(self):
error_message = f"Error getting new data from relay {self}"
data = None
try:
data = func_timeout(self._UPDATE_TIME_OUT, self._get_hardware_value)

except FunctionTimedOut:
logger.error(f"Error getting new data from relay {self}: Timed out after {self._UPDATE_TIME_OUT} seconds.")
raise terrariumRelayUpdateException(f"{error_message}: Timed out after {self._UPDATE_TIME_OUT} seconds.")
except Exception as ex:
logger.error(f"Error getting new data from relay {self}. Error: {ex}")
raise terrariumRelayUpdateException(f"{error_message}: {ex}.")

if data is None:
raise terrariumRelayUpdateException(f"Error getting new data from relay {self}. Error: unknown")
raise terrariumRelayUpdateException(f"{error_message}: no data.")

return data

Expand Down
15 changes: 8 additions & 7 deletions hardware/sensor/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -288,21 +288,22 @@ def load_hardware(self, reload=False):
# When we get Runtime errors retry up to 3 times
@retry(terrariumSensorUpdateException, tries=3, delay=0.5, max_delay=2, logger=logger)
def get_data(self):
error_message = f"Error getting new data from sensor {self}"
data = None
self.__power_management(True)

try:
self.__power_management(True)
data = func_timeout(self._UPDATE_TIME_OUT, self._get_data)

except FunctionTimedOut:
# What ever fails... does not matter, as the data is still None and will raise a terrariumSensorUpdateException and trigger the retry
logger.error(f"Sensor {self} timed out after {self._UPDATE_TIME_OUT} seconds during updating...")
raise terrariumSensorUpdateException(f"{error_message}: Timed out after {self._UPDATE_TIME_OUT} seconds.")
except Exception as ex:
logger.error(f"Sensor {self} has exception: {ex}")

self.__power_management(False)
raise terrariumSensorUpdateException(f"{error_message}: {ex}.")
finally:
self.__power_management(False)

if data is None:
raise terrariumSensorUpdateException(f"Invalid reading from sensor {self}")
raise terrariumSensorUpdateException(f"{error_message}: no data.")

return data

Expand Down
2 changes: 1 addition & 1 deletion logging.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
keys=root,webserver,meross

[handlers]
keys=consoleHandler,fileHandler,fileHandlerDebug,syslogHandler,webserverHandler,notificationHandler, devNull
keys=consoleHandler,fileHandler,fileHandlerDebug,syslogHandler,webserverHandler,notificationHandler,devNull

[formatters]
keys=simpleFormatter,webFormatter
Expand Down

0 comments on commit cfe239a

Please sign in to comment.