View Eufy camera snapshots, watch live video with optional sound, and browse existing HomeBase recordings in Home Assistant. This is an independent project, not affiliated with Eufy or Anker.
Install · Upgrade · Compatibility and help
You need Home Assistant 2026.9.0 or newer, HACS, and a Eufy account that can see your cameras in the Eufy app.
Install both parts:
- Eufy Security Viewer Bridge connects to your cameras. Run it as a Home Assistant OS app or in Docker on your local network.
- Eufy Security Viewer adds the integration and dashboard cards through HACS. HACS does not install or update the bridge.
Bridge builds are available for 64-bit Intel/AMD and ARM machines. Raspberry Pi hardware validation is still pending. A Eufy cloud recording subscription is not needed for the tested HomeBase recordings. Check compatibility.
Already installed? Follow the upgrade guide instead.
-
Open Settings → Apps → Install app → ⋮ → Repositories and add:
https://github.com/keesmod/ha-eufy-cam -
Install Eufy Security Viewer Bridge.
-
In its configuration, set
tokento a unique random secret of at least 32 characters. Keep it for the next step. This is not your Eufy password. -
Start the app and enable Start on boot.
Using Home Assistant Container or a separate bridge machine? Follow the Docker instructions, then continue below.
- In HACS → ⋮ → Custom repositories, add the same repository URL as an Integration.
- Download Eufy Security Viewer and restart Home Assistant.
- Open Settings → Devices & services → Add integration → Eufy Security Viewer.
- Enter
http://127.0.0.1:8063for the HAOS app on this HA machine, or the bridge address from your Docker setup. Enter the token you saved above. - Sign in with your Eufy email, password and two-letter country code, such as
NL. Complete any verification step and check that your cameras appear.
Detailed installation and troubleshooting
Reload your browser, edit a dashboard and select Add card → Eufy Security Viewer. Pick a camera. Add Eufy Events to browse recordings across cameras. The cards are included with the integration.
Tap a camera to watch live video and enable sound if wanted. Close the viewer when finished. Idle images are the latest received snapshots and may be old. By default the live view opens as a popup and one camera per HomeBase is live at a time. For a surveillance-style view, set the card's live view to Inside the card in the editor, or in YAML:
type: custom:eufy-viewer-card
entity: camera.front_door
live_mode: inlineEach inline card still starts with a tap and stops when you close it or leave
the page. Add live_autostart: true to an inline card to start it without a
tap when the view opens and keep it live while you scroll past it, with pause,
resume and stop controls on the card.
Raise the bridge option live_max_streams_per_station to let more than one
camera on the same HomeBase be live at once. Three concurrent eufyCam 3 are
verified through the bridge on one HomeBase 3, but each stream adds transcoding
load, so on a low-core host without hardware acceleration keep the option at 2
for a browser dashboard. See
card options and
live cameras per HomeBase.
Cards missing or resources managed in YAML?
The current card resource is /eufy_viewer/eufy-viewer-card.js?v=0.8.35.
See manual card setup.
The 0.8.35 integration and bridge 0.8.28 include client 0.21.0,
so a live start without video says in the diagnostics download how far it got.
The 0.8.34 integration and bridge 0.8.27 keep live video running when
a camera changes its frame size mid-stream, where the video sync used to drop
every frame until the card switched to the JPEG fallback.
The 0.8.33 integration and bridge 0.8.26 include client 0.18.1,
which discovers a Video Doorbell C30 that Eufy reports with device type 96.
The 0.8.32 integration and bridge 0.8.25 add FFmpeg's progress
counters from the live encoder to the bridge video row, so a download after
a stalled encoder says whether its decoder, its video sync or the encoder
itself stopped. The 0.8.31 integration and bridge 0.8.24 add a bridge video row per
live attempt and a go2rtc sample at the fallback to the diagnostics download,
so a download after a fallback says where the video stopped. The 0.8.30
integration shows each camera's battery level next to its
name on the card, with an icon whose fill and colour follow the level. The
0.8.29 integration adds the browser's decoder name and its freeze,
pause, decode and assembly counters to every live playback sample in the
diagnostics download. The 0.8.28 integration and bridge 0.8.23 keep live diagnostics for the
bridge's session cap plus fifteen minutes, so a long session is still in a
download taken after its end, and the option live_max_seconds_mains is
verified on a mains powered camera. The 0.8.27 integration lets the Home
Assistant viewer follow the bridge's longer session cap for a camera without a
battery value. The 0.8.26 integration and bridge 0.8.22 bring client
0.14.0: with live_max_streams_per_station above 1 the HomeBase's primary
session stays free, so guard mode commands and snapshots work while cameras
are live, and the bridge option live_max_seconds_mains (120 to 3600 seconds,
default 120) raises the live session cap only for cameras without a battery
value. Battery cameras keep two minutes. 0.8.25 keeps an inline card with live_autostart: true live while
it is scrolled out of view, 0.8.24 moved the inline live controls below the
video on narrow cards, and 0.8.23 added live_mode: inline and the optional
live_autostart: true. Update the integration to 0.8.35 and the bridge to
0.8.28, then refresh the dashboard.
See the release notes
for changes and any version-specific instructions.
Upgrading from before 0.8.0? Follow the migration and recovery instructions before updating the bridge. These cover the removal of the old backend and the required integration-first preparation.
For installations already on 0.8.0 or newer:
- Close live viewers and recordings. Back up Home Assistant and the bridge's private data.
- Update Eufy Security Viewer in HACS and restart Home Assistant.
- If your bridge is older than 0.8.22, update Eufy Security Viewer Bridge through the HA app store, or follow the Docker update steps.
- Reload your dashboard and check snapshots, live video, recordings and events. If you manage card resources in YAML, use the current resource URL above.
Keep your existing integration, token, bridge data and backup. Do not run two bridges for the same installation at once.
You can upgrade without us having tested your exact camera. Available functions still depend on the model and connection. See known results and limitations.
- Live video falls back without sound? Download the integration diagnostics after one attempt. See live playback diagnostics.
- Recording or player error? Use Download diagnostics at the error or in the integration menu. See the playback report.
- Missing devices or failed setup? Collect a complete diagnostic report.
- Something does not work? Check troubleshooting. For live video or sound, see playback and connection requirements.
- Share your experience: report working or failing features. Partial results help. Reporting is voluntary.
- An existing issue matches your problem? Add your results there. Otherwise, report a bug. Remove private information before sharing logs.
For more detail: events and notifications, playback and recovery, development, and release process.
