This Ultra Vehicle Card configuration for Home Assistant beautifully transforms your 3D printer into a sleek, fully interactive dashboard component. The layout showcases real-time printing progress, remaining time, a live camera feed, and dynamic controls for pause, stop, and resume—all integrated seamlessly with sensor data. Below that, a smart set of icon rows displays live temperatures for the bed, nozzle, and chamber, along with fan and light statuses. An entire row is dedicated to AMS tray monitoring, highlighting each filament slot with custom icons, labels, and even humidity readings using a Jinja2-based template. The YAML sample below replicates this entire setup, so you can plug it into your own Home Assistant dashboard and bring your 3D printing experience to life.

3D Printer Dashboard
vehicle_image_type: upload
status_image_type: none
layout_type: single
formatted_entities: true
show_location: false
show_mileage: false
show_car_state: true
show_info_icons: true
sections_order:
- title
- info
- bars
- image
- icon_row_xydxleh
- icon_row_u7a8fz9
- icon_row_31wzivf
- icon_row_fppy6qm
bars:
- entity: sensor.h2d_print_progress
bar_size: thiccc
bar_color: "#03eb00"
animation_type: traffic
animation_entity: sensor.h2d_current_stage
animation_state: printing
use_gradient: false
show_left: true
show_right: true
left_entity: sensor.h2d_print_progress
left_title: Progress
right_title: Remaining
right_entity: sensor.h2d_remaining_time
right_condition:
type: none
entity: ""
state: ""
show_percentage: false
percentage_type: entity
percentage_amount_entity: ""
percentage_total_entity: ""
bar_style: neumorphic
icon_rows:
- id: u7a8fz9
width: "100"
alignment: center
spacing: none
icons:
- entity: fan.h2d_aux_fan
icon_inactive: mdi:fan
icon_active: mdi:fan
color_inactive: var(--secondary-text-color)
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: var(--secondary-text-color)
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
show_state: true
show_name: false
show_units: false
show_icon_active: true
show_icon_inactive: true
name: ""
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: none
container_background_color: var(--secondary-background-color)
draggable: true
on_click_action: more-info
- entity: sensor.h2d_bed_temperature
icon_inactive: mdi:fan
icon_active: cil:thermometer-empty
color_inactive: var(--secondary-text-color)
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: var(--secondary-text-color)
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
show_state: true
show_name: false
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: none
container_background_color: var(--secondary-background-color)
draggable: true
on_click_action: more-info
- icon_inactive: mdi:fan
icon_active: mdi:printer-3d-nozzle
color_inactive: var(--secondary-text-color)
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: var(--secondary-text-color)
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
show_state: true
show_name: false
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: none
container_background_color: var(--secondary-background-color)
draggable: true
on_click_action: more-info
entity: sensor.h2d_nozzle_temperature
- icon_inactive: mdi:fan
icon_active: mdi:printer-3d
color_inactive: var(--secondary-text-color)
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: var(--secondary-text-color)
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
show_state: true
show_name: false
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: none
container_background_color: var(--secondary-background-color)
draggable: true
on_click_action: more-info
entity: sensor.h2d_chamber_temperature
- entity: light.h2d_chamber_light
icon_inactive: mdi:led-strip-variant
icon_active: mdi:led-strip-variant
color_inactive: var(--secondary-text-color)
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: var(--secondary-text-color)
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
inactive_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: true
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
use_entity_color_for_icon: false
use_entity_color_for_icon_active: false
use_entity_color_for_icon_inactive: false
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: false
on_click_action: toggle
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: none
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
- id: xydxleh
width: "100"
alignment: center
spacing: none
icons:
- icon_inactive: mdi:stop
icon_active: mdi:stop
color_inactive: var(--secondary-text-color)
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: var(--secondary-text-color)
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
inactive_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: false
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: none
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
entity: button.h2d_stop_printing
- icon_inactive: mdi:pause
icon_active: mdi:pause
color_inactive: var(--secondary-text-color)
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: var(--secondary-text-color)
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
inactive_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: false
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: trigger
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: none
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
entity: button.h2d_pause_printing
- icon_inactive: mdi:play
icon_active: mdi:play
color_inactive: var(--secondary-text-color)
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: var(--secondary-text-color)
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
inactive_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: false
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: trigger
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: none
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
entity: button.h2d_resume_printing
confirmation_mode: true
- id: 31wzivf
width: "100"
alignment: center
spacing: small
columns: 5
icons:
- entity: sensor.ams_tray_1
icon_inactive: phu:3d-filament
icon_active: mdi:printer-3d-nozzle
color_inactive: "#ffffff"
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: "#000000"
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: true
use_entity_color_for_icon_inactive: true
inactive_state_text: Bambu PLA Support
- entity: sensor.ams_tray_2
icon_inactive: phu:3d-filament
icon_active: mdi:printer-3d-nozzle
color_inactive: "#ffffff"
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: "#ffffff"
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: true
use_entity_color_for_icon_inactive: false
- entity: sensor.ams_tray_3
icon_inactive: phu:3d-filament
icon_active: mdi:printer-3d-nozzle
color_inactive: "#ffffff"
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: "#ffffff"
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: true
use_entity_color_for_icon_inactive: false
- entity: sensor.ams_tray_4
icon_inactive: phu:3d-filament
icon_active: mdi:printer-3d-nozzle
color_inactive: "#ffffff"
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: "#ffffff"
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: "#ff0000"
draggable: true
action: ""
service_data: {}
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: true
use_entity_color_for_icon_inactive: false
use_entity_color_for_icon_active: false
- entity: sensor.ams_humidity_index
icon_inactive: mdi:water-percent
icon_active: mdi:water-percent
color_inactive: var(--secondary-text-color)
color_active: "#ffffff"
name_color_inactive: var(--primary-text-color)
name_color_active: "#000000"
state_color_inactive: var(--secondary-text-color)
state_color_active: "#000000"
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: true
inactive_template: ""
inactive_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: true
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
use_entity_color_for_icon: false
use_entity_color_for_icon_active: false
use_entity_color_for_icon_inactive: false
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: false
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: "#ffffff"
draggable: true
action: ""
service_data: {}
icon_background: circle
active_template: >-
{% set index = states('sensor.ams_humidity_index') | int %}
{% set ranges = [ "0%-10%", "10%-20%", "20%-30%", "30%-40%",
"40%-50%", "50%-60%", "60%-70%", "70%-80%", "80%-90%", "90%-100%" ] %}
{{ (ranges[index] ~ " Humidity") if index >= 0 and index < ranges |
length else 'Unknown Humidity' }}
confirmation_mode: false
- id: fppy6qm
width: "100"
alignment: center
spacing: small
columns: 5
icons:
- entity: sensor.ams_2_tray_1
icon_inactive: phu:3d-filament
icon_active: mdi:printer-3d-nozzle
color_inactive: "#ffffff"
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: "#000000"
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: true
use_entity_color_for_icon_inactive: false
- entity: sensor.ams_2_tray_2
icon_inactive: phu:3d-filament
icon_active: mdi:printer-3d-nozzle
color_inactive: "#ffffff"
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: "#ffffff"
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: true
use_entity_color_for_icon_inactive: false
- entity: sensor.ams_2_tray_3
icon_inactive: phu:3d-filament
icon_active: phu:3d-filament
color_inactive: "#ffffff"
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: "#ffffff"
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: true
use_entity_color_for_icon_inactive: false
- entity: sensor.ams_2_tray_4
icon_inactive: phu:3d-filament
icon_active: mdi:printer-3d-nozzle
color_inactive: "#ffffff"
color_active: var(--primary-color)
name_color_inactive: var(--primary-text-color)
name_color_active: var(--primary-text-color)
state_color_inactive: "#000000"
state_color_active: var(--primary-text-color)
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: false
inactive_template: ""
active_template: ""
active_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: false
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background: circle
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: var(--secondary-background-color)
draggable: true
action: ""
service_data: {}
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: true
use_entity_color_for_icon_inactive: false
use_entity_color_for_icon_active: false
- entity: sensor.ams_2_humidity_index
icon_inactive: mdi:water-percent
icon_active: mdi:water-percent
color_inactive: var(--secondary-text-color)
color_active: "#ffffff"
name_color_inactive: var(--primary-text-color)
name_color_active: "#000000"
state_color_inactive: var(--secondary-text-color)
state_color_active: "#000000"
inactive_state: "off"
active_state: "on"
inactive_template_mode: false
active_template_mode: true
inactive_template: ""
inactive_state_text: ""
show_state: true
show_name: false
show_name_active: false
show_name_inactive: false
show_state_active: true
show_state_inactive: true
show_units: true
show_icon_active: true
show_icon_inactive: true
use_entity_color_for_icon: false
use_entity_color_for_icon_active: false
use_entity_color_for_icon_inactive: false
use_entity_color_for_icon_background: false
use_entity_color_for_container_background: false
name: ""
on_click_action: more-info
text_position: bottom
vertical_alignment: center
text_alignment: center
icon_size: 24
text_size: 14
icon_background_color: var(--secondary-background-color)
container_background: rounded-square
container_background_color: "#ffffff"
draggable: true
action: ""
service_data: {}
icon_background: circle
active_template: >-
{% set index = states('sensor.ams_humidity_index') | int %}
{% set ranges = [ "0%-10%", "10%-20%", "20%-30%", "30%-40%",
"40%-50%", "50%-60%", "60%-70%", "70%-80%", "80%-90%", "90%-100%" ] %}
{{ (ranges[index] ~ " Humidity") if index >= 0 and index < ranges |
length else 'Unknown Humidity' }}
confirmation_mode: false
type: custom:ultra-vehicle-card
title_alignment: center
title_size: 24px
title: Bambu H2D
vehicle_image: /api/image/serve/04076406cda4090bb7c0bf32af65ed0d
vehicle_image_crop:
top: -60
right: 0
bottom: -30
left: 0
car_state_entity: sensor.h2d_current_stage
vehicle_image_entity: image.h2d_cover_image
action_image_type: entity
action_image_entity: image.h2d_cover_image
action_entity: sensor.h2d_print_status
action_state: running
action_image_crop:
top: -90
right: 0
bottom: -50
left: 0
vehicle_image_width: 100
action_image_width: 100
show_units: true
action_image_priority: newest
action_images:
- id: image_1745546938899
entity: sensor.h2d_print_status
state: running
image_type: entity
priority: 0
image_entity: camera.h2d_camera
image_crop:
top: -3
right: 0
bottom: 0
left: 0
section_conditions:
icon_row_xydxleh:
type: show
entity: sensor.h2d_current_stage
state: printing
section_styles:
icon_row_xydxleh:
marginBottom: -16
marginTop: -12
info:
marginTop: -16
