Cameras from eufy Security have deservedly come under scrutiny in the past months. I was caught between a rock and a hard place when debating whether to write this guide on how to integrate eufy Security cameras and doorbells with Home Assistant. On the one hand, I don’t recommend anyone use or even consider eufy products any more, as their reaction to the massive security breach (or bug, as they called it) was, and still is, unsatisfactory. On the other hand, I do want to inform those that absolutely insist on using them about the possibility of integrating them with Home Assistant.
Added to that, I unfortunately still have an eufy Solo IndoorCam (the cameras seems to have undergone a rebranding from Indoor Cam Pan&Tilt) in use. Replacing it would currently be an unnecessarily added cost at this moment. I can imagine that I am not the only user of Home Assistant currently in this situation.
With that in mind, you are free to follow this guide, but I do not recommend you purchase any eufy Security products just to set up this integration. There are plenty of alternatives on the market, many of them featuring a setup just as easy as eufy’s. One brand that gets frequently recommended in the Home Assistant community is Reolink. I, personally, have no experience using their security cameras, but many others have, and have continued using their products.
Preparation: Installing eufy-security-ws
For those wondering, there unfortunately doesn’t appear to be an easy way of adding the eufy-security-ws application, which I will be using in this guide, to a supervised Home Assistant setup or one using the Home Assistant Operating System. Currently, there is no add-on available and the only way of installing it is by setting up a Docker container or by using a npm (Node Package Manager) package. I went the former route and set up the Docker container on my Unraid server.
Developer Aaron Bach is working on an improved eufy integration with Home Assistant, with one of the goals being to publish it as an add-on. However, there is currently no release date and as the developer is using their free time to make it happen, it would be unfair to make demands. This upcoming integration will once again be a custom component, without any financial incentives.
The installation is rather straightforward, and if you opt for the Docker container, you will only need to configure a port, persistent directory, and enter your username and password. Once started, the log message
push notification connection successfully established will indicate that your account has successfully been connected.
Advantages of using eufy-security-ws
The eufy-security-ws application is a wrapper for the eufy-security-client library, with both being developed by bropat. The eufy-security-client library allows for communication with the unofficial eufy Security API. Using the unofficial API has several advantages compared to other solutions such as the Eufy Home Assistant MQTT Bridge:
- The eufy-security-ws library connects to Eufy cloud and supports 2FA. Despite that, it can use P2P communication to connect to devices. It can also get information and parameters from devices over HTTPS and/or P2P.
- It supports receiving push notification.
- Depending on the device, it allows you to toggle auto night vision, the LED, the anti-theft detection, motion, pet, and sound detection, and the RTSP stream.
- The eufy-security-ws library also provides the option to change the video watermark settings, start or cancel video downloads, send quick responses to doorbells, and lock or unlock smart lock devices.
All of these features sound great. However, the integration with Home Assistant relies on the eufy_security component developed by fuatakgun (more on that in a second) and not all features have been implemented so far. For example, despite being capable of detecting crying, my eufy Solo IndoorCam does not display a binary sensor for that function in Home Assistant.
Known working eufy devices
A list of eufy devices that have been confirmed to be working can be found in the GitHub repository. These include the eufy HomeBase, HomeBase E, and HomeBase 2, wired and battery-powered doorbells, the eufy IndoorCam, and eufyCam. The Smart Lock Front Door and a number of sensors can also be integrated.
Adding eufy_security to Home Assistant
Once eufy-security-ws is up and running, the eufy_security can be added to Home Assistant. The easiest way of doing this is (you guessed it) by using HACS. Simply copy and paste the repositories URL
https://github.com/fuatakgun/eufy_security in to HACS and install the component. Once installed, you will need to restart Home Assistant.
Configuring the eufy custom component
Once the custom component has been installed, navigate to the integrations’ section of the configuration and add a new integration. Searching for “eufy” should bring up the newly added custom component.
There are only two bits of information you have to provide: The first is the IP address of the server on which eufy-security-ws is running, the second is the application’s port. Keep in mind that you do not need to enter the IP address of any devices, and a single setup will add all the eufy devices linked to the account you configured in eufy-security-ws.
Controlling the eufy security cameras in Home Assistant
With your eufy security cameras added to Home Assistant, you might want to display them in your Lovelace dashboard, perhaps using the WebRTC custom component. As I did, you might be wondering why no image is being shown, after having embedded the cameras. This isn’t an error but a feature: Due to some devices being battery-powered, the stream is deactivated by default. One solution is to add some controls to the dashboard. The developer of the plugin has posted the configuration for a couple of buttons to control the camera in the Home Assistant community. I, personally, have set my camera to always stream, as it powered using a USB cable.