Skip to content

Releases: npolanosky/prusa_home_assistant

v2.8.1 — Fix cloud print-preview fetch (AttributeError)

Choose a tag to compare

@npolanosky npolanosky released this 31 May 22:25

Patch: cloud print preview now actually fetches

v2.8.0 wired up the cloud print thumbnail but the fetch method (PrusaConnectClient.get_image) didn't make it into the build, so loading a cloud preview would error. This adds it. If you're on cloud and want the print preview, update to 2.8.1.

(No card or other behaviour changes from 2.8.0.)

After updating

HACS → Redownloadrestart Home Assistant, then hard-refresh the browser.

🤖 Generated with Claude Code

v2.8.0 — Bambu-style card redesign, print thumbnail, blank-entity fix

Choose a tag to compare

@npolanosky npolanosky released this 31 May 21:52

Redesigned card + print preview + fix for blank entities

Blank entities — fixed

The card previously matched entities by a text entity_prefix, which broke when the entity IDs didn't line up exactly (hence the blank values). The card now uses a device picker in the visual editor and resolves every entity from that device via the registry — robust regardless of naming. (entity_prefix still works as a fallback.)

New look — styled after the Bambu print_status card

  • A Prusa Mini illustration as the centerpiece, with temperature pills overlaid (and a hot-glow when heating).
  • The current print's thumbnail shown on the bed.
  • A progress bar with percentage and time remaining.
  • Material / Z height / speed chips.
  • A clean visual editor — just pick your printer.

Print thumbnail — now works on cloud too

Cloud connections now surface the current print's preview image (from job_info.preview_url, fetched with your account token). The Current print camera entity is created for both local and cloud setups, so you get the live G-code preview either way.

After updating

  1. HACS → Redownloadrestart Home Assistant.
  2. Hard-refresh the browser (Cmd/Ctrl+Shift+R).
  3. Re-add the card (or open its editor and pick your printer device).

🤖 Generated with Claude Code

v2.7.2 — Fix custom card not loading (Add Card picker)

Choose a tag to compare

@npolanosky npolanosky released this 31 May 21:21

Fixes "Custom element doesn't exist: prusa-connect-card"

The card's JavaScript was never being loaded by the frontend, so the element was undefined — it neither appeared in the Add Card picker nor worked when added manually.

Root cause: the integration tried to register the card via an old internal key (lovelace_resources) that no longer exists in current Home Assistant, so registration silently did nothing.

Fix: the card module is now loaded with frontend.add_extra_js_url (the current, supported mechanism, verified against HA 2026.5.4). It imports the card on every dashboard in both storage and YAML mode, which defines the element and makes it show up in the graphical card picker with a live preview and visual editor.

After updating

  1. HACS → Redownloadrestart Home Assistant.
  2. Hard-refresh your browser (Cmd/Ctrl+Shift+R) to drop the old cached page.
  3. Edit dashboard → Add Card → search "Prusa" — it should now appear.
type: custom:prusa-connect-card
entity_prefix: sensor.prusa_mini
name: Prusa Mini

🤖 Generated with Claude Code

v2.7.1 — Fix custom card not appearing in picker

Choose a tag to compare

@npolanosky npolanosky released this 31 May 20:59

Fixes the custom card not showing up

The Lovelace card's JavaScript was malformed, so the file failed to parse and the card never registered — which is why it didn't appear in the Add Card picker.

The card has been rewritten cleanly:

  • Parses correctly and registers itself in the card picker (with live preview) via window.customCards.
  • Reads the integration's actual sensors via an entity_prefix and shows status, a progress bar, temperatures (with targets), material, Z height, and speed.
  • Includes a visual config editor.
  • Card asset version bumped (2.0.0) so Home Assistant reloads it instead of serving the cached broken copy.

After updating

  1. HACS → Redownload → restart Home Assistant.
  2. Hard-refresh your browser (Ctrl/Cmd+Shift+R) to clear the old cached card.
  3. Edit dashboard → Add Card → search "Prusa".

Add it with:

type: custom:prusa-connect-card
entity_prefix: sensor.prusa_mini
name: Prusa Mini

🤖 Generated with Claude Code

v2.7.0 — Fix cloud sensors + email/password login

Choose a tag to compare

@npolanosky npolanosky released this 31 May 19:11

Fixes "unknown" sensors on cloud + adds easy email/password login

Sensors now populate (cloud connections)

The cloud API nests live values under sub-objects (temp, filament, tools) rather than flat fields, so temperatures and material were never being found — hence all the "unknown" readings. The integration now correctly reads:

  • Nozzle / bed temperature and their targets (from temp.*)
  • Z height, print speed, flow (top-level)
  • Material (from filament.material / the active tool)
  • Status

Verified against a real Prusa Mini payload — every field resolves.

Easier cloud login — no more prusaslicer:// copy-paste

Cloud setup is now a choice of two:

  • Email & password (default) — type your Prusa account email + password directly into Home Assistant. No browser, no copy-paste. Your password is used once to obtain tokens and is never stored — only the tokens are saved.
  • Browser login (fallback) — the existing paste flow, kept for accounts with two-factor authentication. Now includes a tip: if your browser hides the prusaslicer:// URL, open the login link on a device without PrusaSlicer (e.g. your phone).

2FA accounts must use Browser login (password grant can't answer a 2FA challenge).

🤖 Generated with Claude Code

v2.6.0 — Entity names & availability fixes, more sensors

Choose a tag to compare

@npolanosky npolanosky released this 31 May 12:02

Fixes the entity naming and "unavailable" problems

Entity names

Sensors were showing up as "Temperature", "Duration", or your device name instead of real names. The translation files were missing the entity section, so Home Assistant fell back to the device class. All sensors now have proper names (Nozzle temperature, Bed temperature, Progress, Z height, Time remaining, etc.).

Availability

Most sensors were stuck "unavailable" because they were gated on the printer actively printing. Sensors are now available whenever the integration is connected, and simply show "unknown" when a particular value isn't being reported (e.g. time-remaining when idle).

New sensors

Added Flow, Print fan, and Hotend fan. To keep the default dashboard tidy, the less-common sensors (temperature targets, flow, fans) are disabled by default — enable any you want from the entity settings.

Under the hood

  • Field names verified against Prusa's firmware telemetry and the PrusaLink OpenAPI spec.
  • fan_hotend now also reads the fan_extruder key the firmware sends while printing.
  • The raw cloud API payload is logged at DEBUG, making any remaining field-mapping gaps easy to pinpoint.

If any sensor still reads "unknown" while printing, enable debug logging for custom_components.prusa_connect and share the log — the raw payload dump will show the exact field names your printer reports.

🤖 Generated with Claude Code

v2.5.0 — Print preview camera + Pause/Resume/Stop controls

Choose a tag to compare

@npolanosky npolanosky released this 31 May 08:16

New features (local PrusaLink connections)

  • Current print camera — a camera entity showing the embedded thumbnail of the G-code currently printing. Add it to a Picture / Picture Glance card.
  • Pause / Resume / Stop buttons — control the active print. State-aware: Resume only shows while paused; Pause/Stop only while printing.

These are local-only because the Prusa Connect cloud API exposes neither a stable job-thumbnail URL nor these control commands.

Preheating is not available: PrusaLink's local API is read-only for temperatures — there is no endpoint to set nozzle/bed targets. Use the printer's screen for manual preheating.

Fixes

  • Fixed a latent bug where entities required a printer UUID (which local connections don't have), preventing local-mode entities from being created. The device identifier now falls back to the entry's serial/ID.
  • await the static-path registration (removes a RuntimeWarning).

🤖 Generated with Claude Code

v2.4.1 — OAuth2 Cloud Login + Local PrusaLink

Choose a tag to compare

@npolanosky npolanosky released this 31 May 07:39

What changed

This release fixes cloud connectivity by switching to the correct authentication model.

Root cause: The per-printer "API key" from connect.prusa3d.com only works with the local PrusaLink API (over your LAN). It does not authenticate the cloud data endpoints — those return HTTP 401 "Missing or invalid security token". Cloud access requires a Prusa account OAuth2 token, the same as PrusaSlicer/OrcaSlicer.

Two connection modes

  • Local (PrusaLink) — recommended. Enter your printer's IP + API key. Reliable and documented.
  • Cloud (Prusa Connect) — new OAuth2 login. Click the login link, sign in with your Prusa account, paste the redirect URL back into the form, then pick your printer. Works for remote access.

Other fixes

  • Fixed a RuntimeWarning from async_register_static_paths not being awaited.
  • Removed an erroneous self-import in entity.py.
  • Options flow can now re-authenticate cloud connections.

🤖 Generated with Claude Code