3 files
This commit is contained in:
1 parent
bdf036ebc9
commit
1cf6531c96
3 files changed
+688
-4
No files matched your search
@@ -0,0 +1,683 @@
|
|||||||
|
# ha_mcp_backup
|
||||||
|
schema_version: 1
|
||||||
|
domain: dashboard
|
||||||
|
entity_id: sparkx-i7
|
||||||
|
captured: '2026-10-08T16:47:45.078937+00:00'
|
||||||
|
tool: ha_config_set_dashboard
|
||||||
|
config:
|
||||||
|
views:
|
||||||
|
- max_columns: 4
|
||||||
|
path: print
|
||||||
|
sections:
|
||||||
|
- cards:
|
||||||
|
- bed: sensor.sparkx_i7_bed_temperature
|
||||||
|
camera: camera.sparkx_i7_printer_camera
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
layer: sensor.sparkx_i7_working_layer
|
||||||
|
light: light.sparkx_i7_light
|
||||||
|
name: SparkX i7
|
||||||
|
nozzle: sensor.sparkx_i7_nozzle_temperature
|
||||||
|
pause_btn: button.sparkx_i7_pause_print
|
||||||
|
progress: sensor.sparkx_i7_print_progress
|
||||||
|
resume_btn: button.sparkx_i7_resume_print
|
||||||
|
status: sensor.sparkx_i7_print_status
|
||||||
|
stop_btn: button.sparkx_i7_stop_print
|
||||||
|
time_left: sensor.sparkx_i7_print_time_left
|
||||||
|
total_layers: sensor.sparkx_i7_total_layers
|
||||||
|
type: custom:k-printer-card
|
||||||
|
- grid_options:
|
||||||
|
columns: full
|
||||||
|
type: custom:webrtc-camera
|
||||||
|
ui: true
|
||||||
|
url: octoprint
|
||||||
|
- grid_options:
|
||||||
|
columns: full
|
||||||
|
type: custom:webrtc-camera
|
||||||
|
ui: true
|
||||||
|
url: octoprint2
|
||||||
|
- camera_image: camera.sparkx_i7_printer_camera
|
||||||
|
camera_view: live
|
||||||
|
entity: camera.sparkx_i7_printer_camera
|
||||||
|
fit_mode: cover
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
show_name: true
|
||||||
|
show_state: true
|
||||||
|
type: picture-entity
|
||||||
|
- cards:
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
image_entity: image.sparkx_i7_current_print_preview
|
||||||
|
show_name: false
|
||||||
|
type: picture
|
||||||
|
- entity: sensor.sparkx_i7_active_filament_slot
|
||||||
|
icon: mdi:palette
|
||||||
|
icon_color: '{% set color = state_attr(''sensor.sparkx_i7_active_filament_slot'',
|
||||||
|
''color'') | default('''') | string %}{% set core = color | replace(''#'',
|
||||||
|
'''') %}{% if core | length >= 6 %}#{{ core[-6:] }}{% else %}var(--primary-text-color){%
|
||||||
|
endif %}'
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Active Color
|
||||||
|
primary: '{% set slot = states(''sensor.sparkx_i7_active_filament_slot'')
|
||||||
|
%}{% if ''Slot 1'' in slot %}{{ states(''sensor.sparkx_i7_slot_1_color_name'')
|
||||||
|
}}{% elif ''Slot 2'' in slot %}{{ states(''sensor.sparkx_i7_slot_2_color_name'')
|
||||||
|
}}{% elif ''Slot 3'' in slot %}{{ states(''sensor.sparkx_i7_slot_3_color_name'')
|
||||||
|
}}{% elif ''Slot 4'' in slot %}{{ states(''sensor.sparkx_i7_slot_4_color_name'')
|
||||||
|
}}{% elif slot == ''External'' %}{{ states(''sensor.sparkx_i7_external_color_name'')
|
||||||
|
}}{% else %}Unknown{% endif %}'
|
||||||
|
secondary: "{% set slot = states('sensor.sparkx_i7_active_filament_slot')\
|
||||||
|
\ %}{{ slot }}{% if state_attr('sensor.sparkx_i7_active_filament_slot',\
|
||||||
|
\ 'filament') %} \xB7 {{ state_attr('sensor.sparkx_i7_active_filament_slot',\
|
||||||
|
\ 'filament') }}{% endif %}"
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
type: horizontal-stack
|
||||||
|
- entity: sensor.sparkx_i7_print_status
|
||||||
|
grid_options:
|
||||||
|
columns: 12
|
||||||
|
icon: mdi:state-machine
|
||||||
|
name: Status
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_position_z_2_decimals
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:axis-z-arrow
|
||||||
|
name: Current Z
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_position_x
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:axis-x-arrow
|
||||||
|
name: X
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_position_y
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:axis-y-arrow
|
||||||
|
name: Y
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_print_status
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:message-alert-outline
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Printer Message
|
||||||
|
primary: '{{ states("sensor.sparkx_i7_print_status") | replace("_", " ") |
|
||||||
|
title }}'
|
||||||
|
secondary: '{% set err = state_attr("sensor.sparkx_i7_print_status", "err")
|
||||||
|
or {} %}{% set code = err.get("errcode", 0) | int(0) %}{% set msg = err.get("value",
|
||||||
|
"") %}{% if state_attr("sensor.sparkx_i7_print_status", "paused_flag") |
|
||||||
|
default(false) %}Print paused{% elif msg %}ERROR {{ code }}: {{ msg }}{%
|
||||||
|
elif code %}Printer error {{ code }}{% else %}No printer error{% endif %}'
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- entity: sensor.sparkx_i7_print_status
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:file-document-outline
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Current File
|
||||||
|
primary: Current File
|
||||||
|
secondary: '{% set file = state_attr("sensor.sparkx_i7_print_status", "file")
|
||||||
|
or "" %}{% if file %}{{ file.split("/")[-1] | replace(".gcode", "") }}{%
|
||||||
|
else %}No active file{% endif %}'
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
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
|
||||||
|
- entity: number.sparkx_i7_print_tuning
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:speedometer
|
||||||
|
name: Print Tuning
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_print_speed
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:speedometer
|
||||||
|
name: Speed
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_real_time_flow
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:cube-send
|
||||||
|
name: Real-Time Flow
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_flow_rate
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:chart-gantt
|
||||||
|
name: Flow Rate
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_current_object
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:cube-outline
|
||||||
|
name: Object
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_object_count
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:counter
|
||||||
|
name: Object Count
|
||||||
|
type: tile
|
||||||
|
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: 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
|
||||||
|
- entity: button.sparkx_i7_home_xy_then_z
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:home-circle
|
||||||
|
name: Home
|
||||||
|
tap_action:
|
||||||
|
action: perform-action
|
||||||
|
perform_action: button.press
|
||||||
|
target:
|
||||||
|
entity_id: button.sparkx_i7_home_xy_then_z
|
||||||
|
type: tile
|
||||||
|
type: grid
|
||||||
|
- cards:
|
||||||
|
- heading: Filament
|
||||||
|
icon: mdi:printer-3d-nozzle-outline
|
||||||
|
type: heading
|
||||||
|
- entity: sensor.sparkx_i7_filament_weight_estimated
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: '{% set st = states(''sensor.sparkx_i7_print_status'') %}{% if st in
|
||||||
|
[''printing'', ''paused''] %}mdi:printer-3d-nozzle{% else %}mdi:calendar-today{%
|
||||||
|
endif %}'
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Filament Used
|
||||||
|
primary: '{% set st = states(''sensor.sparkx_i7_print_status'') %}{% if st
|
||||||
|
in [''printing'', ''paused''] %}{{ states(''sensor.sparkx_i7_filament_weight_estimated'')
|
||||||
|
| round(1) }} g{% else %}No active job{% endif %}'
|
||||||
|
secondary: "{% set st = states('sensor.sparkx_i7_print_status') %}{% if st\
|
||||||
|
\ in ['printing', 'paused'] %}{{ states('sensor.sparkx_i7_used_material_length')\
|
||||||
|
\ | round(0) }} cm this job{% else %}{{ states('sensor.sparkx_i7_filament_weight_daily')\
|
||||||
|
\ | round(1) }} g \xB7 {{ states('sensor.sparkx_i7_filament_cost_daily')\
|
||||||
|
\ | round(2) }} $ today{% endif %}"
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- entity: input_number.sparkx_i7_filament_g_cm
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:weight-kilogram
|
||||||
|
name: g/cm
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_used_material_length
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:counter
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Used Length
|
||||||
|
primary: '{% set st = states(''sensor.sparkx_i7_print_status'') %}{% if st
|
||||||
|
in [''printing'', ''paused''] %}{{ states(''sensor.sparkx_i7_used_material_length'')
|
||||||
|
| round(0) }} cm{% else %}{{ (states(''sensor.sparkx_i7_filament_weight_daily'')
|
||||||
|
| float(0) / states(''input_number.sparkx_i7_filament_g_cm'') | float(0.0298))
|
||||||
|
| round(0) }} cm{% endif %}'
|
||||||
|
secondary: '{% set st = states(''sensor.sparkx_i7_print_status'') %}{% if
|
||||||
|
st in [''printing'', ''paused''] %}this job (printer-reported){% else %}today,
|
||||||
|
from today''s weight{% endif %}'
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- entity: sensor.sparkx_i7_filament_cost
|
||||||
|
grid_options:
|
||||||
|
columns: 3
|
||||||
|
icon: mdi:cash
|
||||||
|
name: Job 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
|
||||||
|
- icon: mdi:printer-3d-nozzle-outline
|
||||||
|
max_columns: 4
|
||||||
|
path: cfs-fans
|
||||||
|
sections:
|
||||||
|
- cards:
|
||||||
|
- heading: CFS Box 1
|
||||||
|
icon: mdi:file-cabinet
|
||||||
|
type: heading
|
||||||
|
- entity: sensor.sparkx_i7_cfs_box_1_temperature
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:thermometer
|
||||||
|
name: Temperature
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_cfs_box_1_humidity
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:water-percent
|
||||||
|
name: Humidity
|
||||||
|
type: tile
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
icon_color: '{% set c = states(''sensor.sparkx_i7_cfs_box_1_slot_1_color'')|default('''')|string
|
||||||
|
%}{% set core = c|replace(''#'','''') %}{% if core|length >= 6 %}#{{ core[-6:]
|
||||||
|
}}{% endif %}'
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Slot 1
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_1_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_slot_1_color_name') %}{%\
|
||||||
|
\ 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
|
||||||
|
icon_color: '{% set c = states(''sensor.sparkx_i7_cfs_box_1_slot_2_color'')|default('''')|string
|
||||||
|
%}{% set core = c|replace(''#'','''') %}{% if core|length >= 6 %}#{{ core[-6:]
|
||||||
|
}}{% endif %}'
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Slot 2
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_2_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_slot_2_color_name') %}{%\
|
||||||
|
\ if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_2_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
icon_color: '{% set c = states(''sensor.sparkx_i7_cfs_box_1_slot_3_color'')|default('''')|string
|
||||||
|
%}{% set core = c|replace(''#'','''') %}{% if core|length >= 6 %}#{{ core[-6:]
|
||||||
|
}}{% endif %}'
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Slot 3
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_3_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_slot_3_color_name') %}{%\
|
||||||
|
\ if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_3_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle
|
||||||
|
icon_color: '{% set c = states(''sensor.sparkx_i7_cfs_box_1_slot_4_color'')|default('''')|string
|
||||||
|
%}{% set core = c|replace(''#'','''') %}{% if core|length >= 6 %}#{{ core[-6:]
|
||||||
|
}}{% endif %}'
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Slot 4
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_box_1_slot_4_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_slot_4_color_name') %}{%\
|
||||||
|
\ if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_box_1_slot_4_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
type: grid
|
||||||
|
- cards:
|
||||||
|
- heading: External / Active
|
||||||
|
icon: mdi:printer-3d
|
||||||
|
type: heading
|
||||||
|
- cards:
|
||||||
|
- entity: sensor.sparkx_i7_active_filament_slot
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:swap-horizontal
|
||||||
|
name: Active Slot
|
||||||
|
type: tile
|
||||||
|
- entity: sensor.sparkx_i7_active_filament_slot
|
||||||
|
icon: mdi:palette
|
||||||
|
icon_color: '{% set color = state_attr(''sensor.sparkx_i7_active_filament_slot'',
|
||||||
|
''color'') | default('''') | string %}{% set core = color | replace(''#'',
|
||||||
|
'''') %}{% if core | length >= 6 %}#{{ core[-6:] }}{% else %}var(--primary-text-color){%
|
||||||
|
endif %}'
|
||||||
|
multiline_secondary: true
|
||||||
|
name: Active Color
|
||||||
|
primary: '{% set slot = states(''sensor.sparkx_i7_active_filament_slot'')
|
||||||
|
%}{% if ''Slot 1'' in slot %}{{ states(''sensor.sparkx_i7_slot_1_color_name'')
|
||||||
|
}}{% elif ''Slot 2'' in slot %}{{ states(''sensor.sparkx_i7_slot_2_color_name'')
|
||||||
|
}}{% elif ''Slot 3'' in slot %}{{ states(''sensor.sparkx_i7_slot_3_color_name'')
|
||||||
|
}}{% elif ''Slot 4'' in slot %}{{ states(''sensor.sparkx_i7_slot_4_color_name'')
|
||||||
|
}}{% elif slot == ''External'' %}{{ states(''sensor.sparkx_i7_external_color_name'')
|
||||||
|
}}{% else %}Unknown{% endif %}'
|
||||||
|
secondary: "{% set slot = states('sensor.sparkx_i7_active_filament_slot')\
|
||||||
|
\ %}{{ slot }}{% if state_attr('sensor.sparkx_i7_active_filament_slot',\
|
||||||
|
\ 'filament') %} \xB7 {{ state_attr('sensor.sparkx_i7_active_filament_slot',\
|
||||||
|
\ 'filament') }}{% endif %}"
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
grid_options:
|
||||||
|
columns: full
|
||||||
|
type: horizontal-stack
|
||||||
|
- grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:lan-outline
|
||||||
|
icon_color: '{% set c = states(''sensor.sparkx_i7_cfs_external_color'')|default('''')|string
|
||||||
|
%}{% set core = c|replace(''#'','''') %}{% if core|length >= 6 %}#{{ core[-6:]
|
||||||
|
}}{% endif %}'
|
||||||
|
multiline_secondary: true
|
||||||
|
name: External Filament
|
||||||
|
primary: '{{ states(''sensor.sparkx_i7_cfs_external_filament'') }}'
|
||||||
|
secondary: "{% set col = states('sensor.sparkx_i7_external_color_name') %}{%\
|
||||||
|
\ if col %}{{ col }} \xB7 {% endif %}{{ states('sensor.sparkx_i7_cfs_external_remaining')\
|
||||||
|
\ }}% left"
|
||||||
|
type: custom:mushroom-template-card
|
||||||
|
- entity: sensor.sparkx_i7_filament_status
|
||||||
|
grid_options:
|
||||||
|
columns: 6
|
||||||
|
icon: mdi:printer-3d-nozzle-alert
|
||||||
|
name: Filament Status
|
||||||
|
type: tile
|
||||||
|
type: grid
|
||||||
|
- cards:
|
||||||
|
- heading: Fans
|
||||||
|
icon: mdi:fan
|
||||||
|
type: heading
|
||||||
|
- entity: fan.sparkx_i7_model_fan
|
||||||
|
features:
|
||||||
|
- type: fan-speed
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:fan
|
||||||
|
name: Model Fan
|
||||||
|
type: tile
|
||||||
|
- entity: fan.sparkx_i7_case_fan
|
||||||
|
features:
|
||||||
|
- type: fan-speed
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:fan
|
||||||
|
name: Case Fan
|
||||||
|
type: tile
|
||||||
|
- entity: fan.sparkx_i7_side_fan
|
||||||
|
features:
|
||||||
|
- type: fan-speed
|
||||||
|
grid_options:
|
||||||
|
columns: 4
|
||||||
|
icon: mdi:fan
|
||||||
|
name: Side Fan
|
||||||
|
type: tile
|
||||||
|
type: grid
|
||||||
|
title: CFS / Fans
|
||||||
|
type: sections
|
||||||
@@ -3963,3 +3963,4 @@
|
|||||||
{"timestamp": "2026-10-08T16:42:50.942479+00:00", "tool_name": "ha_config_set_helper", "parameters": {"helper_type": "input_number", "name": "Spoolman Set Remaining", "helper_id": null, "entry_id": null, "subentry_type": null, "subentry_id": null, "show_advanced_options": false, "icon": null, "area_id": null, "labels": null, "min_value": 0.0, "max_value": 10000.0, "step": 1.0, "unit_of_measurement": "g", "options": null, "initial": null, "mode": "box", "has_date": null, "has_time": null, "restore": null, "duration": null, "monday": null, "tuesday": null, "wednesday": null, "thursday": null, "friday": null, "saturday": null, "sunday": null, "latitude": null, "longitude": null, "radius": null, "passive": null, "user_id": null, "device_trackers": null, "picture": null, "tag_id": null, "description": null, "category": null, "config": null, "wait": true, "action": "create", "MandatoryBPS": false, "BestPracticeKey": null}, "execution_time_ms": 40.21048545837402, "success": true, "error_message": null, "response_size_bytes": 352, "user_context": null}
|
{"timestamp": "2026-10-08T16:42:50.942479+00:00", "tool_name": "ha_config_set_helper", "parameters": {"helper_type": "input_number", "name": "Spoolman Set Remaining", "helper_id": null, "entry_id": null, "subentry_type": null, "subentry_id": null, "show_advanced_options": false, "icon": null, "area_id": null, "labels": null, "min_value": 0.0, "max_value": 10000.0, "step": 1.0, "unit_of_measurement": "g", "options": null, "initial": null, "mode": "box", "has_date": null, "has_time": null, "restore": null, "duration": null, "monday": null, "tuesday": null, "wednesday": null, "thursday": null, "friday": null, "saturday": null, "sunday": null, "latitude": null, "longitude": null, "radius": null, "passive": null, "user_id": null, "device_trackers": null, "picture": null, "tag_id": null, "description": null, "category": null, "config": null, "wait": true, "action": "create", "MandatoryBPS": false, "BestPracticeKey": null}, "execution_time_ms": 40.21048545837402, "success": true, "error_message": null, "response_size_bytes": 352, "user_context": null}
|
||||||
{"timestamp": "2026-10-08T16:42:57.666015+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": 14.811515808105469, "success": true, "error_message": null, "response_size_bytes": 21368, "user_context": null}
|
{"timestamp": "2026-10-08T16:42:57.666015+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": 14.811515808105469, "success": true, "error_message": null, "response_size_bytes": 21368, "user_context": null}
|
||||||
{"timestamp": "2026-10-08T16:44:33.384625+00:00", "tool_name": "ha_search", "parameters": {"query": "spoolman", "domain_filter": null, "area_filter": null, "search_types": null, "limit": 40, "offset": 0, "exact_match": true, "include_hidden": true, "include_config": false, "group_by_domain": false, "per_domain_limit": null, "state_filter": null, "result_fields": null, "fields": null, "config_time_budget": null, "ctx": {"_STATE_TTL_SECONDS": 86400}}, "execution_time_ms": 179.58760261535645, "success": true, "error_message": null, "response_size_bytes": 6430, "user_context": null}
|
{"timestamp": "2026-10-08T16:44:33.384625+00:00", "tool_name": "ha_search", "parameters": {"query": "spoolman", "domain_filter": null, "area_filter": null, "search_types": null, "limit": 40, "offset": 0, "exact_match": true, "include_hidden": true, "include_config": false, "group_by_domain": false, "per_domain_limit": null, "state_filter": null, "result_fields": null, "fields": null, "config_time_budget": null, "ctx": {"_STATE_TTL_SECONDS": 86400}}, "execution_time_ms": 179.58760261535645, "success": true, "error_message": null, "response_size_bytes": 6430, "user_context": null}
|
||||||
|
{"timestamp": "2026-10-08T16:47:45.196926+00:00", "tool_name": "ha_config_set_dashboard", "parameters": {"url_path": "sparkx-i7", "config": null, "python_transform": "config['views'].append({\"title\": \"Spoolman\", \"path\": \"spoolman\", \"icon\": \"mdi:package-variant-closed\", \"type\": \"sections\", \"max_columns\": 4, \"sections\": [{\"type\": \"grid\", \"cards\": [{\"type\": \"heading\", \"heading\": \"Overture Black ABS (Spool 1)\", \"icon\": \"mdi:spool\"}, {\"type\": \"gauge\", \"entity\": \"sensor.spoolman_spool_1\", \"name\": \"Remaining\", \"unit\": \"g\", \"min\": 0, \"max\": 1000, \"severity\": {\"red\": 0, \"yellow\": 300, \"green\": 600}, \"grid_options\": {\"columns\": 6, \"rows\": 3}}, {\"type\": \"custom:mushroom-template-card\", \"entity\": \"sensor.spoolman_spool_1_color_hex\", \"name\": \"Color\", \"icon\": \"mdi:palette\", \"icon_color\": \"{% set c = states('sensor.spoolman_spool_1_color_hex')|replace('#','')|lower %}{% if c|length == 6 %}#{{ c }}{% else %}var(--primary-text-color){% endif %}\", \"primary\": \"{{ states('sensor.spoolman_spool_1_color_hex') }}\", \"secondary\": \"{{ states('sensor.spoolman_spool_1_filament_name') }} · {{ states('sensor.spoolman_spool_1_material') }}\", \"multiline_secondary\": true, \"grid_options\": {\"columns\": 6}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_used_weight\", \"name\": \"Used Weight\", \"icon\": \"mdi:scale-balance\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_used_percentage\", \"name\": \"Used %\", \"icon\": \"mdi:chart-donut\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_remaining_length\", \"name\": \"Remaining Length\", \"icon\": \"mdi:ruler\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_used_length\", \"name\": \"Used Length\", \"icon\": \"mdi:ruler-square\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_spool_weight\", \"name\": \"Empty Spool Weight\", \"icon\": \"mdi:scale\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_filament_weight\", \"name\": \"Full Spool Weight\", \"icon\": \"mdi:weight-kilogram\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_vendor\", \"name\": \"Vendor\", \"icon\": \"mdi:factory\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_material\", \"name\": \"Material\", \"icon\": \"mdi:layers-triple\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_diameter\", \"name\": \"Diameter\", \"icon\": \"mdi:circle-outline\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_density\", \"name\": \"Density\", \"icon\": \"mdi:weight-gram\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_filament_name\", \"name\": \"Filament Name\", \"icon\": \"mdi:tag-outline\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"select.spoolman_spool_1_location\", \"name\": \"Location\", \"icon\": \"mdi:map-marker-outline\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_estimated_runout\", \"name\": \"Est. Runout\", \"icon\": \"mdi:calendar-alert\", \"grid_options\": {\"columns\": 6}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_registered\", \"name\": \"Registered\", \"icon\": \"mdi:calendar-check-outline\", \"grid_options\": {\"columns\": 6}}, {\"type\": \"tile\", \"entity\": \"binary_sensor.spoolman_spool_1_low_filament\", \"name\": \"Low Filament\", \"icon\": \"mdi:alert-circle-outline\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_flow_rate\", \"name\": \"Flow Rate\", \"icon\": \"mdi:progress-clock\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1_id\", \"name\": \"Spool ID\", \"icon\": \"mdi:identifier\", \"grid_options\": {\"columns\": 4}}, {\"type\": \"markdown\", \"content\": \"**Spoolman UI:** [http://2c829f0e-spoolman.local.hass.io:7912](http://2c829f0e-spoolman.local.hass.io:7912)\\n\\n**Changing filaments:** 1. Set the slot color in the CFS app. 2. Create the spool in Spoolman with a matching color hex. No Home Assistant changes needed — new spools appear here automatically.\", \"grid_options\": {\"columns\": \"full\"}}]}, {\"type\": \"grid\", \"cards\": [{\"type\": \"heading\", \"heading\": \"Adjust Remaining\", \"icon\": \"mdi:pencil-outline\"}, {\"type\": \"entities\", \"title\": \"Set value (g)\", \"show_header_toggle\": false, \"entities\": [\"input_number.spoolman_set_remaining\"], \"grid_options\": {\"columns\": 6}}, {\"type\": \"tile\", \"entity\": \"sensor.spoolman_spool_1\", \"name\": \"Apply to Spool 1\", \"icon\": Line truncated
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
"voltage": 118.6,
|
"voltage": 118.6,
|
||||||
"countdown_to_turn_on": 0,
|
"countdown_to_turn_on": 0,
|
||||||
"energy": 103.64,
|
"energy": 103.64,
|
||||||
"power_factor": 0.9,
|
"power_factor": 0.2,
|
||||||
"ac_frequency": 60,
|
"ac_frequency": 60,
|
||||||
"update": {
|
"update": {
|
||||||
"state": "idle",
|
"state": "idle",
|
||||||
@@ -58,8 +58,8 @@
|
|||||||
"latest_release_notes": null
|
"latest_release_notes": null
|
||||||
},
|
},
|
||||||
"linkquality": 145,
|
"linkquality": 145,
|
||||||
"power": 84.5,
|
"power": 0.5,
|
||||||
"current": 0.8,
|
"current": 0.04,
|
||||||
"power_on_behavior": "on"
|
"power_on_behavior": "on"
|
||||||
},
|
},
|
||||||
"0xb40e060fffe031e3": {
|
"0xb40e060fffe031e3": {
|
||||||
@@ -98,7 +98,7 @@
|
|||||||
"voltage": 118.8,
|
"voltage": 118.8,
|
||||||
"energy": 100.67,
|
"energy": 100.67,
|
||||||
"state": "ON",
|
"state": "ON",
|
||||||
"power": 10.1,
|
"power": 10.3,
|
||||||
"current": 0.32,
|
"current": 0.32,
|
||||||
"ac_frequency": 60,
|
"ac_frequency": 60,
|
||||||
"power_factor": 0.5,
|
"power_factor": 0.5,
|
||||||
|
|||||||
Reference in new issue
Block a user