diff --git a/octoprint_bambu_printer/printer/bambu_virtual_printer.py b/octoprint_bambu_printer/printer/bambu_virtual_printer.py index efde15c..2f30411 100644 --- a/octoprint_bambu_printer/printer/bambu_virtual_printer.py +++ b/octoprint_bambu_printer/printer/bambu_virtual_printer.py @@ -269,34 +269,46 @@ class BambuVirtualPrinter: try: # Decode message and update client data payload = json.loads(msg.payload.decode('utf-8')) - self._log.debug(f"MQTT message received on topic {msg.topic}: {payload.keys()}") + self._log.debug(f"MQTT message received on topic {msg.topic}: {list(payload.keys())}") + + # Vollständigen Payload für Debugging ausgeben + self._log.debug(f"Full MQTT payload: {json.dumps(payload)}") # Verarbeite direkt die Daten aus der MQTT-Nachricht if 'print' in payload: + self._log.info(f"Processing print data with keys: {list(payload['print'].keys())}") self._process_print_data(payload['print']) + # Forward the message to pybambu for its internal state try: if hasattr(self._bambu_client, '_process_message'): self._bambu_client._process_message(msg.topic, payload) + self._log.debug("Message forwarded to pybambu via _process_message") else: # Alternative Methode für pybambu self._update_bambu_client_state(payload) + self._log.debug("Message processed via _update_bambu_client_state") except Exception as e: self._log.error(f"Error forwarding to pybambu: {e}") + # Trigger explicit update of printer info after processing print data + self._log.debug("Triggering printer data update") self.new_update("event_printer_data_update") if 'info' in payload: + self._log.info(f"Processing info data with keys: {list(payload['info'].keys())}") if 'hms' in payload['info']: # Aktualisiere HMS-Fehler direkt try: if hasattr(self._bambu_client.device, 'hms'): self._bambu_client.device.hms.update_from_payload(payload['info']['hms']) + self._log.debug("HMS error data updated") except Exception as e: self._log.error(f"Error updating HMS data: {e}") + self._log.debug("Triggering HMS errors update") self.new_update("event_hms_errors") except Exception as e: - self._log.error(f"Error processing MQTT message: {e}") + self._log.error(f"Error processing MQTT message: {e}", exc_info=True) def _process_print_data(self, print_data): """Verarbeitet direkt die Druckerdaten aus der MQTT-Nachricht""" @@ -833,13 +845,19 @@ class BambuVirtualPrinter: return output def _processTemperatureQuery(self) -> bool: - # includeOk = not self._okBeforeCommandOutput - if self.is_connected: - output = self._create_temperature_message() - self.sendIO(output) - return True - else: - return False + # Debug-Log hinzufügen, um zu prüfen, ob die Methode aufgerufen wird + self._log.debug(f"Processing temperature query - connected: {self.is_connected}") + + # Aktuelle Temperaturdaten ausgeben + self._log.debug(f"Current temperature data: Nozzle={self._telemetry.temp[0]}/{self._telemetry.targetTemp[0]}, " + + f"Bed={self._telemetry.bedTemp}/{self._telemetry.bedTargetTemp}") + + # Temperaturmeldung erzeugen und senden, unabhängig von Connected-Status + output = self._create_temperature_message() + self._log.debug(f"Sending temperature message: {output.strip()}") + self.sendIO(output) + + return True def close(self): if self._mqtt_client and self._mqtt_connected: