Skip to content

Repository files navigation

Eufy Security Viewer

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

Home Assistant dashboard with Eufy recordings, private areas obscured

Before you start

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.

Installation

Already installed? Follow the upgrade guide instead.

1. Install the bridge on Home Assistant OS

  1. Open Settings → Apps → Install app → ⋮ → Repositories and add:

    https://github.com/keesmod/ha-eufy-cam
    
  2. Install Eufy Security Viewer Bridge.

  3. In its configuration, set token to a unique random secret of at least 32 characters. Keep it for the next step. This is not your Eufy password.

  4. Start the app and enable Start on boot.

Using Home Assistant Container or a separate bridge machine? Follow the Docker instructions, then continue below.

2. Install and connect the HACS integration

  1. In HACS → ⋮ → Custom repositories, add the same repository URL as an Integration.
  2. Download Eufy Security Viewer and restart Home Assistant.
  3. Open Settings → Devices & services → Add integration → Eufy Security Viewer.
  4. Enter http://127.0.0.1:8063 for the HAOS app on this HA machine, or the bridge address from your Docker setup. Enter the token you saved above.
  5. 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

3. Add the dashboard cards

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: inline

Each 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.

Upgrading

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:

  1. Close live viewers and recordings. Back up Home Assistant and the bridge's private data.
  2. Update Eufy Security Viewer in HACS and restart Home Assistant.
  3. 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.
  4. 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.

Compatibility and help

You can upgrade without us having tested your exact camera. Available functions still depend on the model and connection. See known results and limitations.

For more detail: events and notifications, playback and recovery, development, and release process.

About

Browse and play existing Eufy HomeBase recordings in Home Assistant. Events timeline, snapshots and on-demand WebRTC video/audio. HACS integration + local bridge.

Topics

Resources

Stars

8 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages