-
-
Notifications
You must be signed in to change notification settings - Fork 3
Notify Integration with Live Activities
Printbuddy can send notifications through Notify and, when enabled, maintain an iOS-style Live Activity for active prints.
This is useful when you want a print to stay visible on your iPhone Lock Screen or Dynamic Island without opening the Printbuddy dashboard. Instead of sending only one-off push messages, Printbuddy creates a Live Activity at print start, updates it while the job runs, and ends it when the print completes, fails, or is stopped.
The Notify integration supports two related notification modes:
| Mode | What it does |
|---|---|
| Normal Notify push | Sends regular Notify push notifications for selected Printbuddy events. |
| Notify Live Activities | Creates and updates a persistent iOS Live Activity for running prints. |
Live Activities can show:
- printer name
- current print filename
- print progress percentage
- current layer / total layers, when available
- remaining time / ETA, when available
- paused state
- completed, failed, or stopped final state
Printbuddy handles the Live Activity lifecycle itself. No separate sidecar container is required.
You need:
- A working Printbuddy installation.
- At least one configured printer.
- The Notify app / gateway credentials:
Device IDDevice Token
- Network access from the Printbuddy container/server to the Notify gateway.
The default gateway URL is:
https://push.getnotifyapp.com
Only change it if you know you are using a different compatible Notify gateway.
In Printbuddy, open the notification provider settings and add a new provider.
Use:
Provider type: Notify
Fill in:
| Field | Required | Notes |
|---|---|---|
| Name | Yes | A readable name, for example iPhone Notify. |
| Device ID | Yes | The Notify device ID. |
| Device Token | Yes | The Notify device token. Keep this private. |
| Gateway URL | No | Defaults to https://push.getnotifyapp.com. |
| Live Activities | No | Set to Enabled if you want Lock Screen / Dynamic Island tracking. |
| Dynamic Island Display | No | Choose whether the compact display prefers progress/layer or time remaining. |
| Advanced Options: Use native countdown on tile | No | Optional. Can make the tile look busier depending on print duration. |
| Live Activity Keepalive Seconds | No | Default is 60. Controls reconciliation/update pacing. |
| Keep Final Tile Seconds | No | Default is 300. Controls how long the final state remains after ending. |
After saving, use the provider test action to confirm that normal Notify delivery works before relying on Live Activities.
For most users, start with:
Live Activities: Enabled
Dynamic Island Display: Percent / layer
Use native countdown on tile: Disabled
Live Activity Keepalive Seconds: 60
Keep Final Tile Seconds: 300
This keeps the compact display readable and avoids making the Dynamic Island too noisy.
Use Time remaining only if you prefer ETA-style display over progress/layer status.
Live Activity lifecycle handling is separate from normal one-off notification toggles.
That matters because a Live Activity must be started, updated, and ended cleanly even when you do not want a normal push notification for every event.
Printbuddy will:
- Create a Live Activity when a print starts.
- Update it during progress changes and reconciliation/keepalive checks.
- Show paused state when the printer reports pause/paused.
- End it when the print completes, fails, is cancelled, or is stopped.
- Keep the final tile for the configured
Keep Final Tile Secondsvalue.
Quiet hours and normal notification preferences should not be treated as a reason to skip required Live Activity cleanup. Ending the tile is lifecycle cleanup, not a marketing notification.
Notify providers support the same printer filter behavior as other notification providers.
Use Printer Filter to choose:
| Option | Meaning |
|---|---|
| All printers | This provider applies to events from every printer. |
| Selected printers | This provider only applies to the checked printers. |
For example:
- one Notify provider for your main phone and all printers
- another Notify provider for a shared workshop device, scoped only to production printers
- separate providers for different rooms, racks, or users
If you choose Selected printers, select at least one printer before saving.
Printbuddy builds the tile content from live printer state.
Typical running display:
Title: Bambu Lab P1S
Body: 42% · L188/511 · Gridfinity Tray
Status: 42% · L188/511
If remaining time is available, the tile can also show a time value such as:
1:24
Paused prints are marked clearly:
Paused · 42%
Final states are shown as:
Completed
Failed
Stopped
Long filenames are shortened so the tile stays readable.
Printbuddy stores Live Activity state in its database and binds it to the active printer/print identity.
The lifecycle manager tracks:
- provider ID
- printer ID
- activity ID
- print identity / subtask ID when available
- filename fallback
- last progress
- last known layer information
- activity state and timestamps
Before creating a new tile for the same provider/printer, Printbuddy ends or reuses existing active state where appropriate. This helps avoid duplicate Lock Screen tiles during restarts, progress recovery, or back-to-back prints.
If a previous activity has expired or Notify reports it as gone, Printbuddy can replace it during reconciliation.
Check:
- Device ID is correct.
- Device Token is correct.
- Gateway URL is reachable from the Printbuddy host/container.
- The provider is enabled.
- There is no proxy/firewall rule blocking outbound HTTPS.
For Docker installs, check container logs:
docker logs -f printbuddy 2>&1 | grep -iE "notify|live activity|notification"For Docker Compose installs:
docker compose logs -f printbuddy | grep -iE "notify|live activity|notification"Check:
-
Live Activitiesis set toEnabledon the Notify provider. - The provider is enabled.
- The print event comes from a printer included by the provider's printer filter.
- A print has actually started after enabling the feature.
- The iPhone/Notify side allows Live Activities.
Also check the Printbuddy logs for Live Activity messages:
docker logs --since 2h printbuddy 2>&1 \
| grep -iE "notify live activity|live activity|activity" \
| tail -200Useful log meanings:
| Log clue | Meaning |
|---|---|
already active / reusing existing activity
|
Printbuddy found an existing tile and avoided a duplicate. |
created from progress update |
Printbuddy recovered/created a tile during progress reconciliation. |
replaced expired activity |
The old activity was considered expired/gone and was replaced. |
update failed with HTTP 410
|
Notify/iOS reported the activity as gone or expired. |
start failed |
Printbuddy could not create the Live Activity. Check credentials/gateway. |
Check three layers before changing anything:
- Printbuddy logs
- Printbuddy persisted Live Activity database rows
- Notify gateway / iOS state
Start with logs:
docker logs --since 2h printbuddy 2>&1 \
| grep -iE "notify live activity|live activity|activity" \
| tail -300Then inspect the database rows if needed. Inside the container, find the database:
docker exec printbuddy sh -lc 'find /app/data -maxdepth 3 -type f \( -name "*.db" -o -name "*.sqlite" -o -name "*.sqlite3" \) -print'Then query the Live Activity table, adjusting the database path if required:
docker exec printbuddy sh -lc '
DB=$(find /app/data -maxdepth 3 -type f \( -name "*.db" -o -name "*.sqlite" -o -name "*.sqlite3" \) | head -1)
echo "DB=$DB"
sqlite3 "$DB" "
.headers on
.mode column
SELECT id, provider_id, printer_id, activity_id, subtask_id, filename, state,
last_progress, last_layer_num, last_total_layers, created_at, updated_at,
ended_at, expires_at
FROM notification_live_activities
ORDER BY id DESC
LIMIT 30;
"
'For the same print, a healthy state should usually show one active row for the current provider/printer/print and older rows ended.
If Notify shows only one active activity but iOS still shows more than one tile, the duplicate may be stale local iOS/Notify presentation state rather than Printbuddy creating multiple active activities.
- Treat the Notify device token like a password.
- Do not paste full tokens into public bug reports, screenshots, logs, or GitHub issues.
- If you need to share troubleshooting output, redact tokens and shorten activity IDs.
- Printbuddy redacts Notify tokens from Live Activity client errors where possible, but logs and screenshots should still be handled carefully.
Use one Notify provider per receiving device or audience.
For a simple single-user setup:
Name: iPhone Notify
Provider type: Notify
Printer Filter: All printers
Live Activities: Enabled
Dynamic Island Display: Percent / layer
Use native countdown on tile: Disabled
Keep Final Tile Seconds: 300
For print farms or shared spaces, prefer scoped providers:
Workshop iPad: Selected printers → Rack A
Owner iPhone: All printers
Operator phone: Selected printers → Production printers only
That keeps notifications useful instead of noisy. Clean signal, less spam — exactly how this should be built.
- Add a Printer
- Bambu Lab Setup
- Klipper / Moonraker Setup
- PrusaLink Setup
- Camera Setup
- Network & Firewall
- Dashboard
- Print Archive
- Printer Management
- Farm Command Center
- Notify integration with Live Activities
- Inventory & Spool Creation
- Filename-Based Spool Tracking
- Virtual Printer
- Queue / Review / Proxy Modes
- Backups