3D Print Status
Home Assistant Blueprint

3D Print Status

This blueprint will show the status of a 3d print with klipper installed.
A flow by RobG

Import blueprint Download blueprint Download assets

Flow Details

This blueprint will show the status of a 3d print.

Integration needed in Homeassistant: Moonraker, can be found here.
Sensors needed: Current Print Sate & Progress

It will show the current progress of an ongoing 3d print as an custom app, this app will be deleted when the status changes from printing -> something else. It will send a notification when the print goes into the following state:

  • paused
  • complete
  • cancelled
  • error
blueprint: name: "AWTRIX 3D Print Status - Moonraker" description: "This blueprint will show the status of your 3d print, with help of the Moonraker HA intergration" source_url: https://github.com/RDG88/Homeassistant_Blueprints/blob/main/moonraker_awtrix_app.yaml domain: automation input: awtrix: name: AWTRIX Light description: Select the Awtrix light selector: device: integration: mqtt manufacturer: Blueforcer model: AWTRIX 3 multiple: false awtrix_app_name: name: AWTRIX Application name description: This is the custom app name that will be added to AWTRIX, should be unique selector: text: {} default: 3d_print 3dprint_progress_sensor: name: 3D Print Progress Sensor description: 3D Print progress sensor selector: entity: multiple: false filter: - integration: moonraker 3dprint_current_state_sensor: name: 3D Print Current State Sensor description: 3D Print Current State sensor selector: entity: multiple: false filter: - integration: moonraker 3dprint_icon: name: Icon description: Enter the Icon Name or ID of the icon that you like to show. selector: text: default: "51841" push_icon: name: Icon Mode description: "Please select the pushIcon setting for the icon\n\n - `0` Icon doesn't move\n\n - `1` Icon moves with text and will not appear again\n\n \ - `2` Icon moves with text but appears again when the text starts to scroll again\n" selector: select: options: - label: Icon doesn't move (default) value: "0" - label: Icon moves with text and will not appear again value: "1" - label: Icon moves with text but appears again when the text starts to scroll again value: "2" multiple: false custom_value: false txt_color_printing: name: Text Color Printing State description: Select the Text color selector: color_rgb: default: [255, 255, 255] txt_color_error: name: Text Color Error State description: Select the Text color selector: color_rgb: default: [255, 0, 0] txt_color_paused: name: Text Color Paused State description: Select the Text color selector: color_rgb: default: [255, 255, 0] txt_color_canceled: name: Text Color Canceled State description: Select the Text color selector: color_rgb: default: [255, 165, 0] txt_color_complete: name: Text Color Complete State description: Select the Text color selector: color_rgb: default: [66, 245, 75] stack_notification: name: Stack notification description: Should the notifications be stacked? selector: boolean: default: false duration: name: Duration (in seconds) description: Sets how long the app or notification should be displayed. default: "10" repeat: name: Repeat description: Sets how many times the text should be scrolled through the matrix before the app/notifcation ends. default: "4" variables: device_id: !input awtrix awtrix: "{{ iif( device_attr(device_id, 'name_by_user') != none, device_attr(device_id,'name_by_user'), device_attr(device_id, 'name') ) }}" app: !input awtrix_app_name message_topic: "{{awtrix ~ '/custom/' ~ app }}" icon: !input 3dprint_icon notify_topic: "{{awtrix ~ '/notify'}}" sensor_progress: !input 3dprint_progress_sensor sensor_current_state: !input 3dprint_current_state_sensor txt_color_printing: !input txt_color_printing txt_color_error: !input txt_color_error txt_color_paused: !input txt_color_paused txt_color_canceled: !input txt_color_canceled txt_color_complete: !input txt_color_complete stack_notification: !input stack_notification push_icon: !input push_icon duration: !input duration repeat: !input repeat trigger: - platform: state entity_id: - !input 3dprint_progress_sensor - platform: state entity_id: - !input 3dprint_current_state_sensor condition: - condition: not conditions: - condition: state entity_id: !input 3dprint_current_state_sensor state: unavailable - condition: state entity_id: !input 3dprint_current_state_sensor state: unknown action: - if: - condition: state entity_id: !input 3dprint_current_state_sensor state: printing then: - service: mqtt.publish data: topic: "{{ message_topic }}" payload: |- { "text": "{{ states(sensor_progress) }}%", "icon": "{{ icon }}", "progress": "{{ states(sensor_progress) }}", "pushIcon": {{ push_icon }}, "color": {{ txt_color_printing }}, "duration": {{ duration }}, "repeat": {{ repeat }} } else: - service: mqtt.publish data: topic: "{{ message_topic }}" - if: - condition: state entity_id: !input 3dprint_current_state_sensor state: error then: - service: mqtt.publish data: topic: "{{ notify_topic }}" payload: |- { "text": "{{ states(sensor_current_state) }}", "icon": "{{ icon }}", "color": {{ txt_color_error }}, "stack": {{ iif(stack_notification, "true", "false") }}, "pushIcon": {{ push_icon }}, "duration": {{ duration }}, "repeat": {{ repeat }} } - if: - condition: state entity_id: !input 3dprint_current_state_sensor state: cancelled then: - service: mqtt.publish data: topic: "{{ notify_topic }}" payload: |- { "text": "{{ states(sensor_current_state) }}", "icon": "{{ icon }}", "stack": {{ iif(stack_notification, "true", "false") }}, "color": {{ txt_color_canceled }}, "pushIcon": {{ push_icon }}, "duration": {{ duration }}, "repeat": {{ repeat }} } - if: - condition: state entity_id: !input 3dprint_current_state_sensor state: paused then: - service: mqtt.publish data: topic: "{{ notify_topic }}" payload: |- { "text": "{{ states(sensor_current_state) }}", "icon": "{{ icon }}", "stack": {{ iif(stack_notification, "true", "false") }}, "color": {{ txt_color_paused }}, "pushIcon": {{ push_icon }}, "duration": {{ duration }}, "repeat": {{ repeat }} } - if: - condition: state entity_id: !input 3dprint_current_state_sensor state: complete then: - service: mqtt.publish data: topic: "{{ notify_topic }}" payload: |- { "text": "{{ states(sensor_current_state) }}", "icon": "{{ icon }}", "stack": {{ iif(stack_notification, "true", "false") }}, "color": {{ txt_color_complete }}, "pushIcon": {{ push_icon }}, "duration": {{ duration }}, "repeat": {{ repeat }} } mode: restart
/flows/eXj8YokBAPpx/51841.gif
-- Flow first published on May 21, 2023, last updated on March 13, 2024 at 19:40.