Screenshot a Lovelace dashboard view
dashboards_screenshotCapture a PNG screenshot of a Home Assistant Lovelace dashboard view to visually verify changes after editing.
Instructions
Capture a PNG screenshot of one Lovelace dashboard view via the Puppet add-on engine.
Resolves url_path to a concrete frontend route (see the parameter
description), rejects paths containing unsafe characters, then calls
the Puppet engine (discovered via Supervisor or
NEXUS_SCREENSHOT_ENGINE_URL) over HTTP with the resolved viewport/
zoom/wait parameters and returns its PNG response as base64. Deciding
between a dashboard route and a default-dashboard view path costs one
lovelace/dashboards/list call (skipped when url_path already
starts with lovelace). Reaches only a local/LAN add-on, not the
public internet.
Use when: visually verifying a dashboard or view after editing it.
Returns: {url_path, engine, format: "png", width, height, image_base64, size_bytes} on success — url_path echoes the
resolved route, not the raw argument, and image_base64 can be large,
especially with full_page=True (fixed 4096px height).
Errors: {"error": "dashboard_list_unavailable" | "invalid_path" | "engine_not_available" | "engine_unreachable" | "engine_http_<code>" | "empty_response", "detail": ..., ...} when the dashboard list can't
be fetched, the path is unsafe, the Puppet engine isn't installed/
started, or the engine request itself fails.
Limits: 60-second engine timeout; full_page=True only approximates
full-scroll capture since the engine does not measure actual page
height, so it can crop tall pages or leave blank space on short ones.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| zoom | No | Browser zoom factor applied by the engine. Defaults to 1.0 (no zoom). | |
| width | No | Viewport width in pixels. Defaults to 1280. | |
| height | No | Viewport height in pixels. Ignored when full_page=True. Defaults to 800. | |
| wait_ms | No | Settle time in milliseconds after page load before capturing — increase for heavy chart cards. Defaults to 2500. | |
| url_path | No | Frontend route to capture. A registered dashboard's own url_path (e.g. 'dashboard-porch', optionally with a view path appended: 'dashboard-porch/porch-tests') is used as-is. A path already starting with 'lovelace' (e.g. 'lovelace/0') is also used as-is. Anything else is treated as a view of the default dashboard and gets 'lovelace/' prepended (e.g. 'living-room' -> 'lovelace/living-room'). Omit for the default dashboard's root. | |
| full_page | No | If true, use a fixed 4096px-tall viewport instead of height, approximating a full-scroll capture. Defaults to false. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||