Lumen app icon

Instant Push Notifications for Frigate

Get detection alerts in under 1 second, even when the app is closed

From detection to notification in milliseconds

FrigateDetects object
MQTTPublishes event
RelayYour server
Apple PushAPNs delivery
iPhoneNotification

Frigate publishes detection events to your MQTT broker, but it does not support HTTP webhooks natively. The Lumen Push Relay is a lightweight bridge that subscribes to your MQTT broker, filters events based on your rules, and forwards a small notification payload to Apple's push notification service (APNs) through Lumen's relay endpoint.

The relay runs on your network. Your camera feeds and detection images never leave your server — only a compact notification payload (camera name, object label, zone) is sent to deliver the alert to your device.

Up and running in 3 steps

1

Copy your Push URL from Lumen

Open Lumen on your iPhone or Mac. Go to Settings → Push Notifications → Copy Push URL. This URL is unique to your device and links the relay to your Apple push token.

2

Run the Docker container

On any machine that can reach your MQTT broker (a NAS, Raspberry Pi, or the same server running Frigate):

Docker
docker run -d --name lumen-push-relay \ --restart unless-stopped \ -e MQTT_HOST=192.168.1.50 \ -e PUSH_URL="paste-your-url-from-lumen-app" \ lorislab/lumen-push-relay

Replace 192.168.1.50 with your MQTT broker's IP address, and paste the URL you copied from Lumen.

3

Done

Detection alerts will start arriving on your iPhone immediately. Try walking in front of a camera to test it.

Python setup for advanced users

If you prefer not to use Docker, you can run the relay directly with Python 3.11 or later.

1

Install dependencies

Install the required Python packages:

Terminal
pip install aiomqtt httpx pyyaml
2

Create your configuration file

Create a config.yaml in the same directory as the relay script:

config.yaml
mqtt: host: 192.168.1.50 port: 1883 # username: optional # password: optional push: url: "paste-your-url-from-lumen-app"
3

Run the relay

Start the relay process:

Terminal
python3 relay.py
4

Optional: Run as a systemd service

To keep the relay running after reboot, create a systemd service file:

/etc/systemd/system/lumen-push-relay.service
[Unit] Description=Lumen Push Relay After=network.target mosquitto.service [Service] Type=simple User=lumen WorkingDirectory=/opt/lumen-push-relay ExecStart=/usr/bin/python3 relay.py Restart=always RestartSec=10 [Install] WantedBy=multi-user.target
Terminal
sudo systemctl enable --now lumen-push-relay

Per-camera rules and filtering

Customize which events trigger notifications by adding camera-specific rules to your configuration. This lets you reduce noise without missing important detections.

config.yaml — Advanced example
mqtt: host: 192.168.1.50 port: 1883 push: url: "paste-your-url-from-lumen-app" cameras: front_door: labels: - person - package required_zones: - porch - walkway cooldown: 60 # seconds between alerts driveway: labels: - car - person required_zones: - street schedule: start: "22:00" end: "07:00" # only notify at night cooldown: 120 garden: labels: - person cooldown: 30 # Cameras not listed here will use default # behavior: all labels, all zones, no cooldown

Labels

Only trigger on specific object types. Set labels: [person] to ignore cars, animals, and other objects on a per-camera basis.

Required Zones

Only notify when the detection is inside a specific Frigate zone. Combine with labels for precise control — "person on porch" but not "person on sidewalk."

Schedule & Cooldown

Restrict notifications to specific hours and set a minimum cooldown between alerts to prevent notification fatigue during busy periods.

Common issues and fixes

MQTT broker not reachable

Verify the relay can reach your MQTT broker. Run mosquitto_sub -h 192.168.1.50 -t "frigate/#" from the same machine to confirm connectivity. Check that port 1883 is not blocked by a firewall.

Push URL is invalid or expired

The Push URL contains your device's push token. If you reinstall Lumen or reset notification permissions, the token changes. Go back to Settings → Push Notifications in Lumen and copy a fresh URL.

Frigate is not publishing MQTT events

Make sure MQTT is enabled in your Frigate configuration (mqtt.enabled: true) and that the broker address matches. Check Frigate's logs for MQTT connection errors.

Notifications arrive but with a delay

Ensure the relay is running on a machine with low latency to your MQTT broker (ideally the same network). Apple's APNs delivery is typically under 500ms. If using a VPN or remote relay, network latency adds to the total time.

No notifications on iPhone

Check that notifications are enabled for Lumen in iOS Settings → Notifications → Lumen. Also verify that Focus modes or Do Not Disturb are not silencing alerts.

Frequently asked questions

Why do I need a relay?

Frigate publishes detection events over MQTT but does not support HTTP webhooks or direct push notification delivery. The relay is a small, self-hosted bridge that listens to your MQTT broker and forwards notifications to Apple's push service on behalf of Lumen. It runs entirely on your network.

Is my data secure?

Yes. Your camera feeds and detection images stay on your local network. The relay only sends a small notification payload to Apple — the camera name, object label, and zone. No images, no video, no personally identifiable data leaves your server. The connection to Apple's push service is encrypted with TLS.

Does this work when the app is closed?

Yes — that is the entire point. Push notifications are delivered by iOS at the system level, independent of whether Lumen is running. You will receive alerts on your Lock Screen, in Notification Center, and on your Apple Watch even if Lumen has not been opened in days.

What about battery life?

Push notifications are a native iOS capability with negligible battery impact. Unlike polling or background fetch, APNs uses a single persistent connection managed by iOS itself. The relay has zero effect on your phone's battery.

Can I send notifications to multiple devices?

Yes. Copy the Push URL from each device running Lumen and configure a separate relay instance (or multiple PUSH_URL entries) for each one. Each device has its own unique push token.

Which MQTT brokers are supported?

Any standard MQTT broker works — Mosquitto, EMQX, HiveMQ, or the broker built into Home Assistant. The relay connects as a standard MQTT client.

Ready to get started?

Download Lumen, copy your Push URL, and run the relay. Notifications in under a minute.