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

Popular posts from this blog

Epever/Epsolar output to InfluxDB/Grafana

Installing episode butler and sabnzbd on the Seagate Dockstar.

Assembling the Power bank Keep-alive based on 555 Timer