Caution
READ THIS BEFORE UPDATING
This is not an update to the plugin you already have. It is a new plugin that replaces it.
1. Check your Homebridge and Node versions first
You need Homebridge 2 and Node.js 24.5.0 or newer. On anything older this plugin simply will
not start.
2. Your current cameras and sensors will not carry over
The new plugin creates its own accessories in the Home app. The ones you have now stay behind as
"not responding" and you delete them yourself.
3. You will have to redo your rooms, names and automations
Once. Any automation using a eufy camera, sensor, lock or light will need to be pointed at the new
accessory. Take a screenshot of your automations before you start.
4. Your existing eufy settings are not reused
You set the plugin up again from scratch: log in, and configure it in the Homebridge UI.
5. Back up before you touch anything
In the Homebridge UI: Backup / Restore → Download Backup.
6. If your home depends on this working, wait a little
Version 4.7.2 still works today and is not going anywhere. Try this beta somewhere a camera going
dark is annoying rather than a problem.
But read the next point before deciding to stay on it.
7. Version 4.x is no longer being worked on
All maintenance from here goes to 5.x only. No fixes, no new devices, no eufy changes followed on
4.x — it is frozen at 4.7.2 and stays installable, nothing more. If eufy changes something on their
side that breaks 4.x, it will not be repaired.
So staying on 4.x is fine for now, and it is not a long-term plan.
What changed since 5.0.0-beta.5
Cameras behind a HomeBase get a real chance to start. If a camera lives on a HomeBase and its base was
not already connected, the plugin gave up after 10 seconds — while reaching a base can legitimately take
20. So it gave up, the Home app tried again, that attempt gave up too, and each abandoned try kept holding
the one channel the base has for video. A base treated that way never finishes starting anything. The
plugin now waits long enough for the base to be reached, and when it does stop waiting it properly cancels,
so the channel is handed back instead of held.
If this was your problem, your cameras should simply work. If it was not, you now get a different and more
honest error instead of the same timeout, which is what tells us where to look next.
A camera that is off or unreachable now says so. Before, the 10-second cutoff fired before the plugin
had heard back, so every one of these was reported as a timeout. You may now see the live view spin for
about 20 seconds before failing on a camera that genuinely cannot send video — that wait is the plugin
listening for the real answer rather than inventing one. Check that camera in the eufy app.
Reports about a multi-camera home are readable at last. Three fixes that only matter when something
goes wrong:
- Every camera record in a diagnostics archive now says which camera it is about, using a per-report
codename. Two archives from a 14-camera home had 19 failed sessions with no way to tell them apart. - A session ending now says whether your Apple TV or iPhone closed it, or whether it failed. They look
identical on screen and used to look identical in the log. - A base that was busy serving another of its cameras is recorded as exactly that, instead of as a
generic error. It is not a fault, and it no longer reads like one.
Your device serial numbers no longer travel in a diagnostics archive. When you named the affected
cameras, their serials went into the file. The archive now records how many you named, and not which.
And the archives you already sent can finally be opened. The tool that reads them rejected every
archive that contained the "affected devices" answer — which is every archive since beta.4. If a report of
yours went unanswered, that is likely why, and it was not your file.
Not in this release, deliberately. A change to how live video is encoded looked like a win on paper and
was tested on real cameras: it halved the encoding work and changed nothing about keeping up with the
stream, while making the picture visibly jump. It was removed and the reason recorded, so nobody spends
that afternoon twice.
Why a new plugin at all
The old plugin talked to eufy through a library that is no longer maintained, and eufy changed how its
app talks to their servers. Rather than patch around that, the whole foundation was rebuilt against how
the current eufy app actually behaves.
That is why this took a while, and why it is a fresh start instead of an upgrade.
What happens to 4.x
It stays on npm and keeps working for as long as eufy's side lets it. It is not maintained: no bug
fixes, no support for new devices, and no work to follow changes eufy makes.
Everything from here — fixes, devices, features — happens on 5.x. That is the whole reason the rewrite
exists, and keeping two plugins alive would slow it down for everybody.
You do not need to move today. You will need to move.
What you get in the Home app
- Cameras — live video and audio, snapshots, two-way talk, and HomeKit Secure Video recording
- Doorbells — the doorbell press
- Motion sensors
- Contact sensors — door and window open/closed
- Locks
- Security modes — home, away, off
- Sirens
- Smart lights
- Battery level and charging
Logging in handles captcha and two-factor codes. You stay logged in across Homebridge restarts.
Why you might see less than that list
The plugin only adds something to the Home app when your device actually reports it. Devices differ, even
within the same product range — two cameras that look the same can report different things.
So a device can show up in the plugin's dashboard without appearing in the Home app yet. That is not a
crash, and it is worth telling us about.
When the plugin is unsure what a setting means, it deliberately shows nothing rather than guessing. A
switch that does the wrong thing is worse than a switch that is not there.
Things you will notice
- A switch or lock can take a moment to settle. The plugin waits for the device to confirm what it
actually did instead of assuming the command worked. - Some devices appear with fewer controls than the eufy app shows. That is the point above, not a bug.
Something not working? Use the built-in diagnostics
Do this before opening an issue — it does most of the work for you.
In the Homebridge UI, open this plugin's settings, find the device that is misbehaving, and click
Run diagnostics.
It then walks you through it:
- It asks a few questions about what is wrong and picks the matching profile.
- It tells you exactly what to do to make the fault happen again, and what to check first.
- You click Start diagnostics session and reproduce the problem while it watches.
- It shows you a manifest of everything it collected, and what it always leaves out.
- You click Download encrypted archive — the file stays on your machine. Nothing is uploaded.
Attach that file to your issue, or share it with a maintainer. It carries what we need and not your
serial numbers, addresses or login details.
Some devices show Diagnostic only with a note saying "Nothing is wrong with your setup and there is
nothing here to fix." That is the case described above — the device is recognized, but its main function
does not have a verified representation yet. No need to report those unless you can help test one.
Still stuck?
Open an issue: https://github.com/homebridge-plugins/homebridge-eufy/issues
Tell us which eufy devices you own and what you expected to see, and attach the diagnostics archive if
you were able to create one.
Did you report something before and get closed automatically? That was leftover automation from when
the project was on hold. It is now removed for real — it had still been running from a branch we had missed.
Please open your report again; it stays open and it gets read.
Thank you
Wingers — for testing build after build on real devices, chasing the problems that only show up
sometimes, and sending the logs that turned guesses into fixes.
And max246, lenoxys and martijnpoppen.