From 80debaf96858ccca761d9cb4410f3f8fe74c6d07 Mon Sep 17 00:00:00 2001 From: FredN9MRQ Date: Wed, 11 Mar 2026 23:38:09 -0500 Subject: [PATCH] Add 3D printer dashboard YAML (Bambu A1 + AD5M/ForgeX) --- .../home-assistant/3d-printer-dashboard.yaml | 188 ++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 infrastructure/home-assistant/3d-printer-dashboard.yaml diff --git a/infrastructure/home-assistant/3d-printer-dashboard.yaml b/infrastructure/home-assistant/3d-printer-dashboard.yaml new file mode 100644 index 0000000..1142844 --- /dev/null +++ b/infrastructure/home-assistant/3d-printer-dashboard.yaml @@ -0,0 +1,188 @@ +title: 3D Printers +icon: mdi:printer-3d +path: 3d-printers +type: panel +cards: + - type: horizontal-stack + cards: + + # ───────────────────────────────────────── + # AD5M / ForgeX (Moonraker / Klipper) + # ⚠️ Connect Moonraker integration first: + # Settings → Devices → Add Integration → Moonraker + # Host: 10.0.10.30 Port: 7125 + # Then verify entity IDs below match what HA reports + # ───────────────────────────────────────── + - type: vertical-stack + cards: + - type: custom:mushroom-title-card + title: "🔧 AD5M (ForgeX)" + subtitle: Klipper / Moonraker + + - type: picture-glance + title: ForgeX Webcam + camera_image: camera.ad5m_camera + entities: [] + + - type: custom:mushroom-entity-card + entity: sensor.ad5m_print_status + name: Status + icon: mdi:printer-3d-nozzle + fill_container: false + + - type: custom:mushroom-template-card + primary: "{{ states('sensor.ad5m_filename') | default('Idle') }}" + secondary: > + Layer {{ states('sensor.ad5m_current_layer') }} / + {{ states('sensor.ad5m_total_layer') }} + icon: mdi:file-cog + entity: sensor.ad5m_filename + + - type: gauge + entity: sensor.ad5m_progress + name: Progress + min: 0 + max: 100 + severity: + green: 75 + yellow: 40 + red: 0 + + - type: glance + title: Temperatures + entities: + - entity: sensor.ad5m_nozzle_temperature + name: Nozzle + - entity: sensor.ad5m_nozzle_target_temperature + name: Nozzle Target + - entity: sensor.ad5m_bed_temperature + name: Bed + - entity: sensor.ad5m_bed_target_temperature + name: Bed Target + + - type: history-graph + title: Temp History (4hr) + hours_to_show: 4 + entities: + - entity: sensor.ad5m_nozzle_temperature + name: Nozzle + - entity: sensor.ad5m_bed_temperature + name: Bed + + - type: glance + title: Job Info + entities: + - entity: sensor.ad5m_print_duration + name: Duration + - entity: sensor.ad5m_eta + name: ETA + + # ───────────────────────────────────────── + # Bambu Lab A1 (fully integrated ✅) + # ───────────────────────────────────────── + - type: vertical-stack + cards: + - type: custom:mushroom-title-card + title: "🐼 Bambu A1" + subtitle: Bambu Lab Integration + + - type: picture-glance + title: A1 Webcam + camera_image: camera.a1_03919d522604085_camera + entities: [] + + - type: custom:mushroom-entity-card + entity: sensor.a1_03919d522604085_print_status + name: Status + icon: mdi:printer-3d-nozzle + + - type: custom:mushroom-template-card + primary: "{{ states('sensor.a1_03919d522604085_task_name') | default('Idle') }}" + secondary: > + Layer {{ states('sensor.a1_03919d522604085_current_layer') }} / + {{ states('sensor.a1_03919d522604085_total_layer_count') }} + • {{ states('sensor.a1_03919d522604085_current_stage') }} + icon: mdi:file-cog + entity: sensor.a1_03919d522604085_task_name + + - type: gauge + entity: sensor.a1_03919d522604085_print_progress + name: Progress + min: 0 + max: 100 + severity: + green: 75 + yellow: 40 + red: 0 + + - type: glance + title: Temperatures + entities: + - entity: sensor.a1_03919d522604085_nozzle_temperature + name: Nozzle + - entity: sensor.a1_03919d522604085_nozzle_target_temperature + name: Nozzle Target + - entity: sensor.a1_03919d522604085_bed_temperature + name: Bed + - entity: sensor.a1_03919d522604085_bed_target_temperature + name: Bed Target + + - type: history-graph + title: Temp History (4hr) + hours_to_show: 4 + entities: + - entity: sensor.a1_03919d522604085_nozzle_temperature + name: Nozzle + - entity: sensor.a1_03919d522604085_bed_temperature + name: Bed + + - type: glance + title: Job Info + entities: + - entity: sensor.a1_03919d522604085_remaining_time + name: Remaining + - entity: sensor.a1_03919d522604085_speed_profile + name: Speed + + - type: entities + title: Controls + entities: + - entity: light.a1_03919d522604085_chamber_light + name: Chamber Light + - type: button + entity: button.a1_03919d522604085_pause_printing + name: Pause + icon: mdi:pause + action_name: Pause + - type: button + entity: button.a1_03919d522604085_resume_printing + name: Resume + icon: mdi:play + action_name: Resume + - type: button + entity: button.a1_03919d522604085_stop_printing + name: Stop + icon: mdi:stop + action_name: Stop + + - type: entities + title: AMS Filament Trays + entities: + - entity: sensor.a1_03919d522604085_active_tray + name: Active Tray + - entity: sensor.a1_03919d522604085_ams_1_tray_1 + name: Tray 1 + - entity: sensor.a1_03919d522604085_ams_1_tray_2 + name: Tray 2 + - entity: sensor.a1_03919d522604085_ams_1_tray_3 + name: Tray 3 + - entity: sensor.a1_03919d522604085_ams_1_tray_4 + name: Tray 4 + + - type: glance + title: AMS Environment + entities: + - entity: sensor.a1_03919d522604085_ams_1_temperature + name: AMS Temp + - entity: sensor.a1_03919d522604085_ams_1_humidity + name: Humidity