Eufy Security Integration

I still haven’t been able to get my camera out of idle?

I have probably answered this somewhere here on GitHub and integration has nothing to do on generating the image, it is coming from add on. So, if you have doubts on this, I am more than open for any contribution, please help.

Hi I updated the intergration after a year of use with no problems now i have this

and a notification:

Error: <Task finished name=‘Task-4501’ coro=<WebSocketClient._process_messages() done, defined at /config/custom_components/eufy_security/eufy_security_api/web_socket_client.py:62> result=None>

tried reinstalling and just get the same thing, is this being experienced by anybody else?

2 of the 3 rtsp streams work but they battery camera doesnt (thats doesnt have rtsp though)

EDIT: I’ve restored a backup from a couple of days ago and whiole the integration looks error free the entities of all the cameras and base station 2 are all unavailable, the rtsp stream on the powered cameras wrk but the battery one doesnt, though it was yesterday.

I had this all working then it stopped a couple of weeks ago.
Today I uninstalled all eufy components then installed:

  1. eufy-security-ws addon (1.6.0)
  2. Eufy Security integration (6.3.3)

Now when I click “Reconfigure” on the integration after HA reboots I get the following message:

Translation Error: The intl string context variable “captcha_img” was not provided to the string “{captcha_img}”

I think I finally worked it out!
I have MFA/2FA turned ON.
If you have MFA/2FA turned on then you don’t get a capture image, thus the error “captcha_img” was not provided
What you get instead is an email with a 6 digit code. Enter that code into the field and it works!

The error text above the field doesn’t say anything about MFA/2FA which makes it confusing.

Indeed you have, but how can I identify where the issue is coming from?

Basically you’re saying, it’s not my piece of software but the underlying library, which is fine, but I can see in the logs of eufy-security-ws a constant change of the “hidden-pictureUrl”, where do I see that the URL is recognized by the integration and that the picture is updated?

The only thing I see is
2023-08-03 14:48:02.838 DEBUG (MainThread) [custom_components.eufy_security] image 1 - False - None
2023-08-03 14:48:02.839 DEBUG (MainThread) [custom_components.eufy_security] async_camera_image 5 - is_empty False
2023-08-03 14:48:02.839 DEBUG (MainThread) [custom_components.eufy_security] async_camera_image 6 - 13216

Is this connected to the hiddenImageURL, or is this unrelated? If not, would you be able to please add debugging information?

The current state renders my system mostly unusuable, and I have to downgrade to 2.5.0 again, that’s the last version where it works.

Thanks!

I never said that it is not my piece of software I am just asking you to bring to bropat’s attention as I can do nothing on it. You prefer to challenge it and I totally respect but what do you need further from me?

I can do nothing on it, because;

  • I have very little knowledge about downstream library, other than using it.
  • I have very little experience on nodejs.

can you please raise on issue on this?
If I understood correctly, while entering 2fa information, you receive this warning but it is not blocking you, right?

Just released a new integration version (7.0.0);

  • creating new image entity to hold latest notification picture
  • camera entity will be created by latest notification picture and hold latest captured snapshot from stream, will not be overridden by latest notification picture
  • hoping to fix 2FA translation issue
2 Likes

I’m sorry if I misphrased what you said regarding which portion of the tool-chain is responsible. The new handling of the images in the integration clarified it for me, splitting the “notification picture” from the “last captured snapshot from stream”.

It now is crystal clear that the notification picture is not updating, whereas the snapshot works as designed. This makes a lot of sense. I will bring up the notification picture issue with bropat.

Thanks for your work on this, very much appreciated!

1 Like

In old times, notification based event picture was working very well, so there was no stream based capturing. All pictures were served through publicly accessible url (incident).

Later on, eufy introduced encryption on everything after the incident, and we have waited for very long time to get the event picture, so i introduced stream based snapshot capturing.

When bropat successfully found a way to decrypt the pictures, he started serving this pictures through add-on, not the encrypted url but raw bytes, i removed the capturing hoping that it would solve all issues.

There are some users out there having issues with final solution, so i reintroduced snapshot and separated the notification picture. Hopefully, this will help everyone to move forward.

If you face any issues with notification based pictures, there is very little i can do, i would mostly forward you to bropat.

1 Like

Thanks! Weirdly though the camera entity now shows the last image (which is great, this is as it used to before encryption gate at Eufy) and your newly created image entity shows the old one (latest image since last reboot of the addon) but with the right date/time of the last action.

Either way, I’m happy with the result. Let’s see what eufy has up their sleeves the coming months to wreck our set up - impressed that both you and bropat find the motivation to keep going, it continues to prevent me from throwing out eufy :grin:

1 Like

Just updated to v7.0.1, guard modes for all devices are now working!
Thanks heaps!!

1 Like

So, under the hood, we rely on current mode to find out actual mode of alarm station but it is not arriving so I fell back to guard mode. Happy to see that it is working for you and let’s see what will be broken

1 Like

Good news and bad news. You’re correct, status are working for all devices, but changing guard modes are not working on my Eufycam Solo device, I’ve got a workaround for now. Thank you anyways!

was it working before? 7.0.0 or 7.0.1?

I know this is a stupid question, but how do I send the last event as a notification to my phone now? I originally had it as an attachment in Node Red

“image”: “/api/camera_proxy/camera.zvonek”,

but now it’s Event Image in my case: image.zvonek_event_image
and I don’t know how to add it as an attachment image

No, it is not a stupid question, actually it is a miss from my side, i haven’t checked the support level for image entity. Let me think about it

After further tests, I see that the push notification is received quite fast, so automation trigger timing should not be an issue. However, the next steps take quite a long time, so that’s the reason the image stored in the selected folder is delayed (I will take into account the relevant part steps only; will disregard the Telegram part, as it has nothing to do with the eufy workflow):

You can see that the clip event is happening at :03", although the clip timestamp for the first keyframe is at :02". Anyway, for the purpose of the test, let us take the :03" timestamp as the starting poing

The above screenshot displays the automation flow which happened at the time that motion clip was created in the previous eufy app screenshot. You can see that the automation was triggered 2" later, which is actually the same timestamp that the person_detected sensor state change was registered:

person_detected ok

  1. Clip created: 00"
  2. Push notification registered and automation triggering: +02"
  3. RTSP streaming start: +04"
  4. Service call to generate image: +03"
  5. Take snapshot (actual image file created): +02"

That’s 11" from the time the motion happened to the snapshot that is being taken. For security purposes, this is not useful.

I also tried to use camera.record service instead of camera.snapshot, because camera.record has the ability to look back on HLS streams. However, it seems it is not taking into account the lookback time and mp4 clip is being created with a similar delay, although the camera entity is HLS:

entity ok

trace ok

screenshot ok

Any suggestion to get either a photo or a clip with a lower delay will be much appreciated. If this is not possible, it would be great to know whether it is possible to get the clips stored in the HUB, the ones that you can watch from the eufy app events tab. Actually, that would be the perfect approach. I have already opened a question issue in the addon GitHub for this specific topic, but it would be great if anyone else has any feedback on this which may help. Thanks!

Do you need camera snapshot now given that push notification content is accessible in a separate entity?

Btw, thanks for detailed write up.

1 Like