Flux Guide ← All widgets
Widget

Camera

A live camera tile. Streams any Home Assistant camera (HLS, WebRTC, MJPEG or polled snapshots) or an Apple Home camera through HomeKit, with a tap-to-expand full-screen viewer, optional pan/tilt/zoom, clip recording, and motion or doorbell alerts that pop up on your dashboard.

What it does

The camera widget fills its tile with a live feed. Tap the tile to open a full-screen viewer; tap the feed again to shrink it back down. Flux picks the best stream method automatically, and every state — loading spinner, live image, or error — fills the same frame so the tile never jumps size when the feed connects.

Home Assistant and Apple Home A normal HA camera streams over URLs (HLS / WebRTC / MJPEG / snapshot). An Apple Home camera (entity id contains ahk_) streams through HomeKit's own APIs instead — tiles poll snapshots and full screen starts the live HomeKit stream. Apple Home cameras have no recording or PTZ APIs, so those controls don't appear for them.

Add it

  1. Enter edit mode, tap Add Widget, choose Camera.
  2. Pick the camera entity.
  3. Open the widget's inspector (tap the widget while editing) to set the stream method, fit, motion/doorbell alerts, PTZ, and recording.

Live feed & snapshots

The Stream setting controls how the feed is delivered:

Self-healing feeds Long-lived tiles watch their own playback. An HLS stream that stalls (segment expiry, a network blip, backgrounding) is rebuilt automatically; an MJPEG stream that delivers no frame for 8 seconds reconnects. A tile that started before the connection was up keeps retrying instead of freezing on a blank frame.

Full-screen viewer

Tapping a tile opens the camera full screen on a black background. The viewer shows a Record button (HA cameras only), a close button, and — when enabled — on-screen PTZ controls. Tapping the feed itself closes the viewer. The same viewer is what opens when you tap a motion pop-up.

Motion & doorbell alerts

A camera can watch a trigger entity and surface an in-app pop-up and/or a local notification when it fires. Flux polls the configured cameras once a second from the main screen.

The pop-up shows the camera name, a live preview of the feed, and an Open button; tapping the preview or Open expands it to the full-screen viewer. Only one pop-up shows at a time.

Pan / tilt / zoom

Enable Pan / tilt / zoom controls to overlay a directional pad and zoom buttons in the full-screen viewer. Each press calls your camera's PTZ service (default onvif.ptz) with ONVIF-style directions — pan LEFT/RIGHT, tilt UP/DOWN, zoom ZOOM_IN/ZOOM_OUT — targeted at the camera entity.

Recordings

The Record button in the full-screen viewer (and the "Record a clip" tap action) calls Home Assistant's camera.record service. The clip records for the set duration, stops automatically, and saves into your Home Assistant's /media/recordings.

Play saved clips with the View recordings tap action, or from Settings › Media.

Settings

OptionWhat it does
StreamDelivery method: Auto (best available), HLS (smooth), WebRTC (low latency), MJPEG, or Snapshot (still).
FitFill crops the feed to fill the tile; Fit shows the whole frame letterboxed.
TriggerMotion or Doorbell — sets the alert wording/icon and which sensor is auto-wired.
Motion sensor / Doorbell entityThe trigger entity. Leave unset to auto-detect a matching binary_sensor on the camera's device.
Notify on triggerSend a local notification (with sound) when the camera triggers.
Pop-upIn-app alert scope: Off, Only on this dashboard, or Any screen.
Pan / tilt / zoom controlsShow PTZ controls in full screen.
PTZ serviceThe domain.service called for PTZ moves (default onvif.ptz). Shown only when PTZ is enabled.
Record durationClip length in seconds (5–600) for camera.record.
Recording file pathTemplated destination for clips (default /media/recordings/{{ entity_id }}.mp4).
A camera under other widgets stays tappable The video layer is purely visual and never grabs touches, so widgets stacked on top of a camera still respond to taps. Camera taps are handled by the widget's own gesture.