From 92e11cdbf3d75e3c80c4cd03009183e40eac2c06 Mon Sep 17 00:00:00 2001 From: Manuel Weiser Date: Sun, 2 Mar 2025 11:27:16 +0100 Subject: [PATCH] =?UTF-8?q?Verbessere=20die=20Initialisierung=20des=20Bamb?= =?UTF-8?q?uClient-Ger=C3=A4teattributs,=20indem=20die=20connect()-Methode?= =?UTF-8?q?=20umgangen=20wird=20und=20Attribute=20manuell=20gesetzt=20werd?= =?UTF-8?q?en;=20erweitere=20Fehlerbehandlung=20bei=20der=20Initialisierun?= =?UTF-8?q?g.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../printer/bambu_virtual_printer.py | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/octoprint_bambu_printer/printer/bambu_virtual_printer.py b/octoprint_bambu_printer/printer/bambu_virtual_printer.py index 736417f..cc4b855 100644 --- a/octoprint_bambu_printer/printer/bambu_virtual_printer.py +++ b/octoprint_bambu_printer/printer/bambu_virtual_printer.py @@ -451,13 +451,23 @@ class BambuVirtualPrinter: auth_token=self._settings.get(["auth_token"]), ) - # Initialisiere die device-Eigenschaft manuell, wenn sie nicht vorhanden ist + # Initialisiere die device-Eigenschaft manuell, ohne connect() zu benutzen + # da die connect()-Methode ein Callback als Parameter erwartet if not hasattr(bambu_client, 'device'): - self._log.debug("BambuClient has no device attribute, creating it manually") - # Anstatt die nicht existierende _init_device Methode zu verwenden, - # initialisieren wir den Client mit einer Verbindung, die später durch unsere ersetzt wird - bambu_client.connect() - bambu_client.disconnect() # Trennen Sie die automatische Verbindung sofort wieder + self._log.debug("BambuClient has no device attribute, initializing manually") + # Statt bambu_client.connect() zu verwenden, initialisieren wir die Attribute direkt + try: + # Wir prüfen, ob wir auf private Attribute zugreifen können + if hasattr(bambu_client, '_init_attributes'): + bambu_client._init_attributes() + self._log.debug("Initialized BambuClient attributes manually via _init_attributes") + else: + # Wenn keine _init_attributes Methode vorhanden ist, erstellen wir die grundlegenden Attribute manuell + from pybambu import BambuDevice + bambu_client.device = BambuDevice() + self._log.debug("Created device attribute manually") + except Exception as e: + self._log.error(f"Error initializing BambuClient: {e}", exc_info=True) # Set up our own MQTT client self._mqtt_client = mqtt.Client()