This commit is contained in:
Home Assistant Version Control
2026-09-24 02:37:49 +00:00
parent 6758b678be
commit be9edb89fb
4 changed files with 802 additions and 0 deletions
@@ -0,0 +1,332 @@
# ha_mcp_backup
schema_version: 1
domain: dashboard
entity_id: sparkx-i7
captured: '2026-09-24T02:37:41.746451+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
- entity: sensor.sparkx_i7_print_status
grid_options:
columns: 6
icon: mdi:state-machine
name: Status
type: tile
- entity: sensor.sparkx_i7_position_z
grid_options:
columns: 6
icon: mdi:axis-z-arrow
name: Current Z
type: tile
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: 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
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
@@ -0,0 +1,380 @@
# ha_mcp_backup
schema_version: 1
domain: dashboard
entity_id: sparkx-i7
captured: '2026-09-24T02:37:46.568526+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
- entity: sensor.sparkx_i7_print_status
grid_options:
columns: 6
icon: mdi:state-machine
name: Status
type: tile
- entity: sensor.sparkx_i7_position_z
grid_options:
columns: 6
icon: mdi:axis-z-arrow
name: Current Z
type: tile
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: 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
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
- 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
+2
View File
@@ -3754,3 +3754,5 @@
{"timestamp": "2026-09-24T02:36:18.621037+00:00", "tool_name": "ha_search", "parameters": {"query": "sparkx", "domain_filter": "select", "area_filter": null, "search_types": null, "limit": 10, "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": 453.7520408630371, "success": true, "error_message": null, "response_size_bytes": 763, "user_context": null} {"timestamp": "2026-09-24T02:36:18.621037+00:00", "tool_name": "ha_search", "parameters": {"query": "sparkx", "domain_filter": "select", "area_filter": null, "search_types": null, "limit": 10, "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": 453.7520408630371, "success": true, "error_message": null, "response_size_bytes": 763, "user_context": null}
{"timestamp": "2026-09-24T02:36:22.450181+00:00", "tool_name": "ha_get_device", "parameters": {"device_id": null, "entity_id": "sensor.sparkx_i7_print_status", "integration": null, "area_id": null, "manufacturer": null, "limit": 50, "offset": 0, "detail_level": "summary"}, "execution_time_ms": 33.240318298339844, "success": true, "error_message": null, "response_size_bytes": 13210, "user_context": null} {"timestamp": "2026-09-24T02:36:22.450181+00:00", "tool_name": "ha_get_device", "parameters": {"device_id": null, "entity_id": "sensor.sparkx_i7_print_status", "integration": null, "area_id": null, "manufacturer": null, "limit": 50, "offset": 0, "detail_level": "summary"}, "execution_time_ms": 33.240318298339844, "success": true, "error_message": null, "response_size_bytes": 13210, "user_context": null}
{"timestamp": "2026-09-24T02:36:28.329553+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": "print", "mode": null, "query": null}, "execution_time_ms": 55.32479286193848, "success": true, "error_message": null, "response_size_bytes": 6473, "user_context": null} {"timestamp": "2026-09-24T02:36:28.329553+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": "print", "mode": null, "query": null}, "execution_time_ms": 55.32479286193848, "success": true, "error_message": null, "response_size_bytes": 6473, "user_context": null}
{"timestamp": "2026-09-24T02:37:41.900529+00:00", "tool_name": "ha_config_set_dashboard", "parameters": {"url_path": "sparkx-i7", "config": null, "python_transform": "config['views'][0]['sections'].append({\n 'cards': [\n {'heading': 'Filament', 'icon': 'mdi:printer-3d-nozzle-outline', 'type': 'heading'},\n {'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'},\n {'entity': 'input_number.sparkx_i7_filament_g_cm', 'grid_options': {'columns': 6}, 'icon': 'mdi:weight-kilogram', 'name': 'g/cm', 'type': 'tile'},\n {'entity': 'sensor.sparkx_i7_filament_cost', 'grid_options': {'columns': 3}, 'icon': 'mdi:cash', 'name': 'Cost (total)', 'type': 'tile'},\n {'entity': 'sensor.sparkx_i7_filament_cost_daily', 'grid_options': {'columns': 3}, 'icon': 'mdi:cash-multiple', 'name': 'Today', 'type': 'tile'},\n {'entity': 'sensor.sparkx_i7_filament_cost_weekly', 'grid_options': {'columns': 3}, 'icon': 'mdi:cash-multiple', 'name': 'This Week', 'type': 'tile'},\n {'entity': 'sensor.sparkx_i7_filament_cost_monthly', 'grid_options': {'columns': 3}, 'icon': 'mdi:cash-multiple', 'name': 'This Month', 'type': 'tile'}\n ],\n 'type': 'grid'\n})", "config_hash": "325fddfe58385a3c", "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": 59.06939506530762, "success": true, "error_message": null, "response_size_bytes": 1706, "user_context": null}
{"timestamp": "2026-09-24T02:37:46.639898+00:00", "tool_name": "ha_config_set_dashboard", "parameters": {"url_path": "sparkx-i7", "config": null, "python_transform": "config['views'][0]['sections'][2]['cards'].insert(3, {'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': '°C'})", "config_hash": "3c8ccecd59e202ed", "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": 18.225669860839844, "success": true, "error_message": null, "response_size_bytes": 801, "user_context": null}
+88
View File
@@ -194,6 +194,22 @@
"type": "gauge", "type": "gauge",
"unit": "°C" "unit": "°C"
}, },
{
"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": "°C"
},
{ {
"entity": "number.sparkx_i7_nozzle_target", "entity": "number.sparkx_i7_nozzle_target",
"grid_options": { "grid_options": {
@@ -332,6 +348,78 @@
} }
], ],
"type": "grid" "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"
},
{
"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", "title": "Print",