From 2a0be55a8d868c218cdb28b40ce2902a5cdf1b4f Mon Sep 17 00:00:00 2001 From: Eric Callahan Date: Thu, 25 Nov 2021 17:14:43 -0500 Subject: [PATCH] power: remove has_gpio check This prevents loading the gpio module unless a gpio device is configured. Resolves #283. Signed-off-by: Eric Callahan --- moonraker/components/power.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/moonraker/components/power.py b/moonraker/components/power.py index 0448877..6f47a88 100644 --- a/moonraker/components/power.py +++ b/moonraker/components/power.py @@ -37,7 +37,6 @@ if TYPE_CHECKING: class PrinterPower: def __init__(self, config: ConfigHelper) -> None: self.server = config.get_server() - has_gpio = self.server.load_component(config, 'gpio', None) is not None self.devices: Dict[str, PowerDevice] = {} prefix_sections = config.get_prefix_sections("power") logging.info(f"Power component loading devices: {prefix_sections}") @@ -59,12 +58,12 @@ class PrinterPower: dev_class = dev_types.get(dev_type) if dev_class is None: raise config.error(f"Unsupported Device Type: {dev_type}") - if issubclass(dev_class, GpioDevice) and not has_gpio: - self.server.add_warning( - f"Unable to load power device [{cfg.get_name()}], " - "gpio component not available") + try: + dev = dev_class(cfg) + except Exception as e: + msg = f"Failed to load power device [{cfg.get_name()}]\n{e}" + self.server.add_warning(msg) continue - dev = dev_class(cfg) self.devices[dev.get_name()] = dev self.server.register_endpoint(