This is my firs blueprint so I hope it works…
blueprint:
name: 3D Print Progress (Bambu)
description: >
Live Android notification with progress bar and countdown
for Bambu Lab printers.
domain: automation
input:
progress_sensor:
name: Print Progress Sensor
description: Sensor with print progress in percent (0–100)
selector:
entity:
domain: sensor
status_sensor:
name: Print Status Sensor
description: Sensor that reports "Finished" when the print is done
selector:
entity:
domain: sensor
remaining_time_sensor:
name: Remaining Time Sensor
description: Sensor with remaining time in minutes
selector:
entity:
domain: sensor
notify_target:
name: Notification Target
description: e.g. notify.mobile_app_a142
selector:
text:
alias: 3D Print Progress
description: ""
triggers:
- trigger: state
entity_id:
- !input progress_sensor
- !input status_sensor
- !input remaining_time_sensor
conditions: []
actions:
- choose:
- conditions:
- condition: template
value_template: >-
{{ trigger.entity_id == config.inputs.status_sensor and
trigger.to_state.state == 'Finished' }}
sequence:
- action: !input notify_target
data:
title: "3D Print complete ✅"
message: "Your print is done!"
data:
tag: 3d_print_progress
live_update: true
progress: 100
progress_max: 100
- delay:
seconds: 5
- action: !input notify_target
data:
data:
tag: 3d_print_progress
message: clear_notification
default:
- action: !input notify_target
data:
title: "3D Print in progress 🖨️"
message: >-
{% set s = states(config.inputs.remaining_time_sensor) | int %}
{{ s // 60 }}:{{ '%02d' | format(s % 60) }} remaining –
{{ states(config.inputs.progress_sensor) | int }} %
data:
tag: 3d_print_progress
progress: >-
{{ states(config.inputs.progress_sensor) | int }}
progress_max: 100
live_update: true
silent: true
alert_once: true
sticky: true
notification_icon: mdi:printer-3d-nozzle
chronometer: true
when: >-
{{ (now().timestamp() + states(config.inputs.remaining_time_sensor) | int * 60) | int }}
mode: single