====== HTTP API for FXXX-1XA / HEXK-DCK / FXXK-DCK / DME-10 / HE1080-RPS / Z3CAM / ZCube(-21/SC/SDI) / Z3Dome ====== For HE4K-01 / HE4K-R4 / MVE-150 / MVE-100R / SME-01 / DME-02/03/04 use [[:http_api_lua|Z3-TI-http_api]] For firmware version 5.X and higher ===== Configuration API Syntax ===== ==== Reading Configuration ==== To read configuration variable, simply perform an HTTP GET to the URL [[http://server_address/cgi-bin/control.cgi|http://server_address/cgi-bin/control.cgi]] with the body as given below. The reponse will be in JSON format, giving the value of each variable. To read global configuration variables, GET with this body: ctrl=sys&chn=null To read encoder channel configuration variables for channel 1, GET with this body: ctrl=enc&chn=1 Python example code for reading configuration: import requests, json, sys server_url='http://192.168.0.120/cgi-bin/control.cgi' global_cfg = requests.get(server_url, params='ctrl=sys&chn=null') print global_cfg.json() enc_cfg = requests.get(server_url, params='ctrl=enc&chn=1' ) print enc_cfg.json() Sample output: >>> print global_cfg.json() {u'ipmtu': 1500, u'vid_port': u'microhdmi', u'macaddr': u'40:cd:3a:04:f0:c3', u'logo_enable': u'off', u'wifi_exists': True, u'processor_id': u'QCS605', u'ddns_password': u'', u'model_enable': u'off', u'enc_current_preset': u'encoder', u'default_gw': u'192.168.0.1', u'disp_std': u'auto', u'session_id': u'---', u'ddns_provider': u'freedns', u'ptp_role': u'auto', u'timezone': u'CST6CDT,M3.2.0,M11.1.0', u'MODEL': u'Z3-Q603-HD', u'opstate': u'RUNNING', u'hwversion': u'Z3-Q603-HD', u'ddns_enable': u'off', u'disp_input': u'primary', u'board_id': u'0xFF10', u'termserve_remote_enable': u'on', u'hwserial': u'30010110194010011', u'console_enable': u'on', u'enable_ptp': u'false', u'camera2_if_type': u'Unused', u'local_netmask': u'255.255.255.0', u'ret': u'0', u'logo_width': 319, u'MIC_analog_gain_db': 5, u'camera1_if_type': u'Sony_LVDS', u'opmode': u'encoder', u'syspassword': u'', u'local_dnsip2': u'0.0.0.0', u'ddns_hostname': u'', u'use_dhcp': u'0', u'enc_vivpss_mode_enable': u'off', u'pe3': u'', u'z3_termsrv': u'enabled', u'MICL_analog_gain_db': -20, u'preview_auto_start': u'1', u'pe7': u'', u'logo_height': 156, u'sensor_serial': u'30010310194010011\n', u'ddns_username': u'', u'eth_speed': u'AUTO', u'nfs_enable': u'off', u'nfs_server': u'192.168.1.6', u'z3_avmux': u'enabled', u'nmea_enable': u'off', u'z3_sntp': u'enabled', u'eth_duplex': u'AUTO', u'z3_fec_enc': u'enabled', u'z3_webproxy': u'enabled', u'enc_adv_setting': u'off', u'do_autostart': 1, u'enc_channels': u'1', u'pe8': u'', u'local_dnsip': u'192.168.0.1', u'local_ip': u'192.168.0.14', u'pe4': u'', u'pe5': u'', u'pe6': u'', u'diff_serve': 0, u'pe0': u'encoder', u'pe1': u'', u'pe2': u'', u'nfs_server_root': u'/c/media', u'enable_snmp': u'false', u'fpgafileglob': u'', u'enable_sntp': u'true', u'sysdevicename': u'Z3-Q603-HD', u'sntp_servers': u'pool.ntp.org', u'zfinder_enable': u'on', u'model_name': u'Z3-Encoder', u'hw50serial': u'50010110194010011', u'visca_present': u'true'} print enc_cfg.json() {u'vmulticastdest': u'225.1.2.3', u'tslowlat': u'on', u'klvmuxmethod': u'sync', u'srt_destAddr': u'192.168.0.6', u'vcrop_height': 1080, u'zixifecblock': u'50', u'telopcharsize': u'32', u'source_status_str': u'+CAMERA 1920x1080p 60.00 fps\n', u'vratectrl': u'cbr', u'rotate_angle': 0, u'zixisession': u'test', u'asource': u'CAMERA', u'aport': u'8700', u'pmtpid': 31, u'authonoff': u'off', u'srt_encrypt': 0, u'vcodec': u'h265', u'klvmode': u'sdi', u'auxonoff': u'off', u'channel': 1, u'mounts': u'', u'vcrop_width': 1920, u'vcrop_x': 0, u'vcrop_y': 0, u'amulticastdest': u'225.1.2.3', u'vprofile': u'high', u'klvsrc': u'/dev/gv7601.0', u'auth_passwd': u'password', u'teloplocation': u'top_left', u'gps_overlay_device': u'/dev/ttyAMA0', u'ret': u'0', u'klvserialbaud': u'115200', u'rtsp_auth_password': u'admin', u'zixirateadjen': u'on', u'zixiauthen': u'off', u'vinterlacemode': u'combine', u'vgopsize': 60, u'mmulticastdest': u'225.1.2.3', u'vcrop_enable': u'off', u'klvenable': u'off', u'preset': u'actv_preset', u'mport': u'8800', u'auth_user': u'user', u'gps_overlay_enable': u'off', u'zixioverhead': u'15', u'tsrate': u'5000K', u'enc_status': u'RUNNING', u'pcrinterval': 50, u'aptspcr': 250, u'filesize': u'1024M', u'klvbrate': u'1000', u'acodec': u'fdk_aaclc', u'lowdelay_opt': u'off', u'apid': 120, u'zixilatency': u'500', u'rtsp_auth_enable': u'off', u'srt_mode': 0, u'klvpid': u'35', u'nfstrength': u'0', u'vbitrate': u'4M', u'rtsp_auth_username': u'admin', u'zixiuser': u'user', u'gps_overlay_location': u'top_right', u'vprotocol': u'rtsp', u'feconoff': u'off', u'vdelay': 1000, u'vsource': u'CAMERA', u'fprefix': u'MOV1_%C', u'telopenable': u'off', u'teloptext': u'Z3-Q603-HD', u'storage': u'/media/sda1', u'vquality': u'balanced', u'asamplerate': u'1', u'vgdr': u'off', u'rotate_enable': u'off', u'avmux_index': u'streaming', u'abitrate': u'128000', u'vpid': 221, u'feccol': 5, u'gps_overlay_char_size': u'32', u'vframeratediv': 1, u'pipenable': u'off', u'vres': u'follow_input', u'pcrpid': 521, u'aenable': u'off', u'apair': 0, u'piplocation': u'top_right', u'rtmp265_enable': u'off', u'srt_pass': u'password1234', u'vdest': u'192.168.0.6:8600', u'fecrow': 1} ---- ===== Encoder Channel Configuration ===== ==== aenable ==== Description: Enable audio channel Possible values: yes, no ==== acodec ==== Description: Audio encoder algorithm selection Possible values: dsp_aaclc, fdk_aaclc, fdk_aache, fdk_aache_v2 ==== abitrate ==== Description: Audio encode bitrate Possible values: Depends on codec; in units of bits per second ==== asamplerate ==== Description: Audio sample rate Possible values: 48000, 44100 ==== asource ==== Description: Select audio input Possible values: MICL (microphone, line input levels) MIC (unpowered microphone levels) HDMI (microHDMI input, for HE4K-DCK/FV4K-13A only) HD-SDI (SDI input, for DME-10/FSDI-DCK/FSDI-13A only) ==== apid ==== Description: Audio PID for transport stream. Possible values: 32 to 8191 - must not conflict with other PID assignments. ==== aport ==== Description: Destination UDP port for RTP audio ==== aptspcr ==== Description: For transport stream modes only – intial PTS to PCR offset for audio, in milliseconds Possible values: 100 to 2000 ==== auth_passwd ==== Description: Password for RTMP authentication. ==== auth_user ==== Description: Username for RTMP authentication. ==== authonoff ==== Description: Enable or disable RTMP authentication. Default: off Possible values: on, off ==== channel ==== Description: Encoder channel number Possible values: 1, 2, 3 ==== feccol ==== Description: Column count for ProMPEG. Possible values: integer greater than 1 ==== feconoff ==== Description: Enable ProMPEG if supported. Possible values: on, off ==== fecrow ==== Description: Row count for ProMPEG. Possible values: integer greater than 1 ==== filesize ==== Description: Size of TSFILE or AUX file recording, in bytes. A "K" suffix indicates kilobytes (thousands of bytes/second). A "M" suffix indicates megabytes (millions of bytes/second). ==== fprefix ==== Description: Relative filename for TSFILE or AUX file recording. Note that "fprefix" does NOT include the absolute media path – the "storage" parameter is the proper place to specify the absolute media path. ==== storage ==== Absolute path to mounted media device (e.g. /media/sda1/) ==== avmux_index ==== For MP4 recording only. Possible values: normal, streaming normal means MOOV atom at the end of file. streaming means MOOF atoms interspersed throughout the file, which is more tolerant of errors and truncated files. streaming is recommended for most recording scenarios. Only select "normal" if you want conventional MOOV atom at the end of file, if some legacy tool or decoder requires it. ==== telopcharsize ==== OSD overlay text character size in pixels Possible values: 16, 32, or 64 ==== telopenable ==== Enable or disable telop (i.e. OSD overlay of text). Possible values: on, off ==== teloplocation ==== Where to overlay text in the encoded video Possible values: top_left top_right top_center bottom_left bottom_right bottom_center ==== teloptext ==== Text string for OSD overlay ==== vgopsize ==== Description: Distance between I frames (key frames) in GOP sequence Possible values: 1 through 240 ==== vbitrate ==== Description: Video bitrate in bits per second. Possible values: A "K" suffix indicates kilobits (thousands of bits/second). A "M" suffix indicates megabits (millions of bits/second). Note: In UDP transport stream case, the tsrate should be set higher than the vbitrate, with at least 15% margin. ==== vdelay ==== Description: Video maximum burst size in milliseconds. Possible values: 100 to 2000 ==== vdest ==== Description: Destination URL address for encoded bitstream. May be interpreted differently depending on "vprotocol" setting. For UDP and RTP transports: client_ip:client_port For RTMP transport: server_ip[:server_port]/application/streamname ==== vframeratediv ==== Description: Divide video input frame rate by this number to get encode frame rate. The encoder will discard (frameratediv-1) out of (frameratediv) frames. Possible values: 1, 2, 3, 4, 5, 6 ==== vgdr ==== Description: Enable or disable Gradual Data Refresh. Reduces I-frame size (reduces latency). At lower bitrates, a horizontal rolling artifact may be visible. Possible values: on, off ==== vcodec ==== Description: Specifiec which codec to encode with. Possible values: h265, h264, mjpeg ==== vprofile ==== Description: H.264 profile (see [[https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles|https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles]]​ for full description) Possible values: baseline, main, high ==== vprotocol ==== Description: Protocol used to transport the encoded bitstream. Possible values: rtp, rtmp, udp, asi, tsfile, mts, tsrtp ==== vquality ==== Description: Set balance between low latency, and higher quality+bitrate compliance. Possible values: lowlat, balanced, high ==== vratectrl ==== Description: Rate control mode for encoder. Possible values: cbr, vbr vbr mode may be burstier than cbr. ==== vres ==== Description: Video resolution Possible values: follow_input preserve video source resolution, no resize WxH resize to width W and height H ==== vsource ==== Description: Video input from which encoder will source its video Possible values: Board-dependent ==== pipenable ==== Description: Enable PIP of channel 2 on channel 1 encode. Only available on FV4K/FV2K/FSDI Possible values: on, off ==== piplocaton ==== Description: Sets the location of the PIP on channel one. Only available on FV4K/FV2K/FSDI Possible values: top_left, top_right, bottom_left, bottom_right ==== vinterlacemode ==== Description: Sets the interlaced mode for the video input Possible values: combined, separated (H265 only) ==== vmulticastdest ==== Description: video multicast destination for RTSP. Used by ONVIF StartMulticast/StopMulticast functions Possible values: valid multicast addresses ==== amulticastdest ==== Description: audio multicast destination for RTSP. Used by ONVIF StartMulticast/StopMulticast functions Possible values: valid multicast addresses ==== rtsp_auth_enable ==== Description: enables/disables rtsp authorization for stream Possible values: on, off ==== rtsp_auth_username ==== Description: username for rtsp authorization Possible values: alpha numeric string ==== rtsp_auth_password ==== Description: password for rtsp authorization Possible values: * ===== Transport Stream Parameters ===== The following parameters only apply to transport stream encoding (transport is set to udp, asi, tsfile, mts, or tsrtp). ==== vpid ==== Description: Video PID for transport stream. Possible values: 32 to 8191 – must not conflict with other PID assignments ==== apid ==== Description: Audio PID for transport stream. Possible values: 32 to 8191 – must not conflict with other PID assignments ==== pcrpid ==== Description: PCR PID for transport stream. Possible values: 32 to 8191 – must not conflict with other PID assignments ==== pmtpid ==== Description: PMT PID for transport stream. Possible values: 16 to 31 – must not conflict with other PID assignments ==== tsrate ==== Description: Transport stream total transport rate in bits per second. Possible values: The 'K' suffix indicates kilobits (thousands of bits/second). The 'M' suffix indicates megabits (millions of bits/second). Note: In UDP transport stream case, the tsrate should be set higher than the vbitrate, with at least 15% margin. ==== tslowlat ==== Description: Low latency transport stream mode (VBR). Possible values: off, on ==== auxonoff ==== Describe: Enable AUXillary file recording in UDP mode – allows simultaneous UDP streaming and TS file recording on the same channel. Only valid if transport is UDP and tslowlat is off The path to storage is set by the "storage" parameter. The filename is set by the "fprefix" parameter. The default value is "MOV1_%F_%T". The "%F" specifier inserts a date stamp, and the "%T" specifier inserts a time stamp. The recording file size is set by the "filesize" parameter. When the file reaches this size, a new file will be created. ==== klvbrate ==== Description: Bitrate to allocate in transport stream for KLV data. ==== klvenable ==== Description: Enable KLV capture from SDI, UART or debug file, if supported. Possible values: off, on ==== klvmode ==== Description: Type of KLV source device, whose path is specified in klvsrc Possible values: sdi, serial, file ==== klvserialbaud ==== Description: If klv_mode is serial, specify the baud rate Possible values: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 ==== klvmuxmethod ==== Description: Select synchronous or asynchronous transport stream KLV multiplexing, as specified in MISB ST 1402 Possible values: sync, async ==== klvpid ==== Description: PID for KLV data in transport stream ==== klvsrc ==== Description: Source device for KLV metadata ==== pcrinterval ==== Description: Interval between PCR packets in milliseconds. Possible values: 30 - 100 ===== Global Configuration ===== ---- ===== Action Syntax ===== ===== Generic Actions (POST) ===== Python example code for starting/stopping all channels: import requests, json import sys, getopt actionname='StartChannel' server_url='http://192.168.0.120' control_cgi_url = server_url + '/cgi-bin/control.cgi' payload = 'ctrl=sys&chn=null' sysctrl = requests.get(control_cgi_url, params=payload) j = sysctrl.json() print j enc_channels_string = j['enc_channels'] opmode = j['opmode'] enc_channels = enc_channels_string.split( ',' ) print 'enc_channels', enc_channels, 'opmode', opmode channel_list = enc_channels for channel in channel_list : # Remove leading C if channel[0:0] == 'C': channel = channel[1:] print actionname, ' ', opmode, 'channel', channel payload = 'action='+actionname+'&'+ 'chn=' +channel+'&' + 'loadfromdb=true'; headers={'Content-Type':'application/x-www-form-urlencoded; charset=UTF-8'} r = requests.post(control_cgi_url, data=payload, headers=headers) print r.text The "loadfromdb=true" parameter will load the current settings from the database. If you omit the loadfromdb parameter, *none* of the database settings will be used – any parameters you do not supply, will be set to default values. For example, this is what a StartChannel request from the web server looks like: action=StartChannel&chn=1&vsource=&vres=follow_input&vcodec=h265&vgdr=on&vprofile=high&vratectrl=cbr&vbitrate=2M&vframeratediv=1&vgopsize=60&vprotocol=rtsp&vdest=192.168.0.6:8600&storage=&fprefix=MOV1_%F_%T_&vpid=221&vdelay=1000&pcrpid=521&pcrinterval=50&pmtpid=31&tsrate=3000K&tslowlat=on&feconoff=off&fecrow=1&feccol=5&zixioverhead=15&zixiauthen=off&zixisession=test&zixiuser=user&aenable=on&asource=MICL&acodec=fdk_aaclc&abitrate=128000&asamplerate=48000&aport=8700&apid=120&aptspcr=250&klvenable=off&klvmode=sdi&klvsrc=/dev/gv7601.0&klvpid=35&klvbrate=1000&authonoff=off&auth_user=user&auth_passwd=password&auxonoff=off&filesize=1024M&telopenable=off&teloptext=ENCDEV&teloplocation=top_left&telopcharsize=32&vquality=balanced ==== AddChannel ==== ---- Add a channel. Check the channel number is valid or not. Based on it, update the channel number and preseting values in the Database. == Parameters: == ---- **//enc_channels//** Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4 Returns: ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=AddChannel&newchn=2 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Add Channel response: {"ret":"0","status":"OK"} ---- ==== AddHistory ==== ---- Get the channel number and URL as an input and update this value along with the index in the database. == Parameters: == ---- //**channel**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. **//histidx//** Index of the channel. **//url//** URL of the channel. Returns: ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== camera_inquiry ==== ---- Read vendor and model info from the visca camera. == Parameters: == ---- //**cam_index **// Read the camera index value. Possible values: 1 = Camera 1, 2 = Camera 2. ---- **//function// ** Returns: ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=camera_inquiry&cam_index=1 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Camera Inquiry response: {"auto_focus_limit":45056,"camera_idx":1,"echo_commands":true,"focus_label":["1cm",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"5cm",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"15cm",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"30cm",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"50cm",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"1m",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"1.5m",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"1.7m",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"2m",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"2.5m",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"3.3m",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"5m",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"10m",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"Inf"],"gain_label":["0db",null,null,null,null,null,null,null,"24db",null,null,null,null,null,null,null,"48db"],"has_digital_zoom":true,"has_ir_cut_filter":true,"has_visibility_enhancement":true,"iris_label":["0",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"F4.8",null,null,null,null,null,null,null,null,"F2.0"],"lock_fd":16,"max_focus":57344,"max_gain":17,"max_hlc_level":1,"max_hlc_level_mask":1,"max_iris":25,"max_shutter":33,"max_slow_shutter_limit":255,"min_focus":4096,"min_gain":1,"min_iris":0,"min_shutter":6,"min_slow_shutter_limit":0,"monitor_mode_table":{"1080p-25":8,"1080p-29.97":6,"1080p-50":20,"1080p-59.94":19,"2160p-25":30,"2160p-29.97":29,"720p-50":12,"720p-59.94":9},"ret":0,"shutter_label":["1/1",null,null,null,null,null,null,null,null,null,null,null,null,null,"1/100",null,null,null,null,null,null,null,null,null,null,null,"1/10K"],"visca_digital_zoom_table":[[1,16384],[1.1325,18304],[1.28,19968],[1.5,21846],[1.6,22528],[1.79,23616],[1.925,24256],[2,24576],[3,27307],[4,28672],[5,29492],[6,30038],[7,30428],[8,30720],[9,30948],[10,31130],[11,31279],[12,31424]],"visca_fw_version_id":"0101","visca_ignore_not_exec":{"raw":true,"stable_zoom_off":true,"stable_zoom_on":true,"wb_manual_bgain_direct":true,"wb_manual_rgain_direct":true},"visca_localport":1000,"visca_model_id":1802,"visca_name":"Sony FCB-ER8550","visca_nest_count":0,"visca_optical_zoom_table":[[1,4.4,0],[2,8.8,3521],[3,13.2,6252],[4,17.6,8214],[5,22,9620],[6,26.4,10679],[7,30.8,11515],[8,35.2,12208],[9,39.6,12812],[10,44,13357],[11,48.4,13832],[12,52.8,14250],[13,57.2,14620],[14,61.6,14950],[15,66,15248],[16,70.4,15516],[17,74.8,15761],[18,79.2,15986],[19,83.6,16192],[20,88.4,16384]],"visca_vendor_id":32,"visca_zoom_max":31424,"visca_zoom_max_optical":16384,"visca_zoom_min":0} ---- ==== CameraControl ==== ---- Send control commands to camera. Only one command can be sent at a time; the list below are the only supported VISCA commands through the HTTP API. To use VISCA commands that are not listed, usage of the TCP socket can be used to send those VISCA commands. API Format: action=CameraControl&interface=Visca&command=visca_command&cam_index=1 interface possible values: Visca, Tamarisk, Tau2, Boson, Genlock (default: Visca) **example:** Commands without value assignments action=CameraControl&command=dzoom_off&cam_index=1 Commands with value assignments action=CameraControl&command=set_monitor_mode 1080p-59.94&cam_index=1 The Visca commands use the same syntax as the serial menu "V" command, as shown below For the most current list of VISCA commands supported press "V" from the Serial/SSH session of the Serial Menu. auto_icr_disable auto_icr_enable cam_control_inquiry cam_custom_recall cam_custom_reset cam_custom_set chroma_get_suppress chroma_suppress Set Chroma Suppression (0=none, 1 to 3=chroma supression strength) clear_if color_gain Set Color gain (0=60%, 14=200%) color_get_gain color_get_hue color_hue Set Color hue (0=-14 degrees, 14=+14 degrees) debug_rx dzoom_combine_mode dzoom_direct D-Zoom Position (0x00 to 0xeb) * Enabled during Separate mode dzoom_off dzoom_on dzoom_separate_mode dzoom_stop dzoom_super_res dzoom_tele_var p = 0 (Low) .. 7 (High) * Enabled during Separate Mode dzoom_wide_var p = 0 (Low) .. 7 (High) * Enabled during Separate Mode dzoom_x1_max eflip_off eflip_on ext1_func_inquiry ext2_func_inquiry ext3_func_inquiry focus_auto focus_direct focus pos Min. 0x1000 Over Inf 0x2000 10m 0x3000 5m 0x4000 3.3m 0x5000 2.5m 0x6000 2m 0x7000 1.7m 0x8000 1.5m 0x9000 1m 0xa000 50cm 0xb000 30cm 0xc000 15cm 0xd000 6cm 0xe000 1cm focus_get_mode focus_get_pos focus_manual focus_near_limit focus near limit Min. 0x1000 Over Inf 0x2000 10m 0x3000 5m 0x4000 3.3m 0x5000 2.5m 0x6000 2m 0x7000 1.7m 0x8000 1.5m 0x9000 1m 0xa000 50cm 0xb000 30cm 0xc000 15cm 0xd000 6cm 0xe000 1cm focus_stop focus_tele_std focus_tele_var p = 0 (Low) .. 7 (High) focus_toggle focus_wide_std focus_wide_var p (0 (Low) .. 7 (High)) get_low_delay_mode Get low delay mode: 0 - normal, 1 - low delay get_monitor_mode get_monitor_mode: Get video mode of camera output help high_sensitivity_off high_sensitivity_on icr_mode modes: auto on off threshold [0-255] lens_control_inquiry lens_get_temp lr_reverse_off lr_reverse_on other_inquiry power_inquiry power_off power_on register_read Read internal register. register_write Write internal register. * Note: To make register changes effective, run power_off and power_on set_address set_low_delay_mode Set low delay mode: 0 - normal, 1 - low delay set_monitor_mode Set monitor mode. List of modes: 1080p-25 720p-50 720p-59.94 2160p-25 2160p-29.97 1080p-29.97 1080p-59.94 1080p-50 slow_shutter modes: on off limit [0-255] trace enable (0=off, 1=on) version_inquiry wb_auto_mode wb_autotrace_mode wb_get_bgain wb_get_mode wb_get_mode_name wb_get_rgain wb_indoor_mode wb_manual_bgain_direct Set Manual WB BGain (0..255) * Enabled during Manual WB mode wb_manual_bgain_reset wb_manual_mode wb_manual_rgain_direct Set Manual WB RGain (0..255) * Enabled during Manual WB mode wb_manual_rgain_reset wb_onepush_mode wb_onepush_trigger wb_outdoor_auto_mode wb_outdoor_mode wb_sodium_lamp_auto_mode wb_sodium_lamp_fixed_mode wb_sodium_lamp_outdoor_mode zoom_direct pos Min. 0x0000 Max. 0x4000 (In Separate mode) Max. 0x4000 (In Combine mode and DZoom=Off) Max. 0x59C0 (In Combine mode, DZoom=Super Resolution Zoom, and monitoring mode QFHD) Max. 0x6000h (In Combine mode, DZoom=Super Resolution Zoom, and monitoring mode FHD or less) Max. 0x7AC0h (In Combine mode and DZoom=On) zoom_get_pos zoom_stop zoom_tele_std zoom_tele_var p = 0 (Low) .. 7 (High) zoom_wide_std zoom_wide_var p (0 (Low) .. 7 (High)) Tau2 Specific The Color are done in the FPGA: OFF: SetColorPallette+off RESET: SetColorPallette+reset COLORS: SetColorPallette+blackhot SetColorPallette+whitehot SetColorPallette+sepia SetColorPallette+rainbow SetColorPallette+rain SetColorPallette+ironbow2 SetColorPallette+ironbow1 SetColorPallette+icefire SetColorPallette+glowbow SetColorPallette+fusion SetColorPallette+color2 SetColorPallette+color1 With dual VISCA camera supported added we need to tell the API which camera we want to talk to. this is done with cam_index The values accepted are either 1 or 2 == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== ClearHistory ==== ---- Delete the decoder history for the channel number and update in the database. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=ClearHistory&chn=2 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Clear History response: {"ret":"0","status":"OK"} ---- ==== DeleteChannel ==== ---- Clear the channel deatils in the database. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=DeleteChannel&chn=2 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Delete Channel response: {"ret":"0","status":"OK"} ---- ==== DeletePreset ==== ---- Get the row as an input and delete the row information in the database. == Parameters: == ---- **//Opmode// ** operation mode. Possible values: Encoder or Decoder == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=DeletePreset&deleterow=2 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Delete Preset response: {"ret":"0","status":"OK"} ---- ==== DisconnectWifiAP ==== ---- Disconnect the wifi network and stop the wifi process id. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=DisconnectWifiAP&cam_index=1 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Disconnect WiFi AP response: {"ret":"0","status":"OK"} ---- ==== Dynamic ==== ---- Dynamic instance for the channel number and update the preseting values in the database == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**var **// Read the nfstrength value //**val**// rotate_angle value. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=Dynamic&chn=1&var=analog_gain_db&val=10 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Dynamic response: {"ret":"0","status":"+OK"} ---- ==== EjectStorage ==== ---- Safely eject the removable storage media from the device. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**dev**// Removable device mount point == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=EjectStorage&chn=1&dev=/media/mmcblk0p1/ Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Eject Storage response: {"ret":"0","status":"OK"} ---- ==== ErasePresets ==== ---- Delete the preseting values from the Database. == Parameters: == ---- //**mode **// Get the operation mode. The default mode is encoder. Possible values : Encoder , Decoder. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=ErasePresets Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Erase Presets response: {"ret":"0","status":"OK"} ---- ==== ExportPresets ==== ---- Create a new database and export the preseting values from the currernt database to the new database. == Parameters: == ---- //**mode **// Get the operation mode. The default mode is encoder. Possible values : Encoder , Decoder. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=ExportPresets Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Export Presets response: {"ret":"0","status":"OK"} ---- ==== FactoryReset ==== ---- Remove the opt/config folder from the device and set up the default ip address, net mask, gateway, primary dnsip, dhcp in the device. == Parameters: == ---- //**reset_ip**// Get the reset value. Possible values: 0, 1. The value 0 only for factory reset, and value 1 for factory and ip reset. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=FactoryReset&reset_ip=0 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === FactoryReset response: {"ret":"0","status":"OK"} ---- ==== fmt_media ==== ---- Format the removable storage media in FAT filesystem format and mount it. == Parameters: == ---- //**disk_name**// disk name of the removable media format. //**partition_name**// partition name of the disk. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=fmt_media&disk_name=/dev/mmcblk0&partition_name=mmcblk0p1 Use the python script **saveUser_DIGEST_ARGPARSE.py** its in this document and replace the given action command for verify. ---- === Example output: === Format media response: {"ret":"0","status":"OK"} ---- ==== GetCameraLink ==== ---- Get the value of color table using the system call and pixel format from the fpga. == Parameters: == ---- //**color_table**// Color table. Possible values: 0 , 1. //**pxl_format**// Pixel format. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Get camera link response: {"color_table":"-1","pxl_format":"5","ret":"0","status":"OK"} ---- ==== GetCameraTab ==== ---- Get the camera tab index and camera type. Provide the html file == Parameters: == ---- **//tab_index//** Get the camera tab index. Possible values: 1 = Camera 1, 2 = Camera 2. //**type **// Get the camera type. Possible values: Visca, //**html **// Provide the html file. Default html file is visca.html. Possible html files are: visca.html, flexio.html. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Get Camera Tab response: {"html":"\n\n\n\n
\n\n
\n
\n\n

\n \n \n

\n

\n \n \n \n

\n
\n \"ImagePreview\"\tsrc=\"/z3blank_logo.png\"\n \n \n \n \n
\n \n
\n\n
\n
\n Camera Center Crop\n

\n

\n \n \n \n \n
\n

\n\n
\n
\n\n\n
\n
\nCamera Focus\n\n
\n

\n \n \n

\n\n

\n \n\n \n\n \n \n

\n\n \n Focus\n \n
\n \n \n
\n

\n

\n \n \n \n \n
\n

\n\n
\n
\n\n
\n
\nExposure\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n
Exposure Mode\n \n
Shutter Speed\n
\n
Iris\n
\n
Gain\n
\n
High Sensitivity:\n \n
Backlight:\n
HLC level:\n \n
HLC level mask\n
\n
Auto Slow Shutter:\n
Slow Shutter Limit:\n \n
\n
\n
\n
\n
\nColor Controls\n\n\n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n
White Balance Mode\n \n
Trigger One-push\n \n
Manual RGain\n \n
Manual BGain\n \n
\n
Color Gain\n
\n
Color Hue\n
\n
Color Suppress\n \n
\n \n \n \n \n \n \n \n \n
\n
\n
\n
\n\n
\n
\n Visibility Enhancement\n \n \n \n \n \n \n \n \n \n \n \n \n
Mode\n \n \n

\n \n \n

\n
Compensation:\n \n \n

\n \n \n

\n
\n
\n
\n\n
\n\n
\n
\n
\n About\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n
Camera Model:
Version:
\n \n
\n
\n
\n
\n
\nPTZ\n
\n \n
\n \n
\n \n \n
\n \n \n
\n\n
\n \n \n \n
\n
\n \n \n \n \n
\n \n \n
\n \n \n
\n\n
\n \n \n   \n \n \n
\n
\n \n
\n
\n
\nCamera Zoom\n

\n \n \n \n

\n\n

\n \n \n\n \n \n\n

\n\n
\n
\n
\n\n
\n
\n Wide\n
\n
\n
\n
\n Telephoto\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Optical only:\n \n
StableZoom:\n \n
\n
\n\n
\n
\n
\n
\n Camera Latency\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n
Low Latency Mode:\n \n
\n
\n
\n\n
\n
\nVideo Standard\n\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n \n\n \n
Monitoring Mode:\n \n
Ext Sync Source:\n \n
Camera Sync:
\n
\n
\n\n
\n
\n ICR\n \n \n \n \n \n \n\n
IR Cut-Removable\n \n \n

\n \n Off Threshold (0-255 for 4K camera, 0-28 for HD camera)\" onchange=\"visca_icr_threshold(this)\" /> \n

\n
\n
\n
\n\n
\n
\n Camera Orientation\n\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
E-Flip:\n \n
LR Reverse(Mirror):\n \n
\n
\n
\n\n
\n
\n Camera Image Options\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n \n \n \n \n \n\n \n
Image Freeze: \n \n Flicker Reduction: \n
High Resolution Mode: \n \n
Image Stabilizer: \n \n Stablizer Level: \n \n
Image Black & White: \n \n
\n
\n
\n\n
\n
\n Noise Reduction\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Noise Reduction: \n \n
2D Level: \n \n 3D Level: \n \n
\n
\n
\n\n
\n
\n\n\n","index":"1","status":"OK","type":"visca"}
---- ==== GetStatus ==== ---- Read the encoder status. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**status**// The encoder status can be RUNNING/ STOPPED/ IDLE/ Couldn't deduct input on camera. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Get Status response: {"ret":"0","status":"IDLE"} ---- ==== GetVideoInputs ==== ---- Get the sensor id and read the video inputs from the Database. == Parameters: == ---- //**sensorid **// Sensor ID. //**vport **// video port is Camera source. Possible values: 1 = Camera 1, 2 = Camera 2. //**friendly_name **// name of the video source. //**vdevice **// Video device. Possible values: MIPI, SONYLVDS, LT6911 //**input_index **// input device. Possible values: 0, 1. //**bus **// device address. Default NULL //**enabled **// Video input enabled or disabled. Default is 1. Possible values: 0, 1. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Get Video Status response: {"ret":"0","status":"OK","video_inputs":[{"enabled":"on","friendly_name":"Camera1","input_index":0,"sensorid":"300144","vdevice":"LT6911","vport":"CAMERA"},{"enabled":"on","friendly_name":"Camera2","input_index":1,"sensorid":"300144","vdevice":"SONYLVDS","vport":"CAMERA2"}]} ---- ==== GetWifiPass ==== ---- Get the Wifi password. == Parameters: == ---- //**ssid**// Read the service set identifier **//psk//** Provide the wifi password. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== InsQuery ==== ---- Querry the PTZ values for the angle. == Parameters: == ---- **//data//** Read the json table and retrieve the index and querry type. Possible querry are YawAngle, PitchAngle, RollAngle, All. //**YawAngle **// provide the yaw angle value from the PTZ. //**PitchAngle**// provide the pitch angle value from the PTZ. //**RollAngle**// provide the roll angle value from the PTZ. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== LoadUser ==== ---- Load the active preset value in the preset table and update in the state table database. == Parameters: == ---- //**enc_current_preset**// Get the preset row and check the opermation mode. The operation modes are encoder / decoder. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== Login ==== ---- Set the password for the login user. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Login response: {"ret":"0","status":"OK"} ---- ==== Logout ==== ---- Logout from the system and update in the Database. == Parameters: == ---- //**Authorization**// Get the permission level. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Logout response: {"ret":"0","status":"OK"} ---- ==== Overlay ==== ---- Display text or a PNG overlayed on the video feed for a given Channel. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. **//rgn_idx // **//(Ambarella Specific)// Region Index, index to map overlay. The region index value is system-wide and can be in the range of 1 to 16. Ambarella provides 16 total color look-up tables for Overlay (for all Channels), rgn_idx signifies which color look-up table(CLUT) is in use. TEXT type=text source=”Channel 1” instance=1 rgn_idx=1 type=text source=”Channel 2” instance=2 rgn_idx=1 In the above example, identical region indices are used, effectively reusing the CLUT. The text will be correct on each channel. When changing the color of the text, when using identical region indices, the last Overlay command issued will override all Overlay instances that are using the same region index, the text will still be different but the color will be the same because they are using the same shared rgn_idx. PNG type=png source=”/opt/config/images/image.png” instance=1 rgn_idx=2 type=png source=”/opt/config/images/image.png” instance=2 rgn_idx=2 PNG overlay will work in the same way as text overlay when re-using region indices, but this is only helpful when overlaying identical PNGs.\\ Using different PNGs would cause colors to go wonky due to differing CLUTs for the different PNGs. The encoder writes the entire CLUT at the rgn_idx with each overlay command. //**rgn_idx ** (//Qualcomm and DCK//)// Index to map overlay. The region index value can be in the range of 0 to 128, per channel. //**​type**// Type of overlay to be used possible values: text or png. //**source**// In the case of text overlay this would be the source text for png overlay this is the path to the png on the encoder. Images must be uploaded to board to be used. //**location**// This is the location of the overlay. Possible values: 'top_left', 'top_right', 'top_center', 'bottom_left', 'bottom_right', 'bottom_center', 'x,y' (negative numbers not supported for x or y). //**char_size**// For text overlay this is the character size. Possible values: 16,32,64, 128. //**layer**// This will set the layer for the overly higher numbers and will overlay over lower numbers if overlapping. The range of layer values are 0 to 7. **//text_color//** Text color, which is in RGB values with Alpha //**outline_color**// Outline color of the text which is in RGB values with Alpha //**outline_enable**// Whether outline is enabled or disabled. Possible values: on, off //**outline_stroke **// The width of the outline stroke is in the range of 1, 2 and 4. If the font sizes value are less than 64 then outline stroke value as 1, if the font size value is equal to 64 then outline stroke value is 2 and if the font size value is more than 64 then outline stroke value is 4. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 z3overlay.py -ip 192.168.10.127 -username admin -passwd admin -aim -track -moon -rtsp ---- === Example output: === Namespace(aim=True, dbg=False, ip='192.168.10.127', moon=True, passwd='admin', rtsp=True, track=True, username='admin', uw=False) Getting Video Stream Dimensions Video Stream Dimensions:3840x2160 Weather Read From File in 171 Position:top_left MSG:1 {"ret":"0","status":"!Invalid rgn_idx 53\r\n"} AimTrack:[574, 2914] - [2060, 1628] ---- === Another method to execute: === curl -s --connect-timeout 30 --max-time 60 --data "action=Overlay&chn=1&rgn_idx=1&source=/opt/z3/images/fmoon-96.png&type=png&location=top_center" "http://192.168.10.127/cgi-bin/control.cgi" ---- === Example output: === {"ret":"0","status":"+OK"} ==== OverlayStop ==== ---- Stop overlay. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**rgn_idx**// ​Index of overly for this channel. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- python3 z3overlay.py -ip 192.168.10.127 -username admin -passwd admin -aim -track -moon -rtsp ---- === Another method to execute: === curl -s --connect-timeout 30 --max-time 60 --data "action=OverlayStop&chn=1&rgn_idx=1&source=welcome&type=text&location=top_center" "http://192.168.10.127/cgi-bin/control.cgi" ---- === Example output: === {"ret":"0","status":"+OK"} ==== PtzAbsoluteMove ==== ---- Send absolute move command to the PTZ. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position and speed value. The mode values can be Pan, tilt, and Zoom. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzAuxiliary ==== ---- Send PTZ auxiliary value to the PTZ. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position and speed value. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzClearPreset ==== ---- Remove the Ptz preset values for the user. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position and speed value. The mode values can be Pan, tilt, and Zoom. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === action=PtzClearPreset&data={"idx":0,"profile_token":"profile1","preset_token":"2"} python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === PtzClearPreset response: {"ret":"0","status":"OK"} ---- ==== PtzContinuousMove ==== ---- Send continous move command to the PTZ. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === Please refer the test code and steps to execute is available in this section with different speed and camera selection for both continuous and step mode Pan to the left at half speed action=PtzContinuousMove&data={"PanTilt":{"x":-0.5,"y":0},"idx":0} Pan to the right at half speed action=PtzContinuousMove&data={"PanTilt":{"x":0.5,"y":0},"idx":0} Tilt down at max speed action=PtzContinuousMove&data={"PanTilt":{"x":0,"y":1},"idx":0} ==== PtzGotoPreset ==== ---- Send preset value to PTZ. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action: "PtzGotoPreset", data: '{"idx":0,"preset_token":"2"}' ---- === Example output: === PtzGotoPreset response: {"ret":"0","status":"OK"} ---- ==== PtzNewTourSpot ==== ---- Get the new tour spot and update in the Database. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action=PtzNewTourSpot&data={"idx":0,"profile_token":"profile1","tour_token":"1","name":"New_TourSpot"} ---- === Example output: === PtzNewTourSpot response: {"ret":"0","status":"OK"} ---- ==== PtzPosition ==== ---- Move the Ptz to the input position == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzPreset ==== ---- Preset the Ptz based on the value. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzQuery ==== ---- Get the ptz status and degree value from the ptz == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzRemoveTourSpot ==== ---- Remove the ptz tour spot == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the profile token, preset tour token, row index. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action: "PtzRemoveTourSpot", data: '{"profile_token":"profile1","tour_token":"1","row_index":0}' ---- === Example output: === PtzRemoveTourSpot response: {"ret":0,"status":"OK"} ---- ==== PtzSetPreset ==== ---- Set the preseting value in the PTZ == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action: "PtzSetPreset", data: '{"idx":0,"profile_token":"profile1","name":"New_Preset"}' ---- === Example output: === PtzSetPreset response: {"ret":"0","status":"OK","token":"2"} ---- ==== PtzStartTour ==== ---- Start the PTZ tour == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action: "PtzStartTour", data: '{"profile_token":"profile1","tour_token":"1","name":"New_TourSpot","idx":0}' ---- === Example output: === PtzStartTour response: {"ret":"0","status":"OK"} ---- ==== PtzStop ==== ---- Stop the PTZ == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action=PtzStop&data={"mode":1,"idx":0} ---- === Example output: === PtzStop response: {"ret":"0","status":"OK"} ---- ==== RemoveJobs ==== ---- Delete the schedule jobs from the Database. == Parameters: == ---- //**purgelist**// List of schedule jobs to be removed. //**rowcnt**// Number of rows. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== RestartBoard ==== ---- Read the operation mode. Whether its encoding / decoding. Stop the channel encoding and restart the board == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === RestartBoard response: {"ret":"0","status":"OK"} ---- ==== SaveCamera ==== ---- Saving the camera settings in the Database. == Parameters: == ---- **//zoom_direct_value//** Zoom value. Possible values: 0 (wide) to 0x7ac0 (full zoom) //**white_balance_mode**// White balance mode. Default value is auto. Possible values: auto / manual / indoor/ one-push / auto trace / sodium lamp auto / sodium lamp fixed / sodium lamp outdoor. //**color_gain**// color gain. Default value is 4. Possible values: Range from 0 (60%) to 14 (200%) //**color_hue**// color hue. Default value is 7. Possible values: Range from 0 (60%) to 14 (200%) //**chroma_suppress**// Chroma suppress. Default value is 1. Possible values: 0=none, 1, 2, 3 //**wb_manual_rgain_direct**// white balance manual red gain. Default value is 190. Possible values: 0 to 255 //**wb_manual_bgain_direct **// white balance manual blue gain. Default value is 190. Possible values: 0 to 255 //**optical_zoom_only **// optical zoom only. Default value is 0. Possible values: 0, 1 //**focus_direct_value**// focus direct value. Default value is 4096. Possible values: 0x1000 to 0xf000 //**manual_focus **// Manual focus. Default value is auto. Possible values: auto, manual //**exposure_mode **// Exposure mode. Default value is 0. Possible values: 0 - Auto, 10 - Shutter Priority, 11 - Iris -Priority, 3 - Manual. //**shutter**// Shutter. Default value is 7. //**iris **// Iris. Default value is 0. //**gain**// Gain. Default value is 0. //**high_sensitivity**// high sensitivity value. Default value is 3. Possible values 0, 1. //**hlc_level **// hlc level. Default value is 0. Possible values in range 0 to 3. **hlc_level_mask** mask value of hlc level. Default value is 0. Possible values 0, 1. //**stable_zoom**// stable zoom on or off. Default value is off. //**eflip **// Default value is 5. Possible values 0, 1. //**lr_reverse **// Default value is 0. Possible values 0, 1. //**monitor_mode **// Default value is 1080p-59.94. //**genlock_source **// Default value is 2. //**zoom_step_size **// Default value is 4. Possible values in range (1 - 7). //**focus_step_size **// Default value is 1. Possible values in range (0 - 7). //**manual_icr **// Default value is Off. Possible values: On, Off, Auto, Auto Color //**img_freeze **// Default value is 0. Possible values: 0, 1. //**hr_mode **// High resolution mode. Default value is 0. Possible values: 0, 1. //**img_stabilizer ** //Default value is 0. Possible values 0, 1. //**img_bw** //Image black white. Default value is 0. Possible values 0, 1. //**nr_2d_level **// Default value is 5. Possible values in range (0 - 5). //**nr_3d_level** //Default value is 4. Possible values in range (0 - 5). //**icr_threshold** //Default value is 14. Possible values in range (0-255 for 4K camera, 0-28 for HD camera). //**slow_shutter** //Default value is 0. Possible values: 0, 1. //**slow_shutter_limit **// Default value is 4. Possible values in range: (1 to 6) //**flicker_reduction** //Default value is 0. Possible values: 0, 1. //**img_stabilizer_level** //Default value is 0. Possible values: 0, 2. //**wide_dynamic_range** //Default value is 3. //**ve_brightness** //Default value is 3. Possible values in range: 0, 6. //**ve_compensation_type** //Default value is 2. Possible values in range: 0, 3. //**ve_compensation_level **// Default value is 1. Possible values in range: 0, 2. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Save Camera response: {"ret":"0","status":"OK"} ---- ==== SaveCameraBoson ==== ---- Save color pallete settings of boson camera in the Database. == Parameters: == ---- //**color_pallette**// Color pallete. Default value is whitehot. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py 192.168.10.127 -username admin -passwd admin ---- === Example output: === Save Camera Boson response: {"ret":"0","status":"OK"} ---- ==== SaveCameraDRSTamarisk ==== ---- Save color pallete settings of DRS Tamarisk camera in the Database. == Parameters: == ---- //**color_pallette**// Color pallete. Default value is whitehot. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Save Camera DRS Tamarisk response: {"ret":"0","status":"OK"} ---- ==== SaveCameraLink ==== ---- Saving camera link settings in the Database. == Parameters: == ---- //**pxl_format**// Pixel format. Default value is 1. //**color_table**// Color table. Default value is whitehot. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Save Camera Link response: {"ret":"0","status":"OK"} ---- ==== SaveCameraLx ==== ---- Saving camera Lx settings in the Database. == Parameters: == ---- //**SONY_ExposureMode**// Exposure Mode. Default value is 32852. Possible values: 32848 (Program Auto), 32849 (Aperture Priority), 32850 (Shutter Priority), 32851 (Manual Exposure), 32852 (Intelligent Auto). //**name**// Name of the camera. Default value is s3ca_1. //**SONY_ShutterSpeed**// Shutter speed. Defualt value is NULL. //**SONY_ISO**// ISO. Defualt value is NULL. //**SONY_ExposureComp**// Exposure comp. Defualt value is NULL. //**SONY_WhiteBalance**// White balance. Defualt value is NULL. //**SONY_ColorTemp**// Color temperature. Defualt value is NULL. //**SONY_APS_C**// APS_C. Defualt value is NULL. //**SONY_NtscPalSelect**// NTSC / PAL selection. Defualt value is NULL. //**SONY_MovieSteadyMode**// Movie steady mode. Defualt value is NULL. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Save Camera Lx response: {"ret":"0","status":"OK"} ---- ==== SaveCameraTau ==== ---- Saving camera TAU settings in the Database. == Parameters: == ---- //**color_table **// color table value . //**is_active**// Active/Deactive. Default value is 0. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveJobs ==== ---- Save the schedule jobs in the Database. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the schedule activities.//**.** // //**rowcnt**// Get the number of row count. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SavePresets ==== ---- Check the operation mode whether its in encoder or decoder. Save the preseting value of the mode in the Database. == Parameters: == ---- //**dec_current_preset **// Save the decoder current preseting values. //**enc_current_preset**// Save the encoder current preseting values. //**preset**// Settings for encoder or decoder. //**enc_channels **// Number of channels. Maximum number of channels is 2 for decoder and 4 for encoder. //**opmode**// Operation mode. Default is Encoder. Possible values: Encoder / Decoder. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SavePresets response: {"ret":"0","status":"OK"} ---- ==== SaveUser ==== ---- Save the state, preset, encoder/decoder settings in the Database. == Parameters: == ---- **//enc_current_preset//** Get the encoder preseting values for the current channel. **//dec_current_preset//** Get the decoder preseting values for the current channel. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SaveUser response: {"ret":"0","status":"OK"} ---- ==== SetAdv ==== ---- Save the encoder advance settings in the Database. == Parameters: == ---- //**enc_adv_setting **// Get the encoder advance setting values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetAdv response: {"ret":"0","status":"OK"} ---- ==== SetAPConfig ==== ---- Set the wifi and its password. == Parameters: == ---- //**passwd **// Get the wifi password //**passwden**// Get wifi enable / disable. Default value is disable. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetAPConfig response: {"ret":"0","status":"OK"} ---- ==== SetAudio ==== ---- Save the audio input settings in the Database. == Parameters: == ---- //**aport **// Get the audio port. Default value is MIC. Possible values are MIC , MICL //**analog_gain_db**// Get the analog gain decibal value. Default value is 0. The value ranges are -97 to 30. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetAudio response: {"ret":"0","status":"OK"} ---- ==== SetCameraLink ==== ---- Save the color table and pixel format values in the Database and set the color table and pixel format in the fpga. == Parameters: == ---- //**val **// Get the value for color table and pixel format. //**opt **// The options are color table and pixel format. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Set Camera Link response: {"ret":"0","status":"OK"} ---- ==== SetConsole ==== ---- Set the console value as ttyAMA0 or none. == Parameters: == ---- //**console_enable **// Get console value is enabled / disabled. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Set Console response: {"ret":"0","status":"OK"} ---- ==== SetDDNSEnable ==== ---- Set the Dynamic Domain Name System settings in the Database. == Parameters: == ---- //**ddns_enable **// Get the ddns enable value. Default value is Off. Possible values; (On, Off) //**ddns_provider **// Get the ddns provider. Default value is freedns. Possible values: //(//freedns, freemyip, dyn, domains.google.com, duckdns.org, no-ip.com, tunnelbroker.net, dynv6.com, cloudxnv.net, dnspod.cn, cloudflare.com). //**ddns_username **// Provide the username. //**ddns_password ** //Provide the password. //**ddns_hostname ** //Hostname for DDNS login. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Set DDNS Enable response: {"ret":"0","status":"OK"} ---- ==== SetDebugLevel ==== ---- Set the logging level. The setting is persistent. == Parameters: == ---- //**sysdebuglevel **// Get the system debug level. Possible values 0=None, 1=Error, 2=Information, 3=Diagnostics, 4=Codeflow, 5=Dataflow. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Set Debug Level response: {"ret":"0","status":"OK"} ---- ==== SetDevName ==== ---- Set the device name in the Database. == Parameters: == ---- //**sysdevicename **// Get the system device name. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Set Dev Name response: {"ret":"0","status":"OK"} ---- ==== SetDisplay ==== ---- Controls composite output (passthru video from camera). == Parameters: == ---- //**disp_std **// Get display standard for encoder. Default value is Auto. //**disp_input **// Get display input for encoder. Default value is MACRO_DEFAULT_DISP_INPUT. //**save_only**// Possible values: (True / False) //**disp_layout **// Display layout for decoder. Default value is 1×1. //**disp_mode **// Display mode for decoder. Default value is UltraHD. //**disp_std2 **// Display standard for decoder. Default value is auto. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Set Display response: {"ret":"0","status":"OK"} ---- ==== SetDSCP ==== ---- Set the DSCP configuration settings in the Database. == Parameters: == ---- //**diff_serve**// Get the DSCP configuration value. Default value is 0x00. Possible values are ( 0x00, 0xB8, 0x88, 0x90, 0x98, 0x80, 0x68, 0x70, 0x78, 0x60, 0x48, 0x50, 0x58, 0x28, 0x30, 0x38, 0x01). == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetDSCP response: {"ret":"0","status":"OK"} ---- ==== SetFpga ==== ---- Set the fpga settings in the Database. == Parameters: == ---- //**fpgafileglob**// Get fpga value. Possible values are (boson / cvbs / tamarisk / tau2). == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetFpga response: {"ret":"0","status":"OK"} ---- ==== SetIp ==== ---- Control networking settings of the Z3 device such as local IPv4 IP address, netmask, etc. Additionally control Encoder Auto-Start after boot-up and enable/disable showing of advanced WebUI settings. == Parameters: == ---- //**do_autostart**// Control automatic stream start after bootup. Possible values: 1 = do autostart 0 = do not autostart. //**enc_adv_setting**// Control appearance of advanced settings on WebUI. Possible values: off, on. //**ipmtu**// Control Ethernet IP Maximum Transmission Unit (MTU) size in bytes. Possible values: 576 to 1500. //**eth_speed**// Control Gigabit Ethernet auto-negotiation allowed speeds. Possible values: AUTO, AUTO-100, 1000, 100, 10. //**eth_duplex**// Control Ethernet auto-negotiation allowed duplex. Possible values: AUTO, FULL, HALF. //**local_ip**// IPv4 address. //**local_netmask**// IPv4 netmask. //**default_gw**// IPv4 default gateway. //**local_dnsip**// DNS server primary. //**local_dnsip2**// DNS server secondary. //**use_dhcp**// Controls use of DHCP or static IP. Possible values: 1 (DHCP enabled), 0 (DHCP disabled, use static IP). //**local_hostname**// Network hostname. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action=SetIp&default_gw=172.29.0.1&do_autostart=1&enc_adv_setting=onð_duplex=AUTOð_speed=AUTO&ipmtu=1500&local_dnsip=8.8.8.8&local_dnsip2=4.4.4.4&local_hostname=Z3Dome-4M&local_ip=172.29.10.122&local_netmask: =255.255.0.0&use_dhcp=1 ---- === Example output: === SetIp response: {"ret":"0","status":"OK"} ---- ==== SetLoginLimit ==== ---- Set the login limit settings in the Database == Parameters: == ---- //**maxlogin**// mximum number of login limit. Possible value in range (3 to 99 ). //**login_window**// Login window period, the value are considered in seconds. Possible value in range (60 to 32768). //**lockout_interval**// Lockout interval values are mentioned in seconds, which is used when maximum number of login limit is reached. Possible value in range (-1 to 32768) //**login_timeout**// Login timeout == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetLoginLimit response: {"ret":"0","status":"OK"} ---- ==== SetNFS ==== ---- Set the NFS settings in the Database. == Parameters: == ---- //**nfs_enable**// Enable/Disable nfs //**nfs_server**// Get the nfs server ip address. Default is 192.168.1.6 //**nfs_server_root**// Get the server root path / location. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetNFS response: {"ret":"0","status":"OK"} ---- ==== SetSNTP ==== ---- Set SNTP (Simple Network Time Protocol) settings in the Database. == Parameters: == ---- //**enable**// Enable/Disable SNTP. Possible value: true, false. Default value true. **//servers//** NTP server or list of NTP servers. //**timezone**// Linux TZ database value for Timezone. //**timezone_name**// Name for a time zone. Default is America/Chicago. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetSNTP response: {"ret":"0","status":"OK"} ---- ==== SetSNMP ==== ---- Set the SNMP settings in the database. == Parameters: == ---- //**power_trap_en**// Enable/Disable power trap. //**input_loss_trap_en **// Enable/Disable input loss trap. //**input_recover_trap_en**// Enable/Disable input recover trap. //**temp_high_trap_en**// Enable/Disable temp high trap. //**temp_recover_trap_en**// Enable/Disable temperature recover trap. //**trap_hosts **// Trap hosts ipaddress. Default ip address value is 192.168.0.6. //**high_temp_suppress**// hiigh temperature. Default value is 30. //**nominal_temp_suppress**// nominal temperature default value is 30. //**snmp_v3_en**// Enable/Disable SNMP //**snmp_v3_encrypt **// SNMP v3 encrypt value. //**snmp_v3_user **// z3user. //**snmp_v3_passwd **// z3password. //**snmp_v3_usrpro **// snmp v3 usrpro default value is md5. //**snmp_v3_encrypt_passwd **// z3password. //**snmp_v3_encpro **// decrypt value. //**snmp_v3_engineid **// Default value for engineid is 0. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetSNMP response: {"ret":"0","status":"OK"} ---- ==== SetNMEAEnable ==== ---- Save the GPS NMEA enable/disable value in the Database. === Parameters: === ---- **//nmea_enable//** Enable/Disable the NMEA. Possible value: on, off. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetNMEAEnable response: {"ret":"0","status":"OK"} ---- ==== SetOnvif ==== ---- Save the ONVIF settings in the Database. == Parameters: == ---- //**fixed_profile_max**// Get the Maximum ONVIF profiles to allow (1 or 2). //**en_persistent_audio **// Enable/Disable ONVIF persistent audio channel. //**onvif_enable**// Enable/Disable ONVIF. //**list_all_video_sources **// List all the video source. //**ptz_timeout **// Get the PTZ timeout values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetOnvif response: {"ret":"0","status":"OK"} ---- ==== SetOnvifVMD ==== ---- Save the ONVIF video motion detection and too darkness settings in the Database. == Parameters: == ---- //**vmd_enable **// Enable/Disable video motion detection. //**vmd_sens**// sensitivity value required for vmd. Possible value in range: (1 to 100). //**vmd_zone_modify **// Enable/Disable video motion and too darkness zone coordinates. //**vmd_vcrop_width **// crop width of the coordinates. //**vmd_vcrop_height**// crop height for VMD and too_darkness. //**vmd_vcrop_x **// crop startx for VMD and too_darkness. //**vmd_vcrop_y **// crop starty for VMD and too_darkness. //**td_enable **// Enable/Disable too darkness. //**td_thresh **// Threshold value for too darkness. Possible values in range: 1 to 100. //**vmd_td_channel **// Get the channel number. Possible values: 1, 2. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetOnvifVMD response: {"ret":"0","status":"OK"} ---- ==== SetRTSP ==== ---- Set the RTSP settings in the Database. == Parameters: == ---- //**rtspd_port**// Get rtsp port. Default value is 554. //**rtspd_timeout**// Timeout value required for the rtsp connection. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetRTSP response: {"ret":"0","status":"OK"} ---- ==== SetTermSrvEnable ==== ---- Sett the term server value in the Database. == Parameters: == ---- //**termserve_remote_enable**// Enable/Disable remote access to terminal server. Possible values are : on, off. //**termserve_shared_enable**// Enable/Disable shared access to terminal server. Possible values are : on, off. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetTermSrvEnable response: {"ret":"0","status":"OK"} ---- ==== SetVideoGroup ==== ---- Set the video group configuration settings in the Database. == Parameters: == ---- //**group **// Video config groups. Default value 0. //**nr_enable**// Enable / Disable NR. Default value is on. Possible value: on/off. //**crop_enable**// Enabled / Disable the crop. //**crop_x**// Crop x coordinates. //**crop_y**// Crop y coordinates. //**crop_width**// Crop width //**crop_height **// Crop height == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetVideoGroup response: {"ret":"0","status":"OK"} ---- ==== SetViewport ==== ---- Set the view port for the decoder and update in the Database. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**viewport**// viewport settings. The default value is fit. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetViewport response: {"ret":"0","status":"OK"} ---- ==== SetViVpssMode ==== ---- Set the ViVpss mode settings in the Database. == Parameters: == ---- //**enc_vivpss_mode_enable **// Enable/Disable the vivpss mode. Default value is off. Possible values: on, off. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetViVpssMode response: {"ret":"0","status":"OK"} ---- ==== SetWifiAP ==== ---- Set the wifi network settings in the Database. == Parameters: == ---- //**ssid**// Get the Wifi service set identifier value. //**psk**// Get the Wifi password. //**wifi_client_local_ip**// Local IP addres. //**wifi_client_local_local_netmask**// Subnet mask for Wifi network. //**wifi_client_default_gw**// Default Gateway be used for Wifi Network. //**wifi_client_use_dhcp**// DHCP server used with Wifi network for DNS resolutions. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetZFinderEnable ==== ---- Save ZFinder enable / disable in the Databse. == Parameters: == ---- //**zfinder_enable**// Get ZFinder enable/disable value. Possible values: off, on == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SetZFinderEnable response: {"ret":"0","status":"OK"} ---- ==== StartChannel ==== ---- Start the encoder channel and update the state as running in the Database. Once you start the channel, it will not transmit data until the video input is detected. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**actv_preset ** // //**vsource **// video source. Default value is Camera1. Possible values: Camera1 / Camer2 / HDMI1. //**vres**// video resolution. Default value is Follow Input. Possible values: Follow Input, 3840 x 2160, 1920 x 1080, 1440 x 1080, 1280 x 1024, 1280 x 720, 1024 x 768, 960 x 720, 1024 x 576. //**vcodec **// video codec. Default value is H265. Possible values: H265, H264, MJPEG, none. //**vgdr **// video gradual data refresh. Default value is on. Possible value on, off. //**vprofile**// video profile. Default value is high. Possible value high, main, baseline. //**vratectrl**// video rate control. Default value is cbr. Possible value cbr, vbr. **vbitrate** video bit rate. //**vframeratediv**// video frame rate. Default value is 1. Possible values: 1 (Full), 2 (Half), 4 (Quarter), 6 (Sixth). //**vgopsize **// video group of picture size. Default value is 60. Possible values: 1 (1 Frame Only), 5 (5 Frames), 8 (8 Frames), 10 (10 Frames), 12 (12 Frames), 15 (15 Frames), 25 (25 Frames), 30 (30 Frames), 50 (50 Frames), 60 (60 Frames), 90 (90 Frames), 100 (100 Frames), 120 (120 Frames), 200 (200 Frames), 240 (240 Frames). //**vprotocol**// video protocol. //**vdest**// video destination port. //**vpid **// video packet identifier. Default value is 221. //**vdelay**// video delay. Default value is 300. //**pcrpid**// PCR packet identifier. Default value is 521. //**pcrinterval**// Default value is 50. //**pmtpid**// program map table packet identifier. Default value is 31. //**tsrate**// bit rate for transport stream. Default value is 5000K. //**tslowlat **// transport stream low latency mode. Default value is off. Possible values: on, off. //**feconoff **// Forward error correction in transport stream enable/ disable. Default value is off. Possible values: on, off. //**fecrow **// Forward error correction row. Default value is 1. //**feccol **// Forward error correction column, Default value is 5. //**zixioverhead **// ZIXI Forward Error Correction total overhead as a percentage of transport rate. Default value is 15. //**zixilatency**// ZIXI target latency (to allow ARQ) in milliseconds. Default value is 500. //**zixifecblock**// ZIXI Forward Error Correction block size in milliseconds. Max value is 1/2 of Zixi Latency. Default value is 50. //**zixirateadjen**// ZIXI dynamic bitrate adjustment according to network conditions. Default value is on. Possible values: on, off. //**zixiauthen**// ZIXI dynamic authentication enable/disable . Default value is off. Possible values: on, off. //**zixisession **// ZIXI session id. Default value is test. //**zixiuser **// ZIXI user identifier. Default value is user. //**aenable **// Audio enable/disable. Default value is on. Possible values: on, off.asource. Default value is MICL. //**apair**// Stereo pair select for digital inputs. Default value is 0. Possible values: (0 (1 2), 1 (3 4), 2 (5 6), 3 (7 8), 260 (1 2,3 4), 548 (1 2,3 4,5 6), 1252 (1 2,3 4,5 6,7 8)). //**acodec**// Audio codec. Default value is fdk_aaclc. //**abitrate**// Audio bit rate. Default value is 128000. //**asamplerate **// Audio sample rate. Default value is 48000. //**aport **// Audio port. Default value is 8700. //**apid **// Audio packet identifier. Default value is 120. //**aptspcr**// Maximum difference between the PTS and PCR in the audio stream Default value is 250. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === StartChannel response: {"ret":"0","status":"RUNNING"} ---- ==== StartMTS ==== ---- Start the MTS. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === StartMTS response: {"ret":"0","status":"OK"} ---- ==== StopChannel ==== ---- Stop the encoder channel and update the state in the Database. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === StopChannel response: {"ret":"0","status":"STOPPED"} ---- ==== StopMTS ==== ---- Stop the MTS. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === StopMTSresponse: {"ret":"0","status":"OK"} ---- ==== TempStatus ==== ---- Get the current temperature status for CPU and lense. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === TempStatus response: {"ret":"0","status":"OK"} ---- ==== update_require_web_login ==== ---- Update/Change whether web login credential required or not in the Database. == Parameters: == ---- //**require**// Required web login value. Possible values: 1 or 0 == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === update_require_web_login response: {"ret":"0","status":"OK"} ---- ==== UpdatePtz ==== ---- Update the PTZ value in the Database. == Parameters: == ---- //**data**// Parse the JSON formatted data and retrieve the PTZ values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action=UpdatePtz&rowcount=1&data={"row0":{"db_videosource":"CAMERA","token":"ptz","name":"videoin1","enabled":1,"pelcoaddr":1,"tcpport":2000,"ptztype":"relative","flip":"none","pos":"simulated","maxtilt":90,"rowid":1}} ---- === Example output: === UpdatePtz response: {"ret":"0","status":"OK"} ---- ==== UpdatePtzPreset ==== ---- Update the PTZ preset value in the Database. == Parameters: == ---- //**data**// Parse the JSON formatted data and retrieve the PTZ preset values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action=UpdatePtzPreset&rowcount=2&data={"row0":{"profiletoken":"profile1","token":"1","name":"home","action":null,"rowid":1},"row1":{"profiletoken":"profile1","token":"2","name":"temp","action":null,"rowid":2}} ---- === Example output: === UpdatePtzPreset response: {"ret":"0","status":"OK"} ---- ==== UpdatePtzTourSpots ==== ---- Update the PTZ tour spots value in the Database. == Parameters: == ---- //**data**// Parse the JSON formatted data and retrieve the PTZ tour spots values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action=UpdatePtzTourSpots&rowcount=1&data={"row0":{"ProfileToken":"profile1","PresetTourToken":"1","PresetDetailToken":"1","StayTime":5,"RowIndex":0,"action":"blank","rowid":1}} ---- === Example output: === UpdatePtzTourSpots response: {"ret":"0","status":"OK"} ---- ==== UpdateTerm ==== ---- Control serial port terminal server for VISCA == Parameters: == ---- //**data**// Parse the JSON formatted data and retrieve the terminal server values. //**term_mode**// Possible values: client, server //**term_protocol**// Possible values: clearchannel, telnet //**term_localport**// Local TCP port (for server mode) //**term_servaddr**// Remote IP address (for client mode only) //**term_servport**// Remote TCP port (for client mode only) //**term_data_bits**// number of data bits. //**term_parity**// Possible values: None, Odd, Even, Mark, Space //**term_stop_bits**// Stop bits sent at the end of every character. //**term_baudrate**// Possible values: 9600, 19200, 38400, 57600, 115200 //**term_devicefile**// device fine name //**term_function**// functionality == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action=UpdateTerm&rowcount=5&data={"row0":{"term_devicefile":"%2Fdev%2FttyHS1","term_baudrate":"9600","term_data_bits":"8","term_parity":"None","term_stop_bits":"1","term_function":"rs485","term_localport":"2000","rowid":1},"row1":{"term_devicefile":"%2Fdev%2FttyHS3","term_baudrate":"9600","term_data_bits":"8","term_parity":"None","term_stop_bits":"1","term_function":"camera1_visca","term_localport":"1000","rowid":2},"row2":{"term_devicefile":"%2Fdev%2FttyHS2","term_baudrate":"9600","term_data_bits":"8","term_parity":"None","term_stop_bits":"1","term_function":"ir_led_zoom_ctrl","term_localport":"1001","rowid":3},"row3":{"term_devicefile":"%2Fdev%2FttyMSM0","term_baudrate":"115200","term_data_bits":"8","term_parity":"None","term_stop_bits":"1","term_function":"console","term_localport":"1800","rowid":4},"row4":{"term_devicefile":"%2Fdev%2FttyHS4","term_baudrate":"2400","term_data_bits":"8","term_parity":"None","term_stop_bits":"1","term_function":"user","term_localport":"1600","rowid":5}} ---- === Example output: === UpdateTerm response: {"ret":"0","status":"OK"} ---- ==== user_add ==== ---- Add a new user in the Database. == Parameters: == ---- //**Name**// Get new user name //**Level**// Get the level of permission for the new user name. Possible value: 0 to 7. //**Password**// Get the password for the new user name. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === user_add response: {"ret":"0","status":"OK"} ---- ==== user_remove ==== ---- Remove the user from the database. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the user name. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin action: "user_remove", data: '{"Name":"temp"}' ---- === Example output: === user_remove response: {"ret":"0","status":"OK"} ---- ==== user_update_level ==== ---- Update/change the level of permission to the given user name. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the user name and level of the permission. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === user_update_level response: {"ret":"0","status":"OK"} ---- ==== user_update_password ==== ---- Update/change the password to the given user name. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the user name and password. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- === Command to execute: === python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === user_update_password response: {"ret":"0","status":"OK"} ---- ==== download_remove ==== ---- http://Encoder_IP/cgi-bin/control.cgi?action=download_remove&data=FILENAME http://192.168.0.120/cgi-bin/control.cgi?action=download_remove&data=/media/sda/MOV1_000040.mp4 remove the downloaded media content from the usb drive or sd card. == Parameters: == ---- //**data **// Filename from the downloaded media content to be removed from the removable media device. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ===== Generic Control (GET) ===== ==== 8021x ==== ---- Get the exthernet 802x information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**interface**// TEXT, **//enable//** TEXT. //**eap**// TEXT. **//anonymous_identity//** TEXT. //**identity**// TEXT. //**password**// TEXT. //**private_key_password**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === 8021x response: {"anonymous_identity":"","ca_cert_status":"Unavailable","eap":"peap","enable":"off","identity":"","interface":"eth0","password":"","priv_cert_status":"Unavailable","priv_key_status":"Unavailable","private_key_password":"","ret":"0"} ---- ==== GetCronJobs ==== ---- Get the schedule job from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. **//enable//** INTEGER, //**cron**// TEXT. //**func**// TEXT. **//func_args//** TEXT. //**type**// TEXT. //**minutes**// INTEGER. //**hours**// INTEGER. //**day**// INTEGER. //**month**// INTEGER. //**cron**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === GetCronJobs response: {"data":[],"metadata":[{"datatype":"integer","editable":true,"label":"Enable","name":"enable"},{"datatype":"text","editable":true,"label":"Name","name":"name"},{"datatype":"text","editable":true,"label":"Function","name":"func"},{"datatype":"text","editable":true,"label":"Function Arguements","name":"func_args"},{"datatype":"text","editable":true,"label":"Type","name":"type"},{"datatype":"integer","editable":true,"label":"Minutes","name":"minutes"},{"datatype":"integer","editable":true,"label":"Hours","name":"hours"},{"datatype":"integer","editable":true,"label":"Day","name":"day"},{"datatype":"integer","editable":true,"label":"Month","name":"month"},{"datatype":"text","editable":true,"label":"Cron Command","name":"cron"}],"ret":"0"} ---- ==== GetNFSMount ==== ---- Get the Network File Sharing mounted infromation from the device. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. **//mounted//** TEXT, ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Get NFS Mount response: {"mounted":256,"ret":"0"} ---- ==== aspect_info ==== ---- Get the video resolution for the current channel from the Database and calculate the aspect ratio. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**numerator**// INTEGER, //**denominator**// INTEGER. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Aspect Info response: {"denominator":9,"numerator":16,"ret":"0","status":"OK"} ---- ==== boardinfo ==== ---- Get the board and model information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**logo_enable**// TEXT, //**logo_filename**// TEXT. //**logo_width**// INTEGER. //**logo_height**// INTEGER. //**logo_blob**// BLOB. //**ico_blob**// BLOB. //**model_enable**// TEXT. //**model_name**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Boardinfo response: {"MODEL":"FV4K-13A","board_id":"0xFF21","hw50serial":"50014401222610007","hwserial":"30014410221610012","hwversion":"FV4K-13A","logo_enable":"off","logo_height":156,"logo_width":319,"macaddr":"40:cd:3a:06:10:bc","model_enable":"off","model_name":"Z3-Encoder","opmode":"encoder","opstate":"RUNNING","processor_id":"cv22bub","ret":"0","sensor_serial":"30014410221610012\n","sysdevicename":"Z3Cam","z3_avmux":"enabled","z3_klv":"enabled","z3_klv_serial_only":"enabled","z3_sntp":"enabled","z3_termsrv":"enabled","z3_tslowlat":"enabled","z3_webproxy":"enabled"} ---- ==== cam_state ==== ---- Get the current camera state information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**preset**// TEXT, //**enc_channels**// TEXT. //**opmode**// TEXT. //**enc_current_preset**// TEXT. //**dec_current_preset**// TEXT. ---- === Command to execute and Example : === Please refer in this document in the below section cam_state (sys_DIGEST_ARGPARSE.py) ---- ==== camera ==== ---- Get the current camera settings from the Database. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**zoom_direct_value**// INTEGER. //**white_balance_mode**// TEXT. //**color_gain**// INTEGER. //**color_hue**// INTEGER. //**chroma_suppress**// INTEGER. //**wb_manual_rgain_direct**// INTEGER. //**wb_manual_bgain_direct**// INTEGER. //**visca_localport**// TEXT. //**optical_zoom_only**// BOOL. 0 or 1. //**focus_direct_value**// INTEGER. //**manual_focus**// TEXT. //**flexio_localport**// TEXT. //**exposure_mode**// INTEGER. //**shutter**// INTEGER. //**iris**// INTEGER. //**gain**// INTEGER. //**high_sensitivity**// INTEGER. //**hlc_level**// INTEGER. //**hlc_level_mask**// INTEGER. //**stable_zoom**// INTEGER. //**eflip**// INTEGER. //**lr_reverse**// INTEGER. //**monitor_mode**// TEXT. //**genlock_source**// INTEGER. //**manual_icr**// TEXT. //**zoom_step_size**// INTEGER. //**focus_step_size**// INTEGER. //**img_freeze**// INTEGER. //**hr_mode**// INTEGER. //**img_stabilizer**// INTEGER. //**img_bw**// INTEGER. //**nr_2d_level**// INTEGER. //**nr_3d_level**// INTEGER. //**icr_threshold**// INTEGER. //**slow_shutter**// BOOL. 0 or 1. //**slow_shutter_limit**// INTEGER. //**flicker_reduction**// BOOL. 0 or 1. //**img_stabilizer_level**// INTEGER. //**wide_dynamic_range**// TEXT. //**ve_brightness**// TEXT. //**ve_compensation_type**// TEXT. //**ve_compensation_level**// TEXT. //**tab_index**// TEXT. //**imgvflip**// INTEGER. //**imghflip**// INTEGER. //**imgrotate**// INTEGER. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Camera response: {"backlight":3,"chroma_suppress":1,"color_gain":4,"color_hue":7,"dbversion":"1.1","eflip":3,"exposure_mode":0,"flexio_localport":"1500","flicker_reduction":0,"focus_direct_value":4096,"focus_step_size":1,"gain":4,"genlock_source":2,"high_sensitivity":3,"hlc_level":0,"hlc_level_mask":0,"hr_mode":3,"icr_threshold":-1,"img_bw":0,"img_freeze":3,"img_stabilizer":3,"img_stabilizer_level":0,"imghflip":0,"imgrotate":0,"imgvflip":0,"iris":15,"lr_reverse":3,"manual_focus":"auto","manual_icr":"off","monitor_mode":"2160p-29.97","nr_2d_level":5,"nr_3d_level":4,"optical_zoom_only":0,"ret":"0","shutter":7,"slow_shutter":0,"slow_shutter_limit":-1,"stable_zoom":0,"tab_index":"1","ve_brightness":"-1","ve_compensation_level":"-1","ve_compensation_type":"-1","visca_localport":"1000","wb_manual_bgain_direct":190,"wb_manual_rgain_direct":190,"white_balance_mode":"auto","wide_dynamic_range":"3","zoom_direct_value":0,"zoom_step_size":4} ---- ==== camera_exposure ==== ---- Get the current camera exposure values from the visca camera. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**ae_mode**// TEXT, //**shutter**// TEXT. //**iris**// TEXT. //**gain_inquiry**// TEXT. //**sensitivity**// TEXT. //**hls_inquiry**// TEXT. //**min_shutter**// INTEGER. //**max_shutter**// INTEGER. //**shutter_label**// TEXT. //**min_iris**// INTEGER. //**max_iris **// INTEGER. //**iris_label**// TEXT. //**min_gain**// INTEGER. //**max_gain**// INTEGER. //**gain_label**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Camera Exposure response: {"ae_mode":0,"backlight":3,"gain":10,"gain_label":["0db",null,null,null,null,null,null,null,"24db",null,null,null,null,null,null,null,"48db"],"hlc":0,"iris":25,"iris_label":["0",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"F4.8",null,null,null,null,null,null,null,null,"F2.0"],"max_gain":17,"max_iris":25,"max_shutter":33,"min_gain":1,"min_iris":0,"min_shutter":6,"ret":"0","sensitivity":3,"shutter":16,"shutter_label":["1/1",null,null,null,null,null,null,null,null,null,null,null,null,null,"1/100",null,null,null,null,null,null,null,null,null,null,null,"1/10K"]} ---- ==== camera_monitor_mode ==== ---- Get the current camera monitor mode values from the visca camera. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**modes**// TEXT. //**current_mode**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Camera Monitor Mode response: {"current_mode":"2160p-29.97","modes":{"1080p-25":8,"1080p-29.97":6,"1080p-50":20,"1080p-59.94":19,"2160p-25":30,"2160p-29.97":29,"720p-50":12,"720p-59.94":9},"ret":"0"} ---- ==== dec ==== ---- Get the current decoder settings from the Database. === Parameters: === ---- //**chn**// Get the decoder channel number. The default decoder channel is 1. Select between decoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**preset**// TEXT. //**channel**// INTEGER. //**url**// TEXT. **//aenable//** TEXT. //**viewport**// TEXT. //**latency_mode**// TEXT. //**max_latency_ms**// TEXT. //**srt_mode**// TEXT. //**srt_latency**// TEXT. //**srt_decrypt**// TEXT. //**srt_pass**// TEXT. **//zixi_fec//** TEXT. //**zixi_fecoverhead**// TEXT. //**zixi_fecblock**// TEXT. //**zixi_latency**// TEXT. **//zixi_decrypt//** TEXT. //**zixi_pass**// TEXT. **//rtsp_flags//** TEXT. ---- ==== download ==== ---- Get the downloaded file information from the removable storage media. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**job **// Optional//**. **// The job from the schedule tab. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**FileName**// TEXT. //**FileSize**// TEXT. //**LastModified**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Download response: {"data":[],"metadata":[{"datatype":"text","editable":false,"label":"File Name","name":"download_filename"},{"datatype":"integer","editable":false,"label":"File Size","name":"download_size"},{"datatype":"text","editable":false,"label":"Last Modified","name":"download_lastmodified"}],"ret":"0"} ---- ==== drs_tamarisk_settings ==== ---- Get the camera model of drs tamarisk settings fromt the Database. === Parameters: === ---- //**job **// Optional//**. **// The job from the schedule tab. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**color_pallette**// TEXT. //**tab_index**// TEXT. //**color_pallette_disabled**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === DRS Tamarisk Settings response: {"color_pallette":"white_hot","color_pallette_disabled":"false","ret":"0","tab_index":"1"} ---- ==== enc ==== ---- Get the current channel encoder settings from the Database. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**preset**// TEXT, //**channel**// INTEGER. //**vbitrate**// TEXT. //**vframeratediv**// INTEGER. //**vsource**// TEXT. //**vcodec**// TEXT. //**vprofile**// TEXT. //**vprotocol**// TEXT. //**avmux_index**// TEXT. //**vgdr**// TEXT. **//vdest// ** TEXT. //**aenable**// TEXT. //**acodec**// TEXT. //**abitrate**// TEXT. //**asamplerate**// TEXT. //**aport**// TEXT. //**apair**// INTEGER. //**vres**// TEXT. //**vgopsize**// INTEGER. //**vpid**// INTEGER. //**apid**// INTEGER. //**zixiauthen**// TEXT. //**zixisession**// TEXT. //**zixiuser**// TEXT. //**zixioverhead**// TEXT. //**zixifecblock**// TEXT. //**zixilatency**// TEXT. //**zixirateadjen**// TEXT. //**fecrow**// INTEGER. //**feccol**// INTEGER. //**feconoff**// TEXT. //**aptspcr**// INTEGER. //**tslowlat**// TEXT. //**tsrate**// TEXT. //**pcrpid**// INTEGER. //**pcrinterval**// INTEGER. //**pmtpid**// INTEGER. //**klvenable**// TEXT. //**klvmode**// TEXT. //**klvmuxmethod**// TEXT. //**klvsrc**// TEXT. //**klvbrate**// TEXT. //**klvserialbaud**// TEXT. //**klvpid**// TEXT. //**vratectrl**// TEXT. //**vdelay**// INTEGER. //**storage**// TEXT. //**fprefix**// TEXT. //**asource**// TEXT. //**authonoff**// TEXT. //**auth_user**// TEXT. //**auth_passwd**// TEXT. //**auxonoff**// TEXT. //**filesize**// TEXT. //**nfstrength**// TEXT. //**telopenable**// TEXT. //**teloptext**// TEXT. //**teloplocation**// TEXT. //**telopcharsize**// TEXT. //**teloptextcolor**// TEXT. //**telopoutlineenable**// TEXT. //**telopoutlinecolor**// TEXT. //**gps_overlay_enable**// TEXT. //**gps_overlay_device**// TEXT. //**gps_overlay_location**// TEXT. //**gps_overlay_char_size**// TEXT. //**pipenable**// TEXT. //**piplocation**// TEXT. //**vquality**// TEXT. //**vinterlacemode**// TEXT. //**vmulticastdest**// TEXT. //**amulticastdest**// TEXT. //**rtsp_auth_enable**// TEXT. //**rtsp_auth_username**// TEXT. //**rtsp_auth_password**// TEXT. //**rtsp_transport_mode**// TEXT. //**lowdelay_opt**// TEXT. //**vcropaspect**// TEXT. //**vcrop_enable**// TEXT. //**vcrop_width**// INTEGER. //**vcrop_height**// INTEGER. //**vcrop_x**// INTEGER. //**vcrop_y**// INTEGER. //**rotate_enable**// INTEGER. //**rotate_angle**// INTEGER. //**rtmp265_enable**// TEXT. //**srt_pass**// TEXT. //**srt_encrypt**// INTEGER. //**srt_mode**// INTEGER. //**srt_destAddr**// TEXT. //**mmulticastdest**// TEXT. //**mport**// TEXT. //**frame_loss_mode**// TEXT. //**frame_loss_gap**// INTEGER. //**frame_loss_overshot**// INTEGER. //**mounts**// TEXT. //**source_status_str**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Encoder response: {"abitrate":"128000","acodec":"fdk_aaclc","aenable":"on","amulticastdest":"225.1.2.3","apair":0,"apid":120,"aport":"8700","aptspcr":250,"asamplerate":"1","asource":"MIC","auth_passwd":"password","auth_user":"user","authonoff":"off","auxonoff":"off","avmux_index":"streaming","channel":1,"enc_status":"RUNNING","feccol":5,"feconoff":"off","fecrow":1,"filesize":"1024M","fprefix":"MOV1_%C","frame_loss_gap":0,"frame_loss_mode":"none","frame_loss_overshot":100,"gps_overlay_char_size":"32","gps_overlay_device":"/dev/ttyS1","gps_overlay_enable":"off","gps_overlay_location":"top_right","klvbrate":"1000","klvenable":"off","klvmode":"sdi","klvmuxmethod":"sync","klvpid":"35","klvserialbaud":"115200","klvsrc":"/dev/ttyS1","lowdelay_opt":"off","mmulticastdest":"225.1.2.3","mounts":"/dev/mmcblk0p1 /media/mmcblk0p1/,","mport":"8800","nfstrength":"0","pcrinterval":50,"pcrpid":521,"pipenable":"off","piplocation":"top_right","pmtpid":31,"preset":"actv_preset","ret":"0","rotate_angle":0,"rotate_enable":"off","rtmp265_enable":"off","rtsp_auth_enable":"off","rtsp_auth_password":"admin","rtsp_auth_username":"admin","rtsp_transport_mode":"all","source_status_str":"+CAMERA 3840x2160p 29.97 fps\n","srt_destAddr":"192.168.0.6","srt_encrypt":0,"srt_mode":0,"srt_pass":"password1234","storage":"/media/sda1","telopcharsize":"32","telopenable":"off","teloplocation":"top_left","telopoutlinecolor":"0xFF000000","telopoutlineenable":"off","teloptext":"Z3Cam","teloptextcolor":"0xFFFFFFFF","tslowlat":"on","tsrate":"3000K","vbitrate":"6M","vcodec":"h265","vcrop_enable":"off","vcrop_height":1080,"vcrop_width":1920,"vcrop_x":0,"vcrop_y":0,"vcropaspect":"off","vdelay":1000,"vdest":"192.168.0.6:8600","vframeratediv":1,"vgdr":"off","vgopsize":60,"vinterlacemode":"combine","vmulticastdest":"225.1.2.3","vpid":221,"vprofile":"high","vprotocol":"rtsp","vquality":"balanced","vratectrl":"vbr","vres":"follow_input","vsource":"CAMERA","zixiauthen":"off","zixifecblock":"50","zixilatency":"500","zixioverhead":"15","zixirateadjen":"on","zixisession":"test","zixiuser":"user"} ---- ==== filepicker ==== ---- Get the file type and its information from the removable storage media. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**filepicker_filename**// TEXT, **//filepicker_size//** INTEGER. //**filepicker_lastmodified**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Filepicket response: {"data":[],"metadata":[{"datatype":"text","editable":false,"label":"File Name","name":"filepicker_filename"},{"datatype":"integer","editable":false,"label":"File Size","name":"filepicker_size"},{"datatype":"text","editable":false,"label":"Last Modified","name":"filepicker_lastmodified"}],"ret":"0"} ---- ==== fmt ==== ---- Get the removable storage infromation from the device using fdisk command. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**mounts**// TEXT, ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Format response: {"mounts":"mmcblk0p1\n /dev/mmcblk0,","ret":"0","store_logs":"off"} ---- ==== focusStepSize ==== ---- Get the current camera focus step values from the Database. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**focus_step_size**// INTEGER, ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Focus Step Size response: {"ret":"0","size":1} ---- ==== fpga ==== ---- Get the current fpga from firmware filename. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**fpgafileglob**// TEXT, //**options**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === FPGA response: {"fpgafileglob":"fpga_none.bin|fpga2_0139_cvbs.bin","fpgaoptions":{"Boson only ":"fpga_unused.bin|fpga2_0139_boson.bin","Composite only ":"fpga_unused.bin|fpga2_0139_cvbs.bin","HDMI 4K| Boson ":"fpga_none.bin|fpga2_0139_boson.bin","HDMI 4K| Composite":"fpga_none.bin|fpga2_0139_cvbs.bin","HDMI 4K| SonyLVDS ":"fpga_none.bin|fpga2_0139.bin","HDMI 4K| Tamarisk":"fpga_none.bin|fpga2_0139_tamarisk.bin","HDMI 4K| Tau2 ":"fpga_none.bin|fpga2_0139_tau2.bin","HDMI 4K| Tenum ":"fpga_none.bin|fpga2_0139_tenum.bin","HDMI 4K| Unused ":"fpga_none.bin|fpga2_none.bin","Micro-HDMI| Boson ":"fpga_none_microhdmi.bin|fpga2_0139_boson.bin","Micro-HDMI| Composite":"fpga_none_microhdmi.bin|fpga2_0139_cvbs.bin","Micro-HDMI| SonyLVDS ":"fpga_none_microhdmi.bin|fpga2_0139.bin","Micro-HDMI| Tamarisk ":"fpga_none_microhdmi.bin|fpga2_0139_tamarisk.bin","Micro-HDMI| Tau2 ":"fpga_none_microhdmi.bin|fpga2_0139_tau2.bin","Micro-HDMI| Tenum ":"fpga_none_microhdmi.bin|fpga2_0139_tenum.bin","Micro-HDMI| Unused ":"fpga_none_microhdmi.bin|fpga2_none.bin","SonyLVDS only ":"fpga_unused.bin|fpga2_0139.bin","Tamarisk only ":"fpga_unused.bin|fpga2_0139_tamarisk.bin","Tau2 only ":"fpga_unused.bin|fpga2_0139_tau2.bin","Tenum only ":"fpga_unused.bin|fpga2_0139_tenum.bin"},"ret":"0"} ---- ==== history ==== ---- Get the decoder history infromation from the Database. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**channel**// TEXT, //**histidx**// TEXT. //**url**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === History response: {"ret":"0","status":"OK"} ---- ==== ipinfo ==== ---- Get the internet protocol infromation from the board. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**local_ip**// TEXT, //**local_netmask**// TEXT. //**default_gw**// TEXT. //**ipmtu**// TEXT. //**eth_speed**// TEXT. //**eth_duplex**// TEXT. //**do_autostart**// BOOLEAN. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === IP Info response: {"default_gw":"192.168.10.1","do_autostart":1,"eth_duplex":"AUTO","eth_speed":"AUTO","ipmtu":1500,"local_dnsip":"8.8.8.8","local_dnsip2":"8.8.4.4","local_hostname":"z3-he4k","local_ip":"192.168.10.127","local_netmask":"255.255.255.0","ret":"0","use_dhcp":"1"} ---- ==== onvif ==== ---- Get the ONVIF miscallenous settings from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**list_all_video_sources**// INTEGER, //**dns_from_dhcp**// INTEGER, //**ntp_from_dhcp**// INTEGER, //**ntp_enable**// INTEGER, //**daylightsaving**// INTEGER, //**timezone**// TEXT. //**http_enable**// INTEGER, //**http_port**// INTEGER, //**https_enable**// INTEGER, //**https_port**// INTEGER, //**rtsp_enable**// INTEGER, //**rtsp_port**// INTEGER, //**discoverable**// INTEGER, //**ntp**// TEXT. //**dns_search**// TEXT. **//ptz_timeout//** TEXT. //**primary fixed_profile_max **// INTEGER, //**secondary fixed_profile_max**// INTEGER, //**en_persistent_audio**// TEXT. //**onvif_enable**// BOOLEAN. //**vmd_enable**// BOOLEAN. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === ONVIF response: {"daylightsaving":"0","discoverable":"1","dns_from_dhcp":"1","dns_search":"localdomain","en_persistent_audio":"1","fixed_profile_max":"1","http_enable":"1","http_port":"80","https_enable":"0","https_port":"443","list_all_video_sources":"0","ntp":"pool.ntp.org","ntp_enable":"1","ntp_from_dhcp":"0","onvif_enable":"on","ptz_timeout":10,"ret":"0","rtsp_enable":"1","rtsp_port":"554","timezone":"TaipeiStandardTime-8","vmd_enable":"off"} ---- ==== onvif_vmd ==== ---- Get the ONVIF video motion detection and too darkness settings from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**vmd_sens**// INTEGER, //**vmd_zone_modify**// TEXT. //**vmd_vcrop_width**// INTEGER. //**vmd_vcrop_height**// INTEGER. **//vmd_vcrop_x//** INTEGER. **//vmd_vcrop_y//** INTEGER. //**td_enable**// TEXT. //**td_thresh**// INTEGER. //**vmd_td_channel**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === ONVIF VMD response: {"ret":"0","td_enable":"off","td_thresh":85,"vmd_enable":"off","vmd_sens":1,"vmd_td_channel":"CH1","vmd_vcrop_height":0,"vmd_vcrop_width":0,"vmd_vcrop_x":0,"vmd_vcrop_y":0,"vmd_zone_modify":"off"} ---- ==== permission ==== ---- Get the current permission settings for admin, operators, and users from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**username**// TEXT, //**userlevel**// TEXT. //**api_command**// TEXT. //**superadmin**// TEXT. **admin** TEXT. //**operator1**// TEXT. //**operator2**// TEXT. //**user1**// TEXT. //**user2**// TEXT. //**user3**// TEXT. **//anonymous// ** TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === PERMISSIONS response: {"permissions":{"Z38021xImportHandler:post":"W","Z3DebugHandler:get":"R","Z3DownloadMediaHandler:get":"R","Z3ExportHandler:get":"R","Z3FWUploadHandler:post":"W","Z3ImportHandler:post":"W","Z3LogoHandler:get":"?","Z3LogsHandler:get":"R","Z3RequestHandler:get:8021x":"?","Z3RequestHandler:get:GetCronJobs":"R","Z3RequestHandler:get:GetNFSMount":"?","Z3RequestHandler:get:aspect_info":"?","Z3RequestHandler:get:boardinfo":"R","Z3RequestHandler:get:cam_state":"R","Z3RequestHandler:get:camera":"?","Z3RequestHandler:get:camera_exposure":"?","Z3RequestHandler:get:camera_monitor_mode":"?","Z3RequestHandler:get:dec":"R","Z3RequestHandler:get:download":"?","Z3RequestHandler:get:drs_tamarisk_settings":"?","Z3RequestHandler:get:enc":"R","Z3RequestHandler:get:filepicker":"?","Z3RequestHandler:get:fmt":"W","Z3RequestHandler:get:focusStepSize":"?","Z3RequestHandler:get:fpga":"?","Z3RequestHandler:get:history":"R","Z3RequestHandler:get:ipinfo":"R","Z3RequestHandler:get:onvif":"?","Z3RequestHandler:get:onvif_vmd":"?","Z3RequestHandler:get:permission":"R","Z3RequestHandler:get:ptz":"?","Z3RequestHandler:get:ptz_preset":"?","Z3RequestHandler:get:ptz_tour":"?","Z3RequestHandler:get:snmp":"?","Z3RequestHandler:get:ssl":"?","Z3RequestHandler:get:stats":"?","Z3RequestHandler:get:sys":"R","Z3RequestHandler:get:term":"?","Z3RequestHandler:get:users":"R","Z3RequestHandler:get:video_group":"?","Z3RequestHandler:get:wifi":"?","Z3RequestHandler:get:zoomStepSize":"?","Z3RequestHandler:post:AStreamStatus":"?","Z3RequestHandler:post:AddChannel":"W","Z3RequestHandler:post:CameraControl:SetColorPallette":"W","Z3RequestHandler:post:CameraControl:ae_mode":"W","Z3RequestHandler:post:CameraControl:ae_mode_inquiry":"R","Z3RequestHandler:post:CameraControl:agc_filter":"W","Z3RequestHandler:post:CameraControl:agc_midpoint":"W","Z3RequestHandler:post:CameraControl:agc_type":"W","Z3RequestHandler:post:CameraControl:auto_icr_disable":"W","Z3RequestHandler:post:CameraControl:auto_icr_enable":"W","Z3RequestHandler:post:CameraControl:autocal_disable":"W","Z3RequestHandler:post:CameraControl:autocal_enable":"W","Z3RequestHandler:post:CameraControl:backlight_inquiry":"R","Z3RequestHandler:post:CameraControl:backlight_off":"W","Z3RequestHandler:post:CameraControl:backlight_on":"W","Z3RequestHandler:post:CameraControl:black_hot":"W","Z3RequestHandler:post:CameraControl:brightness":"W","Z3RequestHandler:post:CameraControl:brightness_bias":"W","Z3RequestHandler:post:CameraControl:brightness_inquiry":"R","Z3RequestHandler:post:CameraControl:cam_control_inquiry":"R","Z3RequestHandler:post:CameraControl:cam_custom_recall":"W","Z3RequestHandler:post:CameraControl:cam_custom_reset":"W","Z3RequestHandler:post:CameraControl:cam_custom_set":"W","Z3RequestHandler:post:CameraControl:chroma_get_suppress":"R","Z3RequestHandler:post:CameraControl:chroma_suppress":"W","Z3RequestHandler:post:CameraControl:color_disable":"W","Z3RequestHandler:post:CameraControl:color_enable":"W","Z3RequestHandler:post:CameraControl:color_gain":"W","Z3RequestHandler:post:CameraControl:color_get_gain":"R","Z3RequestHandler:post:CameraControl:color_get_hue":"R","Z3RequestHandler:post:CameraControl:color_hue":"W","Z3RequestHandler:post:CameraControl:color_select":"W","Z3RequestHandler:post:CameraControl:colorlut_arctic":"W","Z3RequestHandler:post:CameraControl:colorlut_blackhot":"W","Z3RequestHandler:post:CameraControl:colorlut_disable":"W","Z3RequestHandler:post:CameraControl:colorlut_enable":"W","Z3RequestHandler:post:CameraControl:colorlut_globow":"W","Z3RequestHandler:post:CameraControl:colorlut_gradedfire":"W","Z3RequestHandler:post:CameraControl:colorlut_hottest":"W","Z3RequestHandler:post:CameraControl:colorlut_ironbow":"W","Z3RequestHandler:post:CameraControl:colorlut_lava":"W","Z3RequestHandler:post:CameraControl:colorlut_rainbow":"W","Z3RequestHandler:post:CameraControl:colorlut_rainbow_hc":"W","Z3RequestHandler:post:CameraControl:colorlut_whitehot":"W","Z3RequestHandler:post:CameraControl:contrast_adjust_level":"W","Z3RequestHandler:post:CameraControl:contrast_adjust_level_inquiry":"R","Z3RequestHandler:post:CameraControl:contrast_inquiry":"R","Z3RequestHandler:post:CameraControl:defog_inquiry":"R","Z3RequestHandler:post:CameraControl:defog_on_direct":"W","Z3RequestHandler:post:CameraControl:display_off":"W","Z3RequestHandler:post:CameraControl:display_on":"W","Z3RequestHandler:post:CameraControl:display_on_off":"W","Z3RequestHandler:post:CameraControl:do_ffc":"W","Z3RequestHandler:post:CameraControl:dvo_set_output_format_ycbcr":"W","Z3RequestHandler:post:CameraControl:dzoom_combine_mode":"W","Z3RequestHandler:post:CameraControl:dzoom_direct":"W","Z3RequestHandler:post:CameraControl:dzoom_inquiry":"R","Z3RequestHandler:post:CameraControl:dzoom_mode_inquiry":"R","Z3RequestHandler:post:CameraControl:dzoom_off":"W","Z3RequestHandler:post:CameraControl:dzoom_on":"W","Z3RequestHandler:post:CameraControl:dzoom_separage_mode":"W","Z3RequestHandler:post:CameraControl:dzoom_separate_mode":"W","Z3RequestHandler:post:CameraControl:dzoom_stop":"W","Z3RequestHandler:post:CameraControl:dzoom_super_res":"W","Z3RequestHandler:post:CameraControl:dzoom_tele_var":"W","Z3RequestHandler:post:CameraControl:dzoom_wide_var":"W","Z3RequestHandler:post:CameraControl:dzoom_x1_max":"W","Z3RequestHandler:post:CameraControl:e_pan_tilt_mode_inquiry":"R","Z3RequestHandler:post:CameraControl:e_pan_tilt_off":"W","Z3RequestHandler:post:CameraControl:e_pan_tilt_on":"W","Z3RequestHandler:post:CameraControl:eflip_inquiry":"R","Z3RequestHandler:post:CameraControl:eflip_off":"W","Z3RequestHandler:post:CameraControl:eflip_on":"W","Z3RequestHandler:post:CameraControl:expcomp_direct":"W","Z3RequestHandler:post:CameraControl:expcomp_down":"W","Z3RequestHandler:post:CameraControl:expcomp_mode_inquiry":"R","Z3RequestHandler:post:CameraControl:expcomp_off":"W","Z3RequestHandler:post:CameraControl:expcomp_on":"W","Z3RequestHandler:post:CameraControl:expcomp_pos_inquiry":"R","Z3RequestHandler:post:CameraControl:expcomp_reset":"W","Z3RequestHandler:post:CameraControl:expcomp_up":"W","Z3RequestHandler:post:CameraControl:ffc_period":"W","Z3RequestHandler:post:CameraControl:ffc_temp_delta":"W","Z3RequestHandler:post:CameraControl:ffc_warn_time":"W","Z3RequestHandler:post:CameraControl:flicker_detection_inquiry":"R","Z3RequestHandler:post:CameraControl:flicker_reduction_inquiry":"R","Z3RequestHandler:post:CameraControl:flicker_reduction_off":"W","Z3RequestHandler:post:CameraControl:flicker_reduction_on":"W","Z3RequestHandler:post:CameraControl:focus_auto":"W","Z3RequestHandler:post:CameraControl:focus_direct":"W","Z3RequestHandler:post:CameraControl:focus_get_mode":"R","Z3RequestHandler:post:CameraControl:focus_get_pos":"R","Z3RequestHandler:post:CameraControl:focus_get_pos_meter":"R","Z3RequestHandler:post:CameraControl:focus_manual":"W","Z3RequestHandler:post:CameraControl:focus_near_limit":"W","Z3RequestHandler:post:CameraControl:focus_near_limit_inquiry":"R","Z3RequestHandler:post:CameraControl:focus_set_pos_meter":"W","Z3RequestHandler:post:CameraControl:focus_stop":"W","Z3RequestHandler:post:CameraControl:focus_tele_std":"W","Z3RequestHandler:post:CameraControl:focus_tele_var":"W","Z3RequestHandler:post:CameraControl:focus_toggle":"W","Z3RequestHandler:post:CameraControl:focus_wide_std":"W","Z3RequestHandler:post:CameraControl:focus_wide_var":"W","Z3RequestHandler:post:CameraControl:fpa_temp_inquiry":"R","Z3RequestHandler:post:CameraControl:gain":"W","Z3RequestHandler:post:CameraControl:gain_inquiry":"R","Z3RequestHandler:post:CameraControl:gain_mode":"W","Z3RequestHandler:post:CameraControl:get_camera_framerate":"R","Z3RequestHandler:post:CameraControl:get_camera_part_number":"R","Z3RequestHandler:post:CameraControl:get_camera_serial_number":"R","Z3RequestHandler:post:CameraControl:get_color_tables":"R","Z3RequestHandler:post:CameraControl:get_colorlut_current":"R","Z3RequestHandler:post:CameraControl:get_colorlut_state":"R","Z3RequestHandler:post:CameraControl:get_fpa_temp_celsius":"R","Z3RequestHandler:post:CameraControl:get_low_delay_mode":"R","Z3RequestHandler:post:CameraControl:get_revision":"R","Z3RequestHandler:post:CameraControl:get_sensor_part_number":"R","Z3RequestHandler:post:CameraControl:get_sensor_serial_number":"R","Z3RequestHandler:post:CameraControl:get_software_rev":"R","Z3RequestHandler:post:CameraControl:get_tnr_state":"R","Z3RequestHandler:post:CameraControl:get_zoom_limits_mm":"R","Z3RequestHandler:post:CameraControl:high_sensitivity_inquiry":"R","Z3RequestHandler:post:CameraControl:high_sensitivity_off":"W","Z3RequestHandler:post:CameraControl:high_sensitivity_on":"W","Z3RequestHandler:post:CameraControl:hlc":"W","Z3RequestHandler:post:CameraControl:hlc_inquiry":"R","Z3RequestHandler:post:CameraControl:hr_inquiry":"R","Z3RequestHandler:post:CameraControl:hr_off":"W","Z3RequestHandler:post:CameraControl:hr_on":"W","Z3RequestHandler:post:CameraControl:ice_disable":"W","Z3RequestHandler:post:CameraControl:ice_enable":"W","Z3RequestHandler:post:CameraControl:icr_auto_inquiry":"R","Z3RequestHandler:post:CameraControl:icr_mode":"W","Z3RequestHandler:post:CameraControl:icr_mode_inquiry":"R","Z3RequestHandler:post:CameraControl:icr_threshold_inquiry":"R","Z3RequestHandler:post:CameraControl:image_freeze_inquiry":"R","Z3RequestHandler:post:CameraControl:image_freeze_off":"W","Z3RequestHandler:post:CameraControl:image_freeze_on":"W","Z3RequestHandler:post:CameraControl:img_blackwhite_inquiry":"R","Z3RequestHandler:post:CameraControl:img_blackwhite_off":"W","Z3RequestHandler:post:CameraControl:img_blackwhite_on":"W","Z3RequestHandler:post:CameraControl:img_stabilizer_hold":"W","Z3RequestHandler:post:CameraControl:img_stabilizer_inquiry":"R","Z3RequestHandler:post:CameraControl:img_stabilizer_level":"W","Z3RequestHandler:post:CameraControl:img_stabilizer_level_inquiry":"R","Z3RequestHandler:post:CameraControl:img_stabilizer_off":"W","Z3RequestHandler:post:CameraControl:img_stabilizer_on":"W","Z3RequestHandler:post:CameraControl:iris":"W","Z3RequestHandler:post:CameraControl:iris_inquiry":"R","Z3RequestHandler:post:CameraControl:lens_control_inquiry":"R","Z3RequestHandler:post:CameraControl:lens_get_temp":"R","Z3RequestHandler:post:CameraControl:lr_reverse_inquiry":"R","Z3RequestHandler:post:CameraControl:lr_reverse_off":"W","Z3RequestHandler:post:CameraControl:lr_reverse_on":"W","Z3RequestHandler:post:CameraControl:min_shutter_inquiry":"R","Z3RequestHandler:post:CameraControl:min_shutter_limit":"W","Z3RequestHandler:post:CameraControl:min_shutter_limit_inquiry":"R","Z3RequestHandler:post:CameraControl:min_shutter_off":"W","Z3RequestHandler:post:CameraControl:min_shutter_on":"W","Z3RequestHandler:post:CameraControl:mute_on_off":"W","Z3RequestHandler:post:CameraControl:noise_2d3d":"W","Z3RequestHandler:post:CameraControl:noise_2d3d_inquiry":"R","Z3RequestHandler:post:CameraControl:noise_reduction":"W","Z3RequestHandler:post:CameraControl:noise_reduction_inquiry":"R","Z3RequestHandler:post:CameraControl:part_number_inquiry":"R","Z3RequestHandler:post:CameraControl:power_off":"W","Z3RequestHandler:post:CameraControl:power_on":"W","Z3RequestHandler:post:CameraControl:raw":"W","Z3RequestHandler:post:CameraControl:reboot_camera":"W","Z3RequestHandler:post:CameraControl:register_read":"R","Z3RequestHandler:post:CameraControl:register_write":"W","Z3RequestHandler:post:CameraControl:run_ffc":"W","Z3RequestHandler:post:CameraControl:serial_number_inquiry":"R","Z3RequestHandler:post:CameraControl:set_low_delay_mode":"W","Z3RequestHandler:post:CameraControl:set_monitor_mode":"W","Z3RequestHandler:post:CameraControl:shutter":"W","Z3RequestHandler:post:CameraControl:shutter_inquiry":"R","Z3RequestHandler:post:CameraControl:shutter_position":"R","Z3RequestHandler:post:CameraControl:shutter_temp":"R","Z3RequestHandler:post:CameraControl:shutter_temp_inquiry":"R","Z3RequestHandler:post:CameraControl:slow_shutter":"W","Z3RequestHandler:post:CameraControl:slow_shutter_inquiry":"R","Z3RequestHandler:post:CameraControl:slow_shutter_limit_inquiry":"R","Z3RequestHandler:post:CameraControl:spot_display":"W","Z3RequestHandler:post:CameraControl:spot_display_inquiry":"W","Z3RequestHandler:post:CameraControl:spot_meter_data_advanced":"W","Z3RequestHandler:post:CameraControl:spot_meter_data_inquiry":"R","Z3RequestHandler:post:CameraControl:spot_meter_inquiry":"R","Z3RequestHandler:post:CameraControl:spot_meter_mode":"W","Z3RequestHandler:post:CameraControl:spot_meter_pos_inquiry":"R","Z3RequestHandler:post:CameraControl:stable_zoom_inquiry":"R","Z3RequestHandler:post:CameraControl:stable_zoom_off":"W","Z3RequestHandler:post:CameraControl:stable_zoom_on":"W","Z3RequestHandler:post:CameraControl:tnr_disable":"W","Z3RequestHandler:post:CameraControl:tnr_enable":"W","Z3RequestHandler:post:CameraControl:version":"R","Z3RequestHandler:post:CameraControl:version_inquiry":"R","Z3RequestHandler:post:CameraControl:visibility_enhancer_inquiry":"R","Z3RequestHandler:post:CameraControl:visibility_enhancer_off":"W","Z3RequestHandler:post:CameraControl:visibility_enhancer_on":"W","Z3RequestHandler:post:CameraControl:visibility_enhancer_params":"W","Z3RequestHandler:post:CameraControl:visibility_enhancer_params_inquiry":"W","Z3RequestHandler:post:CameraControl:wb_auto_mode":"W","Z3RequestHandler:post:CameraControl:wb_auto_trace_mode":"W","Z3RequestHandler:post:CameraControl:wb_autotrace_mode":"W","Z3RequestHandler:post:CameraControl:wb_get_bgain":"R","Z3RequestHandler:post:CameraControl:wb_get_mode":"R","Z3RequestHandler:post:CameraControl:wb_get_mode_name":"R","Z3RequestHandler:post:CameraControl:wb_get_rgain":"R","Z3RequestHandler:post:CameraControl:wb_indoor_mode":"W","Z3RequestHandler:post:CameraControl:wb_manual_bgain_direct":"W","Z3RequestHandler:post:CameraControl:wb_manual_bgain_reset":"W","Z3RequestHandler:post:CameraControl:wb_manual_mode":"W","Z3RequestHandler:post:CameraControl:wb_manual_rgain_direct":"W","Z3RequestHandler:post:CameraControl:wb_manual_rgain_reset":"W","Z3RequestHandler:post:CameraControl:wb_onepush_mode":"W","Z3RequestHandler:post:CameraControl:wb_onepush_trigger":"W","Z3RequestHandler:post:CameraControl:wb_outdoor_auto_mode":"W","Z3RequestHandler:post:CameraControl:wb_outdoor_mode":"W","Z3RequestHandler:post:CameraControl:wb_sodium_lamp_auto_mode":"W","Z3RequestHandler:post:CameraControl:wb_sodium_lamp_fixed_mode":"W","Z3RequestHandler:post:CameraControl:wb_sodium_lamp_outdoor_mode":"W","Z3RequestHandler:post:CameraControl:white_hot":"W","Z3RequestHandler:post:CameraControl:wide_dynamic_range_inquiry":"R","Z3RequestHandler:post:CameraControl:wide_dynamic_range_off":"W","Z3RequestHandler:post:CameraControl:wide_dynamic_range_on":"W","Z3RequestHandler:post:CameraControl:zoom_direct":"W","Z3RequestHandler:post:CameraControl:zoom_get_focal_length_mm":"R","Z3RequestHandler:post:CameraControl:zoom_get_pos":"R","Z3RequestHandler:post:CameraControl:zoom_stop":"W","Z3RequestHandler:post:CameraControl:zoom_tele_std":"W","Z3RequestHandler:post:CameraControl:zoom_tele_var":"W","Z3RequestHandler:post:CameraControl:zoom_wide_std":"W","Z3RequestHandler:post:CameraControl:zoom_wide_var":"W","Z3RequestHandler:post:DecoderStatus":"?","Z3RequestHandler:post:DeleteChannel":"W","Z3RequestHandler:post:DeletePreset":"W","Z3RequestHandler:post:DisplayStatus":"?","Z3RequestHandler:post:Dynamic:analog_gain_db":"?","Z3RequestHandler:post:Dynamic:crop":"?","Z3RequestHandler:post:Dynamic:gop":"?","Z3RequestHandler:post:Dynamic:nfstrength":"?","Z3RequestHandler:post:Dynamic:pip_enable":"?","Z3RequestHandler:post:Dynamic:pip_location":"?","Z3RequestHandler:post:Dynamic:rotate_angle":"?","Z3RequestHandler:post:Dynamic:rotate_center_offset":"?","Z3RequestHandler:post:Dynamic:rotate_enable":"?","Z3RequestHandler:post:Dynamic:rotate_mode":"?","Z3RequestHandler:post:Dynamic:startmulticast":"?","Z3RequestHandler:post:Dynamic:stopmulticast":"?","Z3RequestHandler:post:Dynamic:telop_text":"?","Z3RequestHandler:post:Dynamic:translate_enable":"?","Z3RequestHandler:post:Dynamic:translate_offset":"?","Z3RequestHandler:post:Dynamic:vconflict":"?","Z3RequestHandler:post:Dynamic:vrate":"?","Z3RequestHandler:post:Dynamic:vratediv":"?","Z3RequestHandler:post:EjectStorage":"W","Z3RequestHandler:post:EncoderStatus":"?","Z3RequestHandler:post:ErasePresets":"W","Z3RequestHandler:post:ExportPresets":"W","Z3RequestHandler:post:FactoryReset":"W","Z3RequestHandler:post:GetCameraLink":"?","Z3RequestHandler:post:GetCameraTab":"?","Z3RequestHandler:post:GetStatus":"?","Z3RequestHandler:post:GetVideoGroup":"?","Z3RequestHandler:post:GetWifiPass":"?","Z3RequestHandler:post:InsQuery":"W","Z3RequestHandler:post:LoadUser":"W","Z3RequestHandler:post:Login":"W","Z3RequestHandler:post:Logout":"W","Z3RequestHandler:post:Overlay":"?","Z3RequestHandler:post:OverlayStop":"W","Z3RequestHandler:post:PtzAbsoluteMove":"W","Z3RequestHandler:post:PtzAuxiliary":"W","Z3RequestHandler:post:PtzClearPreset":"W","Z3RequestHandler:post:PtzContinuousMove":"W","Z3RequestHandler:post:PtzGotoPreset":"W","Z3RequestHandler:post:PtzNewTourSpot":"W","Z3RequestHandler:post:PtzPosition":"W","Z3RequestHandler:post:PtzPreset":"W","Z3RequestHandler:post:PtzQuery":"W","Z3RequestHandler:post:PtzRemoveTourSpot":"W","Z3RequestHandler:post:PtzSetPreset":"W","Z3RequestHandler:post:PtzStartTour":"W","Z3RequestHandler:post:PtzStop":"W","Z3RequestHandler:post:RemoveJobs":"W","Z3RequestHandler:post:RestartBoard":"W","Z3RequestHandler:post:SaveCamera":"?","Z3RequestHandler:post:SaveCameraBoson":"?","Z3RequestHandler:post:SaveCameraDRSTamarisk":"?","Z3RequestHandler:post:SaveCameraLink":"?","Z3RequestHandler:post:SaveCameraLx":"?","Z3RequestHandler:post:SaveCameraTau":"?","Z3RequestHandler:post:SaveJobs":"W","Z3RequestHandler:post:SavePresets":"W","Z3RequestHandler:post:SaveUser":"W","Z3RequestHandler:post:SetAPConfig":"?","Z3RequestHandler:post:SetAdv":"?","Z3RequestHandler:post:SetAudio":"W","Z3RequestHandler:post:SetCameraLink":"W","Z3RequestHandler:post:SetConsole":"?","Z3RequestHandler:post:SetDDNSEnable":"W","Z3RequestHandler:post:SetDSCP":"?","Z3RequestHandler:post:SetDebugLevel":"W","Z3RequestHandler:post:SetDevName":"W","Z3RequestHandler:post:SetDisplay":"?","Z3RequestHandler:post:SetEncoder":"W","Z3RequestHandler:post:SetEncoderCameraControl":"W","Z3RequestHandler:post:SetFpga":"W","Z3RequestHandler:post:SetIp":"W","Z3RequestHandler:post:SetLoginLimit":"W","Z3RequestHandler:post:SetNFS":"W","Z3RequestHandler:post:SetNMEAEnable":"?","Z3RequestHandler:post:SetOnvif":"W","Z3RequestHandler:post:SetOnvifVMD":"W","Z3RequestHandler:post:SetRMF":"W","Z3RequestHandler:post:SetRTSP":"W","Z3RequestHandler:post:SetSNTP":"W","Z3RequestHandler:post:SetStartLogs":"W","Z3RequestHandler:post:SetStopLogs":"W","Z3RequestHandler:post:SetTermSrvEnable":"?","Z3RequestHandler:post:SetViVpssMode":"?","Z3RequestHandler:post:SetVideoGroup":"W","Z3RequestHandler:post:SetViewport":"?","Z3RequestHandler:post:SetWifiAP":"?","Z3RequestHandler:post:SetZFinderEnable":"W","Z3RequestHandler:post:SourceStatus":"?","Z3RequestHandler:post:StartChannel":"W","Z3RequestHandler:post:StartMTS":"W","Z3RequestHandler:post:StopChannel":"W","Z3RequestHandler:post:StopMTS":"W","Z3RequestHandler:post:StreamStatus":"?","Z3RequestHandler:post:TempStatus":"?","Z3RequestHandler:post:UpdatePtz":"?","Z3RequestHandler:post:UpdatePtzPreset":"W","Z3RequestHandler:post:UpdatePtzTourSpots":"W","Z3RequestHandler:post:UpdateTerm":"W","Z3RequestHandler:post:UpdateTermForFpga":"W","Z3RequestHandler:post:ViscaPort":"x","Z3RequestHandler:post:camera_inquiry":"?","Z3RequestHandler:post:fmt_media":"W","Z3RequestHandler:post:update_require_web_login":"W","Z3RequestHandler:post:user_add":"W","Z3RequestHandler:post:user_remove":"W","Z3RequestHandler:post:user_update_level":"W","Z3RequestHandler:post:user_update_password":"W","Z3SSLImportHandler:post":"W","Z3SnapshotHandler:get":"R","Z3TabHandler:get":"-","Z3UploadHandler:post":"W","Z3WebSocketHandler:get":"R"},"ret":"0","status":"OK","userlevel":0,"username":"admin"} ---- ==== ptz ==== ---- Get the current PTZ settings from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**token**// TEXT, **//node//** TEXT. //**name**// TEXT. //**enabled**// BOOLEAN. //**pelcoaddr**// INTEGER. //**tcpport**// INTEGER. //**ptztype**// TEXT. //**flip**// TEXT. //**pos**// TEXT. //**maxtilt**// INTEGER. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === PTZ response: {"data":[{"id":1,"values":{"db_videosource":"CAMERA","enabled":1,"flip":"none","maxtilt":90,"name":"videoin1","pelcoaddr":1,"pos":"simulated","ptztype":"relative","rowid":1,"tcpport":2000,"token":"ptz"}},{"id":2,"values":{"db_videosource":"CAMERA2","enabled":1,"flip":"none","maxtilt":90,"name":"videoin2","pelcoaddr":2,"pos":"simulated","ptztype":"relative","rowid":2,"tcpport":2000,"token":"ptz2"}}],"metadata":[{"datatype":"text","editable":false,"label":"Video Source","name":"db_videosource"},{"datatype":"text","editable":false,"label":"ONVIF Token","name":"token"},{"datatype":"text","editable":true,"label":"ONVIF Name","name":"name"},{"datatype":"bool","editable":true,"label":"Enabled","name":"enabled"},{"datatype":"integer","editable":true,"label":"RS485 Address","name":"pelcoaddr"},{"datatype":"integer","editable":true,"label":"TCP Port","name":"tcpport"},{"datatype":"text","editable":true,"label":"Type","name":"ptztype"},{"datatype":"text","editable":true,"label":"Flip","name":"flip"},{"datatype":"text","editable":true,"label":"Position","name":"pos"},{"datatype":"integer","editable":true,"label":"Max Tilt","name":"maxtilt"}],"ret":"0"} ---- ==== ptz_preset ==== ---- Get the PTZ preseting values from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**profiletoken**// TEXT, //**token**// TEXT. //**name**// TEXT. //**pan**// FLOAT. //**tilt**// FLOAT. //**zoom**// FLOAT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === PTZ Preset response: {"data":[{"id":1,"values":{"action":"blank","name":"home","profiletoken":"profile1","rowid":1,"token":"1"}}],"metadata":[{"datatype":"text","editable":false,"label":"Profile","name":"profiletoken"},{"datatype":"text","editable":false,"label":"PresetID","name":"token"},{"datatype":"text","editable":true,"label":"Name","name":"name"},{"datatype":"html","editable":false,"label":"Action","name":"action"}],"ret":0} ---- ==== ptz_tour ==== ---- Get the PTZ tour information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**ProfileToken**// TEXT, //**PresetTourToken**// TEXT. //**name**// TEXT. //**autostart**// BOOLEAN. **//RecurringTime//** INTEGER. //**RecurringDuration**// TEXT. **//PresetTourDirection//** INTEGER. //**RandomPresetOrder**// BOOLEAN. //**ProfileToken**// TEXT. //**PresetTourToken**// TEXT. **//RowIndex //** INTEGER. //**PresetDetailToken**// TEXT. //**PresetDetailHome**// BOOLEAN. //**StayTime**// TEXT. //**pan**// FLOAT. //**tilt**// FLOAT. //**zoom**// FLOAT. //**pspeed**// FLOAT. //**tspeed**// FLOAT. //**zspeed**// FLOAT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === PTZ tour response: {"preset":{"data":[{"id":1,"values":{"name":"home","pan":0,"profiletoken":"profile1","rowid":1,"tilt":0,"token":"1","zoom":0}}],"metadata":[{"datatype":"text","editable":true,"label":"Profiletoken","name":"profiletoken"},{"datatype":"text","editable":true,"label":"Token","name":"token"},{"datatype":"text","editable":true,"label":"Name","name":"name"},{"datatype":"real","editable":true,"label":"Pan","name":"pan"},{"datatype":"real","editable":true,"label":"Tilt","name":"tilt"},{"datatype":"real","editable":true,"label":"Zoom","name":"zoom"}]},"ret":0,"spot":{"data":[],"metadata":[{"datatype":"text","editable":false,"label":"Profile","name":"ProfileToken"},{"datatype":"text","editable":false,"label":"Tour","name":"PresetTourToken"},{"datatype":"text","editable":true,"label":"Preset","name":"PresetDetailToken"},{"datatype":"text","editable":true,"label":"StayTime","name":"StayTime"},{"datatype":"integer","editable":false,"label":"RowIndex","name":"RowIndex"},{"datatype":"html","editable":"false","label":"Action","name":"action"}]},"tour":{"data":[{"id":1,"values":{"PresetTourToken":"1","ProfileToken":"profile1","name":"tour1","rowid":1}},{"id":2,"values":{"PresetTourToken":"2","ProfileToken":"profile1","name":"tour2","rowid":2}},{"id":3,"values":{"PresetTourToken":"3","ProfileToken":"profile1","name":"tour3","rowid":3}},{"id":4,"values":{"PresetTourToken":"4","ProfileToken":"profile1","name":"tour4","rowid":4}},{"id":5,"values":{"PresetTourToken":"5","ProfileToken":"profile1","name":"tour5","rowid":5}},{"id":6,"values":{"PresetTourToken":"6","ProfileToken":"profile1","name":"tour6","rowid":6}},{"id":7,"values":{"PresetTourToken":"7","ProfileToken":"profile1","name":"tour7","rowid":7}},{"id":8,"values":{"PresetTourToken":"8","ProfileToken":"profile1","name":"tour8","rowid":8}},{"id":9,"values":{"PresetTourToken":"9","ProfileToken":"profile1","name":"tour9","rowid":9}},{"id":10,"values":{"PresetTourToken":"10","ProfileToken":"profile1","name":"tour10","rowid":10}},{"id":11,"values":{"PresetTourToken":"11","ProfileToken":"profile1","name":"tour11","rowid":11}},{"id":12,"values":{"PresetTourToken":"12","ProfileToken":"profile1","name":"tour12","rowid":12}},{"id":13,"values":{"PresetTourToken":"13","ProfileToken":"profile1","name":"tour13","rowid":13}},{"id":14,"values":{"PresetTourToken":"14","ProfileToken":"profile1","name":"tour14","rowid":14}},{"id":15,"values":{"PresetTourToken":"15","ProfileToken":"profile1","name":"tour15","rowid":15}},{"id":16,"values":{"PresetTourToken":"16","ProfileToken":"profile1","name":"tour16","rowid":16}}],"metadata":[{"datatype":"text","editable":false,"label":"profile1","name":"ProfileToken"},{"datatype":"text","editable":false,"label":"TourID","name":"PresetTourToken"},{"datatype":"text","editable":true,"label":"Name","name":"name"}]}} ---- ==== snmp ==== ---- Get the Simple Network Management Protocol values from the Database === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**power_trap_en**// INTEGER, //**input_loss_trap_en**// INTEGER. //**input_recover_trap_en**// INTEGER. //**temp_high_trap_en**// INTEGER. //**temp_recover_trap_en**// INTEGER. //**high_temp**// INTEGER. //**nominal_temp**// INTEGER. //**high_temp_suppress**// INTEGER. //**nominal_temp_suppress**// INTEGER. //**trap_hosts**// INTEGER. //**snmp_v3_en** // INTEGER. //**snmp_v3_user**// TEXT. //**snmp_v3_passwd**// TEXT. //**snmp_v3_usrpro**// TEXT. **//snmp_v3_encrypt//** INTEGER. **//snmp_v3_encrypt_passwd//** TEXT. **//snmp_v3_encpro//** TEXT. **//snmp_v3_engineid//** TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SNMP response: {"high_temp":80,"high_temp_suppress":30,"input_loss_trap_en":0,"input_recover_trap_en":0,"nominal_temp":60,"nominal_temp_suppress":30,"power_trap_en":0,"ret":"0","snmp_v3_en":0,"snmp_v3_encpro":"des","snmp_v3_encrypt":0,"snmp_v3_encrypt_passwd":"z3password","snmp_v3_engineid":"","snmp_v3_passwd":"z3password","snmp_v3_user":"z3user","snmp_v3_usrpro":"md5","temp_high_trap_en":0,"temp_recover_trap_en":0,"trap_hosts":"192.168.0.6"} ---- ==== ssl ==== ---- Get the Secure Socket Layer settings from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**https_enable**// TEXT, //**http_enable**// TEXT. //**https_port**// INTEGER. //**http_port**// INTEGER. //**cert_status**// TEXT. **//key_status//** TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SSL response: {"cert_status":"Unavailable","http_enable":"on","http_port":80,"https_enable":"off","https_port":443,"key_status":"Unavailable","ret":"0"} ---- ==== stats ==== ---- Get the available memory infromation from the device. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**mem_free_kb**// TEXT, ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === STATUS response: {"astream_status_str":"\tChannel 1 Codec fdk_aaclc Samplerate 48000 Input MIC Frames 546732 \tChannel 11 Codec fdk_aaclc Samplerate 48000 Input MIC Frames 545860 +OK","encoder_status_str":" *** Encode Bitstream Received Statistics *** CH | Bitrate (Kbps) | Actual Bitrate | FPS | Actual FPS | Key-frame FPS | Width | Height ------------------------------------------------------------------------------------------------------------ 1 | 6000.00 | 6006.33 | 29.97 | 29.97 | 0.5 | 3840 | 2160 | +OK","mem_free_kb":670856,"ret":"0","source_status_str":"+CAMERA 3840x2160p 29.97 fps\n","status":"OK","stream_status_str":"Channel 1 Codec H265-(HEVC) URL rtsp Frames 348194 +OK","temp_status_str":"+LENS 29 +CPU 38.0 +OK"} ---- ==== sys ==== ---- Get the current system settings from the Database and the ip information from the device. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**local_ip**// TEXT, //**local_netmask**// TEXT. //**preset**// TEXT. //**enc_channels**// TEXT. //**opmode**// TEXT. //**username**// TEXT. //**userlevel**// TEXT. //**do_autostart**// BOOLEAN. //**syspassword**// TEXT. //**session_id**// TEXT. //**disp_std** // TEXT. //**disp_std2**// TEXT. //**disp_input**// TEXT. //**disp_mode**// TEXT. //**disp_layout**// TEXT. **//enc_adv_setting//** TEXT. **//enc_vivpss_mode_enable//** TEXT. //**enable_sntp**// TEXT. //**sntp_servers**// TEXT. //**enable_snmp**// TEXT. //**sysdevicename**// TEXT. //**timezone**// TEXT. //**timezone_name**// TEXT. //**termserve_remote_enable**// TEXT. //**termserve_shared_enable**// TEXT. //**zfinder_enable**// TEXT. //**diff_serve**// INTEGER. //**enable_ptp**// TEXT. //**ptp_role**// TEXT. //**nmea_enable**// TEXT. //**nfs_enable**// TEXT. //**nfs_server **// TEXT. //**nfs_server_root**// TEXT. //**ddns_enable**// TEXT. //**ddns_provider**// TEXT. //**ddns_username**// TEXT. //**ddns_password**// TEXT. //**rtspd_port**// INTEGER. //**rtspd_timeout**// INTEGER. //**maxlogin**// INTEGER. //**login_window**// INTEGER. //**lockout_interval**// INTEGER. //**login_timeout**// INTEGER. //**require_web_login**// BOOLEAN. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === SYSTEM response: {"ANALOG_analog_gain_db":7,"MICL_analog_gain_db":-12,"MIC_analog_gain_db":7,"console_enable":"on","ddns_enable":"off","ddns_hostname":"","ddns_password":"","ddns_provider":"freedns","ddns_username":"","diff_serve":0,"disp_input":"primary","disp_layout":"1x1","disp_mode":"ultrahd","disp_std":"auto","disp_std2":"auto","do_autostart":1,"enable_ptp":"false","enable_snmp":"false","enable_sntp":"true","enc_adv_setting":"off","enc_vivpss_mode_enable":"off","local_ip":"192.168.10.127","local_netmask":"255.255.255.0","lockout_interval":900,"login_timeout":900,"login_window":900,"maxlogin":3,"nfs_enable":"off","nfs_server":"192.168.1.6","nfs_server_root":"/c/media","nmea_enable":"off","pe0":"encoder","pe1":"","pe2":"","pe3":"","pe4":"","pe5":"","pe6":"","pe7":"","pe8":"","ptp_role":"auto","require_web_login":0,"ret":"0","rtspd_port":554,"rtspd_timeout":60,"session_id":"---","sntp_servers":"pool.ntp.org","sysdevicename":"Z3Cam","syspassword":"","termserve_remote_enable":"on","termserve_shared_enable":"on","timezone":"CST6CDT,M3.2.0,M11.1.0","timezone_name":"America/Chicago","userlevel":0,"username":"admin","wifi_exists":false,"zfinder_enable":"on"} ---- ==== term ==== ---- Get the remote terminal information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. **//term_mode//** TEXT, **//term_protocol//** TEXT. //**term_localport**// TEXT. //**term_servaddr**// TEXT. //**term_servport**// TEXT. **//term_data_bits//** TEXT. //**term_parity**// TEXT. //**term_stop_bits**// TEXT. //**term_baudrate**// TEXT. **//term_devicefile//** TEXT. //**term_function**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === TERM response: {"data":[{"id":1,"values":{"rowid":1,"term_baudrate":"2400","term_data_bits":"8","term_devicefile":"/dev/ttyS4","term_function":"rs485","term_localport":"2000","term_parity":"None","term_stop_bits":"1"}},{"id":2,"values":{"rowid":2,"term_baudrate":"9600","term_data_bits":"8","term_devicefile":"/dev/ttyS2","term_function":"camera1_visca","term_localport":"1000","term_parity":"None","term_stop_bits":"1"}},{"id":3,"values":{"rowid":3,"term_baudrate":"9600","term_data_bits":"8","term_devicefile":"/dev/ttyS3","term_function":"off","term_localport":"1001","term_parity":"None","term_stop_bits":"1"}},{"id":4,"values":{"rowid":4,"term_baudrate":"115200","term_data_bits":"8","term_devicefile":"/dev/ttyS1","term_function":"user","term_localport":"1500","term_parity":"None","term_stop_bits":"1"}},{"id":5,"values":{"rowid":5,"term_baudrate":"115200","term_data_bits":"8","term_devicefile":"/dev/ttyS0","term_function":"console","term_localport":"1800","term_parity":"None","term_stop_bits":"1"}}],"metadata":[{"datatype":"text","editable":true,"label":"Serial Port","name":"term_devicefile"},{"datatype":"text","editable":true,"label":"Baud Rate","name":"term_baudrate"},{"datatype":"text","editable":true,"label":"Data Bits","name":"term_data_bits"},{"datatype":"text","editable":true,"label":"Parity","name":"term_parity"},{"datatype":"text","editable":true,"label":"Stop Bits","name":"term_stop_bits"},{"datatype":"text","editable":true,"label":"Function","name":"term_function"},{"datatype":"text","editable":true,"label":"TCP Port","name":"term_localport"}],"ret":"0"} ---- ==== users ==== ---- Get the ONVIF user information and the permission level from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**Name**// TEXT, //**Level**// INTEGER. //**Password**// TEXT. //**Password_MD5**// TEXT. //**Password_SHA256**// TEXT. //**Password_SHA512_256**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === USERS response: {"data":[{"id":1,"values":{"Level":"0","Name":"admin","action":"blank","rowid":1}},{"id":2,"values":{"Level":"7","Name":"guest","action":"blank","rowid":2}}],"metadata":[{"datatype":"text","editable":false,"label":"Name","name":"Name"},{"datatype":"text","editable":true,"label":"Level","name":"Level"},{"datatype":"html","editable":false,"label":"Action","name":"action"}],"ret":0} ---- ==== video_group ==== ---- Get the current video group settings from the Database. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**vgroup**// INTEGER. **//crop_enable//** TEXT. **//crop_width//** INTEGER. **//crop_height//** INTEGER. **//crop_x//** INTEGER. **//crop_y//** INTEGER. //**nr_enable**// TEXT. ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Video Group response: {"crop_enable":"off","crop_height":0,"crop_width":0,"crop_x":0,"crop_y":0,"nr_enable":"off","ret":"0","vgroup":1} ---- ==== wifi ==== ---- Get the Wifi details from the device and wifi client information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**networks**// TEXT, //**cur_network**// TEXT, //**cur_pass**// TEXT, //**ap_pass**// TEXT, //**ap_pass_en **// BOOLEAN. //**ap_ssid**// TEXT, **//wifi_client_local_ip//** TEXT, //**wifi_client_local_netmask**// TEXT. //**wifi_client_default_gw**// TEXT. //**wifi_client_use_dhcp**// BOOLEAN. ---- ==== zoomStepSize ==== ---- Get the current camera zoom step values from the Database. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**zoom_step_size**// INTEGER, ---- === Command to execute: === python3 status_DIGEST_ARGPARSE.py -ip 192.168.10.127 -username admin -passwd admin ---- === Example output: === Zoom Step Size response: {"ret":"0","size":1} ---- ====== File Upload for MFR or UPD Image Control ====== ===== Upload Image (POST) ===== ---- Upload the z3 image for e.g. (z3-30-0139-mfr.img or z3-30-0139-upd.img) in the z3 device. Before uploading the new image, it checks, whether the device has enough free memory or not and removes the coredump files. If the image is *mfr.img then it removes the default database from the data partition. If its *upd.img then it will not remove the database values. Note:\\ It takes approximately 5 minutes to update; DO NOT SEND ANY OTHER API Commands after uploading the image for at least 5 minutes. (time.sleep(300) or equivalent in scripts) === Parameters: === ---- **//img_file//** Get the file name which needs to be flashed in the z3 device. === Returns: === ---- Flash the image and reboot the device. Note:\\ It takes approximately 5 minutes to update; DO NOT SEND ANY OTHER API Commands after uploading the image for at least 5 minutes. (time.sleep(300) or equivalent in scripts) ---- ====== Download File and Remove File Control ====== See **download_remove** to remove files from the **Generic Actions (POST) **action ===== Download Media (GET) ===== http:///download_media.cgi?mediafile=/location/filename For e.g. http:///download_media.cgi?mediafile=/media/sda1/MOV1_000001.mp4 ===== ===== ---- Download the media file. If the output format is mp4 or TS file, then only z3 device allows downloading the files. Also provides the option for deleting the file. === Parameters: === ---- **//mediafile//** Get the media file name. === Returns: === ---- JSON formatted table with values below. ret Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**File Name**// Name of the download file name . //**File Size**// Size of the download file name. //**Last Modified**// Last modified the file date and time. ---- ===== download.html to get list of downloadable files ===== http:///download.html?chn=1 chn** =[1,2,3,4]** List the download content. The content will be either .mp4 or .ts file format. ===== Encoder Actions (POST) ===== ==== SetEncoder ==== Write encoder settings to active preset. See Python example code for Seting Configuration below ==== EncoderStatus ==== Requests an update to encoder_status_str variable. To read the result, you need to POST the “stats” control as shown\ in the Python example code below. ==== StreamStatus ==== Requests an update to stream_status_str variable. To read the result, you need to POST the “stats” control as shown\ in the Python example code below. ==== AStreamStatus ==== Requests an update to astream_status_str variable. To read the result, you need to POST the “stats” control as shown\ in the Python example code below. ==== SourceStatus ==== Requests an update to source_status_str variable. To read the result, you need to POST the “stats” control as shown\ in the Python example code below. ---- ===== Setting Encoder Configuration ===== To set the encode configuration per channel the **SetEncoder** action is used with a post. All variables should be present or they will be replaced with a defualt that may not be valid for your application. More than one channel can be set per command. It is recommended you first read the current settings from the encoder then modify them and send the new settings back as in the Python example below: import requests, json, sys server_url='http://192.168.0.120/cgi-bin/control.cgi' channel = 1 enc_cfg = requests.get(server_url, params='ctrl=enc&chn={}'.format(channel)) print enc_cfg.json() enc_cfg_json=enc_cfg.json() enc_cfg_json['vframeratediv'] = 2 #set frame rate divider to 2 new_cfg = {} new_cfg['action'] = 'SetEncoder' for key, value in enc_cfg_json.iteritems(): print "key = {} value = {}".format(key,value) new_idx = "enc_{}_{}".format(channel,key) print "setting {} to {}".format(new_idx,value) new_cfg[new_idx] = value print new_cfg requests.post(server_url, data=new_cfg) ===== snapshot.cgi Control ===== http:///snapshot.cgi?size=3840x2160&quality=100 http:///snapshot.cgi?chn=1&size=1280x720&quality=80 valid options are: quality **=[20-100]** * *size** =[any supported valid resolution]** chn** =[1,2,3,4]** quality** =[0-100] supported resolutions are: 4K Models Only 3840×2160 2560×1440 4K and HD Models 1920×1080 1440×1080 1280×1024 1280×720 1024×768 960×720 1024×576 800×600 720×576 704×576 720×480 640×512 640×480 640×360 352×576 420×380 352×288 352×240 336×256 320×240 320×180 ** ===== Reading Statistics ===== **Python example of updating and reading encoder statistics: ** import requests, json, sys server_url='http://192.168.0.120/cgi-bin/control.cgi' requests.post(server_url, {'action': 'EncoderStatus'} ) requests.post(server_url, {'action': 'StreamStatus'} ) requests.post(server_url, {'action': 'AStreamStatus'} ) requests.post(server_url, {'action': 'SourceStatus'} ) requests.post(server_url, {'action': 'TempStatus'} ) print requests.get(server_url, params='ctrl=stats&chn=null').json() **Example output: ** {u'status': u'OK', u'astream_status_str': u'\tChannel 6 Codec fdk_aaclc Samplerate 48000 Input MICL Frames 32287820 OK', u'temp_status_str': u' LENS 29 CPU 78.700 FPGA 89.8 OK', u'ret': u'0', u'encoder_status_str': u' *** Encode Bitstream Received Statistics *** CH | Bitrate (Kbps) | Actual Bitrate | FPS | Actual FPS | Key-frame FPS | Width | Height ------------------------------------------------------------------------------------------------------------ 1 | 4000.00 | 4092.18 | 60.0 | 59.8 | 1.0 | 1920 | 1080 | OK', u'source_status_str': u' CAMERA 1920x1080p 60.00 fps\n', u'stream_status_str': u'Channel 1 URL rtsp Frames 12883581 OK'} ===== Authentication ===== By default, no authentication is required to access the HTTP API. To enable authentication, go to the "System" tab "Device Management" section. Click on the "Set Password" button. The username will be "admin" The authentication method is HTTP Digest authentication. HTTP Basic authentication is not supported. === Python example code of HTTP Digest authentication === import requests,json, sys from requests.auth import HTTPDigestAuth auth=HTTPDigestAuth('admin','mypassword') print requests.get(server_url, params='ctrl=stats&chn=null', auth=auth).json() ====== Appendix A: Sample Python Scripts ====== The sample python scripts below require Python3.x. The requests package must be installed. You can install using 1) Use the Ubuntu package manager sudo apt install python3-requests 2) Use the Python3 native package installer sudo pip3 install requests ===== SaveUser (saveUser_DIGEST_ARGPARSE.py) ===== Save the state, preset, encoder/decoder settings for the user. === Python example code of HTTP Digest SaveUser === import requests import json import sched import time import enum import datetime import argparse from requests.auth import HTTPDigestAuth def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 print(msg, flush=True) def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') args = parser.parse_args() print(args) if args.ip: server_url='http://' args.ip elif args.ip_address: server_url='http://' args.ip_address if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} payload = "action=SaveUser&enc_current_preset=charles"; rs = http_request(payload) print_immediately( "{:>6}: {} setip_respose response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute ** python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.1.105 -username admin -passwd admin **Example output: ** SaveUser response: {"ret":"0","status":"OK"} ===== SetIp (set_ip_DIGEST_ARGPARSE.py) ===== Control networking settings of the Z3 device such as local IPv4 IP address, netmask, DNS Server primary, DNS Server secondary, etc. Additionally control Encoder Auto-Start after boot-up and enable/disable showing of advanced WebUI settings. === Python example code of HTTP Digest SetIp === import requests import json import sched import time import enum import datetime import argparse from requests.auth import HTTPDigestAuth def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 print(msg, flush=True) def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-newip', help='Set this IP') parser.add_argument('-mask', help='Subnet Mask',default='255.255.255.0') parser.add_argument('-gateway', help='Network Gateway',default='172.30.1.1') parser.add_argument('-dns1', help='DNS 1',default='8.8.8.8') parser.add_argument('-dns2', help='DNS 2',default='8.8.4.4') parser.add_argument('-ipmtu', help='MTU Speed',default=1500) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') args = parser.parse_args() print(args) if args.ip: server_url='http://' args.ip elif args.ip_address: server_url='http://' args.ip_address if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} payload = "action=SetIp&local_ip=172.30.1.112&local_netmask=255.255.255.0&default_gw=172.30.1.1&local_dnsip=8.8.8.8&local_dnsip2=8.8.4.4&use_dhcp=no&ipmtu=1500ð_speed=AUTOð_duplex=AUTO&do_autostart=1&enc_adv_setting=off"; rs = http_request(payload) print_immediately( "{:>6}: {} setip_respose response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute ** python3 set_ip_DIGEST_ARGPARSE.py -ip 192.168.1.105 -username admin -passwd admin **Example output: ** dns1='8.8.8.8', dns2='8.8.4.4', gateway='172.30.1.1', ip='192.168.1.105', ipmtu=1500, mask='255.255.255.0', newip=None, passwd='admin', username='admin' setip_respose response: {"ret":"0","status":"OK"} ===== cam_state (sys_DIGEST_ARGPARSE.py) ===== Get the current camera state information from the Database. === Python example code of HTTP Digest camera state === import requests import json import sched import time import enum import datetime import argparse from requests.auth import HTTPDigestAuth def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 print(msg, flush=True) def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r def http_request_get(payload): try: if args.username: r = requests.get(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.get(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') args = parser.parse_args() print(args) if args.ip: server_url='http://' args.ip elif args.ip_address: server_url='http://' args.ip_address if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} payload='ctrl=cam_state&chn=null'; rs = http_request_get(payload) print_immediately( "{:>6}: {} Sys response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute ** python3 sys_DIGEST_ARGPARSE.py -ip 192.168.1.105 -username admin -passwd admin **Example output: ** (ip='192.168.1.105', passwd='admin', username='admin') Sys response: {"camera1_if_type":"Sony_LVDS","camera2_if_type":"CVBS","enc_channels":"1,2","enc_current_preset":"charles","fpgafileglob":"fpga_none.bin|fpga2_0139_cvbs.bin","preview_auto_start":"1","ret":"0","visca_present":"true"} ===== CameraControl for Boson camera (Zoom_Boson.py) ===== Send control commands to boson camera. Only one command can be sent at a time; === Python example code of HTTP Digest Camera control for Boson camera === import requests import json import sched import time import enum import datetime import argparse import sys from requests.auth import HTTPDigestAuth if sys.version_info[0] <3: raise Exception("Python 3 or a more recent version is required.") def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 # print(msg, flush=True) print(msg) sys.stdout.flush() def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r def http_request_get(payload): try: if args.username: r = requests.get(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.get(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') args = parser.parse_args() print(args) if args.ip: server_url='http://' args.ip elif args.ip_address: server_url='http://' args.ip_address # Set Zoom STEP zooms=args.zs; zoomstep=args.zoom_step; if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} # Boson min Zoom payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000000000000A000000080'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) # Boson mid Zoom payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000015000000A000000080'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) # Boson mid Zoom xB0 yA0 payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000015000000B0000000A0'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) # Boson max Zoom payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000030000000A000000080'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) # Boson no Zoom payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000000000000A000000080'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute ** python3 Zoom_Boson.py -ip 172.28.30.103 **Example output: ** (ip='172.28.30.103', passwd='admin', username=None, zoom_step=False, zs='3') Response: {"response":"","ret":"0","status":"OK"} Response: {"response":"00000000000000A000000080","ret":"0","status":"OK"} Response: {"response":"","ret":"0","status":"OK"} Response: {"response":"00000015000000A000000080","ret":"0","status":"OK"} Response: {"response":"","ret":"0","status":"OK"} Response: {"response":"00000015000000B0000000A0","ret":"0","status":"OK"} Response: {"response":"","ret":"0","status":"OK"} Response: {"response":"00000030000000A000000080","ret":"0","status":"OK"} Response: {"response":"","ret":"0","status":"OK"} ===== CameraControl for Sony Visca camera (Zoom_visca.py) ===== Send control commands to visca camera. Only one command can be sent at a time; === Python example code of HTTP Digest Camera control for Visca camera === import requests import json import sched import time import enum import datetime import argparse import sys from requests.auth import HTTPDigestAuth if sys.version_info[0] <3: raise Exception("Python 3 or a more recent version is required.") def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 # print(msg, flush=True) print(msg) sys.stdout.flush() def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r def http_request_get(payload): try: if args.username: r = requests.get(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.get(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') parser.add_argument('-z', help='Zoom STEP level 0 - 7; Default 3',default='3') parser.add_argument('-zs', help='Do Zoom STEP defined using -z, else normal zoom',action='store_true') args = parser.parse_args() print(args) if args.ip: server_url='http://' args.ip elif args.ip_address: server_url='http://' args.ip_address # Set Zoom STEP zooms=args.z; zoomstep=args.zs; if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} if zoomstep == True: payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_wide_var ' zooms; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_stop'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_get_pos'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_tele_var ' zooms; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_stop'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_get_pos'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) else: payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_tele_std'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(5) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_stop'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_get_pos'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_wide_std'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(5) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_stop'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_get_pos'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute with out zoom step size ** python3 Zoom_visca.py -ip 192.168.1.105 -username admin -passwd admin **Example output: ** (ip='192.168.1.105', passwd='admin', username='admin', z='3', zs=False) Response: {"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"response":3040,"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"response":0,"ret":"0","status":"OK"} **Command to execute with zoom step size ** python3 Zoom_visca.py -ip 192.168.1.105 -username admin -passwd admin -z 3 -zs **Example output: ** (ip='192.168.1.105', passwd='admin', username='admin', z='3', zs=True) Response: {"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"response":0,"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"response":7304,"ret":"0","status":"OK"} ==== GetStatus ==== ---- Read the encoder status. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**status**// The encoder status can be RUNNING/ STOPPED/ IDLE/ Couldn't deduct input on camera. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== GetVideoInputs ==== ---- Get the sensor id and read the video inputs from the Database. == Parameters: == ---- //**sensorid **// Sensor ID. //**vport **// video port is Camera source. Possible values: 1 = Camera 1, 2 = Camera 2. //**friendly_name **// name of the video source. //**vdevice **// Video device. Possible values: MIPI, SONYLVDS, LT6911 //**input_index **// input device. Possible values: 0, 1. //**bus **// device address. Default NULL //**enabled **// Video input enabled or disabled. Default is 1. Possible values: 0, 1. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== GetWifiPass ==== ---- Get the Wifi password. == Parameters: == ---- //**ssid**// Read the service set identifier **//psk//** Provide the wifi password. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== InsQuery ==== ---- Querry the PTZ values for the angle. == Parameters: == ---- **//data//** Read the json table and retrieve the index and querry type. Possible querry are YawAngle, PitchAngle, RollAngle, All. //**YawAngle **// provide the yaw angle value from the PTZ. //**PitchAngle**// provide the pitch angle value from the PTZ. //**RollAngle**// provide the roll angle value from the PTZ. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== LoadUser ==== ---- Load the active preset value from the Database and update in the state table database. == Parameters: == ---- //**enc_current_preset**// Get the preset row and check the opermation mode. The operation modes are encoder / decoder. //**cur_preset **// Provide the current presetting values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== Login ==== ---- Set the password for the login user. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== Logout ==== ---- Logout from the system and update in the Database. == Parameters: == ---- //**Authorization**// Get the permission level. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== Overlay ==== ---- Add/Update the overlay values in the Database. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. **//rgn_idx//** Index to map overlay. The region index value can be in the range of 1 to 16. Ambarella provides 16 total color look-up tables for Overlay, rgn_idx signifies which color look-up table is in use. //**​type**// Type of overlay to be used possible values: text or png. //**source**// In the case of text overlay this would be the source text for png overlay this is the path to the png on the encoder. Images must be uploaded to board to be used. //**location**// This is the location of the overlay. Possible values: 'top_left', 'top_right', 'top_center', 'bottom_left', 'bottom_right', 'bottom_center', 'x,y' (negative numbers not supported for x or y). //**char_size**// For text overlay this is the character size. Possible values: 16,32,64, 128. //**layer**// This will set the layer for the overly higher numbers will overlay over lower numbers if overlapping. **//alpha//** Sets the transparency of the text. Possible values: 0-255. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== OverlayStop ==== ---- Stop overlay. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**rgn_idx**// ​Index of overly for this channel. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzAbsoluteMove ==== ---- Send absolute move command to the PTZ. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position and speed value. The mode values can be Pan, tilt, and Zoom. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzAuxiliary ==== ---- Send PTZ auxiliary value to the PTZ. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position and speed value. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzClearPreset ==== ---- Remove the Ptz preset values for the user. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position and speed value. The mode values can be Pan, tilt, and Zoom. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzContinuousMove ==== ---- Send continous move command to the PTZ. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzGotoPreset ==== ---- Send preset value to PTZ. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzNewTourSpot ==== ---- Get the new tour spot and update in the Database. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzPosition ==== ---- Move the Ptz to the input position == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzPreset ==== ---- Preset the Ptz based on the value. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzQuery ==== ---- Get the ptz status and degree value from the ptz == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzRemoveTourSpot ==== ---- Remove the ptz tour spot == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzSetPreset ==== ---- Set the preseting value in the PTZ == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzStartTour ==== ---- Start the PTZ tour == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== PtzStop ==== ---- Stop the PTZ == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the mode, position, speed value, ptz_timeout, profile token. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== RemoveJobs ==== ---- Delete the schedule jobs from the Database. == Parameters: == ---- //**purgelist**// List of schedule jobs to be removed. //**rowcnt**// Number of rows. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== RestartBoard ==== ---- Read the operation mode. Whether its encoding / decoding. Stop the channel encoding and restart the board == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveCamera ==== ---- Saving the camera settings in the Database. == Parameters: == ---- **//zoom_direct_value//** Zoom value. Possible values: 0 (wide) to 0x7ac0 (full zoom) //**white_balance_mode**// White balance mode. Default value is auto. Possible values: auto / manual / indoor/ one-push / auto trace / sodium lamp auto / sodium lamp fixed / sodium lamp outdoor. //**color_gain**// color gain. Default value is 4. Possible values: Range from 0 (60%) to 14 (200%) //**color_hue**// color hue. Default value is 7. Possible values: Range from 0 (60%) to 14 (200%) //**chroma_suppress**// Chroma suppress. Default value is 1. Possible values: 0=none, 1, 2, 3 //**wb_manual_rgain_direct**// white balance manual red gain. Default value is 190. Possible values: 0 to 255 //**wb_manual_bgain_direct **// white balance manual blue gain. Default value is 190. Possible values: 0 to 255 //**optical_zoom_only **// optical zoom only. Default value is 0. Possible values: 0, 1 //**focus_direct_value**// focus direct value. Default value is 4096. Possible values: 0x1000 to 0xf000 //**manual_focus **// Manual focus. Default value is auto. Possible values: auto, manual //**exposure_mode **// Exposure mode. Default value is 0. Possible values: 0 - Auto, 10 - Shutter Priority, 11 - Iris -Priority, 3 - Manual. //**shutter**// Shutter. Default value is 7. //**iris **// Iris. Default value is 0. //**gain**// Gain. Default value is 0. //**high_sensitivity**// high sensitivity value. Default value is 3. Possible values 0, 1. //**hlc_level **// hlc level. Default value is 0. Possible values in range 0 to 3. **hlc_level_mask** mask value of hlc level. Default value is 0. Possible values 0, 1. //**stable_zoom**// stable zoom on or off. Default value is off. //**eflip **// Default value is 5. Possible values 0, 1. //**lr_reverse **// Default value is 0. Possible values 0, 1. //**monitor_mode **// Default value is 1080p-59.94. //**genlock_source **// Default value is 2. //**zoom_step_size **// Default value is 4. Possible values in range (1 - 7). //**focus_step_size **// Default value is 1. Possible values in range (0 - 7). //**manual_icr **// Default value is Off. Possible values: On, Off, Auto, Auto Color //**img_freeze **// Default value is 0. Possible values: 0, 1. //**hr_mode **// High resolution mode. Default value is 0. Possible values: 0, 1. //**img_stabilizer ** //Default value is 0. Possible values 0, 1. //**img_bw** //Image black white. Default value is 0. Possible values 0, 1. //**nr_2d_level **// Default value is 5. Possible values in range (0 - 5). //**nr_3d_level** //Default value is 4. Possible values in range (0 - 5). //**icr_threshold** //Default value is 14. Possible values in range (0-255 for 4K camera, 0-28 for HD camera). //**slow_shutter** //Default value is 0. Possible values: 0, 1. //**slow_shutter_limit **// Default value is 4. Possible values in range: (1 to 6) //**flicker_reduction** //Default value is 0. Possible values: 0, 1. //**img_stabilizer_level** //Default value is 0. Possible values: 0, 2. //**wide_dynamic_range** //Default value is 3. //**ve_brightness** //Default value is 3. Possible values in range: 0, 6. //**ve_compensation_type** //Default value is 2. Possible values in range: 0, 3. //**ve_compensation_level **// Default value is 1. Possible values in range: 0, 2. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveCameraBoson ==== ---- Save color pallete settings of boson camera in the Database. == Parameters: == ---- //**color_pallette**// Color pallete. Default value is whitehot. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveCameraDRSTamarisk ==== ---- Save color pallete settings of DRS Tamarisk camera in the Database. == Parameters: == ---- //**color_pallette**// Color pallete. Default value is whitehot. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveCameraLink ==== ---- Saving camera link settings in the Database. == Parameters: == ---- //**pxl_format**// Pixel format. Default value is 1. //**color_table**// Color table. Default value is whitehot. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveCameraLx ==== ---- Saving camera Lx settings in the Database. == Parameters: == ---- //**SONY_ExposureMode**// Exposure Mode. Default value is 32852. Possible values: 32848 (Program Auto), 32849 (Aperture Priority), 32850 (Shutter Priority), 32851 (Manual Exposure), 32852 (Intelligent Auto). //**SONY_ShutterSpeed**// Shutter speed. Defualt value is NULL. //**SONY_ISO**// ISO. Defualt value is NULL. //**SONY_ExposureComp**// Exposure comp. Defualt value is NULL. //**SONY_WhiteBalance**// White balance. Defualt value is NULL. //**SONY_ColorTemp**// Color temperature. Defualt value is NULL. //**SONY_APS_C**// APS_C. Defualt value is NULL. //**SONY_NtscPalSelect**// NTSC / PAL selection. Defualt value is NULL. //**SONY_MovieSteadyMode**// Movie steady mode. Defualt value is NULL. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveCameraTau ==== ---- Saving camera TAU settings in the Database. == Parameters: == ---- //**color_table **// color table value . //**is_active**// Active/Deactive. Default value is 0. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveJobs ==== ---- Save the schedule jobs in the Database. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the schedule activities.//**.** // //**rowcnt**// Get the number of row count. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SavePresets ==== ---- Check the operation mode whether its in encoder or decoder. Save the preseting value of the mode in the Database. == Parameters: == ---- //**dec_current_preset **// Save the decoder current preseting values. //**enc_current_preset**// Save the encoder current preseting values. //**preset**// Settings for encoder or decoder. //**enc_channels **// Number of channels. Maximum number of channels is 2 for decoder and 4 for encoder. //**opmode**// Operation mode. Default is Encoder. Possible values: Encoder / Decoder. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SaveUser ==== ---- Save the state, preset, encoder/decoder settings in the Database. == Parameters: == ---- **//enc_current_preset//** Get the encoder preseting values for the current channel. **//dec_current_preset//** Get the decoder preseting values for the current channel. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetAdv ==== ---- Save the encoder advance settings in the Database. == Parameters: == ---- //**enc_adv_setting **// Get the encoder advance setting values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetAPConfig ==== ---- Set the wifi and its password. == Parameters: == ---- //**passwd **// Get the wifi password //**passwden**// Get wifi enable / disable. Default value is disable. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetAudio ==== ---- Save the audio input settings in the Database. == Parameters: == ---- //**aport **// Get the audio port. Default value is MIC. Possible values are MIC , MICL //**analog_gain_db**// Get the analog gain decibal value. Default value is 0. The value ranges are -97 to 30. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetCameraLink ==== ---- Save the color table and pixel format values in the Database and set the color table and pixel format in the fpga. == Parameters: == ---- //**val **// Get the value for color table and pixel format. //**opt **// The options are color table and pixel format. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetConsole ==== ---- Set the console value as ttyAMA0 or none. == Parameters: == ---- //**console_enable **// Get console value is enabled / disabled. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetDDNSEnable ==== ---- Set the Dynamic Domain Name System settings in the Database. == Parameters: == ---- //**ddns_enable **// Get the ddns enable value. Default value is Off. Possible values; (On, Off) //**ddns_provider **// Get the ddns provider. Default value is freedns. Possible values: //(//freedns, freemyip, dyn, domains.google.com, duckdns.org, no-ip.com, tunnelbroker.net, dynv6.com, cloudxnv.net, dnspod.cn, cloudflare.com). //**ddns_username **// Provide the username. //**ddns_password ** //Provide the password. //**ddns_hostname ** //Hostname for DDNS login. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetDebugLevel ==== ---- Set the logging level. The setting is persistent. == Parameters: == ---- //**sysdebuglevel **// Get the system debug level. Possible values 0=None, 1=Error, 2=Information, 3=Diagnostics, 4=Codeflow, 5=Dataflow. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetDevName ==== ---- Set the device name in the Database. == Parameters: == ---- //**sysdevicename **// Get the system device name. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetDisplay ==== ---- Controls composite output (passthru video from camera). == Parameters: == ---- //**disp_std **// Get display standard for encoder. Default value is Auto. //**disp_input **// Get display input for encoder. Default value is MACRO_DEFAULT_DISP_INPUT. //**save_only**// Possible values: (True / False) //**disp_layout **// Display layout for decoder. Default value is 1×1. //**disp_mode **// Display mode for decoder. Default value is UltraHD. //**disp_std2 **// Display standard for decoder. Default value is auto. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetDSCP ==== ---- Set the DSCP configuration settings in the Database. == Parameters: == ---- //**diff_serve**// Get the DSCP configuration value. Default value is 0x00. Possible values are ( 0x00, 0xB8, 0x88, 0x90, 0x98, 0x80, 0x68, 0x70, 0x78, 0x60, 0x48, 0x50, 0x58, 0x28, 0x30, 0x38, 0x01). == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetFpga ==== ---- Set the fpga settings in the Database. == Parameters: == ---- //**fpgafileglob**// Get fpga value. Possible values are (boson / cvbs / tamarisk / tau2). == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetIp ==== ---- Control networking settings of the Z3 device such as local IPv4 IP address, netmask, etc. Additionally control Encoder Auto-Start after boot-up and enable/disable showing of advanced WebUI settings. == Parameters: == ---- //**do_autostart**// Control automatic stream start after bootup. Possible values: 1 = do autostart 0 = do not autostart. //**enc_adv_setting**// Control appearance of advanced settings on WebUI. Possible values: off, on. //**ipmtu**// Control Ethernet IP Maximum Transmission Unit (MTU) size in bytes. Possible values: 576 to 1500. //**eth_speed**// Control Gigabit Ethernet auto-negotiation allowed speeds. Possible values: AUTO, AUTO-100, 1000, 100, 10. //**eth_duplex**// Control Ethernet auto-negotiation allowed duplex. Possible values: AUTO, FULL, HALF. //**local_ip**// IPv4 address. //**local_netmask**// IPv4 netmask. //**default_gw**// IPv4 default gateway. //**local_dnsip**// DNS server primary. //**local_dnsip2**// DNS server secondary. //**use_dhcp**// Controls use of DHCP or static IP. Possible values: 1 (DHCP enabled), 0 (DHCP disabled, use static IP). //**local_hostname**// Network hostname. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetLoginLimit ==== ---- Set the login limit settings in the Database == Parameters: == ---- //**maxlogin**// mximum number of login limit. Possible value in range (3 to 99 ). //**login_window**// Login window period, the value are considered in seconds. Possible value in range (60 to 32768). //**lockout_interval**// Lockout interval values are mentioned in seconds, which is used when maximum number of login limit is reached. Possible value in range (-1 to 32768) //**login_timeout**// Login timeout == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetNFS ==== ---- Set the NFS settings in the Database. == Parameters: == ---- //**nfs_enable**// Enable/Disable nfs //**nfs_server**// Get the nfs server ip address. Default is 192.168.1.6 //**nfs_server_root**// Get the server root path / location. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetSNTP ==== ---- Set SNTP (Simple Network Time Protocol) settings in the Database. == Parameters: == ---- //**enable**// Enable/Disable SNTP. Possible value: true, false. Default value true. **//servers//** NTP server or list of NTP servers. //**timezone**// Linux TZ database value for Timezone. //**timezone_name**// Name for a time zone. Default is America/Chicago. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetSNMP ==== ---- Set the SNMP settings in the database. == Parameters: == ---- //**power_trap_en**// Enable/Disable power trap. //**input_loss_trap_en **// Enable/Disable input loss trap. //**input_recover_trap_en**// Enable/Disable input recover trap. //**temp_high_trap_en**// Enable/Disable temp high trap. //**temp_recover_trap_en**// Enable/Disable temperature recover trap. //**trap_hosts **// Trap hosts ipaddress. Default ip address value is 192.168.0.6. //**high_temp_suppress**// hiigh temperature. Default value is 30. //**nominal_temp_suppress**// nominal temperature default value is 30. //**snmp_v3_en**// Enable/Disable SNMP //**snmp_v3_encrypt **// SNMP v3 encrypt value. //**snmp_v3_user **// z3user. //**snmp_v3_passwd **// z3password. //**snmp_v3_usrpro **// snmp v3 usrpro default value is md5. //**snmp_v3_encrypt_passwd **// z3password. //**snmp_v3_encpro **// decrypt value. //**snmp_v3_engineid **// Default value for engineid is 0. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetNMEAEnable ==== ---- Save the GPS NMEA enable/disable value in the Database. === Parameters: === ---- **//nmea_enable//** Enable/Disable the NMEA. Possible value: on, off. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetOnvif ==== ---- Save the ONVIF settings in the Database. == Parameters: == ---- //**fixed_profile_max**// Get the Maximum ONVIF profiles to allow (1 or 2). //**en_persistent_audio **// Enable/Disable ONVIF persistent audio channel. //**onvif_enable**// Enable/Disable ONVIF. //**list_all_video_sources **// List all the video source. //**ptz_timeout **// Get the PTZ timeout values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetOnvifVMD ==== ---- Save the ONVIF video motion detection and too darkness settings in the Database. == Parameters: == ---- //**vmd_enable **// Enable/Disable video motion detection. //**vmd_sens**// sensitivity value required for vmd. Possible value in range: (1 to 100). //**vmd_zone_modify **// Enable/Disable video motion and too darkness zone coordinates. //**vmd_vcrop_width **// crop width of the coordinates. //**vmd_vcrop_height**// crop height for VMD and too_darkness. //**vmd_vcrop_x **// crop startx for VMD and too_darkness. //**vmd_vcrop_y **// crop starty for VMD and too_darkness. //**td_enable **// Enable/Disable too darkness. //**td_thresh **// Threshold value for too darkness. Possible values in range: 1 to 100. //**vmd_td_channel **// Get the channel number. Possible values: 1, 2. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetRTSP ==== ---- Set the RTSP settings in the Database. == Parameters: == ---- //**rtspd_port**// Get rtsp port. Default value is 554. //**rtspd_timeout**// Timeout value required for the rtsp connection. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetTermSrvEnable ==== ---- Sett the term server value in the Database. == Parameters: == ---- //**termserve_remote_enable**// Enable/Disable remote access to terminal server. Possible values are : on, off. //**termserve_shared_enable**// Enable/Disable shared access to terminal server. Possible values are : on, off. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetVideoGroup ==== ---- Set the video group configuration settings in the Database. == Parameters: == ---- //**group **// Video config groups. Default value 0. //**nr_enable**// Enable / Disable NR. Default value is on. Possible value: on/off. //**crop_enable**// Enabled / Disable the crop. //**crop_x**// Crop x coordinates. //**crop_y**// Crop y coordinates. //**crop_width**// Crop width //**crop_height **// Crop height == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetViewport ==== ---- Set the view port for the decoder and update in the Database. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**viewport**// viewport settings. The default value is fit. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetViVpssMode ==== ---- Set the ViVpss mode settings in the Database. == Parameters: == ---- //**enc_vivpss_mode_enable **// Enable/Disable the vivpss mode. Default value is off. Possible values: on, off. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetWifiAP ==== ---- Set the wifi network settings in the Database. == Parameters: == ---- //**ssid**// Get the Wifi service set identifier value. //**psk**// Get the Wifi password. //**wifi_client_local_ip**// Local IP addres. //**wifi_client_local_local_netmask**// Subnet mask for Wifi network. //**wifi_client_default_gw**// Default Gateway be used for Wifi Network. //**wifi_client_use_dhcp**// DHCP server used with Wifi network for DNS resolutions. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== SetZFinderEnable ==== ---- Save ZFinder enable / disable in the Databse. == Parameters: == ---- //**zfinder_enable**// Get ZFinder enable/disable value. Possible values: off, on == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== StartChannel ==== ---- Start the encoder channel and update the state as running in the Database. Once you start the channel, it will not transmit data until the video input is detected. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**actv_preset ** // //**vsource **// video source. Default value is Camera1. Possible values: Camera1 / Camer2 / HDMI1. //**vres**// video resolution. Default value is Follow Input. Possible values: Follow Input, 3840 x 2160, 1920 x 1080, 1440 x 1080, 1280 x 1024, 1280 x 720, 1024 x 768, 960 x 720, 1024 x 576. //**vcodec **// video codec. Default value is H265. Possible values: H265, H264, MJPEG, none. //**vgdr **// video gradual data refresh. Default value is on. Possible value on, off. //**vprofile**// video profile. Default value is high. Possible value high, main, baseline. //**vratectrl**// video rate control. Default value is cbr. Possible value cbr, vbr. **vbitrate** video bit rate. //**vframeratediv**// video frame rate. Default value is 1. Possible values: 1 (Full), 2 (Half), 4 (Quarter), 6 (Sixth). //**vgopsize **// video group of picture size. Default value is 60. Possible values: 1 (1 Frame Only), 5 (5 Frames), 8 (8 Frames), 10 (10 Frames), 12 (12 Frames), 15 (15 Frames), 25 (25 Frames), 30 (30 Frames), 50 (50 Frames), 60 (60 Frames), 90 (90 Frames), 100 (100 Frames), 120 (120 Frames), 200 (200 Frames), 240 (240 Frames). //**vprotocol**// video protocol. //**vdest**// video destination port. //**vpid **// video packet identifier. Default value is 221. //**vdelay**// video delay. Default value is 300. //**pcrpid**// PCR packet identifier. Default value is 521. //**pcrinterval**// Default value is 50. //**pmtpid**// program map table packet identifier. Default value is 31. //**tsrate**// bit rate for transport stream. Default value is 5000K. //**tslowlat **// transport stream low latency mode. Default value is off. Possible values: on, off. //**feconoff **// Forward error correction in transport stream enable/ disable. Default value is off. Possible values: on, off. //**fecrow **// Forward error correction row. Default value is 1. //**feccol **// Forward error correction column, Default value is 5. //**zixioverhead **// ZIXI Forward Error Correction total overhead as a percentage of transport rate. Default value is 15. //**zixilatency**// ZIXI target latency (to allow ARQ) in milliseconds. Default value is 500. //**zixifecblock**// ZIXI Forward Error Correction block size in milliseconds. Max value is 1/2 of Zixi Latency. Default value is 50. //**zixirateadjen**// ZIXI dynamic bitrate adjustment according to network conditions. Default value is on. Possible values: on, off. //**zixiauthen**// ZIXI dynamic authentication enable/disable . Default value is off. Possible values: on, off. //**zixisession **// ZIXI session id. Default value is test. //**zixiuser **// ZIXI user identifier. Default value is user. //**aenable **// Audio enable/disable. Default value is on. Possible values: on, off.asource. Default value is MICL. //**apair**// Stereo pair select for digital inputs. Default value is 0. Possible values: (0 (1+2), 1 (3+4), 2 (5+6), 3 (7+8), 260 (1+2,3+4), 548 (1+2,3+4,5+6), 1252 (1+2,3+4,5+6,7+8)). //**acodec**// Audio codec. Default value is fdk_aaclc. //**abitrate**// Audio bit rate. Default value is 128000. //**asamplerate **// Audio sample rate. Default value is 48000. //**aport **// Audio port. Default value is 8700. //**apid **// Audio packet identifier. Default value is 120. //**aptspcr**// Maximum difference between the PTS and PCR in the audio stream Default value is 250. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== StartMTS ==== ---- Start the MTS. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== StopChannel ==== ---- Stop the encoder channel and update the state in the Database. == Parameters: == ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== StopMTS ==== ---- Stop the MTS. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== TempStatus ==== ---- Get the current temperature status for CPU and lense. == Parameters: == ---- == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== update_require_web_login ==== ---- Update/Change whether web login credential required or not in the Database. == Parameters: == ---- //**require**// Required web login value. Possible values: 1 or 0 == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== UpdatePtz ==== ---- Update the PTZ value in the Database. == Parameters: == ---- //**data**// Parse the JSON formatted data and retrieve the PTZ values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== UpdatePtzPreset ==== ---- Update the PTZ preset value in the Database. == Parameters: == ---- //**data**// Parse the JSON formatted data and retrieve the PTZ preset values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== UpdatePtzTourSpots ==== ---- Update the PTZ tour spots value in the Database. == Parameters: == ---- //**data**// Parse the JSON formatted data and retrieve the PTZ tour spots values. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== UpdateTerm ==== ---- Control serial port terminal server for VISCA == Parameters: == ---- //**data**// Parse the JSON formatted data and retrieve the terminal server values. //**term_mode**// Possible values: client, server //**term_protocol**// Possible values: clearchannel, telnet //**term_localport**// Local TCP port (for server mode) //**term_servaddr**// Remote IP address (for client mode only) //**term_servport**// Remote TCP port (for client mode only) //**term_data_bits**// number of data bits. //**term_parity**// Possible values: None, Odd, Even, Mark, Space //**term_stop_bits**// Stop bits sent at the end of every character. //**term_baudrate**// Possible values: 9600, 19200, 38400, 57600, 115200 //**term_devicefile**// device fine name //**term_function**// functionality == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== user_add ==== ---- Add a new user in the Database. == Parameters: == ---- //**Name**// Get new user name //**Level**// Get the level of permission for the new user name. Possible value: 0 to 7. //**Password**// Get the password for the new user name. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== user_remove ==== ---- Remove the user from the database. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the user name. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== user_update_level ==== ---- Update/change the level of permission to the given user name. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the user name and level of the permission. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== user_update_password ==== ---- Update/change the password to the given user name. == Parameters: == ---- //**data **// Parse the JSON formatted data and retrieve the user name and password. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ==== download_remove ==== ---- http://Encoder_IP/cgi-bin/control.cgi?action=download_remove&data=FILENAME http://192.168.0.120/cgi-bin/control.cgi?action=download_remove&data=/media/sda/MOV1_000040.mp4 remove the downloaded media content from the usb drive or sd card. == Parameters: == ---- //**data **// Filename from the downloaded media content to be removed from the removable media device. == Returns: == ---- JSON formatted table with values below **//ret//** Custom return code of the HTTP POST request. 0 on success, 1 on failure. **//status//** String describing the failure when **ret** is 1. "OK" on success. ---- ===== Generic Control (GET) ===== ==== 8021x ==== ---- Get the exthernet 802x information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**interface**// TEXT, **//enable//** TEXT. //**eap**// TEXT. **//anonymous_identity//** TEXT. //**identity**// TEXT. //**password**// TEXT. //**private_key_password**// TEXT. ---- ==== GetCronJobs ==== ---- Get the schedule job from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. **//enable//** INTEGER, //**cron**// TEXT. //**func**// TEXT. **//func_args//** TEXT. //**type**// TEXT. //**minutes**// INTEGER. //**hours**// INTEGER. //**day**// INTEGER. //**month**// INTEGER. //**cron**// TEXT. ---- ==== GetNFSMount ==== ---- Get the Network File Sharing mounted infromation from the device. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. **//mounted//** TEXT, ---- ==== aspect_info ==== ---- Get the video resolution for the current channel from the Database and calculate the aspect ratio. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**numerator**// INTEGER, //**denominator**// INTEGER. ---- ==== boardinfo ==== ---- Get the board and model information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**logo_enable**// TEXT, //**logo_filename**// TEXT. //**logo_width**// INTEGER. //**logo_height**// INTEGER. //**logo_blob**// BLOB. //**ico_blob**// BLOB. //**model_enable**// TEXT. //**model_name**// TEXT. ---- ==== cam_state ==== ---- Get the current camera state information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**preset**// TEXT, //**enc_channels**// TEXT. //**opmode**// TEXT. //**enc_current_preset**// TEXT. //**dec_current_preset**// TEXT. ---- ==== camera ==== ---- Get the current camera settings from the Database. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**zoom_direct_value**// INTEGER. //**white_balance_mode**// TEXT. //**color_gain**// INTEGER. //**color_hue**// INTEGER. //**chroma_suppress**// INTEGER. //**wb_manual_rgain_direct**// INTEGER. //**wb_manual_bgain_direct**// INTEGER. //**visca_localport**// TEXT. //**optical_zoom_only**// BOOL. 0 or 1. //**focus_direct_value**// INTEGER. //**manual_focus**// TEXT. //**flexio_localport**// TEXT. //**exposure_mode**// INTEGER. //**shutter**// INTEGER. //**iris**// INTEGER. //**gain**// INTEGER. //**high_sensitivity**// INTEGER. //**hlc_level**// INTEGER. //**hlc_level_mask**// INTEGER. //**stable_zoom**// INTEGER. //**eflip**// INTEGER. //**lr_reverse**// INTEGER. //**monitor_mode**// TEXT. //**genlock_source**// INTEGER. //**manual_icr**// TEXT. //**zoom_step_size**// INTEGER. //**focus_step_size**// INTEGER. //**img_freeze**// INTEGER. //**hr_mode**// INTEGER. //**img_stabilizer**// INTEGER. //**img_bw**// INTEGER. //**nr_2d_level**// INTEGER. //**nr_3d_level**// INTEGER. //**icr_threshold**// INTEGER. //**slow_shutter**// BOOL. 0 or 1. //**slow_shutter_limit**// INTEGER. //**flicker_reduction**// BOOL. 0 or 1. //**img_stabilizer_level**// INTEGER. //**wide_dynamic_range**// TEXT. //**ve_brightness**// TEXT. //**ve_compensation_type**// TEXT. //**ve_compensation_level**// TEXT. //**tab_index**// TEXT. //**imgvflip**// INTEGER. //**imghflip**// INTEGER. //**imgrotate**// INTEGER. ---- ==== camera_exposure ==== ---- Get the current camera exposure values from the visca camera. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**ae_mode**// TEXT, //**shutter**// TEXT. //**iris**// TEXT. //**gain_inquiry**// TEXT. //**sensitivity**// TEXT. //**hls_inquiry**// TEXT. //**min_shutter**// INTEGER. //**max_shutter**// INTEGER. //**shutter_label**// TEXT. //**min_iris**// INTEGER. //**max_iris **// INTEGER. //**iris_label**// TEXT. //**min_gain**// INTEGER. //**max_gain**// INTEGER. //**gain_label**// TEXT. ---- ==== camera_monitor_mode ==== ---- Get the current camera monitor mode values from the visca camera. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**modes**// TEXT. //**current_mode**// TEXT. ---- ==== dec ==== ---- Get the current decoder settings from the Database. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**preset**// TEXT. //**channel**// INTEGER. //**url**// TEXT. **//aenable//** TEXT. //**viewport**// TEXT. //**latency_mode**// TEXT. //**max_latency_ms**// TEXT. //**srt_mode**// TEXT. //**srt_latency**// TEXT. //**srt_decrypt**// TEXT. //**srt_pass**// TEXT. **//zixi_fec//** TEXT. //**zixi_fecoverhead**// TEXT. //**zixi_fecblock**// TEXT. //**zixi_latency**// TEXT. **//zixi_decrypt//** TEXT. //**zixi_pass**// TEXT. **//rtsp_flags//** TEXT. ---- ==== download ==== ---- Get the downloaded file information from the removable storage media. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. //**job **// Optional//**. **// The job from the schedule tab. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**FileName**// TEXT. //**FileSize**// TEXT. //**LastModified**// TEXT. ---- ==== drs_tamarisk_settings ==== ---- Get the camera model of drs tamarisk settings fromt the Database. === Parameters: === ---- //**job **// Optional//**. **// The job from the schedule tab. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**color_pallette**// TEXT. //**tab_index**// TEXT. //**color_pallette_disabled**// TEXT. ---- ==== enc ==== ---- Get the current channel encoder settings from the Database. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP GET request. 0 on success, -1 on failure. //**preset**// TEXT, //**channel**// INTEGER. //**vbitrate**// TEXT. //**vframeratediv**// INTEGER. //**vsource**// TEXT. //**vcodec**// TEXT. //**vprofile**// TEXT. //**vprotocol**// TEXT. //**avmux_index**// TEXT. //**vgdr**// TEXT. **//vdest// ** TEXT. //**aenable**// TEXT. //**acodec**// TEXT. //**abitrate**// TEXT. //**asamplerate**// TEXT. //**aport**// TEXT. //**apair**// INTEGER. //**vres**// TEXT. //**vgopsize**// INTEGER. //**vpid**// INTEGER. //**apid**// INTEGER. //**zixiauthen**// TEXT. //**zixisession**// TEXT. //**zixiuser**// TEXT. //**zixioverhead**// TEXT. //**zixifecblock**// TEXT. //**zixilatency**// TEXT. //**zixirateadjen**// TEXT. //**fecrow**// INTEGER. //**feccol**// INTEGER. //**feconoff**// TEXT. //**aptspcr**// INTEGER. //**tslowlat**// TEXT. //**tsrate**// TEXT. //**pcrpid**// INTEGER. //**pcrinterval**// INTEGER. //**pmtpid**// INTEGER. //**klvenable**// TEXT. //**klvmode**// TEXT. //**klvmuxmethod**// TEXT. //**klvsrc**// TEXT. //**klvbrate**// TEXT. //**klvserialbaud**// TEXT. //**klvpid**// TEXT. //**vratectrl**// TEXT. //**vdelay**// INTEGER. //**storage**// TEXT. //**fprefix**// TEXT. //**asource**// TEXT. //**authonoff**// TEXT. //**auth_user**// TEXT. //**auth_passwd**// TEXT. //**auxonoff**// TEXT. //**filesize**// TEXT. //**nfstrength**// TEXT. //**telopenable**// TEXT. //**teloptext**// TEXT. //**teloplocation**// TEXT. //**telopcharsize**// TEXT. //**teloptextcolor**// TEXT. //**telopoutlineenable**// TEXT. //**telopoutlinecolor**// TEXT. //**gps_overlay_enable**// TEXT. //**gps_overlay_device**// TEXT. //**gps_overlay_location**// TEXT. //**gps_overlay_char_size**// TEXT. //**pipenable**// TEXT. //**piplocation**// TEXT. //**vquality**// TEXT. //**vinterlacemode**// TEXT. //**vmulticastdest**// TEXT. //**amulticastdest**// TEXT. //**rtsp_auth_enable**// TEXT. //**rtsp_auth_username**// TEXT. //**rtsp_auth_password**// TEXT. //**rtsp_transport_mode**// TEXT. //**lowdelay_opt**// TEXT. //**vcropaspect**// TEXT. //**vcrop_enable**// TEXT. //**vcrop_width**// INTEGER. //**vcrop_height**// INTEGER. //**vcrop_x**// INTEGER. //**vcrop_y**// INTEGER. //**rotate_enable**// INTEGER. //**rotate_angle**// INTEGER. //**rtmp265_enable**// TEXT. //**srt_pass**// TEXT. //**srt_encrypt**// INTEGER. //**srt_mode**// INTEGER. //**srt_destAddr**// TEXT. //**mmulticastdest**// TEXT. //**mport**// TEXT. //**frame_loss_mode**// TEXT. //**frame_loss_gap**// INTEGER. //**frame_loss_overshot**// INTEGER. //**mounts**// TEXT. //**source_status_str**// TEXT. ---- ==== filepicker ==== ---- Get the file type and its information from the removable storage media. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**filepicker_filename**// TEXT, **//filepicker_size//** INTEGER. //**filepicker_lastmodified**// TEXT. ---- ==== fmt ==== ---- Get the removable storage infromation from the device using fdisk command. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**mounts**// TEXT, ---- ==== focusStepSize ==== ---- Get the current camera focus step values from the Database. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**focus_step_size**// INTEGER, ---- ==== fpga ==== ---- Get the current fpga from firmware filename. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**fpgafileglob**// TEXT, //**options**// TEXT. ---- ==== history ==== ---- Get the decoder history infromation from the Database. === Parameters: === ---- //**chn**// Get the encoder channel number. The default is encoder channel 1. Select between encoder channels. Possible values: 1, 2, 3, or 4. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**channel**// TEXT, //**histidx**// TEXT. //**url**// TEXT. ---- ==== ipinfo ==== ---- Get the internet protocol infromation from the board. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**local_ip**// TEXT, //**local_netmask**// TEXT. //**default_gw**// TEXT. //**ipmtu**// TEXT. //**eth_speed**// TEXT. //**eth_duplex**// TEXT. //**do_autostart**// BOOLEAN. ---- ==== onvif ==== ---- Get the ONVIF miscallenous settings from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**list_all_video_sources**// INTEGER, //**dns_from_dhcp**// INTEGER, //**ntp_from_dhcp**// INTEGER, //**ntp_enable**// INTEGER, //**daylightsaving**// INTEGER, //**timezone**// TEXT. //**http_enable**// INTEGER, //**http_port**// INTEGER, //**https_enable**// INTEGER, //**https_port**// INTEGER, //**rtsp_enable**// INTEGER, //**rtsp_port**// INTEGER, //**discoverable**// INTEGER, //**ntp**// TEXT. //**dns_search**// TEXT. **//ptz_timeout//** TEXT. //**primary fixed_profile_max **// INTEGER, //**secondary fixed_profile_max**// INTEGER, //**en_persistent_audio**// TEXT. //**onvif_enable**// BOOLEAN. //**vmd_enable**// BOOLEAN. ---- ==== onvif_vmd ==== ---- Get the ONVIF video motion detection and too darkness settings from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**vmd_sens**// INTEGER, //**vmd_zone_modify**// TEXT. //**vmd_vcrop_width**// INTEGER. //**vmd_vcrop_height**// INTEGER. **//vmd_vcrop_x//** INTEGER. **//vmd_vcrop_y//** INTEGER. //**td_enable**// TEXT. //**td_thresh**// INTEGER. //**vmd_td_channel**// TEXT. ---- ==== permission ==== ---- Get the current permission settings for admin, operators, and users from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**username**// TEXT, //**userlevel**// TEXT. //**api_command**// TEXT. //**superadmin**// TEXT. **admin** TEXT. //**operator1**// TEXT. //**operator2**// TEXT. //**user1**// TEXT. //**user2**// TEXT. //**user3**// TEXT. **//anonymous// ** TEXT. ---- ==== ptz ==== ---- Get the current PTZ settings from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**token**// TEXT, **//node//** TEXT. //**name**// TEXT. //**enabled**// BOOLEAN. //**pelcoaddr**// INTEGER. //**tcpport**// INTEGER. //**ptztype**// TEXT. //**flip**// TEXT. //**pos**// TEXT. //**maxtilt**// INTEGER. ---- ==== ptz_preset ==== ---- Get the PTZ preseting values from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**profiletoken**// TEXT, //**token**// TEXT. //**name**// TEXT. //**pan**// FLOAT. //**tilt**// FLOAT. //**zoom**// FLOAT. ---- ==== ptz_tour ==== ---- Get the PTZ tour information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**ProfileToken**// TEXT, //**PresetTourToken**// TEXT. //**name**// TEXT. //**autostart**// BOOLEAN. **//RecurringTime//** INTEGER. //**RecurringDuration**// TEXT. **//PresetTourDirection//** INTEGER. //**RandomPresetOrder**// BOOLEAN. //**ProfileToken**// TEXT. //**PresetTourToken**// TEXT. **//RowIndex //** INTEGER. //**PresetDetailToken**// TEXT. //**PresetDetailHome**// BOOLEAN. //**StayTime**// TEXT. //**pan**// FLOAT. //**tilt**// FLOAT. //**zoom**// FLOAT. //**pspeed**// FLOAT. //**tspeed**// FLOAT. //**zspeed**// FLOAT. ---- ==== snmp ==== ---- Get the Simple Network Management Protocol values from the Database === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**power_trap_en**// INTEGER, //**input_loss_trap_en**// INTEGER. //**input_recover_trap_en**// INTEGER. //**temp_high_trap_en**// INTEGER. //**temp_recover_trap_en**// INTEGER. //**high_temp**// INTEGER. //**nominal_temp**// INTEGER. //**high_temp_suppress**// INTEGER. //**nominal_temp_suppress**// INTEGER. //**trap_hosts**// INTEGER. //**snmp_v3_en** // INTEGER. //**snmp_v3_user**// TEXT. //**snmp_v3_passwd**// TEXT. //**snmp_v3_usrpro**// TEXT. **//snmp_v3_encrypt//** INTEGER. **//snmp_v3_encrypt_passwd//** TEXT. **//snmp_v3_encpro//** TEXT. **//snmp_v3_engineid//** TEXT. ---- ==== ssl ==== ---- Get the Secure Socket Layer settings from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**https_enable**// TEXT, //**http_enable**// TEXT. //**https_port**// INTEGER. //**http_port**// INTEGER. //**cert_status**// TEXT. **//key_status//** TEXT. ---- ==== stats ==== ---- Get the available memory infromation from the device. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**mem_free_kb**// TEXT, ---- ==== sys ==== ---- Get the current system settings from the Database and the ip information from the device. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**local_ip**// TEXT, //**local_netmask**// TEXT. //**preset**// TEXT. //**enc_channels**// TEXT. //**opmode**// TEXT. //**username**// TEXT. //**userlevel**// TEXT. //**do_autostart**// BOOLEAN. //**syspassword**// TEXT. //**session_id**// TEXT. //**disp_std** // TEXT. //**disp_std2**// TEXT. //**disp_input**// TEXT. //**disp_mode**// TEXT. //**disp_layout**// TEXT. **//enc_adv_setting//** TEXT. **//enc_vivpss_mode_enable//** TEXT. //**enable_sntp**// TEXT. //**sntp_servers**// TEXT. //**enable_snmp**// TEXT. //**sysdevicename**// TEXT. //**timezone**// TEXT. //**timezone_name**// TEXT. //**termserve_remote_enable**// TEXT. //**termserve_shared_enable**// TEXT. //**zfinder_enable**// TEXT. //**diff_serve**// INTEGER. //**enable_ptp**// TEXT. //**ptp_role**// TEXT. //**nmea_enable**// TEXT. //**nfs_enable**// TEXT. //**nfs_server **// TEXT. //**nfs_server_root**// TEXT. //**ddns_enable**// TEXT. //**ddns_provider**// TEXT. //**ddns_username**// TEXT. //**ddns_password**// TEXT. //**rtspd_port**// INTEGER. //**rtspd_timeout**// INTEGER. //**maxlogin**// INTEGER. //**login_window**// INTEGER. //**lockout_interval**// INTEGER. //**login_timeout**// INTEGER. //**require_web_login**// BOOLEAN. ---- ==== term ==== ---- Get the remote terminal information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. **//term_mode//** TEXT, **//term_protocol//** TEXT. //**term_localport**// TEXT. //**term_servaddr**// TEXT. //**term_servport**// TEXT. **//term_data_bits//** TEXT. //**term_parity**// TEXT. //**term_stop_bits**// TEXT. //**term_baudrate**// TEXT. **//term_devicefile//** TEXT. //**term_function**// TEXT. ---- ==== users ==== ---- Get the ONVIF user information and the permission level from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**Name**// TEXT, //**Level**// INTEGER. //**Password**// TEXT. //**Password_MD5**// TEXT. //**Password_SHA256**// TEXT. //**Password_SHA512_256**// TEXT. ---- ==== video_group ==== ---- Get the current video group settings from the Database. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**vgroup**// INTEGER. **//crop_enable//** TEXT. **//crop_width//** INTEGER. **//crop_height//** INTEGER. **//crop_x//** INTEGER. **//crop_y//** INTEGER. //**nr_enable**// TEXT. ---- ==== wifi ==== ---- Get the Wifi details from the device and wifi client information from the Database. === Parameters: === ---- === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**networks**// TEXT, //**cur_network**// TEXT, //**cur_pass**// TEXT, //**ap_pass**// TEXT, //**ap_pass_en **// BOOLEAN. //**ap_ssid**// TEXT, **//wifi_client_local_ip//** TEXT, //**wifi_client_local_netmask**// TEXT. //**wifi_client_default_gw**// TEXT. //**wifi_client_use_dhcp**// BOOLEAN. ---- ==== zoomStepSize ==== ---- Get the current camera zoom step values from the Database. === Parameters: === ---- //**chn**// Get the channel number. The default is Camera 1. Select between connected cameras. Possible values: 1 = Camera 1, 2 = Camera 2. === Returns: === ---- JSON formatted table with values below //**ret**// Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**zoom_step_size**// INTEGER, ---- ====== File Upload for MFR or UPD Image Control ====== ===== Upload Image (POST) ===== ---- Upload the z3 image for e.g. (z3-30-0139-mfr.img or z3-30-0139-upd.img) in the z3 device. Before uploading the new image, it checks, whether the device has enough free memory or not and removes the coredump files. If the image is *mfr.img then it removes the default database from the data partition. If its *upd.img then it will not remove the database values. Note:\\ It takes approximately 5 minutes to update; DO NOT SEND ANY OTHER API Commands after uploading the image for at least 5 minutes. (time.sleep(300) or equivalent in scripts) === Parameters: === ---- **//img_file//** Get the file name which needs to be flashed in the z3 device. === Returns: === ---- Flash the image and reboot the device. Note:\\ It takes approximately 5 minutes to update; DO NOT SEND ANY OTHER API Commands after uploading the image for at least 5 minutes. (time.sleep(300) or equivalent in scripts) ---- ====== Download File and Remove File Control ====== See **download_remove** to remove files from the **Generic Actions (POST) **action ===== Download Media (GET) ===== http:///download_media.cgi?mediafile=/location/filename For e.g. http:///download_media.cgi?mediafile=/media/sda1/MOV1_000001.mp4 ===== ===== ---- Download the media file. If the output format is mp4 or TS file, then only z3 device allows downloading the files. Also provides the option for deleting the file. === Parameters: === ---- **//mediafile//** Get the media file name. === Returns: === ---- JSON formatted table with values below. ret Custom return code of the HTTP POST request. 0 on success, -1 on failure. //**File Name**// Name of the download file name . //**File Size**// Size of the download file name. //**Last Modified**// Last modified the file date and time. ---- ===== download.html to get list of downloadable files ===== http:///download.html?chn=1 chn** =[1,2,3,4]** List the download content. The content will be either .mp4 or .ts file format. ===== Encoder Actions (POST) ===== ==== SetEncoder ==== Write encoder settings to active preset. See Python example code for Seting Configuration below ==== EncoderStatus ==== Requests an update to encoder_status_str variable. To read the result, you need to POST the “stats” control as shown\ in the Python example code below. ==== StreamStatus ==== Requests an update to stream_status_str variable. To read the result, you need to POST the “stats” control as shown\ in the Python example code below. ==== AStreamStatus ==== Requests an update to astream_status_str variable. To read the result, you need to POST the “stats” control as shown\ in the Python example code below. ==== SourceStatus ==== Requests an update to source_status_str variable. To read the result, you need to POST the “stats” control as shown\ in the Python example code below. ---- ===== Setting Encoder Configuration ===== To set the encode configuration per channel the **SetEncoder** action is used with a post. All variables should be present or they will be replaced with a defualt that may not be valid for your application. More than one channel can be set per command. It is recommended you first read the current settings from the encoder then modify them and send the new settings back as in the Python example below: import requests, json, sys server_url='http://192.168.0.120/cgi-bin/control.cgi' channel = 1 enc_cfg = requests.get(server_url, params='ctrl=enc&chn={}'.format(channel)) print enc_cfg.json() enc_cfg_json=enc_cfg.json() enc_cfg_json['vframeratediv'] = 2 #set frame rate divider to 2 new_cfg = {} new_cfg['action'] = 'SetEncoder' for key, value in enc_cfg_json.iteritems(): print "key = {} value = {}".format(key,value) new_idx = "enc_{}_{}".format(channel,key) print "setting {} to {}".format(new_idx,value) new_cfg[new_idx] = value print new_cfg requests.post(server_url, data=new_cfg) ===== snapshot.cgi Control ===== http:///snapshot.cgi?size=3840x2160&quality=100 http:///snapshot.cgi?chn=1&size=1280x720&quality=80 valid options are: * *size** =[any supported valid resolution]** chn** =[1,2,3,4]** quality** =[0-100] supported resolutions are: 4K Models Only 3840×2160 2560×1440 4K and HD Models 1920×1080 1440×1080 1280×1024 1280×720 1024×768 960×720 1024×576 800×600 720×576 704×576 720×480 640×512 640×480 640×360 352×576 420×380 352×288 352×240 336×256 320×240 320×180 ** ===== Reading Statistics ===== **Python example of updating and reading encoder statistics: ** import requests, json, sys server_url='http://192.168.0.120/cgi-bin/control.cgi' requests.post(server_url, {'action': 'EncoderStatus'} ) requests.post(server_url, {'action': 'StreamStatus'} ) requests.post(server_url, {'action': 'AStreamStatus'} ) requests.post(server_url, {'action': 'SourceStatus'} ) requests.post(server_url, {'action': 'TempStatus'} ) print requests.get(server_url, params='ctrl=stats&chn=null').json() **Example output: ** {u'status': u'OK', u'astream_status_str': u'\tChannel 6 Codec fdk_aaclc Samplerate 48000 Input MICL Frames 32287820 OK', u'temp_status_str': u' LENS 29 CPU 78.700 FPGA 89.8 OK', u'ret': u'0', u'encoder_status_str': u' *** Encode Bitstream Received Statistics *** CH | Bitrate (Kbps) | Actual Bitrate | FPS | Actual FPS | Key-frame FPS | Width | Height ------------------------------------------------------------------------------------------------------------ 1 | 4000.00 | 4092.18 | 60.0 | 59.8 | 1.0 | 1920 | 1080 | OK', u'source_status_str': u' CAMERA 1920x1080p 60.00 fps\n', u'stream_status_str': u'Channel 1 URL rtsp Frames 12883581 OK'} ===== Authentication ===== By default, no authentication is required to access the HTTP API. To enable authentication, go to the "System" tab "Device Management" section. Click on the "Set Password" button. The username will be "admin" The authentication method is HTTP Digest authentication. HTTP Basic authentication is not supported. === Python example code of HTTP Digest authentication === import requests,json, sys from requests.auth import HTTPDigestAuth auth=HTTPDigestAuth('admin','mypassword') print requests.get(server_url, params='ctrl=stats&chn=null', auth=auth).json() ====== Appendix A: Sample Python Scripts ====== The sample python scripts below require Python3.x. The requests package must be installed. You can install using 1) Use the Ubuntu package manager sudo apt install python3-requests 2) Use the Python3 native package installer sudo pip3 install requests ===== SaveUser (saveUser_DIGEST_ARGPARSE.py) ===== Save the state, preset, encoder/decoder settings for the user. === Python example code of HTTP Digest SaveUser === import requests import json import sched import time import enum import datetime import argparse from requests.auth import HTTPDigestAuth def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 print(msg, flush=True) def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') args = parser.parse_args() print(args) if args.ip: server_url='http://'+args.ip elif args.ip_address: server_url='http://'+args.ip_address if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url + '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} payload = "action=SaveUser&enc_current_preset=charles"; rs = http_request(payload) print_immediately( "{:>6}: {} setip_respose response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute ** python3 saveUser_DIGEST_ARGPARSE.py -ip 192.168.1.105 -username admin -passwd admin **Example output: ** SaveUser response: {"ret":"0","status":"OK"} ===== SetIp (set_ip_DIGEST_ARGPARSE.py) ===== Control networking settings of the Z3 device such as local IPv4 IP address, netmask, DNS Server primary, DNS Server secondary, etc. Additionally control Encoder Auto-Start after boot-up and enable/disable showing of advanced WebUI settings. === Python example code of HTTP Digest SetIp === import requests import json import sched import time import enum import datetime import argparse from requests.auth import HTTPDigestAuth def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 print(msg, flush=True) def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-newip', help='Set this IP') parser.add_argument('-mask', help='Subnet Mask',default='255.255.255.0') parser.add_argument('-gateway', help='Network Gateway',default='172.30.1.1') parser.add_argument('-dns1', help='DNS 1',default='8.8.8.8') parser.add_argument('-dns2', help='DNS 2',default='8.8.4.4') parser.add_argument('-ipmtu', help='MTU Speed',default=1500) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') args = parser.parse_args() print(args) if args.ip: server_url='http://'+args.ip elif args.ip_address: server_url='http://'+args.ip_address if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url + '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} payload = "action=SetIp&local_ip=172.30.1.112&local_netmask=255.255.255.0&default_gw=172.30.1.1&local_dnsip=8.8.8.8&local_dnsip2=8.8.4.4&use_dhcp=no&ipmtu=1500ð_speed=AUTOð_duplex=AUTO&do_autostart=1&enc_adv_setting=off"; rs = http_request(payload) print_immediately( "{:>6}: {} setip_respose response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute ** python3 set_ip_DIGEST_ARGPARSE.py -ip 192.168.1.105 -username admin -passwd admin **Example output: ** dns1='8.8.8.8', dns2='8.8.4.4', gateway='172.30.1.1', ip='192.168.1.105', ipmtu=1500, mask='255.255.255.0', newip=None, passwd='admin', username='admin' setip_respose response: {"ret":"0","status":"OK"} ===== cam_state (sys_DIGEST_ARGPARSE.py) ===== Get the current camera state information from the Database. === Python example code of HTTP Digest camera state === import requests import json import sched import time import enum import datetime import argparse from requests.auth import HTTPDigestAuth def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 print(msg, flush=True) def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r def http_request_get(payload): try: if args.username: r = requests.get(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.get(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') args = parser.parse_args() print(args) if args.ip: server_url='http://'+args.ip elif args.ip_address: server_url='http://'+args.ip_address if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url + '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} payload='ctrl=cam_state&chn=null'; rs = http_request_get(payload) print_immediately( "{:>6}: {} Sys response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute ** python3 sys_DIGEST_ARGPARSE.py -ip 192.168.1.105 -username admin -passwd admin **Example output: ** (ip='192.168.1.105', passwd='admin', username='admin') Sys response: {"camera1_if_type":"Sony_LVDS","camera2_if_type":"CVBS","enc_channels":"1,2","enc_current_preset":"charles","fpgafileglob":"fpga_none.bin|fpga2_0139_cvbs.bin","preview_auto_start":"1","ret":"0","visca_present":"true"} ===== CameraControl for Boson camera (Zoom_Boson.py) ===== Send control commands to boson camera. Only one command can be sent at a time; === Python example code of HTTP Digest Camera control for Boson camera === import requests import json import sched import time import enum import datetime import argparse import sys from requests.auth import HTTPDigestAuth if sys.version_info[0] <3: raise Exception("Python 3 or a more recent version is required.") def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 # print(msg, flush=True) print(msg) sys.stdout.flush() def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r def http_request_get(payload): try: if args.username: r = requests.get(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.get(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') args = parser.parse_args() print(args) if args.ip: server_url='http://'+args.ip elif args.ip_address: server_url='http://'+args.ip_address # Set Zoom STEP zooms=args.zs; zoomstep=args.zoom_step; if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url + '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} # Boson min Zoom payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000000000000A000000080'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) # Boson mid Zoom payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000015000000A000000080'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) # Boson mid Zoom xB0 yA0 payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000015000000B0000000A0'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) # Boson max Zoom payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000030000000A000000080'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) # Boson no Zoom payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000d000200000000000000A000000080'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) # Boson get Zoom pos payload='action=CameraControl&interface=Boson&cam_index=2&command=raw 000D0003'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute ** python3 Zoom_Boson.py -ip 172.28.30.103 **Example output: ** (ip='172.28.30.103', passwd='admin', username=None, zoom_step=False, zs='3') Response: {"response":"","ret":"0","status":"OK"} Response: {"response":"00000000000000A000000080","ret":"0","status":"OK"} Response: {"response":"","ret":"0","status":"OK"} Response: {"response":"00000015000000A000000080","ret":"0","status":"OK"} Response: {"response":"","ret":"0","status":"OK"} Response: {"response":"00000015000000B0000000A0","ret":"0","status":"OK"} Response: {"response":"","ret":"0","status":"OK"} Response: {"response":"00000030000000A000000080","ret":"0","status":"OK"} Response: {"response":"","ret":"0","status":"OK"} ===== CameraControl for Sony Visca camera (Zoom_visca.py) ===== Send control commands to visca camera. Only one command can be sent at a time; === Python example code of HTTP Digest Camera control for Visca camera === import requests import json import sched import time import enum import datetime import argparse import sys from requests.auth import HTTPDigestAuth if sys.version_info[0] <3: raise Exception("Python 3 or a more recent version is required.") def print_immediately(msg): # https://stackoverflow.com/questions/230751/how-can-i-flush-the-output-of-the-print-function/230774#230774 # print(msg, flush=True) print(msg) sys.stdout.flush() def http_request(payload): try: if args.username: r = requests.post(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.post(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r def http_request_get(payload): try: if args.username: r = requests.get(control_cgi_url, data=payload, headers=headers,auth=auth) else: r = requests.get(control_cgi_url, data=payload, headers=headers) except requests.exceptions.HTTPError as err: raise SystemExit(err) except requests.exceptions.Timeout: raise SystemExit() except requests.exceptions.TooManyRedirects: raise SystemExit() except requests.exceptions.RequestException as e: raise SystemExit(e) return r parser = argparse.ArgumentParser() parser.add_argument('-ip', '-ip_address', type=str, help='IP of Encoder', required=True) parser.add_argument('-username', help='Username if credentials are required, -passwd is also required') parser.add_argument('-passwd', help='Password if credentials are required',default='admin') parser.add_argument('-z', help='Zoom STEP level 0 - 7; Default 3',default='3') parser.add_argument('-zs', help='Do Zoom STEP defined using -z, else normal zoom',action='store_true') args = parser.parse_args() print(args) if args.ip: server_url='http://'+args.ip elif args.ip_address: server_url='http://'+args.ip_address # Set Zoom STEP zooms=args.z; zoomstep=args.zs; if args.username: auth=HTTPDigestAuth(args.username,args.passwd) control_cgi_url = server_url + '/cgi-bin/control.cgi' channel = 1 headers = {'Content-Type':'application/x-www-form-urlencoded;charset=UTF-8'} if zoomstep == True: payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_wide_var '+zooms; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_stop'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_get_pos'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_tele_var '+zooms; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(4) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_stop'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_get_pos'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) else: payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_tele_std'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(5) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_stop'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_get_pos'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_wide_std'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) time.sleep(5) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_stop'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) payload='action=CameraControl&interface=Visca&cam_index=1&command=zoom_get_pos'; rs = http_request(payload) print_immediately( "{:>6}: {} Response: {}".format( 1, datetime.datetime.now(), rs.text ) ) **Command to execute with out zoom step size ** python3 Zoom_visca.py -ip 192.168.1.105 -username admin -passwd admin **Example output: ** (ip='192.168.1.105', passwd='admin', username='admin', z='3', zs=False) Response: {"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"response":3040,"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"response":0,"ret":"0","status":"OK"} **Command to execute with zoom step size ** python3 Zoom_visca.py -ip 192.168.1.105 -username admin -passwd admin -z 3 -zs **Example output: ** (ip='192.168.1.105', passwd='admin', username='admin', z='3', zs=True) Response: {"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"response":0,"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"ret":"0","status":"OK"} Response: {"response":7304,"ret":"0","status":"OK"}