Lumens HTTP protocol - jdeananderson/Lumens-IP-Camera-Control GitHub Wiki
Protocol Documentation
Lumens does not appear to provide documentation for their HTTP protocol, but we have documented it in our Lumens HTTP Protocol Wiki.
Is the Lumens HTTP protocol just like other camera CGI interfaces?
Lumens controls their IP cameras using GET requests to htm files, similar to the way other manufacturers use CGI requests to control their cameras. The difference is that Lumens has their own set of commands, and they do not seem to be documented by Lumens. The Lumens HTTP Protocol Wiki attempts to provide that documentation. The documentation here is based on observing a Lumens VC-A50P camera running firmware VIL123.
What can the Lumens HTTP Protocol not do?
The Lumens HTTP Protocol appears to have every camera function (including exposure, focus, audio settings, gamma correction, etc, etc,) except PTZ speed. It of course allows a user to pan, tilt, and zoom the camera, but to our knowledge, it is not possible to change the speed of the pan, tilt, or zoom movements. The permanently set speeds used for HTTP control are slow, but reasonable for making fine adjustments during a broadcast, or creating presets. The speed of recalling presets through HTTP control is set at maximum. This means that once presets are established, a user can conveniently recall camera presets at maximum speed, and can then make fine PTZ adjustments at the slowest speed using the mouse, keyboard, or game controller. This seems to be a reasonable workflow for live broadcast environments and is not a reason to be concerned about not having control of PTZ speeds for our use. This also means that proportional speed control is not available when using a game controller like on many professional hardware controllers. That means the controller reacts the same to pushing the joystick a little bit to the left verses all the way to the left... in both of these cases, it will simply move the camera left at a slow speed.
Lumens HTTP protocol vs the Lumens C++ SDK API
Lumens does provide a C++ SDK API that allows full control of all functions of their IP Lumens cameras. There is some documentation and examples provided. This open source project does NOT use this Lumens C++ SDK API. Instead, this project uses HTTP calls to each camera's on-board webserver; the same web calls that are used when logging into the internal camera website to change settings, or use "Live View", etc.
This project was implemented using Lumens HTTP protocol rather than the C++ SDK API so a higher level programming language could be used to rapidly build the program instead of writing the entire application in C++. If desired in the future, it would be possible to build a command-line camera control application using the C++ SDK API and have the UI of this project call the command line software to fill in the gaps if any commands are missing, or finer control was needed for some reason.