Prusa 3D printers support

Current integration only supports Prusa Minis it seems.

Ref: PrusaLink - Home Assistant

The integration is not working with PrusaLink >= 0.7.0 rc2 with other Prusa printers.
See complete details here : PrusaLink config fails with message "Only PrusaLink API v2 is supported" · Issue #86230 · home-assistant/core · GitHub

Specifically, if you download the PrusaLink software from Prusa and expect the PrusaLink Home Assistant integration to work… it doesn’t.

Right now, the component is more correctly named “Prusa Mini” as that’s what the component supports, PrusaLink is unsupported.

In doing some research on this, I think I get the confusion that is being posted here. Prusa developed a PrusaLink API that is embedded in the firmware of their newer 32-bit “Buddy” printers. This API allows these newer printers to communicate directly with Prusa Connect, their cloud-based management system, or their print farm software.

At the same time, for older Prusa Printers they released a version of the API as part of an application that runs on a Raspberry Pi, that makes that management system available for them, but is based on an older build of the API, since the firmware of the older 8-bit “EINSY RAMBo” printers is limited in functionality (Josef Prusa himself has talked about squeezing every available byte out of the flash memory for the firmware).

That said, it is likely the functionality of this integration will work (obviously with some minor tweaks) with the Prusa XL and (just announced today) Mk4, since they are on the same firmware codebase as the Mini, and both have that functionality built in and are not dependent on a Raspberry Pi for the integration.

I’ll be getting the Mk3s to Mk4 upgrade kit this summer (when they start shipping) and will be keen on trying it, and deciding if I want to move from OctoPrint to PrusaLink/Prusa Connect.

So I certainly agree support for the XL and Mk4 should be considered, but I don’t know if it would be worth the effort to support the legacy interfaces (for that there’s always OctoPrint).

That’s not entirely what is happening. While it is true that the newer printers have 32-bit Buddy and xBuddy boards with PrusaLink embedded and the MK3 utilizes an external device to run PrusaLink that isn’t what causes the issue.

The primary cause is a change in how PrusaLink API functions that isn’t tied to the board on which it runs. PrusaLink on the MK3 development is actually far ahead of the embedded versions as it can be released without a firmware change. The culprit is going from an API key to HTTP digest as the API authentication method. Currently the only printer that works with the HA integration is the Prusa MINI as its version of PrusaLink is further behind the others and still utilizes the API key. As of today the SL1, XL, MK3, MK4 versions of PrusaLink will not work with the HA integration. This isn’t a symptom of where and how it runs but the version it runs. Since PrusaLink is still open beta things were modified, this will impact the MINI in the next few months when the next firmware rolls out with the updates.

In short it’s not a problem of where PrusaLink runs it a problem with the version of PrusaLink and how HA integrated with the older version using a now deprecated method.

4 Likes

Just for info…MK4 runs perfectly with prusalink and it perfectly integrates in HA.

Sorry to resurrect an older thread. But, how did you (@Protoncek) get your Mk4 to work with the current Prusalink plugin support for HA? Current firmware (I’m running the IS alpha 2 & alpha 5) firmware on 2 Mk4’s and they no longer support the API key needed to set up Prusalink in HA. The newer firmware only supports HTTP Digest user/password combinations, but the HA integration only asks for an API key.

I run fw 4.7.1 on my mk4. When i set up my prusa connect and prusalink it just appeared in HA. I didn’t try new fw 5 alpha though…

Ah! Yeah, I wanted to test Input Shaping, so I was kinda forced to use the new firmware. But, it does illustrate the lack of HTTP Digest support in the built-in plugin. I’m NOT a python programmer, but I might try to fork the built-in support to see how hard it would be to add a userid/password login option to it. It WILL be needed once the 5.x firmware becomes mainstream.

Oh, man…i didn’t know that… and i even thought of trying 5 alpha…
If you succeed it would be great…

Yeah, the PrusaLink API key support is deprecated in the 5.x firmwares, so you HAVE to use a userId/password combo.

Hm… today i installed FW 5.0.0 RC on my MK4 and it’s still there in Home Assistant. API key is also still present in this FW…?

Interesting! I flashed FW5.x almost the instant I finished my Mk4 kit and couldn’t find a way to produce an API key at all. Reading docs, it said it was deprecated in favor of HTTP Digest. Maybe I missed something somewhere.

Sorry, maybe i wrote somewhat “”wrong” : i used password in “network - prusalink” and it works.

I’d just like to add that the Prusa XL also works - just adding it with the API key works fine.

Has anyone solved prusalink with MK3s+?

yup, i did got it working, before i’ve upgraded to MK4. HA did see the printer, too. I used Pi zero 2W. But at the end i decided to stay at octoprint, since i’ve had 7 inch touch lcd and pi4 for this purpose and it was easier to control printer with that, rather than on that ancient 4x20 LCD.

So, I just set this up.

I provided the IP address of the printer and the password as shown in PrusaLink in the printer’s settings, and HA accepted that, but all of the entities initially showed as “unavailable.”

I just checked again, and I guess something needed time to settle, because now I see all the entities are showing accurate info.

Thanks for the tip of using the PW in place of the API key…worked great for me.

1 Like

There are two different thing why it works and don’t works.

  1. New authentication method
    As someone mentioned on newer FW you cannot generate API key, because they are deprecating it. The new authentication method is HTTP Digest. This isn’t supported by HA integration yet, only API key. That’s the main reason why it isn’t working.

  2. New API endpoints called V1 by Prusa
    Now the confusing part. They are replacing old, lets say basic endpoints (called API v2 by HA integration), with new endpoints called V1 by Prusa. Currently the HA integration supports only those basic endpoints (called API v2 by HA integration) but as far as I researched the old endpoint are still supported by all printers including PrusaLink on RaspberryPi. But this could change in the feature.

Luckily there is a PR Switch to v1 API endpoints and use DigestAuth by Skaronator · Pull Request #63 · home-assistant-libs/pyprusalink · GitHub which will solve both problems. Give him some love for it :laughing:

TL;DR Just use the password from the Prusa MK4 xBuddy / LCD display in the HASS API Key field of the PrusaLink integration and it all just works.

I read the API key requirement in the docs, then read about PrusaLink (local) / Prusa Connect (remote), and have both a PrusaConnect with TOTP auth, and a local PrusaLink with a password generated by the xBuddy

Basically, ignore the documentation. My Prusa MK4 with input shaping on v5.0.0 release works great with the PrusaLink integration. Get the password from the printer LCD display, and it works fine. Yes, this is a MK4 xBuddy with the latest input shaping firmware. No OctoPrint RPi needed (although a camera would be nice).

I now have a great automation which uses the Prusa preview as a camera to send progress notifications via the HASS app including preview images of the print.

The solution is easy and difficult at the same time. In FW 0.7.0 they changed the api version string from 2.0.0 to 0.9.0-legacy (for some reason). This string is parsed by HA Integration and if it’s less then 2.0.0, the configuration process is aborted. When I changed the string back to 2.0.0, I got it working. It has nothing to do with HTTP digest authentication as PrusaLink RaspberryPi provides API key.

I asked on PrusaLink for Raspberry repo why they changed it, so either they will changed it back to 2.0.0 or I’ll modify PrusaLink HA Integration to accept this special version.

This is valid only for PrusaLink on RaspberryPi for MK3 printers.