NOTE: This release is now abandoned because of severe limitations that make it not very useful. There will be no support or further changes added. Feel free to use on your own and / or make modifications.
Very early alpha release of Eufy Security. Supporting cameras, doorbells, and stations. Features are rather limited because hubitat does not support UDP sockets or UDP requests with multiple responses. And looks like it's fairly low priority Persistent UDP - Feature Requests - Hubitat .
WARNING: Setting guard mode changes the Eufy app setting, but the actual behavior doesn't change!
Get and set guard mode
Polls the servers every pollIntervalSeconds seconds, where pollIntervalSeconds can be set by the user. Defaults to every 5 minutes.
Tested Devices
HomeBase 2
Doorbell
WARNING: Setting values doesn't work for wireless doorbells connected directly to homebase
Turn on or off
Get battery (wireless doorbell only)
Get and set guard mode
Get and set audio recording setting
Get and set motion detection setting
Get and set dection type setting
Get and set dection sensitivity setting
Get and set snooze
Polls the servers every pollIntervalSeconds seconds, where pollIntervalSeconds can be set by the user. Defaults to every 5 minutes.
Tested Devices
Wired 2k Doorbell
Cameras
WARNING: Setting values doesn't work for cameras connected directly to homebase
Turn on or off
Get battery
Get and set audio recording setting
Get and set motion detection setting
Get and set dection type setting
Get and set dection sensitivity setting
Get and set power mode setting
Get and set record clip length setting
Get and set record retrigger interval setting
Get and set snooze
Polls the servers every pollIntervalSeconds seconds, where pollIntervalSeconds can be set by the user. Defaults to every 5 minutes.
Tested Devices
EufyCam2
I don't have other Eufy devices to test with, but app should work with most of the cameras and doorbells assuming they work similarly. Please let me know if it works for you for other devices not in the tested list.
Debugging / Adding Features
For devices I don't have, will need some help to find out the param types and values in order to support missing features. To help with this please do the following:
On the device enable Log param changes
Click refresh on the app
Open logging for the device
On the eufy app, make a change in the setting you want
Click refresh again on the app and it should log any params that changed. If nothing changed then this is probably a feature that the driver can't support.
Repeat steps 4-5 for various different values in the app (for example for brightness try 0 and 100) and record the logged values. PM or post the logs to me along with the setting you changed in the eufy app and the device type.
I have been PM'ing with Amos as I'm a bit stuck, but perhaps any one else here can help out some?
I've got a HomeBase 2 with a Video Doorbell 2K Battery Powered. Neither device gets found when logging in into the app. Am I missing something? Can understand if the 2K-version might differ, but the HomeBase 2 is the same version both for this and the 1080P one, right?
I have followed Amos' directions, but unsure if it's because of it being so early on in progress or if I'm not tech savvy enough here.
Thought I would try this out and am getting an error when logging in.
Login Error Mon Feb 15 13:15:05 EST 2021 Error requesting two factor auth code: groovy.lang.MissingMethodException: No signature of method: user_app_amosyuen_Eufy_Security_257.apiPOST() is applicable for argument types: (java.lang.String, java.util.LinkedHashMap, java.lang.Boolean) values: [/sms/send/verify_code, [message_type:2], false] Possible solutions: apiUrl()
I am going to test the 2k pan and tilt, and the 2k indoor camera.
So Jost and marcus.soderberg seem to be having the same problem where the get_hub_list and get_devs_list calls do not return any data. Normally the response looks more like:
but your logs show there is no data subfield in the data. Not sure why it isn't returning data for you guys, but possibly one thing might be different countries. I'm based in the US, what countries are you guys in?
Not really sure what needs to change, but a guess is that Europe needs to use a different api url, I submitted an update with some logic to change the api domain at login if the login response suggests a different domain. Could you try:
So I've updated to latest (which is 0.01), unsure what you mean with past? Logged in again and listed devices once more.
Still no devices listed.
Looking through the logs and comparing with the previous screen dump I PM'ed, the only differences is a new token and that the login-info is fully readable (not good, huh?).
Let me know if there is anything more I can do albeit me being not so tech savvy here!
Sorry guys, looks like there was a bug in my code that was reading the domain field from the wrong field. I fixed it in v0.0.2, could you try updating and re-logging in again.
groovy.lang.MissingMethodException: No signature of method: user_app_amosyuen_Eufy_Security_265.makeHttpCallAndHandleCode() is applicable for argument types: (java.lang.String, java.lang.String, java.util.LinkedHashMap, java.lang.Boolean) values: [httpPost, /app/trust_device/add, [verify_code:411184], false]
Two-factor authentication is active, got the code by mail as it should, but get the above error now.