4 files
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
+54
-775
@@ -1034,770 +1034,64 @@
|
||||
"cards": [
|
||||
{
|
||||
"type": "heading",
|
||||
"heading": "Spool 3 — Black · CFS Slot 1",
|
||||
"heading": "Spool Details — CFS Lite",
|
||||
"icon": "mdi:spool"
|
||||
},
|
||||
{
|
||||
"type": "gauge",
|
||||
"entity": "sensor.spoolman_spool_3",
|
||||
"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_3_color_hex",
|
||||
"name": "Color",
|
||||
"icon": "mdi:palette",
|
||||
"icon_color": "{% set c = states('sensor.spoolman_spool_3_color_hex') | replace('#', '') | lower %}{% if c | length == 6 %}#{{ c }}{% else %}var(--primary-text-color){% endif %}",
|
||||
"primary": "{{ states('sensor.spoolman_spool_3_color_hex') }}",
|
||||
"secondary": "{{ states('sensor.spoolman_spool_3_vendor') }} · {{ states('sensor.spoolman_spool_3_filament_name') }} · {{ states('sensor.spoolman_spool_3_material') }}",
|
||||
"entity": "sensor.sparkx_i7_cfs_box_1_slot_1_color",
|
||||
"name": "Slot 1",
|
||||
"icon": "mdi:spool",
|
||||
"icon_color": "{% set c = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') | replace('#', '') | lower %}{% if c | length == 6 %}#{{ c }}{% else %}var(--primary-color){% endif %}",
|
||||
"picture": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'entity_picture') if ns.id and state_attr('sensor.spoolman_spool_' ~ ns.id, 'entity_picture') else '' }}",
|
||||
"primary": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{% if ns.id %}Spool {{ ns.id }} · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_name') | default('?', true) }} · {{ (states('sensor.spoolman_spool_' ~ ns.id) | float(0)) | round(1) }} g left{% elif color in ['', 'unknown', 'unavailable'] %}Slot color unavailable{% else %}No spool with stock matches this color{% endif %}",
|
||||
"secondary": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_1_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{% if ns.id %}{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_vendor_name') | default('?', true) }} · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_material') | default('?', true) }} · #{{ color | upper }}\nRemaining: {{ (states('sensor.spoolman_spool_' ~ ns.id) | float(0)) | round(1) }} g · used {{ (state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_weight') | float(0)) | round(1) }} g ({{ (state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_percentage') | float(0)) | round(1) }}%)\nRemaining length: {{ ((state_attr('sensor.spoolman_spool_' ~ ns.id, 'remaining_length') | float(0)) / 1000) | round(1) }} m · used {{ ((state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_length') | float(0)) / 1000) | round(1) }} m\nSpool: Ø{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_diameter') | default('?', true) }} mm · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_density') | default('?', true) }} g/cm³ · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_weight') | default('?', true) }} g · art. {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_article_number') | default('?', true) }}\nTemps: bed {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_settings_bed_temp') | default('?', true) }}°C · hotend {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_settings_extruder_temp') | default('?', true) }}°C\nFlow: {{ states('sensor.spoolman_spool_' ~ ns.id ~ '_flow_rate') }} · Runout est.: {{ states('sensor.spoolman_spool_' ~ ns.id ~ '_estimated_runout') }}\nRegistered: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'registered') | default('?', true) }} · Location: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'location') | default('?', true) }} · Price: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_price') | default('?', true) }}{% elif color in ['', 'unknown', 'unavailable'] %}Slot color unavailable{% else %}No spool with stock matches this color{% endif %}",
|
||||
"multiline_secondary": true,
|
||||
"grid_options": {
|
||||
"columns": 6
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_used_weight",
|
||||
"name": "Used Weight",
|
||||
"icon": "mdi:scale-balance",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_used_percentage",
|
||||
"name": "Used %",
|
||||
"icon": "mdi:chart-donut",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_remaining_length",
|
||||
"name": "Remaining Length",
|
||||
"icon": "mdi:ruler",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_used_length",
|
||||
"name": "Used Length",
|
||||
"icon": "mdi:ruler-square",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_filament_weight",
|
||||
"name": "Full Spool Weight",
|
||||
"icon": "mdi:weight-kilogram",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_density",
|
||||
"name": "Density",
|
||||
"icon": "mdi:weight-gram",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_diameter",
|
||||
"name": "Diameter",
|
||||
"icon": "mdi:circle-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_vendor",
|
||||
"name": "Vendor",
|
||||
"icon": "mdi:factory",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_material",
|
||||
"name": "Material",
|
||||
"icon": "mdi:layers-triple",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_filament_name",
|
||||
"name": "Filament Name",
|
||||
"icon": "mdi:tag-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_bed_temp",
|
||||
"name": "Bed Temp",
|
||||
"icon": "mdi:thermometer",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_extruder_temp",
|
||||
"name": "Extruder Temp",
|
||||
"icon": "mdi:thermometer-lines",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_flow_rate",
|
||||
"name": "Flow Rate",
|
||||
"icon": "mdi:progress-clock",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_estimated_runout",
|
||||
"name": "Est. Runout",
|
||||
"icon": "mdi:calendar-alert",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_registered",
|
||||
"name": "Registered",
|
||||
"icon": "mdi:calendar-check-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_3_id",
|
||||
"name": "Spool ID",
|
||||
"icon": "mdi:identifier",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "select.spoolman_spool_3_location",
|
||||
"name": "Location",
|
||||
"icon": "mdi:map-marker-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "grid",
|
||||
"cards": [
|
||||
{
|
||||
"type": "heading",
|
||||
"heading": "Spool 4 — Crimson · CFS Slot 2",
|
||||
"icon": "mdi:spool"
|
||||
},
|
||||
{
|
||||
"type": "gauge",
|
||||
"entity": "sensor.spoolman_spool_4",
|
||||
"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_4_color_hex",
|
||||
"name": "Color",
|
||||
"icon": "mdi:palette",
|
||||
"icon_color": "{% set c = states('sensor.spoolman_spool_4_color_hex') | replace('#', '') | lower %}{% if c | length == 6 %}#{{ c }}{% else %}var(--primary-text-color){% endif %}",
|
||||
"primary": "{{ states('sensor.spoolman_spool_4_color_hex') }}",
|
||||
"secondary": "{{ states('sensor.spoolman_spool_4_vendor') }} · {{ states('sensor.spoolman_spool_4_filament_name') }} · {{ states('sensor.spoolman_spool_4_material') }}",
|
||||
"entity": "sensor.sparkx_i7_cfs_box_1_slot_2_color",
|
||||
"name": "Slot 2",
|
||||
"icon": "mdi:spool",
|
||||
"icon_color": "{% set c = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') | replace('#', '') | lower %}{% if c | length == 6 %}#{{ c }}{% else %}var(--primary-color){% endif %}",
|
||||
"picture": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'entity_picture') if ns.id and state_attr('sensor.spoolman_spool_' ~ ns.id, 'entity_picture') else '' }}",
|
||||
"primary": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{% if ns.id %}Spool {{ ns.id }} · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_name') | default('?', true) }} · {{ (states('sensor.spoolman_spool_' ~ ns.id) | float(0)) | round(1) }} g left{% elif color in ['', 'unknown', 'unavailable'] %}Slot color unavailable{% else %}No spool with stock matches this color{% endif %}",
|
||||
"secondary": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_2_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{% if ns.id %}{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_vendor_name') | default('?', true) }} · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_material') | default('?', true) }} · #{{ color | upper }}\nRemaining: {{ (states('sensor.spoolman_spool_' ~ ns.id) | float(0)) | round(1) }} g · used {{ (state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_weight') | float(0)) | round(1) }} g ({{ (state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_percentage') | float(0)) | round(1) }}%)\nRemaining length: {{ ((state_attr('sensor.spoolman_spool_' ~ ns.id, 'remaining_length') | float(0)) / 1000) | round(1) }} m · used {{ ((state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_length') | float(0)) / 1000) | round(1) }} m\nSpool: Ø{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_diameter') | default('?', true) }} mm · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_density') | default('?', true) }} g/cm³ · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_weight') | default('?', true) }} g · art. {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_article_number') | default('?', true) }}\nTemps: bed {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_settings_bed_temp') | default('?', true) }}°C · hotend {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_settings_extruder_temp') | default('?', true) }}°C\nFlow: {{ states('sensor.spoolman_spool_' ~ ns.id ~ '_flow_rate') }} · Runout est.: {{ states('sensor.spoolman_spool_' ~ ns.id ~ '_estimated_runout') }}\nRegistered: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'registered') | default('?', true) }} · Location: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'location') | default('?', true) }} · Price: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_price') | default('?', true) }}{% elif color in ['', 'unknown', 'unavailable'] %}Slot color unavailable{% else %}No spool with stock matches this color{% endif %}",
|
||||
"multiline_secondary": true,
|
||||
"grid_options": {
|
||||
"columns": 6
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_used_weight",
|
||||
"name": "Used Weight",
|
||||
"icon": "mdi:scale-balance",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_used_percentage",
|
||||
"name": "Used %",
|
||||
"icon": "mdi:chart-donut",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_remaining_length",
|
||||
"name": "Remaining Length",
|
||||
"icon": "mdi:ruler",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_used_length",
|
||||
"name": "Used Length",
|
||||
"icon": "mdi:ruler-square",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_filament_weight",
|
||||
"name": "Full Spool Weight",
|
||||
"icon": "mdi:weight-kilogram",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_density",
|
||||
"name": "Density",
|
||||
"icon": "mdi:weight-gram",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_diameter",
|
||||
"name": "Diameter",
|
||||
"icon": "mdi:circle-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_vendor",
|
||||
"name": "Vendor",
|
||||
"icon": "mdi:factory",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_material",
|
||||
"name": "Material",
|
||||
"icon": "mdi:layers-triple",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_filament_name",
|
||||
"name": "Filament Name",
|
||||
"icon": "mdi:tag-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_bed_temp",
|
||||
"name": "Bed Temp",
|
||||
"icon": "mdi:thermometer",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_extruder_temp",
|
||||
"name": "Extruder Temp",
|
||||
"icon": "mdi:thermometer-lines",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_flow_rate",
|
||||
"name": "Flow Rate",
|
||||
"icon": "mdi:progress-clock",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_estimated_runout",
|
||||
"name": "Est. Runout",
|
||||
"icon": "mdi:calendar-alert",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_registered",
|
||||
"name": "Registered",
|
||||
"icon": "mdi:calendar-check-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_4_id",
|
||||
"name": "Spool ID",
|
||||
"icon": "mdi:identifier",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "select.spoolman_spool_4_location",
|
||||
"name": "Location",
|
||||
"icon": "mdi:map-marker-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "grid",
|
||||
"cards": [
|
||||
{
|
||||
"type": "heading",
|
||||
"heading": "Spool 5 — White · CFS Slot 3",
|
||||
"icon": "mdi:spool"
|
||||
},
|
||||
{
|
||||
"type": "gauge",
|
||||
"entity": "sensor.spoolman_spool_5",
|
||||
"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_5_color_hex",
|
||||
"name": "Color",
|
||||
"icon": "mdi:palette",
|
||||
"icon_color": "{% set c = states('sensor.spoolman_spool_5_color_hex') | replace('#', '') | lower %}{% if c | length == 6 %}#{{ c }}{% else %}var(--primary-text-color){% endif %}",
|
||||
"primary": "{{ states('sensor.spoolman_spool_5_color_hex') }}",
|
||||
"secondary": "{{ states('sensor.spoolman_spool_5_vendor') }} · {{ states('sensor.spoolman_spool_5_filament_name') }} · {{ states('sensor.spoolman_spool_5_material') }}",
|
||||
"entity": "sensor.sparkx_i7_cfs_box_1_slot_3_color",
|
||||
"name": "Slot 3",
|
||||
"icon": "mdi:spool",
|
||||
"icon_color": "{% set c = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') | replace('#', '') | lower %}{% if c | length == 6 %}#{{ c }}{% else %}var(--primary-color){% endif %}",
|
||||
"picture": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'entity_picture') if ns.id and state_attr('sensor.spoolman_spool_' ~ ns.id, 'entity_picture') else '' }}",
|
||||
"primary": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{% if ns.id %}Spool {{ ns.id }} · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_name') | default('?', true) }} · {{ (states('sensor.spoolman_spool_' ~ ns.id) | float(0)) | round(1) }} g left{% elif color in ['', 'unknown', 'unavailable'] %}Slot color unavailable{% else %}No spool with stock matches this color{% endif %}",
|
||||
"secondary": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_3_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{% if ns.id %}{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_vendor_name') | default('?', true) }} · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_material') | default('?', true) }} · #{{ color | upper }}\nRemaining: {{ (states('sensor.spoolman_spool_' ~ ns.id) | float(0)) | round(1) }} g · used {{ (state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_weight') | float(0)) | round(1) }} g ({{ (state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_percentage') | float(0)) | round(1) }}%)\nRemaining length: {{ ((state_attr('sensor.spoolman_spool_' ~ ns.id, 'remaining_length') | float(0)) / 1000) | round(1) }} m · used {{ ((state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_length') | float(0)) / 1000) | round(1) }} m\nSpool: Ø{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_diameter') | default('?', true) }} mm · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_density') | default('?', true) }} g/cm³ · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_weight') | default('?', true) }} g · art. {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_article_number') | default('?', true) }}\nTemps: bed {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_settings_bed_temp') | default('?', true) }}°C · hotend {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_settings_extruder_temp') | default('?', true) }}°C\nFlow: {{ states('sensor.spoolman_spool_' ~ ns.id ~ '_flow_rate') }} · Runout est.: {{ states('sensor.spoolman_spool_' ~ ns.id ~ '_estimated_runout') }}\nRegistered: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'registered') | default('?', true) }} · Location: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'location') | default('?', true) }} · Price: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_price') | default('?', true) }}{% elif color in ['', 'unknown', 'unavailable'] %}Slot color unavailable{% else %}No spool with stock matches this color{% endif %}",
|
||||
"multiline_secondary": true,
|
||||
"grid_options": {
|
||||
"columns": 6
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_used_weight",
|
||||
"name": "Used Weight",
|
||||
"icon": "mdi:scale-balance",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_used_percentage",
|
||||
"name": "Used %",
|
||||
"icon": "mdi:chart-donut",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_remaining_length",
|
||||
"name": "Remaining Length",
|
||||
"icon": "mdi:ruler",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_used_length",
|
||||
"name": "Used Length",
|
||||
"icon": "mdi:ruler-square",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_filament_weight",
|
||||
"name": "Full Spool Weight",
|
||||
"icon": "mdi:weight-kilogram",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_density",
|
||||
"name": "Density",
|
||||
"icon": "mdi:weight-gram",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_diameter",
|
||||
"name": "Diameter",
|
||||
"icon": "mdi:circle-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_vendor",
|
||||
"name": "Vendor",
|
||||
"icon": "mdi:factory",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_material",
|
||||
"name": "Material",
|
||||
"icon": "mdi:layers-triple",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_filament_name",
|
||||
"name": "Filament Name",
|
||||
"icon": "mdi:tag-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_bed_temp",
|
||||
"name": "Bed Temp",
|
||||
"icon": "mdi:thermometer",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_extruder_temp",
|
||||
"name": "Extruder Temp",
|
||||
"icon": "mdi:thermometer-lines",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_flow_rate",
|
||||
"name": "Flow Rate",
|
||||
"icon": "mdi:progress-clock",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_estimated_runout",
|
||||
"name": "Est. Runout",
|
||||
"icon": "mdi:calendar-alert",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_registered",
|
||||
"name": "Registered",
|
||||
"icon": "mdi:calendar-check-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_5_id",
|
||||
"name": "Spool ID",
|
||||
"icon": "mdi:identifier",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "select.spoolman_spool_5_location",
|
||||
"name": "Location",
|
||||
"icon": "mdi:map-marker-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "grid",
|
||||
"cards": [
|
||||
{
|
||||
"type": "heading",
|
||||
"heading": "Spool 6 — Gold · CFS Slot 4",
|
||||
"icon": "mdi:spool"
|
||||
},
|
||||
{
|
||||
"type": "gauge",
|
||||
"entity": "sensor.spoolman_spool_6",
|
||||
"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_6_color_hex",
|
||||
"name": "Color",
|
||||
"icon": "mdi:palette",
|
||||
"icon_color": "{% set c = states('sensor.spoolman_spool_6_color_hex') | replace('#', '') | lower %}{% if c | length == 6 %}#{{ c }}{% else %}var(--primary-text-color){% endif %}",
|
||||
"primary": "{{ states('sensor.spoolman_spool_6_color_hex') }}",
|
||||
"secondary": "{{ states('sensor.spoolman_spool_6_vendor') }} · {{ states('sensor.spoolman_spool_6_filament_name') }} · {{ states('sensor.spoolman_spool_6_material') }}",
|
||||
"entity": "sensor.sparkx_i7_cfs_box_1_slot_4_color",
|
||||
"name": "Slot 4",
|
||||
"icon": "mdi:spool",
|
||||
"icon_color": "{% set c = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') | replace('#', '') | lower %}{% if c | length == 6 %}#{{ c }}{% else %}var(--primary-color){% endif %}",
|
||||
"picture": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'entity_picture') if ns.id and state_attr('sensor.spoolman_spool_' ~ ns.id, 'entity_picture') else '' }}",
|
||||
"primary": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{% if ns.id %}Spool {{ ns.id }} · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_name') | default('?', true) }} · {{ (states('sensor.spoolman_spool_' ~ ns.id) | float(0)) | round(1) }} g left{% elif color in ['', 'unknown', 'unavailable'] %}Slot color unavailable{% else %}No spool with stock matches this color{% endif %}",
|
||||
"secondary": "{% set color = states('sensor.sparkx_i7_cfs_box_1_slot_4_color') | replace('#', '') | lower %}{% set ns = namespace(id='') %}{% for e in integration_entities('spoolman') %}{% if e.endswith('_color_hex') and (states(e) | replace('#', '') | lower) == color %}{% set b = e[:-10] %}{% if (states(b) | float(0)) > 0 and ns.id == '' %}{% set ns.id = states(b ~ '_id') %}{% endif %}{% endif %}{% endfor %}{% if ns.id %}{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_vendor_name') | default('?', true) }} · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_material') | default('?', true) }} · #{{ color | upper }}\nRemaining: {{ (states('sensor.spoolman_spool_' ~ ns.id) | float(0)) | round(1) }} g · used {{ (state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_weight') | float(0)) | round(1) }} g ({{ (state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_percentage') | float(0)) | round(1) }}%)\nRemaining length: {{ ((state_attr('sensor.spoolman_spool_' ~ ns.id, 'remaining_length') | float(0)) / 1000) | round(1) }} m · used {{ ((state_attr('sensor.spoolman_spool_' ~ ns.id, 'used_length') | float(0)) / 1000) | round(1) }} m\nSpool: Ø{{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_diameter') | default('?', true) }} mm · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_density') | default('?', true) }} g/cm³ · {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_weight') | default('?', true) }} g · art. {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_article_number') | default('?', true) }}\nTemps: bed {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_settings_bed_temp') | default('?', true) }}°C · hotend {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_settings_extruder_temp') | default('?', true) }}°C\nFlow: {{ states('sensor.spoolman_spool_' ~ ns.id ~ '_flow_rate') }} · Runout est.: {{ states('sensor.spoolman_spool_' ~ ns.id ~ '_estimated_runout') }}\nRegistered: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'registered') | default('?', true) }} · Location: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'location') | default('?', true) }} · Price: {{ state_attr('sensor.spoolman_spool_' ~ ns.id, 'filament_price') | default('?', true) }}{% elif color in ['', 'unknown', 'unavailable'] %}Slot color unavailable{% else %}No spool with stock matches this color{% endif %}",
|
||||
"multiline_secondary": true,
|
||||
"grid_options": {
|
||||
"columns": 6
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_used_weight",
|
||||
"name": "Used Weight",
|
||||
"icon": "mdi:scale-balance",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_used_percentage",
|
||||
"name": "Used %",
|
||||
"icon": "mdi:chart-donut",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_remaining_length",
|
||||
"name": "Remaining Length",
|
||||
"icon": "mdi:ruler",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_used_length",
|
||||
"name": "Used Length",
|
||||
"icon": "mdi:ruler-square",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_filament_weight",
|
||||
"name": "Full Spool Weight",
|
||||
"icon": "mdi:weight-kilogram",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_density",
|
||||
"name": "Density",
|
||||
"icon": "mdi:weight-gram",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_diameter",
|
||||
"name": "Diameter",
|
||||
"icon": "mdi:circle-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_vendor",
|
||||
"name": "Vendor",
|
||||
"icon": "mdi:factory",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_material",
|
||||
"name": "Material",
|
||||
"icon": "mdi:layers-triple",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_filament_name",
|
||||
"name": "Filament Name",
|
||||
"icon": "mdi:tag-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_bed_temp",
|
||||
"name": "Bed Temp",
|
||||
"icon": "mdi:thermometer",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_extruder_temp",
|
||||
"name": "Extruder Temp",
|
||||
"icon": "mdi:thermometer-lines",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_flow_rate",
|
||||
"name": "Flow Rate",
|
||||
"icon": "mdi:progress-clock",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_estimated_runout",
|
||||
"name": "Est. Runout",
|
||||
"icon": "mdi:calendar-alert",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_registered",
|
||||
"name": "Registered",
|
||||
"icon": "mdi:calendar-check-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "sensor.spoolman_spool_6_id",
|
||||
"name": "Spool ID",
|
||||
"icon": "mdi:identifier",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "tile",
|
||||
"entity": "select.spoolman_spool_6_location",
|
||||
"name": "Location",
|
||||
"icon": "mdi:map-marker-outline",
|
||||
"grid_options": {
|
||||
"columns": 4
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
@@ -1965,55 +1259,40 @@
|
||||
"cards": [
|
||||
{
|
||||
"type": "heading",
|
||||
"heading": "Spool History",
|
||||
"heading": "Spool History — CFS Lite (auto)",
|
||||
"icon": "mdi:history"
|
||||
},
|
||||
{
|
||||
"type": "history-graph",
|
||||
"title": "Remaining & Used (7 days)",
|
||||
"hours_to_show": 168,
|
||||
"show_names": true,
|
||||
"entities": [
|
||||
{
|
||||
"entity": "sensor.spoolman_spool_3",
|
||||
"name": "Spool 3 (Black) remaining"
|
||||
},
|
||||
{
|
||||
"entity": "sensor.spoolman_spool_3_used_weight",
|
||||
"name": "Spool 3 (Black) used"
|
||||
},
|
||||
{
|
||||
"entity": "sensor.spoolman_spool_4",
|
||||
"name": "Spool 4 (Crimson) remaining"
|
||||
},
|
||||
{
|
||||
"entity": "sensor.spoolman_spool_4_used_weight",
|
||||
"name": "Spool 4 (Crimson) used"
|
||||
},
|
||||
{
|
||||
"entity": "sensor.spoolman_spool_5",
|
||||
"name": "Spool 5 (White) remaining"
|
||||
},
|
||||
{
|
||||
"entity": "sensor.spoolman_spool_5_used_weight",
|
||||
"name": "Spool 5 (White) used"
|
||||
},
|
||||
{
|
||||
"entity": "sensor.spoolman_spool_6",
|
||||
"name": "Spool 6 (Gold) remaining"
|
||||
},
|
||||
{
|
||||
"entity": "sensor.spoolman_spool_6_used_weight",
|
||||
"name": "Spool 6 (Gold) used"
|
||||
}
|
||||
],
|
||||
"type": "custom:auto-entities",
|
||||
"filter": {
|
||||
"include": [
|
||||
{
|
||||
"entity_id": "sensor.spoolman_spool_*",
|
||||
"attributes": {
|
||||
"location": "CFS Lite"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"sort": {
|
||||
"method": "attribute",
|
||||
"attribute": "id",
|
||||
"numeric": true
|
||||
},
|
||||
"card": {
|
||||
"type": "history-graph",
|
||||
"title": "Remaining weight (7 days)",
|
||||
"hours_to_show": 168,
|
||||
"show_names": true
|
||||
},
|
||||
"show_empty": false,
|
||||
"grid_options": {
|
||||
"columns": "full"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "markdown",
|
||||
"content": "**Changing filaments:** 1. Set the slot color in the CFS app. 2. Register the new roll in Spoolman with the same color hex (location: CFS Lite). No Home Assistant changes needed — the automations match by color hex and skip exhausted spools (remaining > 0).",
|
||||
"content": "Every spool with location **CFS Lite** joins this graph automatically — register a new roll in Spoolman (same color hex, location CFS Lite) and it appears without dashboard edits. History follows the spool entity; a replaced roll keeps its own history under its own spool id.",
|
||||
"grid_options": {
|
||||
"columns": "full"
|
||||
}
|
||||
|
||||
+10
-10
@@ -4,7 +4,7 @@
|
||||
"state": "ON",
|
||||
"led_brightness": 100,
|
||||
"countdown_to_turn_off": 0,
|
||||
"voltage": 118.2,
|
||||
"voltage": 118.7,
|
||||
"countdown_to_turn_on": 0,
|
||||
"ac_frequency": 60,
|
||||
"power_factor": 0.11,
|
||||
@@ -27,7 +27,7 @@
|
||||
"led_brightness": 100,
|
||||
"countdown_to_turn_off": 0,
|
||||
"countdown_to_turn_on": 0,
|
||||
"power": 2.1,
|
||||
"power": 2,
|
||||
"current": 0.09,
|
||||
"energy": 54.02,
|
||||
"power_factor": 0.17,
|
||||
@@ -45,7 +45,7 @@
|
||||
"state": "ON",
|
||||
"led_brightness": 100,
|
||||
"countdown_to_turn_off": 0,
|
||||
"voltage": 118.1,
|
||||
"voltage": 118.5,
|
||||
"countdown_to_turn_on": 0,
|
||||
"energy": 103.7,
|
||||
"power_factor": 0.9,
|
||||
@@ -74,11 +74,11 @@
|
||||
"led_brightness": 100,
|
||||
"countdown_to_turn_off": 0,
|
||||
"countdown_to_turn_on": 0,
|
||||
"voltage": 116.9,
|
||||
"voltage": 117.4,
|
||||
"state": "ON",
|
||||
"ac_frequency": 60,
|
||||
"energy": 210.48,
|
||||
"power": 101.7,
|
||||
"energy": 210.49,
|
||||
"power": 102.5,
|
||||
"current": 0.94,
|
||||
"power_factor": 0.95,
|
||||
"update": {
|
||||
@@ -95,10 +95,10 @@
|
||||
"led_brightness": 100,
|
||||
"countdown_to_turn_off": 0,
|
||||
"countdown_to_turn_on": 0,
|
||||
"voltage": 118.1,
|
||||
"voltage": 119.1,
|
||||
"energy": 100.69,
|
||||
"state": "ON",
|
||||
"power": 10.3,
|
||||
"power": 10.1,
|
||||
"current": 0.32,
|
||||
"ac_frequency": 60,
|
||||
"power_factor": 0.51,
|
||||
@@ -114,7 +114,7 @@
|
||||
},
|
||||
"0xffffb40e060895b3": {
|
||||
"state": "ON",
|
||||
"voltage": 116.3,
|
||||
"voltage": 118.8,
|
||||
"ac_frequency": 60,
|
||||
"energy": 14.2,
|
||||
"current": 0.01,
|
||||
@@ -136,7 +136,7 @@
|
||||
"0xffffb40e0608864e": {
|
||||
"led_brightness": 100,
|
||||
"countdown_to_turn_off": 0,
|
||||
"voltage": 119.9,
|
||||
"voltage": 119,
|
||||
"energy": 33.5,
|
||||
"countdown_to_turn_on": 0,
|
||||
"state": "ON",
|
||||
|
||||
Reference in New Issue
Block a user