How to integrate with BVMS using virtual input and REST API?
The easiest way to integrate a 3rd party system with BVMS is through Virtual input based REST API.
REST API for Virtual Input (on/off) and text data integration
Virtual Input REST API is designed to query and control virtual inputs and their states from outside BVMS using the BVMS REST API.
Virtual Input REST API interface can be used to:
-Retrieve information about configured Virtual Inputs (VI)
-Set the specific VI state to on/off
-Send the text data to the specific VI. User-defined data. Up to 10 strings ("Data1", "Data2" up to "Data10“). Total length max. 8192 characters.
No need to use C# based BVMS Server SDK for simple integration purposes


Step-by-step guide
BVMS installation setup
The setup offers an option to deploy the REST endpoint as an optional feature “Server API" as sub-feature of the Management Server (disabled by default).

The setup configures a corresponding firewall rule for the endpoint only if the "Configuration API" feature is installed.
The exact port of the REST endpoint service: 5399
Name of service in Service Manager: BVMS Server API

There is a dedicated log file for the API available.
User group permissions required for non Admin users

Documentation: Server API VI
Intended users of the REST API are most probably 3rd party developers rather than BVMS Configuration Client users (Administrators).
Therefore, the documentation is not implemented in the Configuration Client. It is available as file in the file directory to be opened in a .yaml editor:
1.Go to the following web page, an online editor is offered: https://editor.swagger.io/

2.Select File → Import file and choose the following directory from the BVMS installation folders:
C:\Program Files\Bosch\VMS\Doc\APIs\............API\........api.yaml

If the path does not exist, the option “Server API” (within Management server feature options) was not chosen/installed during BVMS installation in the setup file.
Configuration using Virtual input in BVMS
1.Add Virtual Inputs (VI) to the Devices tab

2.Add the VI to the Maps and Structure tab

3.Watch the status (on/off) in the Operator Client

Example: how to trigger Virtual input using REST API: curl.se
Example of how to use the BVMS 13.0 REST API for Virtual Input + text data transfer:
Curl =! cURL => A suitable test-client is required: For example, curl.se (command line tool and library for transferring data with URLs).
Download: https://curl.se/windows/
Note: The windows onboard Alias Curl = Invoke-WebRequest does not work for the BVMS REST API.
Some example commands using windows power shell or windows CMD can be found in the attached PDF below.
Note
The example command in the PDF is the syntax for Power Shell and it can be different for Command Prompt!
The syntax for Power Shell: it is written '\"On\"'
The syntax for Command Prompt: should be "\"On\""
Example of how to use the BVMS 13.0 REST API for Virtual Input + text data transfer.pdf
Additional configuration using Virtual input text data
Text data can be included in an alarm.
It can also be recorded in the logbook.
Additionally, text data can be embedded in camera recordings, allowing related video footage to be searched using that text.
Note: Search in logbook screen shot is not included here.


Search video footage based on Virtual input text data

Nice to know:
The BVMS REST API was implemented in 2 waves (2 different software releases):
REST API for BVMS Configuration purpose (camera re-naming), released in BVMS 11.x
Enhancement to support REST API for Virtual Input (on/off) and text data integration, released in BVMS 12.0.1