Prusalink customapi example for homepage
I've switched to prusalink/prusaconnect recently from octoprint and missed the nice homepage integration so have knocked the following up, you just need to update your IP and api key and you should be sorted. Thought it may be of use to others.
Initially there is no api key generated on a prusalink install and it will be blank, you just need to click reset and it'll create this one. This won't affect the printers connection to prusaconnect if your using that also.
I am using pi zero's but do not have them powered from the printer board so i can power the printers off when not in use. When you do this however the status that then gets returned is ERROR. I've remapped that to show powered off which works in my case but you can always remove that part.
I've used the additional field option so that the target and actual temp of the nozzle and bed are shown on a single line rather than taking up 4 lines. As it's a list you can just append more onto the end.
I've used /api/v1/status rather than /api/v1/job as it returns data even when a job is not running and you also get the extra information such as nozzle temps etc. One point to note is that the temp data will remain even if you power off the printer so if the nozzle was still at say 60 degrees and you power off the printer it won't get an updated value until you power the printer back on so will still show 60 no matter how long after. Not a biggie but just one to be aware of. Interesting also that the target temps don't get updated until it's actually printing so while it's doing the bed leveling etc it shows the target as 0 even though it's already up to temp.
I also posted this in the homepage discussions area which has better formatting of the code. github link
- Prusa MK3s 1:
icon: mdi-printer-3d-nozzle
href: http://<printer IP>/
description: Main printer
widget:
type: customapi
url: http://<printer IP>/api/v1/status
refreshInterval: 10000 # optional - in milliseconds, defaults to 10s
method: GET # optional, e.g. POST
headers: X-Api-Key: <api key>
display: list
mappings:
- field:
job: progress
format: percent
label: Progress
remap:
- value: Null
to: 0
- field:
printer: state
format: text
label: Status
remap:
- value: "ERROR"
to: "Powered off"
- field:
job: time_remaining
format: number
label: Time Remaining
suffix: " minutes" scale: 0.0166667 # Converts seconds to minutes
- field:
job: time_printing
format: number
label: Time Printing
suffix: " minutes" scale: 0.0166667 # Converts seconds to minutes
- field:
printer: temp_nozzle
label: Nozzle Temp / Target
format: number
suffix: "c"
additionalField:
field:
printer: target_nozzle
format: number
suffix: "c"
- field:
printer: temp_bed
label: Nozzle Bed / Target
format: number suffix: "c"
additionalField:
field:
printer: target_bed
format: number
suffix: "c"
- field:
printer: fan_hotend
label: Hotend Fan
Speed
format: number
suffix: "rpm"
Comments