diff --git a/automations.yaml b/automations.yaml index a59c97a8..d0365e5b 100644 --- a/automations.yaml +++ b/automations.yaml @@ -3493,93 +3493,56 @@ mode: single - id: '1787462132503' alias: 3D Print Complete Snapshot - description: Sends a notification with an OctoPrint webcam snapshot to all mobile - devices when a print finishes successfully. + description: Sends a notification with a SparkX i7 camera snapshot when a print + finishes successfully. triggers: - - entity_id: sensor.octoprint_last_event - to: PrintDone + - entity_id: sensor.sparkx_i7_print_status + from: printing + to: completed trigger: state actions: + - variables: + completion_message: '{% set f = trigger.to_state.attributes.get(''file'', '''') + %} {% set file = ''Print'' if f in ['''', none, ''unknown'', ''unavailable''] + else f.split(''/'')[-1].replace(''.gcode'', '''') %} {% set s = trigger.to_state.attributes.get(''job_time_s'', + 0) | int(0) %} {{ file }} finished successfully at {{ now().strftime(''%I:%M + %p'').lstrip(''0'') }}. Total time: {% if s >= 3600 %}{{ s // 3600 }}h {{ + ((s % 3600) // 60) }}m{% else %}{{ ((s % 3600) // 60) }}m{% endif %}' - action: camera.snapshot - target: - entity_id: camera.endercamera_duckdns_org data: - filename: /config/www/octoprint_snapshot.jpg + filename: /config/www/sparkx_i7_complete_snapshot.jpg + target: + entity_id: camera.sparkx_i7_printer_camera - parallel: - action: notify.mobile_app_sm_f956w data: - title: 3D print complete - message: '{% set f = states(''sensor.octoprint_print_file'') %}{% set file - = ''Print'' if f in [''unknown'', ''unavailable'', ''none''] else f.replace(''.gcode'', - '''') %}{% set tt = state_attr(''sensor.octoprint_print_progress'', ''printTime'') - | int(0) %}{% set s = tt if tt > 0 else states(''sensor.octoprint_elapsed'') - | int(0) %}{% macro dur(s) -%}{%- if s >= 3600 -%}{{ (s // 3600) }}h {{ - ((s % 3600) // 60) }}m{%- else -%}{{ ((s % 3600) // 60) }}m{%- endif -%}{%- - endmacro %}{{ file }} finished successfully at {{ now().strftime(''%I:%M - %p'').lstrip(''0'') }}. - - Total time: {{ dur(s) }}' data: - image: /local/octoprint_snapshot.jpg + image: /local/sparkx_i7_complete_snapshot.jpg + message: '{{ completion_message }}' + title: 3D print complete - action: notify.mobile_app_motorola_one_vision data: - title: 3D print complete - message: '{% set f = states(''sensor.octoprint_print_file'') %}{% set file - = ''Print'' if f in [''unknown'', ''unavailable'', ''none''] else f.replace(''.gcode'', - '''') %}{% set tt = state_attr(''sensor.octoprint_print_progress'', ''printTime'') - | int(0) %}{% set s = tt if tt > 0 else states(''sensor.octoprint_elapsed'') - | int(0) %}{% macro dur(s) -%}{%- if s >= 3600 -%}{{ (s // 3600) }}h {{ - ((s % 3600) // 60) }}m{%- else -%}{{ ((s % 3600) // 60) }}m{%- endif -%}{%- - endmacro %}{{ file }} finished successfully at {{ now().strftime(''%I:%M - %p'').lstrip(''0'') }}. - - Total time: {{ dur(s) }}' data: - image: /local/octoprint_snapshot.jpg + image: /local/sparkx_i7_complete_snapshot.jpg + message: '{{ completion_message }}' + title: 3D print complete - action: notify.mobile_app_francos_ipad data: - title: 3D print complete - message: '{% set f = states(''sensor.octoprint_print_file'') %}{% set file - = ''Print'' if f in [''unknown'', ''unavailable'', ''none''] else f.replace(''.gcode'', - '''') %}{% set tt = state_attr(''sensor.octoprint_print_progress'', ''printTime'') - | int(0) %}{% set s = tt if tt > 0 else states(''sensor.octoprint_elapsed'') - | int(0) %}{% macro dur(s) -%}{%- if s >= 3600 -%}{{ (s // 3600) }}h {{ - ((s % 3600) // 60) }}m{%- else -%}{{ ((s % 3600) // 60) }}m{%- endif -%}{%- - endmacro %}{{ file }} finished successfully at {{ now().strftime(''%I:%M - %p'').lstrip(''0'') }}. - - Total time: {{ dur(s) }}' data: - image: /local/octoprint_snapshot.jpg + image: /local/sparkx_i7_complete_snapshot.jpg + message: '{{ completion_message }}' + title: 3D print complete - action: notify.mobile_app_sm_t387w data: - title: 3D print complete - message: '{% set f = states(''sensor.octoprint_print_file'') %}{% set file - = ''Print'' if f in [''unknown'', ''unavailable'', ''none''] else f.replace(''.gcode'', - '''') %}{% set tt = state_attr(''sensor.octoprint_print_progress'', ''printTime'') - | int(0) %}{% set s = tt if tt > 0 else states(''sensor.octoprint_elapsed'') - | int(0) %}{% macro dur(s) -%}{%- if s >= 3600 -%}{{ (s // 3600) }}h {{ - ((s % 3600) // 60) }}m{%- else -%}{{ ((s % 3600) // 60) }}m{%- endif -%}{%- - endmacro %}{{ file }} finished successfully at {{ now().strftime(''%I:%M - %p'').lstrip(''0'') }}. - - Total time: {{ dur(s) }}' data: - image: /local/octoprint_snapshot.jpg + image: /local/sparkx_i7_complete_snapshot.jpg + message: '{{ completion_message }}' + title: 3D print complete - action: telegram_bot.send_photo data: + caption: '{{ completion_message }}' entity_id: notify.franco - file: /config/www/octoprint_snapshot.jpg - caption: '{% set f = states(''sensor.octoprint_print_file'') %}{% set file - = ''Print'' if f in [''unknown'', ''unavailable'', ''none''] else f.replace(''.gcode'', - '''') %}{% set tt = state_attr(''sensor.octoprint_print_progress'', ''printTime'') - | int(0) %}{% set s = tt if tt > 0 else states(''sensor.octoprint_elapsed'') - | int(0) %}{% macro dur(s) -%}{%- if s >= 3600 -%}{{ (s // 3600) }}h {{ - ((s % 3600) // 60) }}m{%- else -%}{{ ((s % 3600) // 60) }}m{%- endif -%}{%- - endmacro %}{{ file }} finished successfully at {{ now().strftime(''%I:%M - %p'').lstrip(''0'') }}. - - Total time: {{ dur(s) }}' + file: /config/www/sparkx_i7_complete_snapshot.jpg parse_mode: plain_text mode: single - id: '1787462157568'