Foscam VD1 video doorbell

I've been using this video doorbell for a couple of weeks so I'm posting this in case anyone else is interested in this device.
I chose it because it supports ethernet, not just wifi, and is not too expensive. The installation location is too far from the house for wifi (about 50 metres), but already had an ethernet connection.
The installation went smoothly and we got fairly rapid notifications on our phones when someone pressed the doorbell. BUT my wife doesn't always carry her phone with her - something to do with pockets in female clothes - so we needed some kind of chime or spoken notification when someone was at the gate (see I need a doorbell chime, but)
After a lot of back and forth emails with Foscam support I now have a doorbell which sends messages to Hubitat, which are received by my Maker API, which calls my Google Home device (via Chromecast Video), which speaks the phrase that I have configured in the doorbell.

So if I can help anyone with regard to this device, feel free to PM me or ask in this thread.

2 Likes

Hey @richard-brown.

Can you share details on how they push the notification. Is it an option in the settings of the camera that needs to be enabled?

I'm looking to get this and the floodlight. But I want it to send notifications to HE instead of having to poll the device for updates.

The foscam app for phones does not provide the needed function - it is only good (atm) for getting a video call when someone pushes the button. You need their VMS windows/Mac program.

With this you select the doorbell and go Setup/Detector/AlarmLinkage and you get a screen which allows you to enter 3 separate html strings (Motion Detection/Sound Detection/Video Call) - these will get sent when the corresponding trigger fires.
In my case I used: http://10.0.0.18/apps/api/64/devices/48/speak/There%20is%20someone%20at%20the%20gate?access_token=(my token).
This is displayed as:
http://10.0.0.18/apps/api/64/devices/48/speak/There is someone at the gate?access_token=(my token).
Note that, because the VMS app doesn't accept white space in the html text, if you hit "Save" a second time, the text will be rejected - you have to re-enter it with %20 where you want spaces!!

For testing purposes I used sound/motion detection - it saved me going 50 metres to the gate and back to push the button each time.

1 Like

Awesome thanks. Makes sense.

They are using the VMS software to proxy the messages to HE. I was kind of hoping for a direct API so I could get the message directly from the cameras without the vms.

1 Like

Sorry - I guess I was not clear. VMS is just used to set up the html message in the doorbell. The message is sent directly from the doorbell to whatever ip address you put in the doorbell's Alarm-Linkage fields. VMS does not need to be running.

Even better. This means there must be an api call to set this on the cameras directly. But even if there isn't this is a good sign.

I emailed their support to see if there is an updated document. Their API document is quite old and doesn't take into account the floodlight or doorbell. I see the linkage calls to enable it but nothing to set it.

By the sounds of it thought this would work perfectly.

I haven't bought it yet, just trying to find a camera setup that allows me to do certain things. I thought Amcrest was there but looks like Foscam has one better with the API.

Foscam sent me the new api calls for the doorbell (I imagine this might be slightly fluid as they find and fix problems).
The call which might interest you is...

setAlarmHttpServer
Function Set the Alarm Http/Https Server
privilege admin
Usage /cgi-bin/CGIProxy.fcgi?cmd=setAlarmHttpServer
Param AlarmUrl Defualt for Homey ,VMS will not display it.
MDLinkUrl Motion detection link url
SDLinkUrl Sound detection link url
FaceLinkUrl Face detection link url
HumanLinkUrl Human detection link url
BKLinkUrl Button detection linkage URL
Return None
Note URL needs to be base64 encoded
Example /cgi-bin/CGIProxy.fcgi?usr=admin&pwd=&cmd=setAlarmHttpServer&AlarmUrl=BASE64Code&MDLinkUrl=BASE64CODE&FaceLinkUrl=BASE64CODE&BKLinkUrl=BASE64CODE

I haven't tried to use it as I could set up the html message using their VMS.

1 Like

Yup... this is exactly what I was hoping for! Did they send you an updated document or just the new calls? I'm hoping they have an updated document that has all of these extra calls and floodlight support as well.

By the looks of it I can create a proper driver for this, where the cameras can reply directly to the device (not going through Maker) and the device can handle motion, push and more like a regular device. I was also thinking of adding attributes for the jpg image so it can be included on dashboards and using the rtsp streams to do some other fun stuff with my TV. But one thing at a time.

I'm just waiting on my dealer to respond about the floodlight then I'll place an order for the doorbell and floodlight and a few other cameras.

They just sent me the additional stuff - I already had the "latest" CGI document - but I don't remember where I downloaded it from.
This link https://1drv.ms/u/s!AgIjcqjus5sIzcNa4jnwpiv0IUq9Gg?e=deRGCZ should let you have both docs.

2 Likes

Thank you. That has a lot more info than I could find. Definately will help once I get the devices.

Hi Gavin, did you ever find a CGI call for the floodlight itself?

Yup ... I have asked a number of times for their support to send me the full cgi document but they keep stepping around it. They just send me screenshots from the document of the calls I want. But they always leave out something. These are the calls to turn on/off the light. However the floodlight doesn't have a method to protactivly report the status if it was changed by another means (such as PIR, motion detection or the app).

That's useful thanks! Is there anything to see the current white light status? such as getWhiteLightStatus or similar?

Good thing you asked. I didn't realize I didn't save these calls to my document. I actually use these calls for the whitelight control since its dimmable.

So for on I would get the current white light brightness and then toggle the enable to 1 and then set the white light brightness. Opposite for off and I do have a setlevel where I can adjust the brightness.

That's exactly what I need thanks!

getWhiteLightBrightness

Returns

<CGI_Result>
    <result>0</result>
    <enable>1</enable>
    <brightness>100</brightness>
    <lightinterval>300</lightinterval>
</CGI_Result>

Where <enable>1</enable> means the light it on and <enable>0</enable> means the light is off.

Correct. So just toggle that setting.

But to do the setWhiteLightBrightness after you have to specify everything. Thats why I do the get first and just set the enable to what I want.

And also, just in case, I think the mode of the wite light needs to be set to manu for this to work.

1 Like

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.