Verbessere die Initialisierung des BambuClient-Geräteattributs, indem die connect()-Methode umgangen wird und Attribute manuell gesetzt werden; erweitere Fehlerbehandlung bei der Initialisierung.

This commit is contained in:
Manuel Weiser 2025-03-02 11:27:16 +01:00
parent 61c9332f15
commit 92e11cdbf3

View File

@ -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()