# 3D Print Log for Home Assistant

> Bring your printers, prints, loaded filament, maintenance and account totals into Home Assistant with the 3D Print Log integration, and build automations on print events.

HTML version: https://www.3dprintlog.com/docs/home-assistant. Last updated 2026-10-18.

The 3D Print Log integration for Home Assistant brings your printers, prints, loaded filament, maintenance and account totals into Home Assistant, so you can build dashboards and automations on them. You install it through [HACS](https://hacs.xyz), the Home Assistant Community Store. The source is on GitHub: [HoffmanEngineering/3d-print-log-homeassistant](https://github.com/HoffmanEngineering/3d-print-log-homeassistant).

Home Assistant only makes outgoing requests to your 3D Print Log account, so it works on a LAN-only setup with nothing exposed to the internet. Live printer state (temperatures, progress, camera) stays with your printer's own integration, such as Moonraker, OctoPrint, Bambu Lab or PrusaLink. This integration adds the records in 3D Print Log.

### This or the Spoolman integration?

- **One sensor per spool** (weight, length, location): use the community Spoolman integration, as described in [Home Assistant via Spoolman](https://www.3dprintlog.com/docs/home-assistant-spoolman).
- **Printers, prints, what's loaded in each slot, maintenance, account totals, print events and actions**: use this integration.

This integration creates no per-spool entities, so the two can run side by side without duplicates.

### What you need

- Home Assistant 2026.10 or newer.
- A 3D Print Log account.
- [HACS](https://hacs.xyz).
- 3D Print Log API v1.18.0 or later for the extended entities (print time, last maintenance, maintenance due, "not enough filament"). On an older API the integration still works and creates fewer entities. The missing ones appear on their own once the API is updated.

### Install it

1. In HACS, open the menu (top right) and choose **Custom repositories**.
2. Enter `https://github.com/HoffmanEngineering/3d-print-log-homeassistant`, choose the type **Integration**, click **Add** and close the dialog. This only adds the repository to HACS. Nothing is installed yet.
3. Search HACS for **3D Print Log** and open it. Click **Download** (bottom right), then **Download** again in the dialog.
4. Restart Home Assistant (**Settings > System**, then the power button at the top right). The integration can be added only after the restart.

### Create an API key

In 3D Print Log, open **Personal API Keys** from your profile picture (top right), click **Create new API Key**, enter the description **Home Assistant** and submit. Copy the key. It is shown only once.

Use a dedicated key. You can revoke it in 3D Print Log at any time without affecting anything else. For more on keys, see the [API](https://www.3dprintlog.com/docs/api) guide.

### Configure it

1. In Home Assistant, go to **Settings > Devices & services > Add integration**.
2. Choose **3D Print Log** and paste the key.
3. Leave the API URL at its default unless you run your own API.

If the key is rejected later, Home Assistant starts a reauthentication flow. To change how often it checks for new data, open **Settings > Devices & services > 3D Print Log > Configure**. The update interval is 15 to 300 seconds, 30 by default.

### What you get

Each printer is a device, and your account is a separate service device. Slots are numbered from 1, so Slot 1 is the first tool (T0).

| Entity | What it shows |
| --- | --- |
| Connection | Whether the printer's connector reports online |
| Printing | On while a print is in progress |
| Current print | The title of the print in progress, with its source and a link |
| Print started, Print estimated end | Timestamps for the current print |
| Last print result | `success`, `failed`, `canceled` or `partial_success` |
| Slot N filament | The spool loaded in slot N, with material and color |
| Slot N remaining | Grams left on the spool in slot N |
| Slot N not enough filament | On when the running print needs more than the spool has left |
| Maintenance due, Last maintenance | Open maintenance items and the newest completed one |
| Print time | All-time print time on the printer |
| Print | An event entity that fires for each print event |
| Prints this month, Grams this month, Unread notifications | Account totals |

The README lists every attribute: [Entities](https://github.com/HoffmanEngineering/3d-print-log-homeassistant#entities).

### Events

The integration fires an event when a print starts and when it ends. It detects them by comparing each update with the one before it.

| Status | Event |
| --- | --- |
| Started | `printlog_print_started` |
| Succeeded | `printlog_print_finished` |
| Failed, canceled or partly succeeded | `printlog_print_failed` |

Each event carries the printer, the print's title and status, its start and finish times, and a link to it. This automation sends a notification when a print finishes on one printer:

```
triggers:
  - trigger: event
    event_type: printlog_print_finished
    event_data:
      printer_id: 101
actions:
  - action: notify.mobile_app_phone
    data:
      message: "{{ trigger.event.data.title }} is done"
```

Each printer's **Print** event entity fires at the same time, if you prefer a state trigger. The README has the full payload and an example for it.

Because events come from comparing updates, a print shorter than the update interval may fire only its finish event. If two prints on one printer finish between two updates, only the later one is seen. The README lists all the [limits](https://github.com/HoffmanEngineering/3d-print-log-homeassistant#limits).

### Actions

Each action takes an optional `config_entry_id`, needed only if you have more than one 3D Print Log account set up.

- `printlog.adjust_remaining` adds to or removes from a spool's remaining amount, in grams, millimeters or milliliters. Choose the spool by entity, spool id or spool number. It returns the amount before and after.
- `printlog.set_spool_active` marks a spool active or inactive.
- `printlog.log_maintenance` records a completed maintenance entry on a printer.

```
action: printlog.adjust_remaining
data:
  entity_id: sensor.snapmaker_u1_slot_1_remaining
  amount: -12.5
  unit: g
  notes: Purge before the print
```

### Privacy and diagnostics

The API key is sent only in a request header to the API URL you configured. It is never put in a URL, an entity id or a log line.

The diagnostics you can download from the integration's page redact the API key, your display name, and all printer names, print titles, spool names, notes, maintenance text, storage locations and URLs. Printer make and model, materials and time zone stay visible to help with support. The last update error is kept and may include the server's error message.

### Troubleshooting

- **3D Print Log isn't listed under Add integration.** Adding the custom repository doesn't install it. Open 3D Print Log in HACS, click **Download**, then restart Home Assistant. See [Install it](https://www.3dprintlog.com/docs/home-assistant#install).
- **Home Assistant says the key was rejected.** The key was revoked or mistyped. Create a new key as described in [Create an API key](https://www.3dprintlog.com/docs/home-assistant#api-key), then follow the reauthentication prompt.
- **Some entities are missing.** The extended entities need API v1.18.0 or later. If you run your own API, update it and they appear on their own.
- **A print didn't fire an event.** Events come from comparing updates, so very short prints and prints that finish together can be missed. See [Events](https://www.3dprintlog.com/docs/home-assistant#events).
- **An automation on the Print event entity fires when you reload.** Add `not_from: [unavailable, unknown]` to the state trigger, as the README's example does.
- **Something else is wrong.** Download the diagnostics from the integration's page and report the problem at [github.com/HoffmanEngineering/3d-print-log-homeassistant/issues](https://github.com/HoffmanEngineering/3d-print-log-homeassistant/issues). The diagnostics contain no API key, names, titles or notes.

## Related pages

- [Home Assistant](https://www.3dprintlog.com/docs/home-assistant-spoolman.md): See your 3D Print Log spools in Home Assistant, with remaining weight, color, material and a low-filament sensor, using the community Spoolman integration.
- [Spoolman for Klipper](https://www.3dprintlog.com/docs/klipper-spoolman.md): Show your 3D Print Log spools in the Mainsail, Fluidd and KlipperScreen spool pickers and log every print, using Moonraker's Spoolman support with nothing to install.
- [Log prints from Klipper](https://www.3dprintlog.com/docs/printlog-bridge.md): printlog-bridge logs every Klipper and Moonraker print to 3D Print Log by itself, with its outcome, print time, filament per tool, pictures and spools.
- [Printers](https://www.3dprintlog.com/docs/printers.md): Add and manage your 3D printers in 3D Print Log. Track each machine, its prints, and its maintenance history in one place.
- [REST API & Authentication](https://www.3dprintlog.com/docs/api.md): Call the 3D Print Log REST API with a personal API key or an OAuth 2.0 token. Covers authentication, scopes, errors, rate limits, and the OpenAPI reference.

Index of every docs page in Markdown: https://www.3dprintlog.com/docs/llms.txt
