Amcrest ProHD 1080P

Well i got a reply, rather quickly:
Thank you for contacting Vera Care Support!
We are aware that Amcrest cameras are currently not compatible with Vera. We have this reported to our R&D to be taken in consideration for future integration.
Thank you for your understanding.

Helen A. ▾Customer Care Advocate

Just need a little help/clarification with the following step: Set as implementation file for the Amcrest camera
Cameras->Amcrest->Advanced Settings->Extra Parameters->impl_file.

I select Extra Parameters and the ‘Extra Parameters’ screen comes up - -but I do not see a impl_file field. I have a ‘device_file’ and a ‘device_json’ field…

Any help on this last step?

Perhaps you have different device_file & device_json and thus rest of the fields may be different.

I have :

device_type : urn:schemas-upnp-org:device:DigitalSecurityCamera:2
device_file : D_DigitalSecurityCamera2.xml
device_json : D_DigitalSecurityCamera2.json

All those were set by Vera when I manually created the Amcrest as generic IP camera.

While my camera is not the exact one listed on this thread, I have a couple of Amcrest HPseries 720p wifi wireless security cameras.
As suggested, I contacted support and was later contacted for info on the IP address, etc. some of which I didn’t know.

I was able to get info running the Amcrest IP Config app downloaded from their site.

The support person “Magda” did originally have a problem because the IP address changed. I went to the settings on Amcrest IP Config App and turned off “DHCP” and reset the IP address to the original. I also had to change the cameras Encode Mode to H.264 and enable MJPEG.

Thanks to Magda I can now see my cameras, however, I still don’t seem to have any control over them in order to record or view the recordings.
But I can take a quick view from Vera to see what’s going on.


I see a beta has just been released that includes more support for the cameras. So I guess I’ll just wait and see if it improves the problems with these cameras.

[quote=“GaryTTirn, post:18, topic:193000”]@antilley It would be interesting to know which model and firmware you have ?

Naturally the implementation file brings additional functions for motorized Amcrest PTZ cameras only.
For fixed position cameras it brings nothing new.

This URL gives you snaphot image from the Amcrest and /cgi-bin/snapshot.cgi is what Vera should use as the URL variable (Under Advanced->Extra Parameters->Variables)

You also get the video stream via browser, but these won’t work via the Vera I’m afraid :

Main Stream :

Secondary Stream :

Thanks it was a big help I used this and got it to work, now to only get motion detection going!!

I wanted to add my contribution to this thread.

Some background: I am running a VeraEdge UI7/ 1.7.2406 with two Amcrest IP2M-841E cameras (and a Hikvision DS-2CD2T42WD-I5 4mm camera). I also have an NVR (QNAP NAS TS-231+, running Surveillance Station I record all three cameras 7x24 for rolling 6 days to a 4TB HDD, and I have a 64GB SD card in each of the two Amcrest cameras for Alarm recording only (redundant to the alarm recording also configured in the NVR…meaning someone has to steal the cameras and the NVR to get rid of evidence). I am using the Vera with multiple Ecolink PIR Motion Detectors, multiple Ecolink door/window sensors, multiple First Alert fire/CO detectors, and multiple GE SmartSwitch (in wall).

I?ve read many posts regarding the challenges of using the camera?s software-based motion detection and I never had any success using the software-based detection on some analog cameras I?ve used. So, I want to trigger motion related recording by using passive infrared sensors and door sensors using Vera?s Scene management.

My scene objective was the following:

When a specific PIR motion (or door/window) sensor detects motion, then?

[ul][li]Send command to a specific camera to pan/tilt to a specific preset position[/li]
[li]Send command to the same camera to record video to the on-board SD card[/li]
[li]Send command to the NVR to record video on the NAS (and flag it as an alarm recording)[/li]
[li]Send email/text message with the details of the event, with fast access to the recording[/li][/ul]

I used the instructions from GaryTTirn above to upload & configure the Amcrest camera implementation file in Vera for the pan/tilt function. I then created a Vera Scene, selecting the appropriate sensor and camera. I then edited the Scene using the Advanced Editor to add the command ?GoToPreset? and designate the appropriate Preset related to the location of the sensor which triggered the action. I also set the scene to notify me via text message.

I then added the following Luup code to the Scene:
luup.call_delay (“pirMotionReset”, 60)
function pirMotionReset()
luup.inet.wget(“http:// userid:password@ipaddress /cgi-bin/configManager.cgi?action=setConfig&Alarm[0].SensorType=NO”)

(Note: replace userid:password@ipaddress with your credentials)

I then edited Relay Activation on the Setup>Event>Alarm page of the Amcrest camera:

[ul][li]Select Enable, and set the Sensor Type to NO (Normally Open)[/li]
[li]Select Record, with Record delay = 10 seconds[/li][/ul]

I then edited the storage path on the Setup>Storage>Destination page of the Amcrest camera to save Alarm recordings to the SD Card.

I then edited the recording control on the Setup>Storage>Record Control page of the Amcrest camera:

[ul][li]Pack = 1 (which is 1 minute of recording)[/li]
[li]Pre-event Record = [b]10 /b[/li]
[li]Record Mode = Auto[/li]
[li]Record Stream = Main Steam[/li][/ul]

Now, when a sensor is triggered, my camera pans to the preset, records to the SD card with 10secs of video before the trigger occurred, records an alarm event (and alarm video file) to the NVR, and I get an email & text. Also, vMobile (which is the mobile app for Surveillance Station), sends me a push notification, with a quick connection to the alert and associated recording file. (I can also define some additional actions that the NVR will take when it gets the Alarm signal from the camera.)

Note: I tried using the following (provided in a post above)

–Enable MotionDetect in scene LUUP code
–Disable MotionDetect in scene LUUP code

but those commands only enable Motion Detection. The camera still has to be preconfigured to detect the motion for it to detect the motion that was already detected by the sensor. There is no guarantee that simply enabling Motion Detection would actually trigger the recording.

Using the Luup code to set the Alarm Sensor Type to NC (Normally Closed) forces the camera into an alarm state. Using this binary approach ensures I get a recording from any PIR motion or door/window sensor trigger (or any Vera-attached device, for that matter). And, I can fire off multiple cameras to capture alarm recordings everywhere as the event is in progress from a single sensor. Setting the Alarm Sensor Type to NO ends the alarm state. I can control the duration of the alarm (and therefore the recording) using the delay command. In fact, I can set the delay parameter to a variable, and change the alarm duration (recording) based on the type of event that is detected (using conditional statements and variables within the Luup code.

Hope this helps anyone who was trying to find a way around software based motion detection.

Now…to find the same HTTP commands for the Hikvision…

This is an update to my previous post.

After I installed the I_Amcrest_ProHD.xml (see above posts) file to enable PTZ controls, I started receiving constant invalid credentials and device not detected messages in Vera. After approx. 60 mins, Vera would alert me that the camera was no longer responding.

Upon further investigation of the I_Amcrest_ProHD.xml file, I realized it has invalid syntax for my model of camera, which is Amcrest IP2M-841E. Specifically, if you look at the xml, you will see this:
luup.inet.wget(“http://” … lug_ip … “/cgi-bin/ptz.cgi?action=start&channel=0&code=” … code … “&arg1=0&arg2=” … arg2 … “&arg3=0”,5,lug_username,lug_password)

For my model, the username and password must be in the format of http://:@/cgi-bin… The syntax in the xml puts the username and password in the wrong place. I believe this is the cause of the errors being thrown by Vera.

I also realized I don’t really need the controls on the Live view within Vera, nor do I need the controls available as Actions within the Advanced Editor for Scenes (which is what the xml does). I don’t use Vera for live view (it can’t handle the streaming, and I have my NVR and mobile app for live viewing and camera control). So, I ended up deleting my camera, reinstalled it as a Generic IP camera, and now do NOT use the I_Amcrest_ProHD.xml as the impl_file. I just use the interface for a Generic IP camera.

So, how do I get Vera to control my camera when a motion/door/window sensor (or any device) triggers an action for the camera? I simply use http commands inserted into the Luup code within a scene. Example:

Luup Scene Code to Pan, Alarm 60sec, Reset

luup.call_delay (“pirMotionReset”, 60)
function pirMotionReset()
luup.set_failure (false, <###>)

Note that you have to insert your own info for :@ and <###>.

Tip: if you copy text from a doc, make sure the source text is ANSI. Since there is no Paste as plain text option when pasting into the Luup code window in Vera, hidden text format controls are pasted. Although you can’t see them, the camera does see them and it rejects the http command.

Tip: I read a few posts that it is good practice to insert this at the end of each Luup code:

luup.set_failure (false, device_number)
NOTE: device_number being the actual device number you want to clear.

Hi, very interesting post - which I picked up from Vueville. I am trying to do something similar though with a different setup. I have a Vera Edge, Synology diskstation running surveillance station and several Foscam IP cameras.

At present Synology Surveillance station is on 24/7 because there is no simple and quick way of enabling it when I leave the house and disabling it when I return. As I am using the motion detection on the foscam’s I get endless motion detections when a shadow falls etc - which renders it useless as an alarm system plus it fills up the hard disk with needed recordings of family members moving around the house when we are home. I have played around with Domotizc on the Syno a bit but don’t find it as easy to use as I want. Hence I have the Vera - which is a lovely little device and does everything I want as an alarm and home automation controller - almost.

What it does not do is save recordings of videos to a server - so I just end up with snapshots in the event of a motion detection that are recorded on the Vera server. The solution to this would be either to have Vera arm Surveillance station - so that I rely on surveillance station to record videos when an event occurs, or to have Vera store videos on the Synology - so they can be accessed either through Vera or another app UI easily on my iPhone.

There is a Vera plug in for Synology Surveillance station that enables Vera to instruct it to record video but I have not succeeded in making it work after several hours of playing around with it.

As I understand from your setup, you have solved this issue with your setup by instructing the cameras to store recordings on your NAS. How did you do this? Was it via http code or via an option on the Amcrest? I would be interested to know if you have any tips or suggestions

I use a combo of HTTP code within Luup code on Vera (see above post; you may have to modify the HTTP commands to match syntax for your camera) and the alarm recording setup within Surveillance Station. I am running Surveillance Station v (2016/09/26). Below is my Surveillance Station setup.

I select Camera Configuration. For each camera, I have selected ?Enable recording for this camera? on the Camera Configuration tab in the Camera Configuration dialog. I have also selected ?Enable schedule recording? on the Schedule Settings tab and selected every hour of every day. So, I am doing 7x24 recording to my NAS just because I have ample disc space. This is what you are doing (but filling up your disc with no indication of where the alarm occurred)?but you may be able to disable the continuous recording and create alarm recordings if you do the Luup code above and the Surveillance Station setup as follows.

For alarm recording, I select Event Management. For each camera I use ?Traditional Mode?. On the Alarm Setting tab, I select ?Enable alarm recording?. I deselect ?Start recording when motion is detected by camera?. I select ?Start recording when the camera?s alarm input 1 is [Close]?. I select ?Activate alarm recording only on selected schedule?; with ?Basic mode? and Days = All Days and Duration = All day.

In Advanced Settings, under the Alarm Recording settings I set ?Start recording video (at minimum) 30 second(s) before the event occurs? and ?Stop video recording 30 second(s) after event ends?.

The settings within Surveillance Station combine with the Luup code I embedded in Vera (see previous post). When my PIR motion sensor is triggered, Vera launches the Luup code which pans the camera and switches the camera?s Alarm output from Open to Close. The Close state triggers Surveillance Station to record the alarm. The Luup code has a timer built into it which changes the alarm state back to Open after X seconds, which then causes Surveillance to stop alarm recording. (I don?t use the camera?s motion detection? the PIRs seem to perform better with fewer false positives. NOTE: I have not spent the time to find the appropriate HTTP commands for my HIKVISION camera to set and reset the alarm output?I have only done this with my Amcrest cameras.)

FYI ? I also have Vera set up to take a snapshot and ?text? the alarm to me (Vera sends an email to my phone number using AT&T?s email to text capabilities, since Vera limits the number of SMS texts). This allows me to do a quick check to see what triggered the alarm without having to log into the NAS to view the alarm recording.

So that?s how I get the camera to trigger alarm recordings stored on my NAS. I access the recordings from any device by establishing a VPN connection (using OpenVPN app and the NAS VPN server and it?s built in MyDDNS service of myQNAPCloud application.) BTW, since I record on the NAS 7x24, what I am really doing is creating alarm files that are stored in a separate folder on NAS. I also have redundancy in the cameras, since I have SD cards in the cameras that also store the alarm recording. So, I have backup in case I lose the camera or the NAS.

Hope that helps?

Here is the guide I created on how to add a Amcrest ProHD 1080p 30FPS WiFi IP Security Camera IP2M-841 to the Vera after contacting Vera support. Hopefully this helps others.

Seem the latest firmware for IP2M-841B (Amcrest_IPC-AWXX_Eng_N_V2.420.AC00.17.R.20170322) uses HTTP Digest access authentication which is not compatible with Vera.
Newer firmware will return HTTP 401 Unauthorized for Basic HTTP authentication that Vera uses (both UI5 and UI7).

Last working firmware for Vera is

In case somebody is having issues connecting the camera to Vera this could be the reason.

Looks like the plugin could be modified to support digest authentication, but it would take some effort. See these among others:,29897.msg212423.html#msg212423

Looks like the plugin could be modified to support digest authentication, but it would take some effort. See these among others:,29897.msg212423.html#msg212423[/quote]
…or Amcrest can get their s**t together and fix all the problems they introduced with the last firmware build. If you go to their forums you can see there are all sorts of issues, including unsolicited connections to their cloud servers even for customers who do NOT subscribe. I’m considering replacing mine with another brand.

Sent from my Nexus 5X using Tapatalk

Sadly, I have not yet figured out how to make Vera work with HTTP Digest Authentication as Vera keeps on defaulting to Basic Authentication at least for Generic IP Camera and thus Vera cannot retrieve an image from the camera.

It should be possible to use os.execute and curl in the implementation file to get other HTTP functions working on Vera provided some firmware update brings needed support for HTTP digest authentication Vera own functions (REQ_Image and others)

It does say in the UI7 change log that support would be there but I still don’t know why Vera would not attempt digest authentication after failed Basic authentication.

So the Amcrest_IPC-AWXX_Eng_N_V2.420.AC00.16.R.20160909.bin firmware i still the latest working one.

However, I figured out a method to get the motion detection working somehow but it is a quite involved process.
It is based on polling the Camera Relay Out State via HTTP interface using a Vera scene instead of the camera telling Vera that motion sensor has been tripped.

I made a new, enhanced implementation file that contains needed actions to enable both Video and Audio detection from Vera via a Motion Sensor Device.
Do note the new SetArmed-function (and thus armed/disarmed buttons on the motion sensor) only ticks/unticks the enabled setting in the camera settings, you still need to manually enabled desired actions (Relay-Out, Record, Snapshot etc.) in the camera settings

Firstly, “Relay-Out”-option in the Video and Audio Detection must be enabled in the camera event settings for this polling solution to work as otherwise the state doesn’t get updated.

Secondly, a Motion Sensor device must be created which can be done by adding the Camera Device ID to the URL below by replacing CAMERA-DEVICE-ID in the URL.
You can see the Camera Device ID from vera Camera->Settings->Advanced->Extra Parameters as device #xxx (id field tells the same)


The URL should return the device id of the newly created motion sensor and if all went right, the device will also appear in the Vera UI.
Make a note of the device id, you might need it in case you need to delete the device without having it visible in the Vera.

Device can be deleted using this URL http://VERA_IPADDRESS:3480/data_request?id=device&action=delete&device=SENSOR-DEVICE-ID.
Do be careful, any device can be deleted using that method.

After that has been done, you can create a scene that executes this LUUP code with the proper camera login and IP address details every minute or every 30 seconds for example.
Remember to replace the SENSOR_DEVICE_ID with the ID of your newly created sensor device in the LUUP code.

local cameraURL = “http://USERID:PASSWORD@CAMERA-IP-ADRESS/cgi-bin/alarm.cgi?action=getOutState

– CamSensorID is the ID of the Motion sensor.
local CamSensorID = SENSOR_DEVICE_ID

– Get the camera device state, result=0 or result=1
local status, response = luup.inet.wget(cameraURL,5);

– Get the alarmState (last character and add 0 to alarmState to convert it to an integer
local alarmState = string.sub(response,-2) + 0;

– if motion alarm set motion sensor to tripped
if alarmState == 1 then
luup.variable_set (“urn:micasaverde-com:serviceId:SecuritySensor1”, “Tripped”, 1, CamSensorID);
luup.variable_set (“urn:micasaverde-com:serviceId:SecuritySensor1”, “Tripped”, 0, CamSensorID);

After this you can use the Motion Sensor device to trigger notifications or other scenes.

I finally upgraded one of my Veras to UI7 and can confirm that it does indeed work with my Amcrest’s latest firmware. Hope this helps.

Quite interesting, I tried Amcrest_IPC-AWXX_Eng_N_V2.420.AC00.18.R.20170521.bin on my IP2M-841 with settings reset to defaults as instructed and it still doesn’t seem to work with Vera Edge running firmware 1.7.2931. This 18.R Amcrest version certainly tries to do HTTP Digest Authentication like 17.R

Actually the snapshot URL doesn’t work with anything anymore in 18.R…not Firefox, Crome or linux tools like curl.

root@MiOS_xxxx:~# curl -v --digest http://vera:password@

GET /cgi-bin/snapshot.cgi HTTP/1.1
User-Agent: curl/7.38.0
Accept: /

< HTTP/1.1 401 Unauthorized
< WWW-Authenticate: Digest realm=“Login to AMC”,qop=“auth”,nonce=“445233875”,opaque=“3f4a9ea877eade28d7a3ee3bd098d10ab29b8831”
< Connection: close

GET /cgi-bin/snapshot.cgi HTTP/1.1
Authorization: Digest username=“vera”, realm=“Login to AMC”, nonce=“445233875”, uri="/cgi-bin/snapshot.cgi", cnonce=“MGE5YjY5OTYwZDQxZWMyYTVkN2UzYjljMzVlNWRhMTk=”, nc=00000001, qop=auth, response=“bcfc902e6e02bdef7631e73c8ff5a905”, opaque=“3f4a9ea877eade28d7a3ee3bd098d10ab29b8831”
User-Agent: curl/7.38.0
Accept: /

  • Empty reply from server
    curl: (52) Empty reply from server

Same thing will happen with URL
curl -v -uvera:password --digest

The live stream will work even over HTTP, so there is something fishy in the cgi-interface of 18.R.
root@MiOS_xxx:~# curl -v -uvera:password --digest -O /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0> GET /cgi-bin/mjpg/video.cgi?channel=0&subtype=1 HTTP/1.1

User-Agent: curl/7.38.0
Accept: /

< HTTP/1.1 401 Unauthorized
< WWW-Authenticate: Digest realm=“Login to AMC”,qop=“auth”,nonce=“180909467”,opaque=“3f4a9ea877eade28d7a3ee3bd098d10ab29b8831”
< Connection: close
0 0 0 0 0 0 0 0 --:–:-- --:–:-- --:–:-- 0

GET /cgi-bin/mjpg/video.cgi?channel=0&subtype=1 HTTP/1.1
Authorization: Digest username=“vera”, realm=“Login to AMC”, nonce=“180909467”, uri="/cgi-bin/mjpg/video.cgi?channel=0&subtype=1", cnonce=“MGEyOTFhNDYyOTUxOTJjYjFhZGI0ODQ5MjVkZmQ3YTM=”, nc=00000001, qop=auth, response=“dead74a927d0e4226f998f6d861bfed1”, opaque=“3f4a9ea877eade28d7a3ee3bd098d10ab29b8831”
User-Agent: curl/7.38.0
Accept: /

< HTTP/1.1 200 OK
< Cache-Control: no-cache
< Pragma: no-cache
< Expires: Thu, 01 Dec 1994 16:00:00 GMT
< Connection: close
< Content-Type: multipart/x-mixed-replace; boundary=myboundary
{ [data not shown]
100 70585 0 70585 0 0 49739 0 --:–:-- 0:00:01 --:–:-- 76409^C

Edit : later I actually figured out the issue with the snapshot.cgi, the storage destination option for snapshots had gotten cleared in the camera settings, most likely due to resetting to defaults.
I started wondering what is wrong as snapshot.cgi would not work even in the 16.R anymore…

Anyways, I rolled back to 16.R for now.

There is something messed up with the RTSP stream of the 18.R aka version 11. I have a ticket opened with Amcrest about this. I am seeing it on both the IP2M and and the IP3M versions of the camera… Amcrest said they know there is a problem and expecting a fix on the next version but couldn’t give me a date. I am sticking with 17.R aka version 10 for now.

I got a Wansview W2 to play with and it requires HTTP Digest Authentication just like recent Amcrest firmwares.

Wansview works fine with Vera Edge with Vera firmware 1.7.3014 regardless of the digest authentication, so I gave Amcrest a 17.R one more go.

Indeed, these versions seem to work fine with Vera and do have HTTP Digest Authentication enabled.



Something got fixed in Vera, so I’m a happy camper.

I finally figured out how to get streaming working at least somehow through Vera.

One has to create a variable called Streams under the the camera device in Vera with this value

The variable is mentioned here

The variable is added by accessing the web UI and going to Cameras->Amcrest Camera device->Settings->Advanced->Extra Parameters->New Service

The new variable is defined with these values :

New service: Streams
New variable: Streams
New value: rtsp,rtsp,/cam/realmonitor?channel=1&subtype=0;rtsp_low,rtsp,/cam/realmonitor?channel=1&subtype=1

First RTSP URL in the variable value is used locally and for that I selected the camera’s Main Stream (subtype 0) and this streams fine when camera is viewed with the Vera android app.
The app reports “Type of streaming : continuous” and there is even audio included if it is enabled in the camera.

The second RTSP URL is used when connected remotely and for that I selected the camera’s Sub Stream (subtype 1) and doesn’t seem to work at all in continuous streaming mode.
Could be my limited Internet uplink that is causing issue, but cannot tell for certain. Didn’t make a difference if the Main Stream was used.
Vera does log in the LuaUPnP.log that stream tunnel has been created even over the remote connection, so the stream should work.

There doesn’t seem to be a way to make streaming work in a web browser.
in that case Vera searches for URLs flv anf flv_low from the Streams variable and runs flowplayer in the browser via flash as a plugin.
However I could not make flowplayer accept any of the streams the camera supports, so I didn’t define those URLs in the Stream variable n the end.

I attached an updated implementation file that takes care of adding the Streams variable if it doesn’t exits yet.


i tried but i see no change

i have about 1 image every 7 second and i cannot see any control for zoom?

have i missed something?

Best Home Automation shopping experience. Shop at getvera!

© 2021 Ezlo Innovation, All Rights Reserved. Terms of Use | Privacy Policy | Forum Rules