v1.0.5 This has been extensively tested on a Vivotek PZ7132 camera. It should work on the PZ7131 since that is just WiFi-less, and the 4XEM versions of this camera. It may work with other Vivotek & 4XEM cameras also, if you have a different model and this works with it, drop me a note at ptz@curtronics.com and I'll include it here. Please report any bugs to ptz@curtronics.com Not a real whole lot to say. Put vtek-ptz in your cgi-bin location and the images in /images/PTZ/ or any location of your choice but remember to change $imageLOC in vtek-ptz. And these Perl modules are required: File::Basename; CGI qw(:standard); WWW::Curl::Easy; LWP::UserAgent; HTTP::Request::Common qw(POST); Crypt::Blowfish; If a password is used it's encrypted using Blowfish with a key that is gen'd based on some of the server's configuration parameters. This key may or may not be good enough for you, if you prefer, enter your own key value as the $key in vtek-ptz. If you see a "Weak Password Encryption" message that indicates a weak key so adjust the key as you see fit. If you leave the key blank we'll try to generate a unique key based on the system, if that fails or generates a weak key you will be notified. If that happens or you chose to enter your own key it needs to be a minimum of 8 charcters and can be a maximum of 56 characters. If you enter less then 16 character it will be considered a weak key and you will be notified of that. If you enter more then 56 character it will be truncated to 56 characters. The key is used to encrypt and remember the password between operations and not in plaintext. When the page first comes up it is not expecting to use a username and password, clicking on the Auth Required checkbox will then prompt you for the username and password. Once they are entered they will no longer appear on the page. If you need to be prompted for them again you can either uncheck the Auth Required checkbox then re-check it (that will clear the remembered values) or you can leave the Auth Required checkbox checked and clear the URL and click any other button. There is no login per se, once you enter the URL and the username and password if required, you're good to go, just start pressing buttons. Any time the URL is cleared and the page is reloaded it starts a'new and any username and password that was entered will have to be entered again. Any time a command is sent to the camera you will get the status at the middle bottom of the page. Normally you'll just see OK's there, but if there is a problem connecting/talking to the camera like a 401 authentication error you'll see it there. There is an an optional popup status window. If communication with the camera returns any status code other then 200 and OK an optional checkbox will appear below that status. Checking this box will then enable a popup status window that will contain the results of all the communications with the camera for the last operation. The popup status window will continue to operate and that option will continue to appear until that box is unchecked even if the status returned is good. Once that box is unchecked the status window and the option will then no longer appear. The Pan, Tilt, Zoom and Auto speed's will not be displayed nor be able to be set until the URL is specified without needing authentication or with the correct username and password when authentication is required and the first command is issued. If access is successful then the speed values currently set on the camera will then be displayed. I've noticed there is a bit of a lag for speed changes to take affect, a second or two, so you can change the speed from fast to slow then issue a command and it still executes at the former fast (or slow if reversed) setting. The changing of these setting take a little time to take affest and if a change is requested vtek-ptz will wait up to 5 seconds for the change to become affective. If you would like to disable this wait change $SpeedSync = $false in vtec-ptz. Camera position Presets can be retreived from the camera and then the presets can be used. Initially the presets are not retreived from the camera, to retreive the presets select "** Get **" from the drop down menu. Once the list is retreived it will be updated with every operation in the background. It is for this reason it is a good idea to clear the list when no longer using it by choosing "** Clear **" from the drop down list, That will then reduce the communication overhead with the camera. To have the camera go to one of the predefined preset positions just chose that position from the drop down list. That position will then remain highlighted in the Preset box. If the camera is moved off that preset position that preset position will no longer be highlighted in the Preset box and the display will revert back to "-- Pick --". ToDo - Add, delete, modify Presets. - Modify Patrol settings. Guess there was quite a bit to say...