CumpsD
(David Cumps)
October 31, 2021, 8:58pm
61
Can you share how you did the Preheat PLA/PETG buttons please?
Edit:
Nevermind, I found them in the other thread, shell commands
octoprint_connect: "curl -s http://x.x.x.x/api/connection -d '{\"command\":\"connect\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_pwr_off: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"M81\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_pwr_on: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"M80\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_cancel: "curl -s http://x.x.x.x/api/job -d '{\"command\":\"cancel\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_pause_resume: "curl -s http://x.x.x.x/api/job -d '{\"command\":\"pause\",\"action\":{\"toggle\"}}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_pause: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"M601\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_resume: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"M602\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_change_filament: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"M600\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_autohome: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"G28 W\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_preheat_bed_pla: "curl -s http://x.x.x.x/api/printer/bed -d '{\"command\":\"target\",\"target\":70}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_preheat_tool_pla: "curl -s http://x.x.x.x/api/printer/tool -d '{\"command\":\"target\",\"targets\":{\"tool0\":210}}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_preheat_bed_petg: "curl -s http://x.x.x.x/api/printer/bed -d '{\"command\":\"target\",\"target\":80}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_preheat_tool_petg: "curl -s http://x.x.x.x/api/printer/tool -d '{\"command\":\"target\",\"targets\":{\"tool0\":240}}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_preheat_bed_off: "curl -s http://x.x.x.x/api/printer/bed -d '{\"command\":\"target\",\"target\":0}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_preheat_tool_off: "curl -s http://x.x.x.x/api/printer/tool -d '{\"command\":\"target\",\"targets\":{\"tool0\":0}}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_speed_200pc: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"M220 S200\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_speed_100pc: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"M220 S100\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
octoprint_speed_80pc: "curl -s http://x.x.x.x/api/printer/command -d '{\"command\":\"M220 S80\"}' -H 'Content-Type: application/json' -H 'X-Api-Key: XXXX'"
wasyl00
October 31, 2021, 9:47pm
62
Yep, shell commands in config file. Then create scripts to run these and then run scripts with buttons.
Nice work! Can you share your sensor/config from the āFile sizeā and āFilament lengthā ?
CumpsD
(David Cumps)
November 1, 2021, 11:19am
66
- platform: rest
resource: 'http://x.x.x.x/api/job'
name: "STL File Size API"
value_template: '{{ value_json.job.file.size | float / 1000000 }}'
headers:
X-Api-Key: xxx
unit_of_measurement: 'MB'
- platform: rest
resource: 'http://x.x.x.x/api/job'
name: "STL Filament Length API"
value_template: '{{ value_json.job.filament.tool0.length | float / 1000 }}'
headers:
X-Api-Key: xxx
unit_of_measurement: 'm'
- platform: template
sensors:
stl_filament_length:
friendly_name: "STL Filament Length"
unit_of_measurement: 'm'
value_template: "{{ states('sensor.stl_filament_length_api') | round(1) }}"
- platform: template
sensors:
stl_file_size:
friendly_name: "STL File Size"
unit_of_measurement: 'MB'
value_template: "{{ states('sensor.stl_file_size_api') | round(1) }}"
1 Like
Hey Iāve been trying to work out the best way to do this. I have an automation that triggers when a print has finished, but since the big OctoPrint integration update, the start and end print time sensors immediately become unavailable at the end of the print:
I used to just invoke the start time sensor to get a total print time length in the automation, so as I could get the total print time sent to me in the notification Iām sent, but now that sensor has already gone offline by the time the automation is running.
Anyone worked out the simplest way of doing this with the new sensors?
GlennHA
(Glenn)
January 4, 2022, 2:11pm
68
I have noticed that the completion sensor remains at 100% after print is finished.
I check the progress percentage (>99.9) and state (finishing)
Seems to work fine.
Have 1 automation for start, 25/50/75% and completion notifications.
If someone wants, I can post the YAML (on my phone now)
Just sharing these sensors I use with the DisplayLayerProgress plugin:
- platform: rest
scan_interval: 10
name: octoprint_layer_progress
resource: https://YOUR_IP/plugin/DisplayLayerProgress/values
verify_ssl: false
headers:
User-Agent: Home Assistant
X-Api-Key: YOUR_APIKEY
json_attributes:
- currentFilename
- layer
value_template: "{{ value_json.layer['current'] }}"
- platform: template
sensors:
octoprint_filename_current:
value_template: "{{ state_attr('sensor.octoprint_layer_progress', 'currentFilename') }}"
octoprint_layer_current:
value_template: "{{ state_attr('sensor.octoprint_layer_progress', 'layer')['current'] | int }}"
octoprint_layer_total:
value_template: "{{ state_attr('sensor.octoprint_layer_progress', 'layer')['total'] | int }}"
2 Likes
If you have the YAML for this Iām interressing
thanks
Here you go. An automation for progress notifications.
alias: Octoprint progress update notification - vyper printer
description: ''
trigger:
- platform: numeric_state
entity_id: sensor.octoprint_print_progress
above: '24.9'
- platform: numeric_state
entity_id: sensor.octoprint_print_progress
above: '49.9'
- platform: numeric_state
entity_id: sensor.octoprint_print_progress
above: '74.9'
- platform: numeric_state
entity_id: sensor.octoprint_print_progress
above: '99.9'
- platform: state
entity_id: sensor.octoprint_print_status
to: Printing
for:
hours: 0
minutes: 0
seconds: 15
condition: []
action:
- choose:
- conditions:
- condition: numeric_state
entity_id: sensor.octoprint_print_progress
above: '99.9'
- condition: state
entity_id: sensor.octoprint_print_status
state: Finishing
sequence:
- device_id: 555867a415f511eb9d5495568acb0c74
domain: mobile_app
type: notify
title: Vyper - Print has completed
message: >-
Print '{{ states('sensor.octoprint_print_file') }}' has finished
after {{ states('sensor.octoprint_print_time') }}. Go check it
out!
- conditions:
- condition: numeric_state
entity_id: sensor.octoprint_print_progress
below: '1'
- condition: state
entity_id: sensor.octoprint_print_status
state: Printing
sequence:
- device_id: 555867a415f511eb9d5495568acb0c74
domain: mobile_app
type: notify
title: Vyper - Print has started
message: >-
Print '{{ states('sensor.octoprint_print_file') }}' has started,
ETA is {{ states('sensor.octoprint_print_estimated_time') }}.
default:
- condition: state
entity_id: sensor.octoprint_print_status
state: Printing
- device_id: 555867a415f511eb9d5495568acb0c74
domain: mobile_app
type: notify
title: >-
Vyper - Print at {{ states('sensor.octoprint_print_progress') | int
}}%
message: >-
Still {{ states('sensor.octoprint_print_time_left') }} left to print
'{{ states('sensor.octoprint_print_file') }}'.
mode: single
3 Likes
Fantastic - thanks for sharing. Iām new to Octoprint and a Home Assistant newbie, so this really helps me get started
Twig_Bark
(Twig Bark)
November 6, 2022, 10:52am
74
Can anybody help me where to begin?
I want similar like this
Do i need add something in config.yaml or just creat lovelace card? I have just installed octoprint plugin and what to do next i dont have any clue.
Very useful. Thanks for documenting it!
I tried the remote rest shutdown command but got this error
{āerrorā:āThe method is not allowed for the requested URL.ā}
I have the OctoPrint Integration installed, during installation all information like username, host, port, key is given.
Iāve looked but canāt find any YAML code for this information on OctoPrint.
I would like to setup this ui made by krash, but Iām wondering if I need to create this āOctoprint Componentā as I already completed the integration with user and key.
As this topic is started a long time ago I donāt know if it is still accurate.