Skip to content
3D PRINTERAY

How-to

PrusaLink in Home Assistant: setup and what it shows

Home Assistant has a built-in PrusaLink integration: add it under Settings, Devices & services and enter the printer's IP address, username and PrusaLink password. It reads print status and progress over your local network and adds pause, resume and cancel buttons. Its only camera entity shows the print file's thumbnail, not live video.

Edited by 3D Printeray EditorsPublished Last verified 7 min read

An Original Prusa i3 MK3-series printer inside a black-framed enclosure with clear panels and a Prusa Research badge, on a workbench
Photo: -stk, CC BY-SA 4.0

To add a Prusa printer to Home Assistant, use its built-in PrusaLink integration: Settings > Devices & services > Add integration > PrusaLink. Enter the printer’s IP address and PrusaLink password. The username is maker on the MINI, MK3.9, MK4, XL and CORE One.

The integration reads PrusaLink, the web interface that runs on the printer itself, over your local network every 30 seconds. It needs no Prusa account and no Prusa Connect login; Prusa says PrusaLink “is accessible only within your local network.” Home Assistant’s docs list the integration as community maintained. This page follows those docs and the integration’s code in Home Assistant 2026.11.0, checked on November 7, 2026.

Open Settings, then Devices & services, select Add integration and choose PrusaLink. Enter the printer’s IP address as Host. On the MINI, MK3.9, MK4, XL and CORE One, keep the username maker and use the password from the printer’s PrusaLink menu. On a Raspberry Pi-based MK2.5 or MK3, use the username and password you created.

Printer Needs at least Username Password
Prusa CORE One Its default firmware maker (some models do not show it) From Settings > Network > PrusaLink on the printer; some models call it API key
Prusa MINI, MINI+ Firmware 5.1.0 maker Same as above
Prusa MK2.5, MK3, MK3S, MK3S+ (Raspberry Pi) PrusaLink 0.7.2 The one you set during PrusaLink setup The one you set during PrusaLink setup, not the API key
Prusa MK3.9, MK4, XL Firmware 4.7.0 maker Same as the CORE One

The docs do not name the MK3.5, which runs the same Buddy firmware (Prusa’s firmware for its 32-bit printers) as the MK4. The integration does not check the model: it accepts any printer that reports PrusaLink API version 2.0.0 or newer, and current Buddy firmware reports 2.0.0.

Where to find the PrusaLink password covers each model. If PrusaLink is not running yet, start with setting up PrusaLink.

  1. Update the printer if needed. Prusa’s guides cover the MINI, the MK4 and XL, the CORE One and PrusaLink on the MK2.5 and MK3. Firmware 4.7.x and 5.0.x are not available for the MINI, so it needs 5.1.0 or later.
  2. Note the address and password. On a Buddy-firmware printer, open Settings > Network > PrusaLink and note the IP address and password. On an MK2.5 or MK3, the IP address shows on the LCD after PrusaLink starts. Your router’s device list also shows the IP address or hostname.
  3. Add the integration. In Home Assistant, go to Settings > Devices & services, select Add integration and search for PrusaLink. If Home Assistant already spotted the printer, it is listed under Discovered and opens the same form.
  4. Fill in the form. Enter the IP address or hostname as Host, with or without http:// (Home Assistant adds it). Keep maker as Username unless the printer is an MK2.5 or MK3. Enter the password.
  5. Check the device. The printer appears as a device named after its hostname. Open it and confirm the printer state reads Idle, Ready or Printing rather than Unavailable.

If setup fails, the form shows one of these:

  • Failed to connect: nothing answered at that address within 5 seconds. Check the IP address and that Home Assistant and the printer share a network.
  • Invalid authentication: wrong username or password. On an MK2.5 or MK3, use the PrusaLink password, not the API key.
  • Only PrusaLink API v2 is supported: the firmware or PrusaLink version is older than the table above. Update it and add the integration again.

Reserve the printer’s IP address in your router. If the address changes, every PrusaLink entity goes unavailable.

The printer’s state, job progress, file name, estimated finish time and print speed are on from the start. Temperatures, fans and axis positions exist but are turned off when the printer is added.

Type On when added Off until you enable them
Binary sensor Connectivity: whether the printer’s Prusa Connect link is up (created only when Prusa Connect is set up) MMU (Multi-Material Unit), SD card, Farm mode
Button Pause job, Resume job, Cancel job, Continue job None
Camera Preview: the current print file’s thumbnail None
Sensor Printer state (named after the printer), Progress, Filename, Print start, Print finish, Print speed, Material Nozzle temperature, Nozzle target temperature, Heatbed temperature, Heatbed target temperature, Print flow, Hotend fan, Print fan, Z-Height, X-Position, Y-Position, Nozzle diameter, Minimum extrusion temperature

To turn on a temperature sensor, open the printer’s device page and select the link with the number of disabled entities. Pick the entity, select Settings, turn on Enabled and select Update. To enable several at once, go to Settings > Devices & services > Entities and filter by Disabled. Enter selection mode, tick the entities and choose Action > Enable selected.

  • Printer state reads Idle, Busy, Printing, Paused, Finished, Stopped, Error, Attention or Ready. Attention means the printer is waiting for you.
  • Buttons work only in a matching state. Pause job works while printing, Resume job while paused, Cancel job while printing or paused, and Continue job while the printer shows Attention. After a press, the integration polls every 5 seconds for the next 30 seconds, then goes back to every 30.
  • Print start and Print finish are timestamps that exist only while a job is printing or paused. Print finish is the estimated end time.
  • Controls stop at the four job buttons. The integration has no entities for setting temperatures, uploading files or starting a print; do those in PrusaLink’s own web page.

No live video. The integration’s only camera entity is Preview: a still image of the current print file’s thumbnail, fetched from the printer. It is unavailable when the printer is idle or the file has no thumbnail. For a live picture, add the camera to Home Assistant separately, such as the Buddy3D camera’s local video stream.

On the MK3.9, MK4 and XL, PrusaLink has no webcam to pass along. Prusa says “PrusaLink itself running on MK3.9, MK4 and XL printers doesn’t support any cameras.” It points to Prusa Connect, its cloud service, for cameras instead.

Camera What Home Assistant gets Route
Buddy3D camera (Prusa’s Wi-Fi camera) Live video on your local network Generic Camera integration, using the camera’s RTSP (Real Time Streaming Protocol) stream; steps below
Camera on a Raspberry Pi running OctoPrint The camera feed configured in OctoPrint OctoPrint integration; Prusa says its tested Pi cameras also work with “RPi + Octoprint on MK4 / MK3.9 / XL printers” (PrusaLink vs OctoPrint)
Camera on the Raspberry Pi running PrusaLink (MK2.5, MK3) Nothing from the PrusaLink integration, which has no entity for it View it on the Cameras tab of PrusaLink’s web page, or link it to Prusa Connect there
Phone, tablet, laptop or Camera API camera added in Prusa Connect Nothing: these send their images to Prusa Connect View them in Prusa Connect

Prusa Connect shows snapshots, not video. The Buddy3D camera uploads one every 10 to 90 seconds, at the interval you set. Prusa says its live feed “only works in the Prusa App or via a network player such as VLC.”

Add a Buddy3D camera stream to Home Assistant

  1. Find the camera’s IP address in your router’s list of connected devices.
  2. Test the stream in the VLC media player at rtsp://<camera IP>/live. You can leave out the default port, 554. If it does not play, check Local Stream Mode in the camera’s details in the Prusa App.
  3. Add Generic Camera. In Home Assistant, go to Settings > Devices & services, select Add integration and choose Generic Camera. Put the RTSP address in Stream Source and leave Still Image URL empty. That works because the Stream integration is part of Home Assistant’s default configuration.

Prusa notes the stream is unencrypted and works only on your local network. Home Assistant serves the picture through its own server, so it also plays outside your network wherever Home Assistant is reachable.

How to get a notification when a Prusa print finishes

Trigger on the printer state sensor changing to finished and send a message to the Home Assistant Companion app on your phone. Because the integration polls every 30 seconds, the alert can arrive up to 30 seconds after the print ends.

  1. Create the automation. Go to Settings > Automations & scenes and select Create automation > Create new automation.
  2. Open the YAML editor. Select Menu in the upper-right corner, then Edit in YAML.
  3. Paste the YAML below. Replace sensor.my_prusa with your printer state sensor, the one named after the printer. Replace notify.mobile_app_my_phone with your phone’s action: notify.mobile_app_ followed by its device ID.
  4. Save. Select Save.
alias: "Prusa print finished"
triggers:
  - trigger: state
    entity_id: sensor.my_prusa
    to: "finished"
    not_from:
      - "unavailable"
      - "unknown"
actions:
  - action: notify.mobile_app_my_phone
    data:
      message: "The print on the Prusa has finished."

The not_from lines stop a false alert when Home Assistant restarts or loses the printer for a moment and the state comes back as Finished. To hear when the printer stops and waits for you, make a copy with to: "attention".

Sources

  1. Home Assistant, PrusaLink integration (accessed November 7, 2026)
  2. Home Assistant core on GitHub, Release 2026.11.0 (November 4, 2026) (accessed November 7, 2026)
  3. Home Assistant core on GitHub (2026.11.0), prusalink/config_flow.py (setup form and version check) (accessed November 7, 2026)
  4. Home Assistant core on GitHub (2026.11.0), prusalink/strings.json (entity names and setup errors) (accessed November 7, 2026)
  5. Home Assistant core on GitHub (2026.11.0), prusalink/sensor.py (accessed November 7, 2026)
  6. Home Assistant core on GitHub (2026.11.0), prusalink/binary_sensor.py (accessed November 7, 2026)
  7. Home Assistant core on GitHub (2026.11.0), prusalink/button.py (accessed November 7, 2026)
  8. Home Assistant core on GitHub (2026.11.0), prusalink/camera.py (Preview camera) (accessed November 7, 2026)
  9. Home Assistant core on GitHub (2026.11.0), prusalink/coordinator.py (polling interval) (accessed November 7, 2026)
  10. Home Assistant core on GitHub (2026.11.0), prusalink/__init__.py (platforms) (accessed November 7, 2026)
  11. Home Assistant core on GitHub, PR #169310: PrusaLink sd_ready, farm_mode and status_connect binary sensors (accessed November 7, 2026)
  12. Home Assistant, Customizing entities (disabling or enabling an entity) (accessed November 7, 2026)
  13. Home Assistant, Automation editor (accessed November 7, 2026)
  14. Home Assistant, State changed trigger (accessed November 7, 2026)
  15. Home Assistant Companion Docs, Notifications introduction (accessed November 7, 2026)
  16. Home Assistant, Generic Camera integration (accessed November 7, 2026)
  17. Home Assistant, Default Config integration (includes Stream) (accessed November 7, 2026)
  18. Home Assistant, OctoPrint integration (accessed November 7, 2026)
  19. Prusa Knowledge Base, Prusa Connect and PrusaLink explained (accessed November 7, 2026)
  20. Prusa Knowledge Base, Buddy3D Camera (accessed November 7, 2026)
  21. Prusa Knowledge Base, Camera setup for PrusaLink / Prusa Connect (guide, PDF generated May 13, 2026) (accessed November 7, 2026)
  22. Prusa Knowledge Base, Camera compatibility (RPi + PrusaLink) (accessed November 7, 2026)
  23. Prusa Knowledge Base, Prusa Connect - Camera API (accessed November 7, 2026)
  24. Prusa-Firmware-Buddy on GitHub, README (supported printers) (accessed November 7, 2026)
  25. Prusa-Firmware-Buddy on GitHub, lib/WUI/link_content/basic_gets.h (PrusaLink API version 2.0.0) (accessed November 7, 2026)