A Home Assistant custom integration for monitoring Snapmaker 3D printers.
The integration discovers your Snapmaker printer on the local network via UDP broadcast and polls its API to expose live print status as Home Assistant entities.
| Sensor | Description |
|---|---|
| State | Printer status: OFFLINE, IDLE, RUNNING, or PAUSED |
| IP | Current IP address of the printer |
| Progress | Print progress (%) |
| Elapsed Time | Time elapsed since the print started (minutes) |
| Remaining Time | Estimated time remaining (minutes) |
| Tool Head | Active tool head attached to the printer |
| Nozzle Temperature 1 | Current temperature of nozzle 1 (°C) |
| Nozzle Temperature 2 | Current temperature of nozzle 2 (°C) |
| Nozzle Target Temperature 1 | Target temperature of nozzle 1 (°C) |
| Nozzle Target Temperature 2 | Target temperature of nozzle 2 (°C) |
| Heated Bed Temperature | Current heated bed temperature (°C) |
| Heated Bed Target Temperature | Target heated bed temperature (°C) |
| File Name | Name of the file currently being printed |
| Binary Sensor | Description |
|---|---|
| Filament Out | On when filament runout is detected |
| Homed | On when the printer has been homed |
The Tool Head, temperature sensors, File Name, and the binary sensors are only available while the printer is actively printing (
RUNNING).
- Home Assistant 2023.1.0 or newer
- Snapmaker printer on the same local network as Home Assistant
- The Snapmaker printer must be reachable via UDP broadcast on port
20054
- Open HACS in Home Assistant.
- Go to Integrations → click the three-dot menu → Custom repositories.
- Add
https://github.com/CrunkA3/ha-integration-snapmakeras an Integration. - Search for Snapmaker and install it.
- Restart Home Assistant.
- Copy the
custom_components/snapmakerdirectory into your Home Assistantconfig/custom_components/folder. - Restart Home Assistant.
- Go to Settings → Devices & Services → Add Integration.
- Search for Snapmaker.
- Enter the device name you want to use to identify your printer in Home Assistant (minimum 3 characters).
- Click Submit.
The integration will begin discovering your printer automatically via UDP broadcast on the local network and poll it every 30 seconds.
- Discovery – Every 30 seconds the integration sends a UDP broadcast (
discover) to port20054. The printer responds with its name, IP address, model, and current status. - API polling – When the printer status is
RUNNING, the integration connects to the Snapmaker HTTP API (http://<printer_ip>:8080/api/v1/) to retrieve detailed print status including temperatures, progress, elapsed/remaining time, and more. - Offline detection – If the printer does not respond to four consecutive discovery attempts, its status is set to
OFFLINE.
Please report bugs or feature requests via GitHub Issues.
