I have integrated my BC1C Ezviz camera into my Home Assistant installation.
I can see a device entity called sensor.bc1c_last_alarm_pic which contains, as far as Ican understand, the address of the last picture taken by the camera when triggered. Is there a way to download that pic? Or, in general, to access the snapshots taken by the camera at detection?
That would be very useful to have an alternative storage compared to the camera memory card (which could be quite easily stolen…) but also to post-process that pic to check whether something is really going on or if it is a a false positive. It could also be used to attach it to HA notification.
I have the same camera and also looking for this option to grab the picture of the link in the sensor and than display it in a picture entity card.
SO far no luck with this.
Any help would be apreciated
You can copy/paste that url in your browser and download it (unsecured…hmmm).
I did manage to download the 140k file, so there is data there, but the format is not recognisable in any sofware i could find.
I does not have an extension and there is also no filteype data in the file that i could find.
I tried setting the extension to several common formats but no banana for this monkey.
here’s an example of the file if you dare download it:
I got similar problem with other ezviz camera device. The solution in my case was that the image is by default encrypted, so I changed that option in the ezviz app and now i’m able to see the image correctly.
Thanks for your suggestion, @CFFAA: deactivating the encryption allows me to download an accessible image file (I could then store it, post-process it to check human presence, join it to a notification…).
However, I am quite worried about leaving these files not encrypted out in the internet… A better option would be to decrypt the file locally once downloaded, as it is done by the Ezviz app (I suppose). I guess it would be not that hard once we know the encryption algorithm and the associated password… right ? Any idea on the encryption algorithm used by Ezviz ?
Related to this? I have an automation to create a snapshot when an alarm is triggered.
So I receive a .jpg in the media directory. Nice picture, but the subject of the alarm is not visible anymore, as the timestamp of the snaphot-picture is about 40 seconds later than the alarm-picture in the ezviz app.
Good Morning!
I don’t know if this topic is still relevant!
I’m having the same problem, I have an integration that uses the EZVIZ API and I’m having an epic battle to download and decrypt the Last_Alarm_Pic image.
There is an SDK from EZVIZ for the PC, but I wasn’t successful with it, I tried with C#.
I requested support from them, I received a response that disabled encryption, including a command from the API itself to disable it.
Has anyone gotten more information about the encryption employed? It seems to me that it is a SHA256, in the SDK, the data requested in the process are the APP ID, Serial and the encryption code.
In the app I tried to disable enciption but it’s only it seems that it’s only the encryption for video and does not affect images. Have you had any luck. Could you please share the documentation that you got from EZVIZ?
hello, I haven’t got much yet, I’m trying to understand how their SDK for PC works, but my C++ is a bit rusty so, moving forward slowly!
As for the address they had given me, which in theory would disable encryption, it is the one below, but remember that it only takes effect for new captures.
My hope is that I can put the SDK to work, it has a specific function to decrypt the images, in my case it solves the problem because the platform we developed managed to implement the routine.
Hello!
no, our idea is to include it in our local server, so that the workstations can download and decode the images of the events!
But a solution for those who need it would be to host it in a virtual machine, like in AWS for example, I believe it would be possible to even keep it in one of the free configurations, with few modifications in the code it is possible to transform it into an http server and respond to requests as in a API, which would solve the problem for most projects based on the open API.
my pyton is a little rusty, not to mention weak!
Correct me if I’m wrong!
but I think this script only downloads the “frame” image from the camera, it does not support decrypting the images, the Chinese server is precisely where their API is hosted.