3 files
This commit is contained in:
@@ -0,0 +1,582 @@
|
|||||||
|
# ha_mcp_backup
|
||||||
|
schema_version: 1
|
||||||
|
domain: dashboard
|
||||||
|
entity_id: sparkx-i7
|
||||||
|
captured: '2026-09-24T02:45:32.515465+00:00'
|
||||||
|
tool: ha_config_set_dashboard
|
||||||
|
config:
|
||||||
|
views:
|
||||||
|
- max_columns: 4
|
||||||
|
path: print
|
||||||
|
sections:
|
||||||
|
- cards:
|
||||||
|
- heading: Printer Status
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
type: heading
|
||||||
|
- grid_options:
|
||||||
|
columns: full
|
||||||
|
type: custom:webrtc-camera
|
||||||
|
ui: true
|
||||||
|
url: octoprint
|
||||||
|
- grid_options:
|
||||||
|
columns: full
|
||||||
|
type: custom:webrtc-camera
|
||||||
|
ui: true
|
||||||
|
url: octoprint2
|
||||||
|
- show_state: true
|
||||||
|
show_name: true
|
||||||
|
camera_view: live
|
||||||
|
fit_mode: cover
|
||||||
|
type: picture-entity
|
||||||
|
entity: camera.sparkx_i7_printer_camera
|
||||||
|
camera_image: camera.sparkx_i7_printer_camera
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
- type: picture
|
||||||
|
image_entity: image.sparkx_i7_current_print_preview
|
||||||
|
show_name: false
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
- entity: sensor.sparkx_i7_print_status
|
||||||
|
grid_options:
|
||||||
|
columns: 12
|
||||||
|
icon: mdi:state-machine
|
||||||
|
name: Status
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_position_z
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:axis-z-arrow
|
||||||
|
name: Current Z
|
||||||
|
type: tile
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_position_x
|
||||||
|
name: X
|
||||||
|
icon: mdi:axis-x-arrow
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_position_y
|
||||||
|
name: Y
|
||||||
|
icon: mdi:axis-y-arrow
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
type: grid
|
||||||
|
- cards:
|
||||||
|
- heading: Print Progress
|
||||||
|
icon: mdi:progress-clock
|
||||||
|
type: heading
|
||||||
|
- entity: sensor.sparkx_i7_print_progress
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: 3
|
||||||
|
max: 100
|
||||||
|
min: 0
|
||||||
|
name: Progress
|
||||||
|
severity:
|
||||||
|
green: 0
|
||||||
|
red: 90
|
||||||
|
yellow: 40
|
||||||
|
type: gauge
|
||||||
|
unit: '%'
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:clock-start
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Elapsed
|
||||||
|
primary: Elapsed
|
||||||
|
secondary: '{% set s = states(''sensor.sparkx_i7_print_job_time'') | float(0)
|
||||||
|
%}{% set h = (s / 3600) | int %}{% set m = ((s % 3600) / 60) | int %}{%
|
||||||
|
if h %}{{ h }} hr {{ m }} min{% else %}{{ m }} min{% endif %}'
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:clock-end
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Remaining
|
||||||
|
primary: Remaining
|
||||||
|
secondary: '{% set s = states(''sensor.sparkx_i7_print_time_left'') | float(-1)
|
||||||
|
%}{% if s <= 0 %}No estimate{% else %}{% set h = (s / 3600) | int %}{% set
|
||||||
|
m = ((s % 3600) / 60) | int %}{% if h %}{{ h }} hr {{ m }} min{% else %}{{
|
||||||
|
m }} min{% endif %}{% endif %}'
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:clock-outline
|
||||||
|
multiline_secondary: true
|
||||||
|
primary: Est. Finish
|
||||||
|
secondary: "{% set left = states('sensor.sparkx_i7_print_time_left') | int(0)\
|
||||||
|
\ %}{% if left > 0 %}{{ (now() + timedelta(seconds=left)).strftime('%I:%M\
|
||||||
|
\ %p').lstrip('0') }}{% else %}\u2014{% endif %}"
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:layers
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Layer
|
||||||
|
primary: Layer
|
||||||
|
secondary: '{% set c = states(''sensor.sparkx_i7_working_layer'') | int(0)
|
||||||
|
%}{% set t = states(''sensor.sparkx_i7_total_layers'') | int(0) %}{{ c }}
|
||||||
|
of {{ t }}'
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- entity: light.sparkx_i7_light
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:lightbulb
|
||||||
|
name: Printer Light
|
||||||
|
type: tile
|
||||||
|
- detail: 1
|
||||||
|
entity: sensor.sparkx_i7_print_progress
|
||||||
|
graph: line
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
hours_to_show: 24
|
||||||
|
name: Progress History
|
||||||
|
type: sensor
|
||||||
|
- type: tile
|
||||||
|
entity: number.sparkx_i7_print_tuning
|
||||||
|
name: Print Tuning
|
||||||
|
icon: mdi:speedometer
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_print_speed
|
||||||
|
name: Speed
|
||||||
|
icon: mdi:speedometer
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_real_time_flow
|
||||||
|
name: Real-Time Flow
|
||||||
|
icon: mdi:cube-send
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_current_object
|
||||||
|
name: Object
|
||||||
|
icon: mdi:cube-outline
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_object_count
|
||||||
|
name: Object Count
|
||||||
|
icon: mdi:counter
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
type: grid
|
||||||
|
- cards:
|
||||||
|
- heading: Temperatures
|
||||||
|
icon: mdi:thermometer
|
||||||
|
type: heading
|
||||||
|
- entity: sensor.sparkx_i7_nozzle_temperature
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
max: 300
|
||||||
|
min: 0
|
||||||
|
name: Nozzle
|
||||||
|
severity:
|
||||||
|
green: 0
|
||||||
|
red: 240
|
||||||
|
yellow: 180
|
||||||
|
type: gauge
|
||||||
|
unit: "\xB0C"
|
||||||
|
- entity: sensor.sparkx_i7_bed_temperature
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
max: 100
|
||||||
|
min: 0
|
||||||
|
name: Bed
|
||||||
|
severity:
|
||||||
|
green: 0
|
||||||
|
red: 100
|
||||||
|
yellow: 60
|
||||||
|
type: gauge
|
||||||
|
unit: "\xB0C"
|
||||||
|
- entity: sensor.sparkx_i7_chamber_temperature
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
max: 100
|
||||||
|
min: 0
|
||||||
|
name: Chamber
|
||||||
|
severity:
|
||||||
|
green: 0
|
||||||
|
red: 70
|
||||||
|
yellow: 45
|
||||||
|
type: gauge
|
||||||
|
unit: "\xB0C"
|
||||||
|
- entity: number.sparkx_i7_nozzle_target
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
name: Nozzle Target
|
||||||
|
type: tile
|
||||||
|
- entity: number.sparkx_i7_bed_target
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:radiator
|
||||||
|
name: Bed Target
|
||||||
|
type: tile
|
||||||
|
- entities:
|
||||||
|
- color: '#ef5350'
|
||||||
|
entity: sensor.sparkx_i7_nozzle_temperature
|
||||||
|
name: Actual
|
||||||
|
- color: '#4caf50'
|
||||||
|
entity: number.sparkx_i7_nozzle_target
|
||||||
|
name: Target
|
||||||
|
expand_legend: true
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
hours_to_show: 24
|
||||||
|
show_names: true
|
||||||
|
title: Nozzle Temperature
|
||||||
|
type: history-graph
|
||||||
|
- entities:
|
||||||
|
- color: '#42a5f5'
|
||||||
|
entity: sensor.sparkx_i7_bed_temperature
|
||||||
|
name: Actual
|
||||||
|
- color: '#4caf50'
|
||||||
|
entity: number.sparkx_i7_bed_target
|
||||||
|
name: Target
|
||||||
|
expand_legend: true
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
hours_to_show: 24
|
||||||
|
show_names: true
|
||||||
|
title: Bed Temperature
|
||||||
|
type: history-graph
|
||||||
|
type: grid
|
||||||
|
- cards:
|
||||||
|
- heading: Controls
|
||||||
|
icon: mdi:gesture-tap-button
|
||||||
|
type: heading
|
||||||
|
- entity: button.sparkx_i7_pause_print
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:pause
|
||||||
|
name: Pause
|
||||||
|
tap_action:
|
||||||
|
action: perform-action
|
||||||
|
perform_action: button.press
|
||||||
|
target:
|
||||||
|
entity_id: button.sparkx_i7_pause_print
|
||||||
|
type: tile
|
||||||
|
- entity: button.sparkx_i7_resume_print
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:play
|
||||||
|
name: Resume
|
||||||
|
tap_action:
|
||||||
|
action: perform-action
|
||||||
|
perform_action: button.press
|
||||||
|
target:
|
||||||
|
entity_id: button.sparkx_i7_resume_print
|
||||||
|
type: tile
|
||||||
|
- entity: button.sparkx_i7_reconnect
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:lan-connect
|
||||||
|
name: Connect
|
||||||
|
tap_action:
|
||||||
|
action: perform-action
|
||||||
|
perform_action: button.press
|
||||||
|
target:
|
||||||
|
entity_id: button.sparkx_i7_reconnect
|
||||||
|
type: tile
|
||||||
|
- entity: button.sparkx_i7_stop_print
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:cancel
|
||||||
|
name: Cancel Print
|
||||||
|
tap_action:
|
||||||
|
action: perform-action
|
||||||
|
perform_action: button.press
|
||||||
|
target:
|
||||||
|
entity_id: button.sparkx_i7_stop_print
|
||||||
|
type: tile
|
||||||
|
- type: tile
|
||||||
|
entity: button.sparkx_i7_home_xy_then_z
|
||||||
|
name: Home
|
||||||
|
icon: mdi:home-circle
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
tap_action:
|
||||||
|
action: perform-action
|
||||||
|
perform_action: button.press
|
||||||
|
target:
|
||||||
|
entity_id: button.sparkx_i7_home_xy_then_z
|
||||||
|
type: grid
|
||||||
|
- cards:
|
||||||
|
- heading: Filament
|
||||||
|
icon: mdi:printer-3d-nozzle-outline
|
||||||
|
type: heading
|
||||||
|
- entity: sensor.sparkx_i7_filament_weight_estimated
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
rows: 3
|
||||||
|
max: 100
|
||||||
|
min: 0
|
||||||
|
name: Filament Used
|
||||||
|
severity:
|
||||||
|
green: 0
|
||||||
|
red: 100
|
||||||
|
yellow: 60
|
||||||
|
type: gauge
|
||||||
|
unit: g
|
||||||
|
- entity: input_number.sparkx_i7_filament_g_cm
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
name: g/cm
|
||||||
|
type: tile
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_used_material_length
|
||||||
|
name: Used Length
|
||||||
|
icon: mdi:counter
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
- entity: sensor.sparkx_i7_filament_cost
|
||||||
|
grid_options:
|
||||||
|
columns: 3
|
||||||
|
icon: mdi:cash
|
||||||
|
name: Cost (total)
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_filament_cost_daily
|
||||||
|
grid_options:
|
||||||
|
columns: 3
|
||||||
|
icon: mdi:cash-multiple
|
||||||
|
name: Today
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_filament_cost_weekly
|
||||||
|
grid_options:
|
||||||
|
columns: 3
|
||||||
|
icon: mdi:cash-multiple
|
||||||
|
name: This Week
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_filament_cost_monthly
|
||||||
|
grid_options:
|
||||||
|
columns: 3
|
||||||
|
icon: mdi:cash-multiple
|
||||||
|
name: This Month
|
||||||
|
type: tile
|
||||||
|
type: grid
|
||||||
|
title: Print
|
||||||
|
type: sections
|
||||||
|
- max_columns: 2
|
||||||
|
path: history
|
||||||
|
sections:
|
||||||
|
- cards:
|
||||||
|
- heading: Temperature History
|
||||||
|
icon: mdi:chart-line-variant
|
||||||
|
type: heading
|
||||||
|
- entities:
|
||||||
|
- color: '#ef5350'
|
||||||
|
entity: sensor.sparkx_i7_nozzle_temperature
|
||||||
|
name: Nozzle
|
||||||
|
- color: '#ffab91'
|
||||||
|
entity: number.sparkx_i7_nozzle_target
|
||||||
|
name: Nozzle Target
|
||||||
|
- color: '#42a5f5'
|
||||||
|
entity: sensor.sparkx_i7_bed_temperature
|
||||||
|
name: Bed
|
||||||
|
- color: '#90caf9'
|
||||||
|
entity: number.sparkx_i7_bed_target
|
||||||
|
name: Bed Target
|
||||||
|
expand_legend: true
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
hours_to_show: 24
|
||||||
|
show_names: true
|
||||||
|
title: Temperatures (24h)
|
||||||
|
type: history-graph
|
||||||
|
- entities:
|
||||||
|
- color: '#ef5350'
|
||||||
|
entity: sensor.sparkx_i7_nozzle_temperature
|
||||||
|
name: Nozzle
|
||||||
|
- color: '#42a5f5'
|
||||||
|
entity: sensor.sparkx_i7_bed_temperature
|
||||||
|
name: Bed
|
||||||
|
expand_legend: true
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
hours_to_show: 168
|
||||||
|
show_names: true
|
||||||
|
title: Temperatures (7 days)
|
||||||
|
type: history-graph
|
||||||
|
type: grid
|
||||||
|
- cards:
|
||||||
|
- heading: Print Activity
|
||||||
|
icon: mdi:chart-box-outline
|
||||||
|
type: heading
|
||||||
|
- apex_config:
|
||||||
|
chart:
|
||||||
|
height: 300
|
||||||
|
stroke:
|
||||||
|
width: 1
|
||||||
|
graph_span: 24h
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
header:
|
||||||
|
colorize_states: true
|
||||||
|
show: true
|
||||||
|
show_states: true
|
||||||
|
title: Z Position (24h)
|
||||||
|
series:
|
||||||
|
- color: '#ab47bc'
|
||||||
|
curve: straight
|
||||||
|
entity: sensor.sparkx_i7_position_z
|
||||||
|
fill_raw: last
|
||||||
|
name: Current Z
|
||||||
|
type: line
|
||||||
|
type: custom:apexcharts-card
|
||||||
|
- entities:
|
||||||
|
- color: '#66bb6a'
|
||||||
|
entity: sensor.sparkx_i7_print_progress
|
||||||
|
name: Progress
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
hours_to_show: 24
|
||||||
|
show_names: true
|
||||||
|
title: Print Progress (24h)
|
||||||
|
type: history-graph
|
||||||
|
- entities:
|
||||||
|
- color: '#26c6da'
|
||||||
|
entity: sensor.sparkx_i7_print_job_time
|
||||||
|
name: Elapsed
|
||||||
|
- color: '#ffa726'
|
||||||
|
entity: sensor.sparkx_i7_print_time_left
|
||||||
|
name: Remaining
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
hours_to_show: 24
|
||||||
|
show_names: true
|
||||||
|
title: Print Duration (24h)
|
||||||
|
type: history-graph
|
||||||
|
type: grid
|
||||||
|
title: History
|
||||||
|
type: sections
|
||||||
|
- title: CFS / Fans
|
||||||
|
path: cfs-fans
|
||||||
|
type: sections
|
||||||
|
icon: mdi:printer-3d-nozzle-outline
|
||||||
|
max_columns: 4
|
||||||
|
sections:
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: CFS Box 1
|
||||||
|
icon: mdi:file-cabinet
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_cfs_box_1_temperature
|
||||||
|
name: Temperature
|
||||||
|
icon: mdi:thermometer
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_cfs_box_1_humidity
|
||||||
|
name: Humidity
|
||||||
|
icon: mdi:water-percent
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon_color: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_1_color'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_1_color')\
|
||||||
|
\ %}{% if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
name: Slot 1
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_1_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_2_color')\
|
||||||
|
\ %}{% if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
multiline_secondary: true
|
||||||
|
icon_color: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_2_color'') }}'
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
name: Slot 2
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_2_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_3_color')\
|
||||||
|
\ %}{% if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
multiline_secondary: true
|
||||||
|
icon_color: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_3_color'') }}'
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
name: Slot 3
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_3_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_4_color')\
|
||||||
|
\ %}{% if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
multiline_secondary: true
|
||||||
|
icon_color: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_4_color'') }}'
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
name: Slot 4
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_4_filament'') }}'
|
||||||
|
secondary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_4_remaining'') }}%
|
||||||
|
left'
|
||||||
|
multiline_secondary: true
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: External / Active
|
||||||
|
icon: mdi:printer-3d
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_active_filament_slot
|
||||||
|
name: Active Slot
|
||||||
|
icon: mdi:swap-horizontal
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
- type: custom:mushroom-template-card
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:lan-outline
|
||||||
|
name: External Filament
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_external_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_cfs_external_color') %}{%\
|
||||||
|
\ if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_external_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
multiline_secondary: true
|
||||||
|
icon_color: '{{ states(''sensor.sparkx_i7_cfs_external_color'') }}'
|
||||||
|
- type: tile
|
||||||
|
entity: sensor.sparkx_i7_filament_status
|
||||||
|
name: Filament Status
|
||||||
|
icon: mdi:printer-3d-nozzle-alert
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
- type: grid
|
||||||
|
cards:
|
||||||
|
- type: heading
|
||||||
|
heading: Fans
|
||||||
|
icon: mdi:fan
|
||||||
|
- type: tile
|
||||||
|
entity: fan.sparkx_i7_model_fan
|
||||||
|
name: Model Fan
|
||||||
|
icon: mdi:fan
|
||||||
|
features:
|
||||||
|
- type: fan-speed
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
- type: tile
|
||||||
|
entity: fan.sparkx_i7_case_fan
|
||||||
|
name: Case Fan
|
||||||
|
icon: mdi:fan
|
||||||
|
features:
|
||||||
|
- type: fan-speed
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
- type: tile
|
||||||
|
entity: fan.sparkx_i7_side_fan
|
||||||
|
name: Side Fan
|
||||||
|
icon: mdi:fan
|
||||||
|
features:
|
||||||
|
- type: fan-speed
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
@@ -3767,3 +3767,5 @@
|
|||||||
{"timestamp": "2026-09-24T02:45:13.121591+00:00", "tool_name": "ha_config_set_dashboard", "parameters": {"url_path": "sparkx-i7", "config": null, "python_transform": "v=config['views'][0]\nps=v['sections'][0]['cards']\nps[4]['grid_options']['columns']=12\nps[5]['grid_options']['columns']=4\nps.append({'type':'tile','entity':'sensor.sparkx_i7_position_x','name':'X','icon':'mdi:axis-x-arrow','grid_options':{'columns':4}})\nps.append({'type':'tile','entity':'sensor.sparkx_i7_position_y','name':'Y','icon':'mdi:axis-y-arrow','grid_options':{'columns':4}})\nps.insert(4,{'type':'picture','image_entity':'image.sparkx_i7_current_print_preview','show_name':False,'grid_options':{'columns':'full'}})\npp=v['sections'][1]['cards']\npp.append({'type':'tile','entity':'number.sparkx_i7_print_tuning','name':'Print Tuning','icon':'mdi:speedometer','grid_options':{'columns':6}})\npp.append({'type':'tile','entity':'sensor.sparkx_i7_print_speed','name':'Speed','icon':'mdi:speedometer','grid_options':{'columns':6}})\npp.append({'type':'tile','entity':'sensor.sparkx_i7_real_time_flow','name':'Real-Time Flow','icon':'mdi:cube-send','grid_options':{'columns':6}})\npp.append({'type':'tile','entity':'sensor.sparkx_i7_current_object','name':'Object','icon':'mdi:cube-outline','grid_options':{'columns':6}})\npp.append({'type':'tile','entity':'sensor.sparkx_i7_object_count','name':'Object Count','icon':'mdi:counter','grid_options':{'columns':6}})\nctl=v['sections'][3]['cards']\nctl.append({'type':'tile','entity':'button.sparkx_i7_home_xy_then_z','name':'Home','icon':'mdi:home-circle','grid_options':{'columns':4},'tap_action':{'action':'perform-action','perform_action':'button.press','target':{'entity_id':'button.sparkx_i7_home_xy_then_z'}}})\nfil=v['sections'][4]['cards']\nfil.insert(3,{'type':'tile','entity':'sensor.sparkx_i7_used_material_length','name':'Used Length','icon':'mdi:counter','grid_options':{'columns':6}})\nc=config['views'][2]\ncb=c['sections'][0]['cards']\ncb[2]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_color') }}\"\ncb[2]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_remaining') }}% left\"\ncb[3]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_color') }}\"\ncb[3]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_remaining') }}% left\"\ncb[4]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_color') }}\"\ncb[4]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_remaining') }}% left\"\ncb[5]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_color') }}\"\ncb[5]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_remaining') }}% left\"\nex=c['sections'][1]['cards'][2]\nex['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_external_color') }}\"\nex['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_external_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_external_remaining') }}% left\"", "config_hash": "2a4c47fc7d130ae0", "title": null, "icon": null, "require_admin": null, "show_in_sidebar": null, "MandatoryBPS": false, "BestPracticeKey": null, "return_screenshot": false, "view_path": null, "patch": null}, "execution_time_ms": 499.5236396789551, "success": true, "error_message": null, "response_size_bytes": 4145, "user_context": null}
|
{"timestamp": "2026-09-24T02:45:13.121591+00:00", "tool_name": "ha_config_set_dashboard", "parameters": {"url_path": "sparkx-i7", "config": null, "python_transform": "v=config['views'][0]\nps=v['sections'][0]['cards']\nps[4]['grid_options']['columns']=12\nps[5]['grid_options']['columns']=4\nps.append({'type':'tile','entity':'sensor.sparkx_i7_position_x','name':'X','icon':'mdi:axis-x-arrow','grid_options':{'columns':4}})\nps.append({'type':'tile','entity':'sensor.sparkx_i7_position_y','name':'Y','icon':'mdi:axis-y-arrow','grid_options':{'columns':4}})\nps.insert(4,{'type':'picture','image_entity':'image.sparkx_i7_current_print_preview','show_name':False,'grid_options':{'columns':'full'}})\npp=v['sections'][1]['cards']\npp.append({'type':'tile','entity':'number.sparkx_i7_print_tuning','name':'Print Tuning','icon':'mdi:speedometer','grid_options':{'columns':6}})\npp.append({'type':'tile','entity':'sensor.sparkx_i7_print_speed','name':'Speed','icon':'mdi:speedometer','grid_options':{'columns':6}})\npp.append({'type':'tile','entity':'sensor.sparkx_i7_real_time_flow','name':'Real-Time Flow','icon':'mdi:cube-send','grid_options':{'columns':6}})\npp.append({'type':'tile','entity':'sensor.sparkx_i7_current_object','name':'Object','icon':'mdi:cube-outline','grid_options':{'columns':6}})\npp.append({'type':'tile','entity':'sensor.sparkx_i7_object_count','name':'Object Count','icon':'mdi:counter','grid_options':{'columns':6}})\nctl=v['sections'][3]['cards']\nctl.append({'type':'tile','entity':'button.sparkx_i7_home_xy_then_z','name':'Home','icon':'mdi:home-circle','grid_options':{'columns':4},'tap_action':{'action':'perform-action','perform_action':'button.press','target':{'entity_id':'button.sparkx_i7_home_xy_then_z'}}})\nfil=v['sections'][4]['cards']\nfil.insert(3,{'type':'tile','entity':'sensor.sparkx_i7_used_material_length','name':'Used Length','icon':'mdi:counter','grid_options':{'columns':6}})\nc=config['views'][2]\ncb=c['sections'][0]['cards']\ncb[2]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_color') }}\"\ncb[2]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_remaining') }}% left\"\ncb[3]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_color') }}\"\ncb[3]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_remaining') }}% left\"\ncb[4]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_color') }}\"\ncb[4]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_remaining') }}% left\"\ncb[5]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_color') }}\"\ncb[5]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_remaining') }}% left\"\nex=c['sections'][1]['cards'][2]\nex['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_external_color') }}\"\nex['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_external_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_external_remaining') }}% left\"", "config_hash": "2a4c47fc7d130ae0", "title": null, "icon": null, "require_admin": null, "show_in_sidebar": null, "MandatoryBPS": false, "BestPracticeKey": null, "return_screenshot": false, "view_path": null, "patch": null}, "execution_time_ms": 499.5236396789551, "success": true, "error_message": null, "response_size_bytes": 4145, "user_context": null}
|
||||||
{"timestamp": "2026-09-24T02:45:16.728423+00:00", "tool_name": "ha_config_get_dashboard", "parameters": {"url_path": "sparkx-i7", "list_only": false, "force_reload": false, "entity_id": null, "card_type": null, "heading": null, "include_config": false, "include_screenshot": false, "view_path": null, "mode": null, "query": null}, "execution_time_ms": 18.02849769592285, "success": true, "error_message": null, "response_size_bytes": 15582, "user_context": null}
|
{"timestamp": "2026-09-24T02:45:16.728423+00:00", "tool_name": "ha_config_get_dashboard", "parameters": {"url_path": "sparkx-i7", "list_only": false, "force_reload": false, "entity_id": null, "card_type": null, "heading": null, "include_config": false, "include_screenshot": false, "view_path": null, "mode": null, "query": null}, "execution_time_ms": 18.02849769592285, "success": true, "error_message": null, "response_size_bytes": 15582, "user_context": null}
|
||||||
{"timestamp": "2026-09-24T02:45:26.034034+00:00", "tool_name": "ha_config_set_dashboard", "parameters": {"url_path": "sparkx-i7", "config": null, "python_transform": "cb=config['views'][2]['sections'][0]['cards']\ncb[2].pop('icon_color', None)\ncb[2].pop('secondary', None)\ndef fmt(slot):\n return \"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_%d_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_%d_remaining') }}%% left\" % (slot, slot)\nfor i, slot in enumerate([1, 2, 3, 4], start=3):\n cb[i]['icon_color'] = \"{{ states('sensor.sparkx_i7_cfs_box_1_slot_%d_color') }}\" % slot\n cb[i]['secondary'] = fmt(slot)", "config_hash": "a6d36c54196b39e4", "title": null, "icon": null, "require_admin": null, "show_in_sidebar": null, "MandatoryBPS": false, "BestPracticeKey": null, "return_screenshot": false, "view_path": null, "patch": null}, "execution_time_ms": 118.29185485839844, "success": false, "error_message": "{\n \"success\": false,\n \"error\": {\n \"code\": \"VALIDATION_FAILED\",\n \"message\": \"Expression validation failed: Forbidden node type: FunctionDef \\u2014 use a list comprehension or inline the logic\",\n \"suggestion\": \"Check expression syntax\",\n \"suggestions\": [\n \"Check expression syntax\",\n \"Ensure only allowed operations are used\",\n \"See tool description for allowed operations\",\n \"Expression: cb=config['views'][2]['sections'][0]['cards']\\ncb[2].pop('icon_color', None)\\ncb[2].pop('secondary', N...\",\n \"For Home Assistant best-practice guidance, call ha_get_skill_guide(skill='home-assistant-best-practices') and consult the relevant reference file before retrying.\"\n ]\n },\n \"action\": \"python_transform\",\n \"url_path\": \"sparkx-i7\"\n}", "response_size_bytes": null, "user_context": null}
|
{"timestamp": "2026-09-24T02:45:26.034034+00:00", "tool_name": "ha_config_set_dashboard", "parameters": {"url_path": "sparkx-i7", "config": null, "python_transform": "cb=config['views'][2]['sections'][0]['cards']\ncb[2].pop('icon_color', None)\ncb[2].pop('secondary', None)\ndef fmt(slot):\n return \"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_%d_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_%d_remaining') }}%% left\" % (slot, slot)\nfor i, slot in enumerate([1, 2, 3, 4], start=3):\n cb[i]['icon_color'] = \"{{ states('sensor.sparkx_i7_cfs_box_1_slot_%d_color') }}\" % slot\n cb[i]['secondary'] = fmt(slot)", "config_hash": "a6d36c54196b39e4", "title": null, "icon": null, "require_admin": null, "show_in_sidebar": null, "MandatoryBPS": false, "BestPracticeKey": null, "return_screenshot": false, "view_path": null, "patch": null}, "execution_time_ms": 118.29185485839844, "success": false, "error_message": "{\n \"success\": false,\n \"error\": {\n \"code\": \"VALIDATION_FAILED\",\n \"message\": \"Expression validation failed: Forbidden node type: FunctionDef \\u2014 use a list comprehension or inline the logic\",\n \"suggestion\": \"Check expression syntax\",\n \"suggestions\": [\n \"Check expression syntax\",\n \"Ensure only allowed operations are used\",\n \"See tool description for allowed operations\",\n \"Expression: cb=config['views'][2]['sections'][0]['cards']\\ncb[2].pop('icon_color', None)\\ncb[2].pop('secondary', N...\",\n \"For Home Assistant best-practice guidance, call ha_get_skill_guide(skill='home-assistant-best-practices') and consult the relevant reference file before retrying.\"\n ]\n },\n \"action\": \"python_transform\",\n \"url_path\": \"sparkx-i7\"\n}", "response_size_bytes": null, "user_context": null}
|
||||||
|
{"timestamp": "2026-09-24T02:45:32.900745+00:00", "tool_name": "ha_config_set_dashboard", "parameters": {"url_path": "sparkx-i7", "config": null, "python_transform": "cb=config['views'][2]['sections'][0]['cards']\ncb[2].pop('icon_color', None)\ncb[2].pop('secondary', None)\ncb[3]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_color') }}\"\ncb[3]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_remaining') }}% left\"\ncb[4]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_color') }}\"\ncb[4]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_remaining') }}% left\"\ncb[5]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_color') }}\"\ncb[5]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_remaining') }}% left\"\ncb[6]['icon_color']=\"{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_color') }}\"\ncb[6]['secondary']=\"{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_remaining') }}% left\"", "config_hash": "a6d36c54196b39e4", "title": null, "icon": null, "require_admin": null, "show_in_sidebar": null, "MandatoryBPS": false, "BestPracticeKey": null, "return_screenshot": false, "view_path": null, "patch": null}, "execution_time_ms": 47.181129455566406, "success": true, "error_message": null, "response_size_bytes": 1914, "user_context": null}
|
||||||
|
{"timestamp": "2026-09-24T02:45:36.342344+00:00", "tool_name": "ha_config_get_dashboard", "parameters": {"url_path": "sparkx-i7", "list_only": false, "force_reload": false, "entity_id": null, "card_type": null, "heading": null, "include_config": false, "include_screenshot": false, "view_path": "cfs-fans", "mode": null, "query": null}, "execution_time_ms": 9.124279022216797, "success": true, "error_message": null, "response_size_bytes": 4704, "user_context": null}
|
||||||
|
|||||||
+17
-18
@@ -702,9 +702,7 @@
|
|||||||
"icon": "mdi:water-percent",
|
"icon": "mdi:water-percent",
|
||||||
"grid_options": {
|
"grid_options": {
|
||||||
"columns": 6
|
"columns": 6
|
||||||
},
|
}
|
||||||
"icon_color": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_color') }}",
|
|
||||||
"secondary": "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_remaining') }}% left"
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "custom:mushroom-template-card",
|
"type": "custom:mushroom-template-card",
|
||||||
@@ -714,6 +712,18 @@
|
|||||||
"icon": "mdi:printer-3d-nozzle",
|
"icon": "mdi:printer-3d-nozzle",
|
||||||
"name": "Slot 1",
|
"name": "Slot 1",
|
||||||
"primary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_filament') }}",
|
"primary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_filament') }}",
|
||||||
|
"secondary": "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_remaining') }}% left",
|
||||||
|
"multiline_secondary": true,
|
||||||
|
"icon_color": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_1_color') }}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "custom:mushroom-template-card",
|
||||||
|
"grid_options": {
|
||||||
|
"columns": 6
|
||||||
|
},
|
||||||
|
"icon": "mdi:printer-3d-nozzle",
|
||||||
|
"name": "Slot 2",
|
||||||
|
"primary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_filament') }}",
|
||||||
"secondary": "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_remaining') }}% left",
|
"secondary": "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_remaining') }}% left",
|
||||||
"multiline_secondary": true,
|
"multiline_secondary": true,
|
||||||
"icon_color": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_color') }}"
|
"icon_color": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_color') }}"
|
||||||
@@ -724,8 +734,8 @@
|
|||||||
"columns": 6
|
"columns": 6
|
||||||
},
|
},
|
||||||
"icon": "mdi:printer-3d-nozzle",
|
"icon": "mdi:printer-3d-nozzle",
|
||||||
"name": "Slot 2",
|
"name": "Slot 3",
|
||||||
"primary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_filament') }}",
|
"primary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_filament') }}",
|
||||||
"secondary": "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_remaining') }}% left",
|
"secondary": "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_remaining') }}% left",
|
||||||
"multiline_secondary": true,
|
"multiline_secondary": true,
|
||||||
"icon_color": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_color') }}"
|
"icon_color": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_color') }}"
|
||||||
@@ -736,22 +746,11 @@
|
|||||||
"columns": 6
|
"columns": 6
|
||||||
},
|
},
|
||||||
"icon": "mdi:printer-3d-nozzle",
|
"icon": "mdi:printer-3d-nozzle",
|
||||||
"name": "Slot 3",
|
"name": "Slot 4",
|
||||||
"primary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_filament') }}",
|
"primary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_filament') }}",
|
||||||
"secondary": "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_remaining') }}% left",
|
"secondary": "{% set col = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') %}{% if col %}{{ col }} · {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_remaining') }}% left",
|
||||||
"multiline_secondary": true,
|
"multiline_secondary": true,
|
||||||
"icon_color": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_color') }}"
|
"icon_color": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_color') }}"
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "custom:mushroom-template-card",
|
|
||||||
"grid_options": {
|
|
||||||
"columns": 6
|
|
||||||
},
|
|
||||||
"icon": "mdi:printer-3d-nozzle",
|
|
||||||
"name": "Slot 4",
|
|
||||||
"primary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_filament') }}",
|
|
||||||
"secondary": "{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_remaining') }}% left",
|
|
||||||
"multiline_secondary": true
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user