diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml index 0496148a4..c5eea9f86 100644 --- a/.github/workflows/security.yml +++ b/.github/workflows/security.yml @@ -85,7 +85,7 @@ jobs: - name: Upload Trivy results to GitHub Security uses: github/codeql-action/upload-sarif@v4 - if: always() + if: always() && hashFiles('trivy-results.sarif') != '' with: sarif_file: trivy-results.sarif category: trivy @@ -102,7 +102,7 @@ jobs: - name: Upload Trivy config results uses: github/codeql-action/upload-sarif@v4 - if: always() + if: always() && hashFiles('trivy-config-results.sarif') != '' with: sarif_file: trivy-config-results.sarif category: trivy-config diff --git a/debug_logs/a1 mini/CubeTest.3mf b/debug_logs/a1 mini/CubeTest.3mf new file mode 100644 index 000000000..2a7072e7b Binary files /dev/null and b/debug_logs/a1 mini/CubeTest.3mf differ diff --git a/debug_logs/a1 mini/CubeTest.gcode.3mf b/debug_logs/a1 mini/CubeTest.gcode.3mf new file mode 100644 index 000000000..69a672cbe Binary files /dev/null and b/debug_logs/a1 mini/CubeTest.gcode.3mf differ diff --git a/debug_logs/a1 mini/bambuddy-support-20260218-193933.zip b/debug_logs/a1 mini/bambuddy-support-20260218-193933.zip new file mode 100644 index 000000000..224fe8745 Binary files /dev/null and b/debug_logs/a1 mini/bambuddy-support-20260218-193933.zip differ diff --git a/debug_logs/h2c/Cube + Cube + Cube.gcode.3mf b/debug_logs/h2c/Cube + Cube + Cube.gcode.3mf new file mode 100644 index 000000000..0b6ebc0aa Binary files /dev/null and b/debug_logs/h2c/Cube + Cube + Cube.gcode.3mf differ diff --git a/debug_logs/h2c/bambuddy-support-20260218-110542.zip b/debug_logs/h2c/bambuddy-support-20260218-110542.zip new file mode 100644 index 000000000..c291ba61a Binary files /dev/null and b/debug_logs/h2c/bambuddy-support-20260218-110542.zip differ diff --git a/debug_logs/h2c/support-info.json b/debug_logs/h2c/support-info.json new file mode 100644 index 000000000..00fd65e57 --- /dev/null +++ b/debug_logs/h2c/support-info.json @@ -0,0 +1,143 @@ +{ + "generated_at": "2026-02-18T11:05:41.783882", + "app": { + "version": "0.2.1b", + "debug_mode": false + }, + "system": { + "platform": "Windows", + "platform_release": "10", + "platform_version": "10.0.26100", + "architecture": "AMD64", + "python_version": "3.11.0" + }, + "environment": { + "docker": false, + "data_dir": "C:\\Users\\Matteo\\Documents\\Personal\\3D Printing\\bambuddy", + "log_dir": "C:\\Users\\Matteo\\Documents\\Personal\\3D Printing\\bambuddy\\logs", + "timezone": "" + }, + "database": { + "archives_total": 12, + "archives_completed": 1, + "printers_total": 1, + "filaments_total": 0, + "projects_total": 1, + "smart_plugs_total": 1 + }, + "printers": [ + { + "index": 1, + "model": "H2C", + "nozzle_count": 2, + "is_active": true, + "mqtt_connected": true, + "state": "FAILED", + "firmware_version": "01.01.05.00", + "wifi_signal": -51, + "reachable": true, + "ams_unit_count": 2, + "ams_tray_count": 5, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 2, + "nozzle_rack_count": 7 + } + ], + "settings": { + "auth_enabled": "true", + "setup_completed": "true", + "auto_archive": "true", + "save_thumbnails": "true", + "capture_finish_photo": "true", + "default_filament_cost": "25.0", + "currency": "USD", + "energy_cost_per_kwh": "0.15", + "energy_tracking_mode": "total", + "check_updates": "true", + "check_printer_firmware": "true", + "notification_language": "en", + "ams_humidity_good": "40", + "ams_humidity_fair": "60", + "ams_temp_good": "28.0", + "ams_temp_fair": "35.0", + "ams_history_retention_days": "30", + "per_printer_mapping_expanded": "false", + "date_format": "system", + "time_format": "system", + "default_printer_id": "None", + "ftp_retry_enabled": "true", + "ftp_retry_count": "3", + "ftp_retry_delay": "2", + "ftp_timeout": "30", + "mqtt_enabled": "false", + "mqtt_broker": "", + "mqtt_port": "1883", + "mqtt_username": "", + "mqtt_topic_prefix": "bambuddy", + "mqtt_use_tls": "false", + "ha_enabled": "false", + "library_archive_mode": "ask", + "library_disk_warning_gb": "5.0", + "camera_view_mode": "window", + "prometheus_enabled": "false", + "spoolman_enabled": "false", + "spoolman_sync_mode": "auto", + "spoolman_disable_weight_sync": "true", + "spoolman_report_partial_usage": "true", + "debug_logging_enabled": "true", + "debug_logging_enabled_at": "2026-02-18T10:28:42.159229", + "disable_filament_warnings": "false", + "preferred_slicer": "bambu_studio", + "virtual_printer_enabled": "false", + "virtual_printer_mode": "proxy" + }, + "integrations": { + "notification_providers": [], + "spoolman": { + "enabled": false, + "reachable": false + }, + "mqtt_relay": { + "enabled": false, + "connected": false, + "broker": "", + "port": 0, + "topic_prefix": "bambuddy" + }, + "homeassistant": { + "enabled": false + } + }, + "database_health": { + "journal_mode": "wal", + "quick_check": "ok", + "db_size_bytes": 1081344, + "wal_size_bytes": 4181832 + }, + "dependencies": { + "fastapi": "0.115.6", + "uvicorn": "0.34.0", + "pydantic": "2.10.4", + "sqlalchemy": "2.0.46", + "paho-mqtt": "2.1.0", + "psutil": "6.1.0", + "httpx": "0.28.1", + "aiofiles": "25.1.0", + "cryptography": "44.0.3", + "opencv-python-headless": "4.11.0.86", + "numpy": "2.2.5" + }, + "log_file": { + "size_bytes": 4256083, + "size_formatted": "4.1 MB" + }, + "network": { + "interface_count": 0, + "interfaces": [] + }, + "websockets": { + "active_connections": 2 + } +} diff --git a/debug_logs/h2d_pro/H2D Pro 5 Color AMS Test.gcode.3mf b/debug_logs/h2d_pro/H2D Pro 5 Color AMS Test.gcode.3mf new file mode 100644 index 000000000..44e439ff5 Binary files /dev/null and b/debug_logs/h2d_pro/H2D Pro 5 Color AMS Test.gcode.3mf differ diff --git a/debug_logs/h2d_pro/H2D Pro mgtt request from Bambustudio.json b/debug_logs/h2d_pro/H2D Pro mgtt request from Bambustudio.json new file mode 100644 index 000000000..53008347c --- /dev/null +++ b/debug_logs/h2d_pro/H2D Pro mgtt request from Bambustudio.json @@ -0,0 +1,56 @@ +{ + "print": { + "ams_mapping": [ + 1, + 0, + 128, + 2, + 3 + ], + "ams_mapping2": [ + { + "ams_id": 0, + "slot_id": 1 + }, + { + "ams_id": 0, + "slot_id": 0 + }, + { + "ams_id": 128, + "slot_id": 0 + }, + { + "ams_id": 0, + "slot_id": 2 + }, + { + "ams_id": 0, + "slot_id": 3 + } + ], + "auto_bed_leveling": 2, + "bed_leveling": false, + "bed_type": "textured_plate", + "cfg": "0", + "command": "project_file", + "extrude_cali_flag": 2, + "extrude_cali_manual_mode": 0, + "file": "Untitled.gcode.3mf", + "flow_cali": false, + "layer_inspect": true, + "md5": "64B5BC029BB2A0A19D8B9FF3E7BF29D3", + "nozzle_offset_cali": 2, + "param": "Metadata/plate_1.gcode", + "profile_id": "0", + "project_id": "0", + "sequence_id": "20002", + "subtask_id": "0", + "subtask_name": "Untitled", + "task_id": "0", + "timelapse": true, + "url": "ftp://Untitled.gcode.3mf", + "use_ams": true, + "vibration_cali": false + } +} diff --git a/debug_logs/h2d_pro/bambuddy-support-20260218-092343.zip b/debug_logs/h2d_pro/bambuddy-support-20260218-092343.zip new file mode 100644 index 000000000..66303ce32 Binary files /dev/null and b/debug_logs/h2d_pro/bambuddy-support-20260218-092343.zip differ diff --git a/debug_logs/h2d_pro/support_data/support-info.json b/debug_logs/h2d_pro/support_data/support-info.json new file mode 100644 index 000000000..5de821600 --- /dev/null +++ b/debug_logs/h2d_pro/support_data/support-info.json @@ -0,0 +1,204 @@ +{ + "generated_at": "2026-02-18T09:23:42.855508", + "app": { + "version": "0.2.1b", + "debug_mode": false + }, + "system": { + "platform": "Linux", + "platform_release": "6.12.62+rpt-rpi-v8", + "platform_version": "#1 SMP PREEMPT Debian 1:6.12.62-1+rpt1 (2025-12-18)", + "architecture": "aarch64", + "python_version": "3.13.5" + }, + "environment": { + "docker": false, + "data_dir": "/home/[user]/bambuddy", + "log_dir": "/home/[user]/bambuddy/logs", + "timezone": "" + }, + "database": { + "archives_total": 51, + "archives_completed": 25, + "printers_total": 4, + "filaments_total": 0, + "projects_total": 1, + "smart_plugs_total": 0 + }, + "printers": [ + { + "index": 1, + "model": "H2D Pro", + "nozzle_count": 2, + "is_active": true, + "mqtt_connected": true, + "state": "FINISH", + "firmware_version": "01.01.00.00", + "wifi_signal": -90, + "reachable": true, + "ams_unit_count": 2, + "ams_tray_count": 5, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 2 + }, + { + "index": 2, + "model": "X1E", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "FINISH", + "firmware_version": "01.02.02.00", + "wifi_signal": -90, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 1 + }, + { + "index": 3, + "model": "X1E", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "RUNNING", + "firmware_version": "01.02.02.00", + "wifi_signal": -90, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 1 + }, + { + "index": 4, + "model": "H2D Pro", + "nozzle_count": 2, + "is_active": true, + "mqtt_connected": true, + "state": "RUNNING", + "firmware_version": "01.01.00.00", + "wifi_signal": -90, + "reachable": true, + "ams_unit_count": 2, + "ams_tray_count": 5, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 2, + "nozzle_rack_count": 2 + } + ], + "settings": { + "auth_enabled": "true", + "setup_completed": "true", + "auto_archive": "true", + "save_thumbnails": "true", + "capture_finish_photo": "true", + "default_filament_cost": "25.0", + "currency": "CHF", + "energy_cost_per_kwh": "0.15", + "energy_tracking_mode": "total", + "check_updates": "true", + "check_printer_firmware": "true", + "notification_language": "de", + "ams_humidity_good": "40", + "ams_humidity_fair": "60", + "ams_temp_good": "28.0", + "ams_temp_fair": "35.0", + "ams_history_retention_days": "30", + "per_printer_mapping_expanded": "true", + "date_format": "iso", + "time_format": "24h", + "default_printer_id": "None", + "ftp_retry_enabled": "true", + "ftp_retry_count": "3", + "ftp_retry_delay": "2", + "mqtt_enabled": "false", + "mqtt_broker": "", + "mqtt_port": "1883", + "mqtt_username": "", + "mqtt_topic_prefix": "bambuddy", + "mqtt_use_tls": "false", + "ha_enabled": "false", + "library_archive_mode": "ask", + "library_disk_warning_gb": "5.0", + "camera_view_mode": "window", + "prometheus_enabled": "false", + "debug_logging_enabled": "true", + "debug_logging_enabled_at": "2026-02-18T08:39:02.706910", + "bed_cooled_threshold": "35.0", + "ftp_timeout": "30", + "preferred_slicer": "bambu_studio", + "virtual_printer_enabled": "false", + "virtual_printer_mode": "print_queue" + }, + "integrations": { + "notification_providers": [ + { + "type": "telegram", + "enabled": true, + "has_last_error": false + } + ], + "spoolman": { + "enabled": false, + "reachable": false + }, + "mqtt_relay": { + "enabled": false, + "connected": false, + "broker": "", + "port": 0, + "topic_prefix": "bambuddy" + }, + "homeassistant": { + "enabled": false + } + }, + "database_health": { + "journal_mode": "wal", + "quick_check": "ok", + "db_size_bytes": 1531904, + "wal_size_bytes": 4610312 + }, + "dependencies": { + "fastapi": "0.128.0", + "uvicorn": "0.40.0", + "pydantic": "2.12.5", + "sqlalchemy": "2.0.46", + "paho-mqtt": "2.1.0", + "psutil": "7.2.2", + "httpx": "0.28.1", + "aiofiles": "25.1.0", + "cryptography": "46.0.5", + "opencv-python-headless": "4.13.0.90", + "numpy": "2.4.2" + }, + "log_file": { + "size_bytes": 1889843, + "size_formatted": "1.8 MB" + }, + "network": { + "interface_count": 1, + "interfaces": [ + { + "name": "eth0", + "subnet": "129.129.181.0/24" + } + ] + }, + "websockets": { + "active_connections": 1 + } +} diff --git a/debug_logs/h2s/Cube.3mf b/debug_logs/h2s/Cube.3mf new file mode 100644 index 000000000..5f74f4525 Binary files /dev/null and b/debug_logs/h2s/Cube.3mf differ diff --git a/debug_logs/h2s/bambuddy-support-20260218-090838.zip b/debug_logs/h2s/bambuddy-support-20260218-090838.zip new file mode 100644 index 000000000..cb8eb9bd2 Binary files /dev/null and b/debug_logs/h2s/bambuddy-support-20260218-090838.zip differ diff --git a/debug_logs/h2s/support_data/support-info.json b/debug_logs/h2s/support_data/support-info.json new file mode 100644 index 000000000..19e7b7496 --- /dev/null +++ b/debug_logs/h2s/support_data/support-info.json @@ -0,0 +1,335 @@ +{ + "generated_at": "2026-02-18T09:08:38.278095", + "app": { + "version": "0.2.1b", + "debug_mode": false + }, + "system": { + "platform": "Linux", + "platform_release": "6.8.0-100-generic", + "platform_version": "#100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026", + "architecture": "x86_64", + "python_version": "3.13.12" + }, + "environment": { + "docker": true, + "data_dir": "/app/data", + "log_dir": "/app/logs", + "timezone": "Europe/Berlin" + }, + "database": { + "archives_total": 128, + "archives_completed": 84, + "printers_total": 11, + "filaments_total": 0, + "projects_total": 0, + "smart_plugs_total": 0 + }, + "printers": [ + { + "index": 1, + "model": "H2S", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "RUNNING", + "firmware_version": "01.01.02.00", + "wifi_signal": -63, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 2, + "nozzle_rack_count": 1 + }, + { + "index": 2, + "model": "H2D", + "nozzle_count": 2, + "is_active": true, + "mqtt_connected": true, + "state": "FAILED", + "firmware_version": "01.02.10.00", + "wifi_signal": -68, + "reachable": true, + "ams_unit_count": 5, + "ams_tray_count": 1, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 4, + "nozzle_rack_count": 2 + }, + { + "index": 3, + "model": "H2S", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "FAILED", + "firmware_version": "01.01.02.00", + "wifi_signal": -67, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 1 + }, + { + "index": 4, + "model": "H2S", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "RUNNING", + "firmware_version": "01.01.02.00", + "wifi_signal": -67, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 2, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 1, + "nozzle_rack_count": 1 + }, + { + "index": 5, + "model": "H2S", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "RUNNING", + "firmware_version": "01.01.02.00", + "wifi_signal": -69, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 3, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 1, + "nozzle_rack_count": 1 + }, + { + "index": 6, + "model": "X1C", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "FINISH", + "firmware_version": "01.11.02.00", + "wifi_signal": -53, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 3, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 1 + }, + { + "index": 7, + "model": "X1C", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "FINISH", + "firmware_version": "01.11.02.00", + "wifi_signal": -62, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 3, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 2, + "nozzle_rack_count": 1 + }, + { + "index": 8, + "model": "X1C", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "RUNNING", + "firmware_version": "01.11.02.00", + "wifi_signal": -64, + "reachable": true, + "ams_unit_count": 0, + "ams_tray_count": 0, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 2, + "nozzle_rack_count": 1 + }, + { + "index": 9, + "model": "X1C", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "RUNNING", + "firmware_version": "01.11.02.00", + "wifi_signal": -63, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 2, + "nozzle_rack_count": 1 + }, + { + "index": 10, + "model": "X1C", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "FINISH", + "firmware_version": "01.11.02.00", + "wifi_signal": -63, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 2, + "nozzle_rack_count": 1 + }, + { + "index": 11, + "model": "X1C", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "FINISH", + "firmware_version": "01.11.02.00", + "wifi_signal": -63, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 1, + "nozzle_rack_count": 1 + } + ], + "settings": { + "auth_enabled": "true", + "setup_completed": "true", + "auto_archive": "true", + "save_thumbnails": "true", + "capture_finish_photo": "true", + "default_filament_cost": "3000.0", + "currency": "CHF", + "energy_cost_per_kwh": "120.0", + "energy_tracking_mode": "total", + "check_updates": "true", + "check_printer_firmware": "true", + "notification_language": "en", + "ams_humidity_good": "20", + "ams_humidity_fair": "50", + "ams_temp_good": "28.0", + "ams_temp_fair": "35.0", + "ams_history_retention_days": "30", + "per_printer_mapping_expanded": "false", + "date_format": "us", + "time_format": "24h", + "default_printer_id": "2", + "ftp_retry_enabled": "true", + "ftp_retry_count": "3", + "ftp_retry_delay": "2", + "ftp_timeout": "30", + "mqtt_enabled": "false", + "mqtt_broker": "", + "mqtt_port": "1883", + "mqtt_username": "", + "mqtt_topic_prefix": "bambuddy", + "mqtt_use_tls": "false", + "ha_enabled": "false", + "library_archive_mode": "always", + "library_disk_warning_gb": "5.0", + "camera_view_mode": "embedded", + "preferred_slicer": "bambu_studio", + "prometheus_enabled": "false", + "dark_accent": "green", + "spoolman_enabled": "false", + "spoolman_sync_mode": "auto", + "spoolman_disable_weight_sync": "false", + "spoolman_report_partial_usage": "true", + "bed_cooled_threshold": "35.0", + "virtual_printer_enabled": "false", + "virtual_printer_mode": "review", + "virtual_printer_remote_interface_ip": "", + "debug_logging_enabled": "true", + "debug_logging_enabled_at": "2026-02-18T08:54:43.272849" + }, + "docker": { + "container_memory_limit_bytes": null, + "container_memory_limit_formatted": null, + "network_mode_hint": "bridge" + }, + "integrations": { + "notification_providers": [], + "spoolman": { + "enabled": false, + "reachable": false + }, + "mqtt_relay": { + "enabled": false, + "connected": false, + "broker": "", + "port": 0, + "topic_prefix": "bambuddy" + }, + "homeassistant": { + "enabled": false + } + }, + "database_health": { + "journal_mode": "wal", + "quick_check": "ok", + "db_size_bytes": 2756608, + "wal_size_bytes": 4194192 + }, + "dependencies": { + "fastapi": "0.129.0", + "uvicorn": "0.40.0", + "pydantic": "2.12.5", + "sqlalchemy": "2.0.46", + "paho-mqtt": "2.1.0", + "psutil": "7.2.2", + "httpx": "0.28.1", + "aiofiles": "25.1.0", + "cryptography": "46.0.5", + "opencv-python-headless": "4.13.0.92", + "numpy": "2.4.2" + }, + "log_file": { + "size_bytes": 2727107, + "size_formatted": "2.6 MB" + }, + "network": { + "interface_count": 1, + "interfaces": [ + { + "name": "enp2s0", + "subnet": "192.168.50.0/24" + } + ] + }, + "websockets": { + "active_connections": 2 + } +} diff --git a/debug_logs/p2s/bambuddy-support-20260218-033129.zip b/debug_logs/p2s/bambuddy-support-20260218-033129.zip new file mode 100644 index 000000000..53973310e Binary files /dev/null and b/debug_logs/p2s/bambuddy-support-20260218-033129.zip differ diff --git a/debug_logs/p2s/support_data/support-info.json b/debug_logs/p2s/support_data/support-info.json new file mode 100644 index 000000000..d1099341a --- /dev/null +++ b/debug_logs/p2s/support_data/support-info.json @@ -0,0 +1,147 @@ +{ + "generated_at": "2026-02-18T03:31:26.996760", + "app": { + "version": "0.2.0", + "debug_mode": false + }, + "system": { + "platform": "Linux", + "platform_release": "6.12.54-Unraid", + "platform_version": "#1 SMP PREEMPT_DYNAMIC Tue Oct 21 15:58:46 PDT 2025", + "architecture": "x86_64", + "python_version": "3.13.12" + }, + "environment": { + "docker": true, + "data_dir": "/app/data", + "log_dir": "/app/logs", + "timezone": "America/Toronto" + }, + "database": { + "archives_total": 3, + "archives_completed": 3, + "printers_total": 1, + "filaments_total": 2, + "projects_total": 0, + "smart_plugs_total": 1 + }, + "printers": [ + { + "index": 1, + "model": "P2S", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "IDLE", + "firmware_version": "01.01.01.00", + "wifi_signal": -47, + "reachable": false, + "ams_unit_count": 2, + "ams_tray_count": 5, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 1 + } + ], + "settings": { + "auth_enabled": "false", + "setup_completed": "true", + "debug_logging_enabled": "true", + "debug_logging_enabled_at": "2026-02-18T03:28:24.931323", + "auto_archive": "true", + "save_thumbnails": "true", + "capture_finish_photo": "true", + "default_filament_cost": "25.0", + "currency": "USD", + "energy_cost_per_kwh": "0.15", + "energy_tracking_mode": "total", + "check_updates": "true", + "check_printer_firmware": "true", + "notification_language": "en", + "bed_cooled_threshold": "35.0", + "ams_humidity_good": "40", + "ams_humidity_fair": "60", + "ams_temp_good": "28.0", + "ams_temp_fair": "35.0", + "ams_history_retention_days": "30", + "per_printer_mapping_expanded": "false", + "date_format": "system", + "time_format": "system", + "default_printer_id": "None", + "ftp_retry_enabled": "true", + "ftp_retry_count": "3", + "ftp_retry_delay": "2", + "ftp_timeout": "30", + "mqtt_enabled": "false", + "mqtt_broker": "", + "mqtt_port": "1883", + "mqtt_username": "", + "mqtt_topic_prefix": "bambuddy", + "mqtt_use_tls": "false", + "ha_enabled": "true", + "library_archive_mode": "ask", + "library_disk_warning_gb": "5.0", + "camera_view_mode": "embedded", + "preferred_slicer": "bambu_studio", + "prometheus_enabled": "false" + }, + "docker": { + "container_memory_limit_bytes": null, + "container_memory_limit_formatted": null, + "network_mode_hint": "bridge" + }, + "integrations": { + "notification_providers": [], + "spoolman": { + "enabled": false, + "reachable": false + }, + "mqtt_relay": { + "enabled": false, + "connected": false, + "broker": "", + "port": 0, + "topic_prefix": "bambuddy" + }, + "homeassistant": { + "enabled": true + } + }, + "database_health": { + "journal_mode": "wal", + "quick_check": "ok", + "db_size_bytes": 372736, + "wal_size_bytes": 4120032 + }, + "dependencies": { + "fastapi": "0.129.0", + "uvicorn": "0.41.0", + "pydantic": "2.12.5", + "sqlalchemy": "2.0.46", + "paho-mqtt": "2.1.0", + "psutil": "7.2.2", + "httpx": "0.28.1", + "aiofiles": "25.1.0", + "cryptography": "46.0.5", + "opencv-python-headless": "4.13.0.92", + "numpy": "2.4.2" + }, + "log_file": { + "size_bytes": 524578, + "size_formatted": "512.3 KB" + }, + "network": { + "interface_count": 1, + "interfaces": [ + { + "name": "eth0", + "subnet": "192.168.178.0/24" + } + ] + }, + "websockets": { + "active_connections": 1 + } +} diff --git a/debug_logs/x1e/X1E 4 Color AMS Test.gcode.3mf b/debug_logs/x1e/X1E 4 Color AMS Test.gcode.3mf new file mode 100644 index 000000000..7fc28d764 Binary files /dev/null and b/debug_logs/x1e/X1E 4 Color AMS Test.gcode.3mf differ diff --git a/debug_logs/x1e/X1E mgtt request from Bambustudio.json b/debug_logs/x1e/X1E mgtt request from Bambustudio.json new file mode 100644 index 000000000..5a88304e2 --- /dev/null +++ b/debug_logs/x1e/X1E mgtt request from Bambustudio.json @@ -0,0 +1,51 @@ +{ + "print": { + "ams_mapping": [ + 0, + 1, + 2, + 3 + ], + "ams_mapping2": [ + { + "ams_id": 0, + "slot_id": 0 + }, + { + "ams_id": 0, + "slot_id": 1 + }, + { + "ams_id": 0, + "slot_id": 2 + }, + { + "ams_id": 0, + "slot_id": 3 + } + ], + "auto_bed_leveling": 1, + "bed_leveling": true, + "bed_type": "textured_plate", + "cfg": "0", + "command": "project_file", + "extrude_cali_flag": 0, + "extrude_cali_manual_mode": 0, + "file": "X1E 4 Color AMS Test.gcode.3mf", + "flow_cali": false, + "layer_inspect": true, + "md5": "E8E9A435C510F946FC7FE7CC61A185E3", + "nozzle_offset_cali": 2, + "param": "Metadata/plate_1.gcode", + "profile_id": "0", + "project_id": "0", + "sequence_id": "20001", + "subtask_id": "0", + "subtask_name": "X1E 4 Color AMS Test", + "task_id": "0", + "timelapse": true, + "url": "ftp://X1E 4 Color AMS Test.gcode.3mf", + "use_ams": true, + "vibration_cali": false + } +} diff --git a/debug_logs/x1e/bambuddy-support-20260218-094826.zip b/debug_logs/x1e/bambuddy-support-20260218-094826.zip new file mode 100644 index 000000000..be42ddd08 Binary files /dev/null and b/debug_logs/x1e/bambuddy-support-20260218-094826.zip differ diff --git a/debug_logs/x1e/support_data/support-info.json b/debug_logs/x1e/support_data/support-info.json new file mode 100644 index 000000000..b97ce66fe --- /dev/null +++ b/debug_logs/x1e/support_data/support-info.json @@ -0,0 +1,204 @@ +{ + "generated_at": "2026-02-18T09:48:26.823091", + "app": { + "version": "0.2.1b", + "debug_mode": false + }, + "system": { + "platform": "Linux", + "platform_release": "6.12.62+rpt-rpi-v8", + "platform_version": "#1 SMP PREEMPT Debian 1:6.12.62-1+rpt1 (2025-12-18)", + "architecture": "aarch64", + "python_version": "3.13.5" + }, + "environment": { + "docker": false, + "data_dir": "/home/[user]/bambuddy", + "log_dir": "/home/[user]/bambuddy/logs", + "timezone": "" + }, + "database": { + "archives_total": 53, + "archives_completed": 26, + "printers_total": 4, + "filaments_total": 0, + "projects_total": 1, + "smart_plugs_total": 0 + }, + "printers": [ + { + "index": 1, + "model": "H2D Pro", + "nozzle_count": 2, + "is_active": true, + "mqtt_connected": true, + "state": "FINISH", + "firmware_version": "01.01.00.00", + "wifi_signal": -90, + "reachable": true, + "ams_unit_count": 2, + "ams_tray_count": 5, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 2 + }, + { + "index": 2, + "model": "X1E", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "FAILED", + "firmware_version": "01.02.02.00", + "wifi_signal": -90, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 1 + }, + { + "index": 3, + "model": "X1E", + "nozzle_count": 1, + "is_active": true, + "mqtt_connected": true, + "state": "FINISH", + "firmware_version": "01.02.02.00", + "wifi_signal": -90, + "reachable": true, + "ams_unit_count": 1, + "ams_tray_count": 4, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 0, + "nozzle_rack_count": 1 + }, + { + "index": 4, + "model": "H2D Pro", + "nozzle_count": 2, + "is_active": true, + "mqtt_connected": true, + "state": "FAILED", + "firmware_version": "01.01.00.00", + "wifi_signal": -90, + "reachable": true, + "ams_unit_count": 2, + "ams_tray_count": 5, + "has_vt_tray": true, + "external_camera_configured": false, + "plate_detection_enabled": false, + "hms_error_count": 2, + "nozzle_rack_count": 2 + } + ], + "settings": { + "auth_enabled": "true", + "setup_completed": "true", + "auto_archive": "true", + "save_thumbnails": "true", + "capture_finish_photo": "true", + "default_filament_cost": "25.0", + "currency": "CHF", + "energy_cost_per_kwh": "0.15", + "energy_tracking_mode": "total", + "check_updates": "true", + "check_printer_firmware": "true", + "notification_language": "de", + "ams_humidity_good": "40", + "ams_humidity_fair": "60", + "ams_temp_good": "28.0", + "ams_temp_fair": "35.0", + "ams_history_retention_days": "30", + "per_printer_mapping_expanded": "true", + "date_format": "iso", + "time_format": "24h", + "default_printer_id": "None", + "ftp_retry_enabled": "true", + "ftp_retry_count": "3", + "ftp_retry_delay": "2", + "mqtt_enabled": "false", + "mqtt_broker": "", + "mqtt_port": "1883", + "mqtt_username": "", + "mqtt_topic_prefix": "bambuddy", + "mqtt_use_tls": "false", + "ha_enabled": "false", + "library_archive_mode": "ask", + "library_disk_warning_gb": "5.0", + "camera_view_mode": "window", + "prometheus_enabled": "false", + "debug_logging_enabled": "true", + "debug_logging_enabled_at": "2026-02-18T08:39:02.706910", + "bed_cooled_threshold": "35.0", + "ftp_timeout": "30", + "preferred_slicer": "bambu_studio", + "virtual_printer_enabled": "false", + "virtual_printer_mode": "print_queue" + }, + "integrations": { + "notification_providers": [ + { + "type": "telegram", + "enabled": true, + "has_last_error": false + } + ], + "spoolman": { + "enabled": false, + "reachable": false + }, + "mqtt_relay": { + "enabled": false, + "connected": false, + "broker": "", + "port": 0, + "topic_prefix": "bambuddy" + }, + "homeassistant": { + "enabled": false + } + }, + "database_health": { + "journal_mode": "wal", + "quick_check": "ok", + "db_size_bytes": 1531904, + "wal_size_bytes": 4610312 + }, + "dependencies": { + "fastapi": "0.128.0", + "uvicorn": "0.40.0", + "pydantic": "2.12.5", + "sqlalchemy": "2.0.46", + "paho-mqtt": "2.1.0", + "psutil": "7.2.2", + "httpx": "0.28.1", + "aiofiles": "25.1.0", + "cryptography": "46.0.5", + "opencv-python-headless": "4.13.0.90", + "numpy": "2.4.2" + }, + "log_file": { + "size_bytes": 1694246, + "size_formatted": "1.6 MB" + }, + "network": { + "interface_count": 1, + "interfaces": [ + { + "name": "eth0", + "subnet": "129.129.181.0/24" + } + ] + }, + "websockets": { + "active_connections": 1 + } +}