FOSCAM PTZ Camera on Ezlo Plus

I was able to get a FOSCAM PTZ camera working on Ezlo Plus. Thought I would share this to anyone wanting to do the same.

There isn’t a plug in or driver for these cameras yet but I was able to get the video to render using the generic IP Camera function and entering the IP Address, port, Login name, and password. That gets the video working as it should.

There are no PTZ controls in the generic IP Camera window so it makes the camera quite limited. So I created a few meshbots (scenes) to cause the camera to go to PTZ preset destinations. FOSCAM uses HTML CGI strings to control all aspects of the camera. That API is standard across all of their products.

So I created a scene for each preset (I had four I cared about). So if I run that scene (manually) the camera moves to that point and then I jump back to the camera view window to see the image. Granted a bit clunky but at least it is a workaround until someone creates a driver/plug in).

Below is a screenshot of the meshbot.

I made an excel spreadsheet to build the CGI string for some common functions but I am not allowed to upload it. Below are some common CGI strings, substitute your own IP address, port, userid, and password,

|FOSCAM Camera CGI Strings||||

|1|PTZ Down|ptzMoveDown||

|2|PTZ Up|ptzMoveUp||

|3|PTZ Right|ptzMoveRight||

|4|PTZ Left|ptzMoveLeft||

|5|PTZ Stop|ptzStopRun||

|6|PTZ GoTo|ptzGotoPresetPoint||

|7|Zoom In|zoomIn||

|8|Zoom Out|zoomOut||

|9|Zoom Stop|zoomStop||

|10|PTZ Add Preset|ptzAddPresetPoint||

|11|PTZ Delete Preset|ptzDeletePresetPoint||

|12|PTZ Preset List|getPTZPresetPointList||

||Other notes:|||
|| 1) Once you start a PAN or Zoom it runs until it hits the end of travel unless it gets a stop. |||
|| 2) To have a move right pan you would issue Pan Right command, say 500ms to 1 second and then issue a PTZ Stop|||
|| 3) To have a Zoom in you would issue Zoom In command, wait 500ms to 1 second and then issue a Zoom Stop|||
|| 4) Unfortunately present points are called by preset point name so you have to retrieve Preset List and then you can assign them a 1-6 (or more) list so they can be called numerically|||

1 Like