{ "version": 1, "minor_version": 1, "key": "lovelace.printer_stats", "data": { "config": { "views": [ { "title": "Print", "path": "print", "type": "sections", "max_columns": 4, "sections": [ { "type": "grid", "cards": [ { "type": "heading", "heading": "Printer Status", "icon": "mdi:printer-3d-nozzle" }, { "type": "custom:webrtc-camera", "url": "octoprint", "ui": true }, { "type": "custom:webrtc-camera", "url": "octoprint2", "ui": true }, { "type": "tile", "entity": "binary_sensor.octoprint_printing", "name": "Printing", "icon": "mdi:printer-3d", "grid_options": { "columns": 6 } }, { "type": "tile", "entity": "binary_sensor.octoprint_connected", "name": "Connected", "icon": "mdi:lan-connect", "grid_options": { "columns": 6 } }, { "type": "tile", "entity": "sensor.octoprint_print_status", "name": "Status", "icon": "mdi:state-machine", "grid_options": { "columns": 6 } }, { "type": "tile", "entity": "sensor.octoprint_last_event", "name": "Last Event", "icon": "mdi:history", "grid_options": { "columns": 6 } }, { "type": "tile", "entity": "binary_sensor.octoprint_paused", "name": "Paused", "icon": "mdi:pause", "grid_options": { "columns": 6 } }, { "type": "tile", "entity": "sensor.octoprint_current_z", "name": "Current Z", "icon": "mdi:axis-z-arrow", "grid_options": { "columns": 6 } }, { "type": "markdown", "content": "**File:** {{ states('sensor.octoprint_print_file') }}\n**Size:** {{ (states('sensor.octoprint_print_file_size') | int(0) / 1048576) | round(2) }} MB\n**User:** {{ states('sensor.octoprint_print_user') }}", "grid_options": { "columns": "full" } }, { "type": "tile", "entity": "sensor.octoprint_print_file", "name": "File", "icon": "mdi:file-code", "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Print Progress", "icon": "mdi:progress-clock" }, { "type": "gauge", "entity": "sensor.octoprint_print_progress_live", "name": "Progress", "min": 0, "max": 100, "unit": "%", "severity": { "green": 0, "yellow": 40, "red": 90 }, "grid_options": { "columns": 6, "rows": 3 } }, { "type": "custom:mushroom-template-card", "primary": "Elapsed", "name": "Elapsed", "icon": "mdi:clock-start", "grid_options": { "columns": 6 }, "multiline_secondary": true, "secondary": "{% set s = states('sensor.octoprint_elapsed') | 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", "primary": "Remaining", "name": "Remaining", "icon": "mdi:clock-end", "grid_options": { "columns": 6 }, "multiline_secondary": true, "secondary": "{% set s = states('sensor.octoprint_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", "primary": "Est. Finish", "secondary": "{% set finish = states('sensor.octoprint_approximate_completion_time') | as_datetime %}{% if finish %}{{ (as_local(finish)).strftime('%I:%M %p').lstrip('0') }}{% else %}—{% endif %}", "multiline_secondary": true, "icon": "mdi:clock-outline", "grid_options": { "columns": 6 } }, { "type": "custom:mushroom-template-card", "primary": "Layer", "name": "Layer", "icon": "mdi:layers", "grid_options": { "columns": 6 }, "multiline_secondary": true, "secondary": "{% set c = states('sensor.octoprint_layer_progress') | int(0) %}{% set t = state_attr('sensor.octoprint_layer_progress', 'total') | int(0) %}{{ c }} of {{ t }}" }, { "type": "custom:mushroom-template-card", "primary": "Height", "name": "Height", "icon": "mdi:axis-z-arrow", "grid_options": { "columns": 6 }, "secondary": "{% set c = states('sensor.octoprint_height_progress_clean') | float(0) %}{% set t = state_attr('sensor.octoprint_height_progress_clean', 'total') | float(0) %}{{ c }} of {{ t }} mm", "multiline_secondary": true }, { "type": "tile", "entity": "light.3d_printer_lights_local", "name": "Printer Light", "icon": "mdi:lightbulb", "grid_options": { "columns": 6 } }, { "type": "sensor", "entity": "sensor.octoprint_print_progress_live", "name": "Progress History", "graph": "line", "hours_to_show": 24, "detail": 1, "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Temperatures", "icon": "mdi:thermometer" }, { "type": "gauge", "entity": "sensor.octoprint_tool_0_temperature", "name": "Nozzle", "min": 0, "max": 260, "unit": "°C", "severity": { "green": 0, "yellow": 180, "red": 240 }, "grid_options": { "columns": 4 } }, { "type": "gauge", "entity": "sensor.octoprint_bed_temperature", "name": "Bed", "min": 0, "max": 120, "unit": "°C", "severity": { "green": 0, "yellow": 60, "red": 100 }, "grid_options": { "columns": 4 } }, { "type": "gauge", "entity": "sensor.octoprint_soc_temperature", "name": "SoC", "min": 0, "max": 100, "unit": "°C", "severity": { "green": 0, "yellow": 70, "red": 90 }, "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_tool_0_target", "name": "Nozzle Target", "icon": "mdi:printer-3d-nozzle", "grid_options": { "columns": 6 } }, { "type": "tile", "entity": "sensor.octoprint_bed_target", "name": "Bed Target", "icon": "mdi:radiator", "grid_options": { "columns": 6 } }, { "title": "Nozzle Temperature", "type": "history-graph", "entities": [ { "entity": "sensor.octoprint_tool_0_temperature", "name": "Actual", "color": "#ef5350" }, { "entity": "sensor.octoprint_tool_0_target", "name": "Target", "color": "#4caf50" } ], "hours_to_show": 24, "show_names": true, "expand_legend": true, "grid_options": { "columns": "full" } }, { "title": "Bed Temperature", "type": "history-graph", "entities": [ { "entity": "sensor.octoprint_bed_temperature", "name": "Actual", "color": "#42a5f5" }, { "entity": "sensor.octoprint_bed_target", "name": "Target", "color": "#4caf50" } ], "hours_to_show": 24, "show_names": true, "expand_legend": true, "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Controls", "icon": "mdi:gesture-tap-button" }, { "type": "tile", "entity": "switch.octoprint_pause_print", "name": "Pause", "icon": "mdi:pause", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "switch.octoprint_connect_to_printer", "name": "Connect", "icon": "mdi:lan-connect", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "switch.octoprint_camera_snapshot", "name": "Snapshot", "icon": "mdi:camera", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "button.octoprint_cancel_print", "name": "Cancel Print", "icon": "mdi:cancel", "tap_action": { "action": "perform-action", "perform_action": "button.press", "target": { "entity_id": "button.octoprint_cancel_print" } }, "grid_options": { "columns": 6 } }, { "type": "tile", "entity": "button.octoprint_emergency_stop", "name": "Emergency Stop", "icon": "mdi:stop-circle", "tap_action": { "action": "perform-action", "perform_action": "button.press", "target": { "entity_id": "button.octoprint_emergency_stop" } }, "grid_options": { "columns": 6 } }, { "type": "button", "name": "GCode Viewer", "icon": "mdi:cube-outline", "tap_action": { "action": "url", "url_path": "https://ender5pro.duckdns.org/#gcode" }, "grid_options": { "columns": 6 } }, { "type": "button", "name": "Pretty GCode Viewer", "icon": "mdi:cube-outline", "tap_action": { "action": "url", "url_path": "https://ender5pro.duckdns.org/#tab_plugin_prettygcode" }, "grid_options": { "columns": 6 } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Totals", "icon": "mdi:chart-box-outline" }, { "type": "tile", "entity": "sensor.octoprint_printer_print_time_today", "name": "Print Time Today", "icon": "mdi:clock-start", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_printer_print_time_this_week", "name": "Print Time This Week", "icon": "mdi:calendar-week", "grid_options": { "columns": 4 } }, { "type": "tile", "grid_options": { "columns": 4 }, "entity": "sensor.octoprint_printer_print_time_last_7_days", "name": "Print Time Last 7 Days", "icon": "mdi:history", "vertical": false, "features_position": "bottom" }, { "type": "tile", "entity": "sensor.octoprint_printer_prints_today", "name": "Prints Today", "icon": "mdi:counter", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_printer_prints_this_week", "name": "Prints This Week", "icon": "mdi:counter", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_printer_prints_last_7_days", "name": "Prints Last 7 Days", "icon": "mdi:counter", "grid_options": { "columns": 4 } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Filament Usage", "icon": "mdi:chart-donut" }, { "type": "tile", "entity": "sensor.octoprint_last_print_filament", "name": "Last Job", "icon": "mdi:history", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_daily", "name": "Filament Today", "icon": "mdi:chart-donut", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_weekly", "name": "Filament This Week", "icon": "mdi:calendar-week", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_monthly", "name": "Filament This Month", "icon": "mdi:calendar-month", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_used_total", "name": "Grand Total", "icon": "mdi:chart-pie", "grid_options": { "columns": 4 } }, { "type": "heading", "heading": "Grams Usage", "icon": "mdi:weight" }, { "type": "tile", "entity": "sensor.octoprint_last_print_filament_weight", "name": "Last Job", "icon": "mdi:history", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_weight_daily", "name": "Filament Today", "icon": "mdi:chart-donut", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_weight_weekly", "name": "Filament This Week", "icon": "mdi:calendar-week", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_weight_monthly", "name": "Filament This Month", "icon": "mdi:calendar-month", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_used_weight_total", "name": "Grand Total", "icon": "mdi:chart-pie", "grid_options": { "columns": 4 } }, { "type": "heading", "heading": "Cost Usage", "icon": "mdi:cash-multiple" }, { "type": "tile", "entity": "sensor.octoprint_filament_cost_last_job", "name": "Last Job", "icon": "mdi:history", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_cost_daily", "name": "Cost Today", "icon": "mdi:chart-donut", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_cost_weekly", "name": "Cost This Week", "icon": "mdi:calendar-week", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_cost_monthly", "name": "Cost This Month", "icon": "mdi:calendar-month", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.octoprint_filament_cost_total", "name": "Grand Total", "icon": "mdi:chart-pie", "grid_options": { "columns": 4 } } ] } ] }, { "title": "History", "path": "history", "type": "sections", "max_columns": 2, "sections": [ { "type": "grid", "cards": [ { "type": "heading", "heading": "Temperature History", "icon": "mdi:chart-line-variant" }, { "type": "history-graph", "title": "Temperatures (24h)", "hours_to_show": 24, "show_names": true, "expand_legend": true, "entities": [ { "entity": "sensor.octoprint_tool_0_temperature", "name": "Nozzle", "color": "#ef5350" }, { "entity": "sensor.octoprint_tool_0_target", "name": "Nozzle Target", "color": "#ffab91" }, { "entity": "sensor.octoprint_bed_temperature", "name": "Bed", "color": "#42a5f5" }, { "entity": "sensor.octoprint_bed_target", "name": "Bed Target", "color": "#90caf9" } ], "grid_options": { "columns": "full" } }, { "type": "history-graph", "title": "Temperatures (7 days)", "hours_to_show": 168, "show_names": true, "expand_legend": true, "entities": [ { "entity": "sensor.octoprint_tool_0_temperature", "name": "Nozzle", "color": "#ef5350" }, { "entity": "sensor.octoprint_bed_temperature", "name": "Bed", "color": "#42a5f5" } ], "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Print Activity", "icon": "mdi:chart-box-outline" }, { "type": "custom:apexcharts-card", "header": { "show": true, "title": "Z Position (24h)", "show_states": true, "colorize_states": true }, "graph_span": "24h", "series": [ { "entity": "sensor.octoprint_current_z", "name": "Current Z", "color": "#ab47bc", "type": "line", "curve": "straight", "fill_raw": "last" } ], "grid_options": { "columns": "full" }, "apex_config": { "chart": { "height": 300 }, "stroke": { "width": 1 } } }, { "type": "history-graph", "title": "Print Progress (24h)", "hours_to_show": 24, "show_names": true, "entities": [ { "entity": "sensor.octoprint_print_progress_live", "name": "Progress", "color": "#66bb6a" } ], "grid_options": { "columns": "full" } }, { "type": "history-graph", "title": "Print Duration (24h)", "hours_to_show": 24, "show_names": true, "entities": [ { "entity": "sensor.octoprint_elapsed", "name": "Elapsed", "color": "#26c6da" }, { "entity": "sensor.octoprint_time_left", "name": "Remaining", "color": "#ffa726" } ], "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Print History", "icon": "mdi:history" }, { "type": "markdown", "content": "**Successful:** {{ states('sensor.octoprint_successful_prints_count') }} | **Failed:** {{ states('sensor.octoprint_failed_prints_count') }}" }, { "type": "history-graph", "title": "Printing State (7 days)", "hours_to_show": 168, "show_names": true, "entities": [ { "entity": "binary_sensor.octoprint_printing", "name": "Printing", "color": "#66bb6a" } ], "grid_options": { "columns": "full" } }, { "type": "custom:apexcharts-card", "header": { "show": true, "title": "Print Outcomes (30 days)", "show_states": true, "colorize_states": true }, "graph_span": "30d", "apex_config": { "chart": { "type": "bar", "stacked": true, "height": 300 }, "plotOptions": { "bar": { "columnWidth": "50%" } }, "dataLabels": { "enabled": true }, "yaxis": { "tickAmount": 4, "labels": { "minWidth": 40 } }, "legend": { "show": true } }, "series": [ { "entity": "sensor.octoprint_successful_prints_count", "name": "Successful", "color": "#66bb6a", "type": "column", "group_by": { "func": "diff", "duration": "1d", "start_with_last": true } }, { "entity": "sensor.octoprint_failed_prints_count", "name": "Failed", "color": "#ef5350", "type": "column", "group_by": { "func": "diff", "duration": "1d", "start_with_last": true } } ], "grid_options": { "columns": "full" }, "span": { "end": "day" } }, { "type": "markdown", "title": "Recent Prints", "content": "{% for j in (state_attr('sensor.octoprint_recent_prints', 'allPrintJobs') | default([]))[:5] %}\n{% set d = j.get('duration', 0) | int %}\n- **{{ j.fileName }}** — {{ j.printStatusResult | title }}, {{ (d / 3600) | int }}h {{ ((d % 3600) / 60) | int }}m, {{ j.get('filamentModels', {}).get('total', {}).get('usedLength', 0) | round(0) }}mm\n{% endfor %}" } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Filament Usage", "icon": "mdi:spool" }, { "type": "custom:apexcharts-card", "header": { "show": true, "title": "Filament Usage (30 days)", "show_states": true, "colorize_states": true }, "graph_span": "30d", "apex_config": { "chart": { "type": "bar", "height": 300 }, "plotOptions": { "bar": { "columnWidth": "50%" } }, "dataLabels": { "enabled": false }, "yaxis": { "tickAmount": 4, "labels": { "minWidth": 40 } } }, "series": [ { "entity": "sensor.octoprint_filament_daily", "name": "Used (mm)", "color": "#26c6da", "type": "column", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } }, { "entity": "sensor.octoprint_filament_used_total", "name": "Total (mm)", "color": "#ab47bc", "type": "line", "curve": "straight", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } }, { "entity": "sensor.octoprint_filament_weekly", "name": "Weekly (mm)", "color": "#ffca28", "type": "column", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } } ], "grid_options": { "columns": "full" }, "span": { "end": "day" } }, { "type": "custom:apexcharts-card", "header": { "show": true, "title": "Filament Usage - Grams (30 days)", "show_states": true, "colorize_states": true }, "graph_span": "30d", "apex_config": { "chart": { "type": "bar", "height": 300 }, "plotOptions": { "bar": { "columnWidth": "50%" } }, "dataLabels": { "enabled": false }, "yaxis": { "tickAmount": 4, "labels": { "minWidth": 40 } } }, "series": [ { "entity": "sensor.octoprint_filament_weight_daily", "name": "Used (g)", "color": "#26c6da", "type": "column", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } }, { "entity": "sensor.octoprint_filament_used_weight_total", "name": "Total (g)", "color": "#ab47bc", "type": "line", "curve": "straight", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } }, { "entity": "sensor.octoprint_filament_weight_weekly", "name": "Weekly (g)", "color": "#ffca28", "type": "column", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } } ], "grid_options": { "columns": "full" }, "span": { "end": "day" } }, { "type": "custom:apexcharts-card", "header": { "show": true, "title": "Filament Usage - Cost (30 days)", "show_states": true, "colorize_states": true }, "graph_span": "30d", "apex_config": { "chart": { "type": "bar", "height": 300 }, "plotOptions": { "bar": { "columnWidth": "50%" } }, "dataLabels": { "enabled": false }, "yaxis": { "tickAmount": 4, "labels": { "minWidth": 40 } } }, "series": [ { "entity": "sensor.octoprint_filament_cost_daily", "name": "Used ($)", "color": "#26c6da", "type": "column", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } }, { "entity": "sensor.octoprint_filament_cost_weekly", "name": "Weekly ($)", "color": "#ffca28", "type": "column", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } }, { "entity": "sensor.octoprint_filament_cost_total", "name": "Total ($)", "color": "#ab47bc", "type": "line", "curve": "straight", "group_by": { "func": "last", "duration": "1d", "start_with_last": true } } ], "grid_options": { "columns": "full" }, "span": { "end": "day" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "OctoPrint Host", "icon": "mdi:server" }, { "type": "tile", "entity": "sensor.octoprint_disk_usage", "icon": "mdi:harddisk" }, { "type": "tile", "entity": "sensor.octoprint_cpu_usage", "icon": "mdi:cpu-64-bit" }, { "type": "tile", "entity": "sensor.octoprint_memory_usage", "icon": "mdi:memory" }, { "type": "tile", "entity": "sensor.octoprint_core_0_temperature", "icon": "mdi:thermometer" }, { "type": "tile", "entity": "sensor.octoprint_uptime", "icon": "mdi:clock-outline" } ] } ] }, { "type": "sections", "max_columns": 4, "title": "Test", "path": "test", "sections": [ { "type": "grid", "cards": [ { "type": "custom:mushroom-title-card", "title": "Moonraker – {{ states('sensor.sparkx_moonraker_current_display_message') }}", "subtitle": "{{ states('sensor.sparkx_moonraker_filename') }}", "alignment": "center", "title_tap_action": { "action": "url", "url_path": "http://moonraker.local/" } }, { "type": "tile", "entity": "sensor.sparkx_moonraker_current_print_state", "name": "Status", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.sparkx_moonraker_print_duration", "name": "Elapsed", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.sparkx_moonraker_print_eta", "name": "Completion", "grid_options": { "columns": 4 } }, { "type": "tile", "entity": "sensor.sparkx_moonraker_progress", "name": "Print Progress", "icon": "mdi:clock-end", "features": [ { "type": "bar-gauge", "min": 0, "max": 100 } ], "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Controls", "icon": "mdi:gesture-tap-button" }, { "type": "grid", "columns": 4, "square": false, "cards": [ { "type": "custom:button-card", "entity": "button.sparkx_moonraker_pause_print", "color_type": "icon", "tap_action": { "action": "toggle" }, "name": "Pause" }, { "type": "custom:button-card", "entity": "button.sparkx_moonraker_resume_print", "color_type": "icon", "tap_action": { "action": "toggle" }, "name": "Resume" }, { "type": "custom:button-card", "entity": "button.sparkx_moonraker_cancel_print", "color_type": "icon", "tap_action": { "action": "toggle" }, "name": "Cancel", "lock": { "enabled": false }, "confirmation": { "text": "This will CANCEL the print. Are you sure?" } }, { "type": "custom:button-card", "entity": "button.sparkx_moonraker_emergency_stop", "color_type": "icon", "color": "red", "tap_action": { "action": "toggle" }, "name": "Emergency", "lock": { "enabled": false }, "confirmation": { "text": "This will REBOOT the printer. Are you sure?" } } ], "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Printer Temperatures", "icon": "mdi:thermometer" }, { "type": "custom:apexcharts-card", "graph_span": "1h", "header": { "show": true, "title": "Printer Temperatures", "show_states": true, "colorize_states": true }, "apex_config": { "chart": { "height": 200, "legend": { "show": false } }, "grid": { "xaxis": { "lines": { "show": true }, "borderColor": "#555" } }, "yaxis": [ { "opposite": true, "decimals": 0, "tickAmount": 2 } ] }, "all_series_config": { "stroke_width": 2, "float_precision": 0, "show": { "name_in_header": true } }, "series": [ { "entity": "sensor.sparkx_moonraker_extruder_temperature", "name": "Hotend" }, { "entity": "sensor.sparkx_moonraker_bed_temperature", "name": "Bed" }, { "entity": "sensor.sparkx_moonraker_mcu_temp", "name": "MCU" } ], "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Fan Speeds", "icon": "mdi:fan" }, { "type": "custom:apexcharts-card", "graph_span": "1h", "header": { "show": true, "title": "Fan Speeds", "show_states": true, "colorize_states": true }, "apex_config": { "chart": { "height": 200, "legend": { "show": false } }, "grid": { "xaxis": { "lines": { "show": true }, "borderColor": "#555" } }, "yaxis": [ { "opposite": true, "decimals": 0, "tickAmount": 2 } ] }, "all_series_config": { "stroke_width": 2, "show": { "name_in_header": true } }, "series": [ { "entity": "sensor.sparkx_moonraker_hotend_fan", "name": "Hotend" } ], "grid_options": { "columns": "full" } } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Camera", "icon": "mdi:camera" }, { "type": "conditional", "conditions": [ { "entity": "sensor.sparkx_moonraker_current_print_state", "state_not": "unavailable" } ], "card": { "type": "picture-entity", "entity": "camera.sparkx_moonraker_back", "camera_view": "live", "show_name": false, "show_state": false, "aspect_ratio": "4x3" }, "grid_options": { "columns": 6 } }, { "type": "conditional", "conditions": [ { "entity": "sensor.sparkx_moonraker_current_print_state", "state_not": "unavailable" } ], "card": { "type": "picture-entity", "entity": "camera.sparkx_moonraker_thumbnail", "camera_view": "auto", "show_name": false, "show_state": false }, "grid_options": { "columns": 6 } } ] }, { "type": "grid", "cards": [ { "type": "custom:mushroom-title-card", "title": "BeHappy2021 Dashboard", "subtitle": "{{ states('sensor.sparkx_moonraker_current_print_state') }}", "alignment": "center", "title_tap_action": { "action": "url", "url_path": "http://moonraker.local/" } } ] }, { "type": "grid", "title": "3D Printer", "cards": [ { "type": "custom:state-switch", "entity": "sensor.sparkx_moonraker_current_print_state", "transition": "flip-x", "states": { "unavailable": { "type": "vertical-stack", "cards": [ { "type": "custom:mushroom-entity-card", "entity": "input_text.job_filament", "name": "Filament used in last job", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" } }, { "type": "custom:mushroom-entity-card", "entity": "input_text.total_filament", "name": "Total Filament Used", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" } }, { "type": "custom:mushroom-entity-card", "entity": "input_text.total_jobs", "name": "Total Jobs", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" } }, { "type": "custom:mushroom-entity-card", "entity": "input_text.total_time", "name": "Total Time", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" } } ] }, "standby": { "type": "custom:mushroom-template-card", "primary": "Printer is standing by", "layout": "vertical", "tap_action": { "action": "url", "url_path": "http://moonraker.local/" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" }, "icon_color": "yellow", "icon": "mdi:printer-3d" }, "printing": { "type": "vertical-stack", "cards": [ { "type": "custom:mushroom-template-card", "secondary": "Current filename - {{ states('sensor.sparkx_moonraker_filename') }}", "fill_container": true, "multiline_secondary": true, "layout": "vertical", "tap_action": { "action": "url", "url_path": "http://moonraker.local/" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" }, "icon_color": "green", "icon": "mdi:printer-3d" }, { "type": "horizontal-stack", "cards": [ { "type": "custom:mushroom-entity-card", "entity": "sensor.sparkx_moonraker_current_print_state", "name": "Status", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" } }, { "type": "custom:mushroom-entity-card", "entity": "sensor.sparkx_moonraker_print_duration", "name": "Elapsed", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" } }, { "type": "custom:mushroom-entity-card", "entity": "sensor.sparkx_moonraker_print_eta", "name": "Completion", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" } }, { "type": "custom:mushroom-entity-card", "entity": "binary_sensor.sparkx_moonraker_filament_sensor", "name": "Filament", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" } } ] } ] }, "complete": { "type": "custom:mushroom-template-card", "primary": "Printing has finished", "layout": "vertical", "fill_container": true, "tap_action": { "action": "url", "url_path": "http://moonraker.local/" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" }, "icon_color": "green", "icon": "mdi:printer-3d" } } }, { "type": "custom:state-switch", "entity": "sensor.sparkx_moonraker_current_print_state", "transition": "flip-x", "states": { "printing": { "type": "vertical-stack", "cards": [ { "type": "tile", "name": "Print progress..", "icon": "mdi:clock-end", "entity": "sensor.sparkx_moonraker_progress", "features": [ { "type": "bar-gauge", "min": 0, "max": 100 } ] }, { "type": "tile", "name": "Fan speed", "icon": "mdi:fan", "entity": "sensor.sparkx_moonraker_hotend_fan", "features": [ { "type": "bar-gauge", "min": 0, "max": 100 } ] }, { "type": "tile", "name": "Filament used", "tap_action": { "action": "none" }, "icon_tap_action": { "action": "none" }, "entity": "sensor.sparkx_moonraker_filament_used" }, { "type": "picture-entity", "show_state": false, "show_name": false, "camera_view": "auto", "name": "Thumbnail", "tap_action": { "action": "none" }, "icon_tap_action": { "action": "none" }, "entity": "camera.sparkx_moonraker_thumbnail" } ] }, "complete": { "type": "vertical-stack", "cards": [ { "type": "tile", "name": "Print progress..", "icon": "mdi:clock-end", "entity": "sensor.sparkx_moonraker_progress", "features": [ { "type": "bar-gauge", "min": 0, "max": 100 } ] }, { "type": "tile", "name": "Filament used", "tap_action": { "action": "none" }, "icon_tap_action": { "action": "none" }, "entity": "input_text.job_filament" } ] }, "standby": { "type": "vertical-stack", "cards": [ { "type": "custom:mushroom-template-card", "primary": "Job progress will appear here", "layout": "vertical", "tap_action": { "action": "url", "url_path": "http://moonraker.local/" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" }, "icon_color": "yellow", "icon": "mdi:printer-3d" }, { "type": "tile", "name": "Filament used in last job", "vertical": true, "tap_action": { "action": "none" }, "icon_tap_action": { "action": "none" }, "entity": "input_text.job_filament" } ] } } } ] }, { "type": "grid", "title": " ", "cards": [ { "type": "custom:state-switch", "entity": "sensor.sparkx_moonraker_current_print_state", "transition": "flip-x", "states": { "unavailable": { "type": "custom:mushroom-template-card", "primary": "Printer turned off", "layout": "vertical", "tap_action": { "action": "none" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" }, "icon_color": "red", "icon": "mdi:printer-3d" }, "printing": { "type": "horizontal-stack", "cards": [ { "type": "custom:button-card", "name": "Pause", "tap_action": { "action": "toggle" }, "entity": "button.sparkx_moonraker_pause_print" }, { "type": "custom:button-card", "name": "Resume", "tap_action": { "action": "toggle" }, "entity": "button.sparkx_moonraker_resume_print" }, { "type": "custom:button-card", "name": "Cancel", "tap_action": { "action": "toggle" }, "entity": "button.sparkx_moonraker_cancel_print" }, { "type": "custom:button-card", "name": "Emergency", "tap_action": { "action": "toggle" }, "color": "red", "confirmation": { "text": "This will REBOOT the printer. Are you sure?" }, "entity": "button.sparkx_moonraker_emergency_stop" } ] }, "standby": { "type": "custom:mushroom-template-card", "primary": "Controls will appear here", "layout": "vertical", "tap_action": { "action": "url", "url_path": "http://moonraker.local/" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" }, "icon_color": "yellow", "icon": "mdi:printer-3d" } } }, { "square": true, "type": "grid", "columns": 1, "cards": [ { "type": "conditional", "conditions": [ { "condition": "state", "entity": "sensor.sparkx_moonraker_current_print_state", "state": "printing" } ], "card": { "type": "custom:apexcharts-card", "graph_span": "1h", "span": { "start": "hour", "offset": "-10min" }, "header": { "show": true, "title": "Temperatures", "show_states": true, "colorize_states": true }, "now": { "show": true, "label": "Now", "color": "#00ff00" }, "all_series_config": { "show": { "legend_value": false }, "float_precision": 0 }, "apex_config": { "legend": { "show": false } }, "series": [ { "entity": "sensor.sparkx_moonraker_extruder_temperature", "name": "Nozzle", "opacity": 0.4 }, { "entity": "number.sparkx_moonraker_extruder_target", "name": "Nozzle target", "opacity": 0.4 }, { "entity": "sensor.sparkx_moonraker_bed_temperature", "name": "Bed", "opacity": 0.4 }, { "entity": "number.sparkx_moonraker_bed_target", "name": "Bed target", "opacity": 0.4 }, { "entity": "sensor.sparkx_moonraker_mcu_temp", "name": "MCU", "opacity": 0.4 } ] } }, { "type": "conditional", "conditions": [ { "condition": "state", "entity": "sensor.sparkx_moonraker_current_print_state", "state": "standby" } ], "card": { "type": "custom:mushroom-template-card", "primary": "Temperatures will appear here", "layout": "vertical", "tap_action": { "action": "url", "url_path": "http://moonraker.local/" }, "hold_action": { "action": "none" }, "double_tap_action": { "action": "none" }, "icon_color": "yellow", "icon": "mdi:printer-3d" } } ] } ] }, { "type": "grid", "cards": [ { "type": "heading", "heading": "Spoolman", "icon": "mdi:spool" }, { "type": "custom:mushroom-template-card", "entity": "sensor.active_spool", "primary": "{{ states('sensor.active_spool') }}", "secondary": "Active spool", "icon": "mdi:circle", "icon_color": "{% set sid = states('sensor.sparkx_moonraker_spool_id') | int(0) %}{% set eid = 'sensor.spoolman_spool_' ~ sid %}{% set h = state_attr(eid, 'filament_color_hex') %}{{ ('#' ~ h) if h else '#999999' }}", "tap_action": { "action": "more-info" } } ] } ] } ] } } }