Releases: npolanosky/prusa_home_assistant
Release list
v2.8.1 — Fix cloud print-preview fetch (AttributeError)
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 → Redownload → restart Home Assistant, then hard-refresh the browser.
🤖 Generated with Claude Code
v2.8.0 — Bambu-style card redesign, print thumbnail, blank-entity fix
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
- HACS → Redownload → restart Home Assistant.
- Hard-refresh the browser (Cmd/Ctrl+Shift+R).
- 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)
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
- HACS → Redownload → restart Home Assistant.
- Hard-refresh your browser (Cmd/Ctrl+Shift+R) to drop the old cached page.
- 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
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_prefixand 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
- HACS → Redownload → restart Home Assistant.
- Hard-refresh your browser (Ctrl/Cmd+Shift+R) to clear the old cached card.
- 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
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
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_hotendnow also reads thefan_extruderkey 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_connectand 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
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.
awaitthe static-path registration (removes aRuntimeWarning).
🤖 Generated with Claude Code
v2.4.1 — OAuth2 Cloud Login + Local PrusaLink
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
RuntimeWarningfromasync_register_static_pathsnot being awaited. - Removed an erroneous self-import in entity.py.
- Options flow can now re-authenticate cloud connections.
🤖 Generated with Claude Code