This commit is contained in:
Home Assistant Version Control
2026-10-16 20:32:27 +00:00
parent 7577b196bf
commit 0b156d0ba2
4 changed files with 568 additions and 82 deletions
+16 -64
View File
@@ -28,80 +28,32 @@
},
"cards": [
{
"type": "tile",
"entity": "sensor.sparkx_i7_cfs_box_1_slot_1_color",
"name": "",
"icon": "none",
"state_content": [
"state"
],
"grid_options": {
"columns": 3
},
"tap_action": {
"action": "none"
},
"type": "markdown",
"content": "{% if states('sensor.sparkx_i7_print_status') in ['printing', 'paused'] %}{% set gcm = states('input_number.sparkx_i7_filament_g_cm') | float(0.0298) %}{% set cur = states('sensor.sparkx_i7_used_material_length') | float(0) %}{% set ck = states('input_number.sparkx_i7_spoolman_length_checkpoint') | float(0) %}{% set booked = states('input_number.sparkx_i7_slot_1_grams') | float(0) %}{% set live = booked + ((([cur - ck, 0] | max) * gcm) if states('sensor.sparkx_i7_active_filament_slot') == 'box_1_slot_1' else 0) %}{{ live | round(1) }}g{% else %}{{ (states('input_number.sparkx_i7_slot_1_grams') | float(0)) | round(1) }}g{% endif %}",
"card_mod": {
"style": "ha-card { padding: 0 4px; margin: 0; } .tile { padding: 0; } .tile__title { display: none; } .tile__state { text-align: left; justify-content: flex-start; font-size: 10px; line-height: 1; margin: 0; padding: 0; } .tile__icon { display: none; }"
},
"state_display": "{% if states('sensor.sparkx_i7_print_status') in ['printing', 'paused'] %}{% set gcm = states('input_number.sparkx_i7_filament_g_cm') | float(0.0298) %}{% set cur = states('sensor.sparkx_i7_used_material_length') | float(0) %}{% set ck = states('input_number.sparkx_i7_spoolman_length_checkpoint') | float(0) %}{% set booked = states('input_number.sparkx_i7_slot_1_grams') | float(0) %}{% set live = booked + ((([cur - ck, 0] | max) * gcm) if states('sensor.sparkx_i7_active_filament_slot') == 'box_1_slot_1' else 0) %}{{ live | round(1) }}g{% else %}{{ (states('input_number.sparkx_i7_slot_1_grams') | float(0)) | round(1) }}g{% endif %}"
"style": "ha-card { background: transparent; box-shadow: none; border: none; padding: 0 4px; margin: 0; text-align: left; } .markdown { padding: 0; margin: 0; text-align: left; } p { margin: 0; padding: 0; text-align: left; font-size: 11px; line-height: 1; }"
}
},
{
"type": "tile",
"entity": "sensor.sparkx_i7_cfs_box_1_slot_2_color",
"name": "",
"icon": "none",
"state_content": [
"state"
],
"grid_options": {
"columns": 3
},
"tap_action": {
"action": "none"
},
"type": "markdown",
"content": "{% if states('sensor.sparkx_i7_print_status') in ['printing', 'paused'] %}{% set gcm = states('input_number.sparkx_i7_filament_g_cm') | float(0.0298) %}{% set cur = states('sensor.sparkx_i7_used_material_length') | float(0) %}{% set ck = states('input_number.sparkx_i7_spoolman_length_checkpoint') | float(0) %}{% set booked = states('input_number.sparkx_i7_slot_2_grams') | float(0) %}{% set live = booked + ((([cur - ck, 0] | max) * gcm) if states('sensor.sparkx_i7_active_filament_slot') == 'box_1_slot_2' else 0) %}{{ live | round(1) }}g{% else %}{{ (states('input_number.sparkx_i7_slot_2_grams') | float(0)) | round(1) }}g{% endif %}",
"card_mod": {
"style": "ha-card { padding: 0 4px; margin: 0; } .tile { padding: 0; } .tile__title { display: none; } .tile__state { text-align: left; justify-content: flex-start; font-size: 10px; line-height: 1; margin: 0; padding: 0; } .tile__icon { display: none; }"
},
"state_display": "{% if states('sensor.sparkx_i7_print_status') in ['printing', 'paused'] %}{% set gcm = states('input_number.sparkx_i7_filament_g_cm') | float(0.0298) %}{% set cur = states('sensor.sparkx_i7_used_material_length') | float(0) %}{% set ck = states('input_number.sparkx_i7_spoolman_length_checkpoint') | float(0) %}{% set booked = states('input_number.sparkx_i7_slot_2_grams') | float(0) %}{% set live = booked + ((([cur - ck, 0] | max) * gcm) if states('sensor.sparkx_i7_active_filament_slot') == 'box_1_slot_2' else 0) %}{{ live | round(1) }}g{% else %}{{ (states('input_number.sparkx_i7_slot_2_grams') | float(0)) | round(1) }}g{% endif %}"
"style": "ha-card { background: transparent; box-shadow: none; border: none; padding: 0 4px; margin: 0; text-align: left; } .markdown { padding: 0; margin: 0; text-align: left; } p { margin: 0; padding: 0; text-align: left; font-size: 11px; line-height: 1; }"
}
},
{
"type": "tile",
"entity": "sensor.sparkx_i7_cfs_box_1_slot_3_color",
"name": "",
"icon": "none",
"state_content": [
"state"
],
"grid_options": {
"columns": 3
},
"tap_action": {
"action": "none"
},
"type": "markdown",
"content": "{% if states('sensor.sparkx_i7_print_status') in ['printing', 'paused'] %}{% set gcm = states('input_number.sparkx_i7_filament_g_cm') | float(0.0298) %}{% set cur = states('sensor.sparkx_i7_used_material_length') | float(0) %}{% set ck = states('input_number.sparkx_i7_spoolman_length_checkpoint') | float(0) %}{% set booked = states('input_number.sparkx_i7_slot_3_grams') | float(0) %}{% set live = booked + ((([cur - ck, 0] | max) * gcm) if states('sensor.sparkx_i7_active_filament_slot') == 'box_1_slot_3' else 0) %}{{ live | round(1) }}g{% else %}{{ (states('input_number.sparkx_i7_slot_3_grams') | float(0)) | round(1) }}g{% endif %}",
"card_mod": {
"style": "ha-card { padding: 0 4px; margin: 0; } .tile { padding: 0; } .tile__title { display: none; } .tile__state { text-align: left; justify-content: flex-start; font-size: 10px; line-height: 1; margin: 0; padding: 0; } .tile__icon { display: none; }"
},
"state_display": "{% if states('sensor.sparkx_i7_print_status') in ['printing', 'paused'] %}{% set gcm = states('input_number.sparkx_i7_filament_g_cm') | float(0.0298) %}{% set cur = states('sensor.sparkx_i7_used_material_length') | float(0) %}{% set ck = states('input_number.sparkx_i7_spoolman_length_checkpoint') | float(0) %}{% set booked = states('input_number.sparkx_i7_slot_3_grams') | float(0) %}{% set live = booked + ((([cur - ck, 0] | max) * gcm) if states('sensor.sparkx_i7_active_filament_slot') == 'box_1_slot_3' else 0) %}{{ live | round(1) }}g{% else %}{{ (states('input_number.sparkx_i7_slot_3_grams') | float(0)) | round(1) }}g{% endif %}"
"style": "ha-card { background: transparent; box-shadow: none; border: none; padding: 0 4px; margin: 0; text-align: left; } .markdown { padding: 0; margin: 0; text-align: left; } p { margin: 0; padding: 0; text-align: left; font-size: 11px; line-height: 1; }"
}
},
{
"type": "tile",
"entity": "sensor.sparkx_i7_cfs_box_1_slot_4_color",
"name": "",
"icon": "none",
"state_content": [
"state"
],
"grid_options": {
"columns": 3
},
"tap_action": {
"action": "none"
},
"type": "markdown",
"content": "{% if states('sensor.sparkx_i7_print_status') in ['printing', 'paused'] %}{% set gcm = states('input_number.sparkx_i7_filament_g_cm') | float(0.0298) %}{% set cur = states('sensor.sparkx_i7_used_material_length') | float(0) %}{% set ck = states('input_number.sparkx_i7_spoolman_length_checkpoint') | float(0) %}{% set booked = states('input_number.sparkx_i7_slot_4_grams') | float(0) %}{% set live = booked + ((([cur - ck, 0] | max) * gcm) if states('sensor.sparkx_i7_active_filament_slot') == 'box_1_slot_4' else 0) %}{{ live | round(1) }}g{% else %}{{ (states('input_number.sparkx_i7_slot_4_grams') | float(0)) | round(1) }}g{% endif %}",
"card_mod": {
"style": "ha-card { padding: 0 4px; margin: 0; } .tile { padding: 0; } .tile__title { display: none; } .tile__state { text-align: left; justify-content: flex-start; font-size: 10px; line-height: 1; margin: 0; padding: 0; } .tile__icon { display: none; }"
},
"state_display": "{% if states('sensor.sparkx_i7_print_status') in ['printing', 'paused'] %}{% set gcm = states('input_number.sparkx_i7_filament_g_cm') | float(0.0298) %}{% set cur = states('sensor.sparkx_i7_used_material_length') | float(0) %}{% set ck = states('input_number.sparkx_i7_spoolman_length_checkpoint') | float(0) %}{% set booked = states('input_number.sparkx_i7_slot_4_grams') | float(0) %}{% set live = booked + ((([cur - ck, 0] | max) * gcm) if states('sensor.sparkx_i7_active_filament_slot') == 'box_1_slot_4' else 0) %}{{ live | round(1) }}g{% else %}{{ (states('input_number.sparkx_i7_slot_4_grams') | float(0)) | round(1) }}g{% endif %}"
"style": "ha-card { background: transparent; box-shadow: none; border: none; padding: 0 4px; margin: 0; text-align: left; } .markdown { padding: 0; margin: 0; text-align: left; } p { margin: 0; padding: 0; text-align: left; font-size: 11px; line-height: 1; }"
}
}
]
},