diff --git a/main.py b/main.py index faf76ad095ed66b86d00e940f789a6c17c20b62b..2e1e80d49dfd04bd17e1d05180014e6db4e8fe1e 100755 --- a/main.py +++ b/main.py @@ -54,7 +54,8 @@ class DeviceWrapper: return self.libdyson.is_connected def connect(self, host: str): - """Connect to the device and start the environmental monitoring timer.""" + """Connect to the device and start the environmental monitoring + timer.""" self.libdyson.connect(host) self._refresh_timer() @@ -208,18 +209,23 @@ def main(argv): logging.exception('Could not load configuration: %s', args.config) sys.exit(-1) - devices = cfg.devices - if len(devices) == 0: - logging.fatal( - 'No devices configured; please re-run this program with --create_device_cache.') - sys.exit(-2) - if args.create_device_cache: + if not cfg.dyson_credentials: + logging.error('DysonLink credentials not found in %s, cannot generate device cache', + args.config) + sys.exit(-1) + logging.info( '--create_device_cache supplied; breaking out to perform this.') account.generate_device_cache(cfg.dyson_credentials, args.config) sys.exit(0) + devices = cfg.devices + if len(devices) == 0: + logging.fatal( + 'No devices configured; please re-run this program with --create_device_cache.') + sys.exit(-2) + prometheus_client.start_http_server(args.port) ConnectionManager(metrics.Metrics().update, devices, cfg.hosts)