diff --git a/addons/hw_drivers/main.py b/addons/hw_drivers/main.py index 34b1ab12d8d..8f7b005797c 100644 --- a/addons/hw_drivers/main.py +++ b/addons/hw_drivers/main.py @@ -14,6 +14,14 @@ from odoo.addons.hw_drivers.websocket_client import WebsocketClient _logger = logging.getLogger(__name__) +try: + import schedule +except ImportError: + schedule = None + # For now, it is intended to not be installed on the iot-box as it uses native Unix cron system + if platform.system() == 'Windows': + _logger.warning('Could not import library schedule') + try: from dbus.mainloop.glib import DBusGMainLoop except ImportError: @@ -104,6 +112,9 @@ class Manager(Thread): except Exception as e: _logger.error("Error in %s: %s", str(interface), e) + # Set scheduled actions + schedule and schedule.every().day.at("00:00").do(helpers.get_certificate_status) + #Setup the websocket connection if helpers.get_odoo_server_url(): iot_client.start() @@ -116,6 +127,7 @@ class Manager(Thread): self.previous_iot_devices = iot_devices.copy() self.send_alldevices(iot_client) time.sleep(3) + schedule and schedule.run_pending() except Exception: # No matter what goes wrong, the Manager loop needs to keep running _logger.error(format_exc()) diff --git a/setup/win32/requirements-local-proxy.txt b/setup/win32/requirements-local-proxy.txt index eebff0aa628..6f73279901a 100644 --- a/setup/win32/requirements-local-proxy.txt +++ b/setup/win32/requirements-local-proxy.txt @@ -4,3 +4,4 @@ ghostscript==0.7 cryptocode==0.1 pysmb==1.2.9.1 websocket-client==1.6.3 +schedule==1.2.1