Collect and Store Video Data with OSH

Deploy OSH Node

OpenSensorHub can be deployed on many platforms including Windows, Mac, Raspberry Pi and Linux. The deployment should be the same on any device.

Download a prebuilt OSH release

You can download a prebuilt OSH node here: https://github.com/opensensorhub/osh-core/releases/tag/v1.3.3 To deploy, just unzip the package and run the launch script (launch.sh for mac/linux/pi launch.bat for windows).

To run the node in the background on your machine you can use:

nohup ./launch.sh &

Login to Admin Panel

To login to the admin panel open a browser and go to

http://localhost:8181/sensorhub/admin

The default username:password is admin:admin. If you are not able to access the admin panel, check and be sure that you have ran the launch script correctly.

Note on running this setup within a local network vs connecting to the node externally

If you are planning on running your Android on the same local network as the device running the OSH node then all you will need for the next steps is your device’s local ip address (the one running the OSH node).

If you are planning on taking your Android outside of the local network then you will need to setup an external ip address for your device that is running the OSH node. If this is the case be sure to allow external traffic through port 8181.

Install and Setup OSH sensorhubConnect app on Android

Download SensorHubConnect app and follow setup instructions here: https://opensensorhub.org/sensorhubconnect/

You will need to use the following for setup

Once you have successfully connected to the OSH node with SensorHubConnect, login to the OSH node admin panel. You should now see your Android in the Sensors tab. The SensorHubConnect app creates an SOS-T request to the OSH node which embeds the sensor and configures an SOS service to request live data.

Configure Node for Storage

If you would like to store the data for playback you will need to create a storage module and then connect the SOS service to it.

Add Storage Module

To add a new storage module, choose the Storage tab on the left side of the Admin Panel. Right click on the area where the storage modules are listed and choose “Add New Module”. Choose the “Real-Time Stream Storage”, then select OK. Give the Module Name something unique, then choose the magnifying glass at the end of Data Source ID and select the Android sensor module listed. Apply Changes, and Save.

Storage Configuration

This storage modules may need extra configuration. Choose the Storage Config tab and select Add. Choose “PERST Record Storage”. The Storage Path includes path to directory and filename of the data file. If the file does not yet exist it will be created when the module is started. This typically looks like ./db/[name].dat . Apply changes and Save, then left-click on the storage module and choose Start. Once the storage module is started the Data Store Content will be populated with data entries. A bar graph showing the amount of data records along a timeline can be displayed by choosing the graph icon next to “Time Range”.

Add Storage Module to SOS Service

Choose Services on the left side of the admin panel. Then, select SOS Service and under the Offerings tab select “Item #1” (if you have more sensors or Androids on this node select the Offering item that corresponds with the storage you are connecting). Select the magnifying glass at the end of “Storage ID” and choose the storage module that you just setup. Apply Changes and Save.

Now you can request historical data from your Android device through SOS.

SOS Test Links

Enabled Offerings will appear at the bottom on the SOS Service page with a list of Test Links for accessing data. For Video data choose RAW under the VideoFrame output. The sample request’s default timeframe is “now”. You can edit the timeframe of the request by copying it from the address bar and editing “temporalFilter=phenomenonTime,now”. This should be at the end of the request.

To request realtime streaming data set this to end at a time in the future:

temporalFilter=phenomenonTime,now/2022-12-12

To request historic data check your storage module for the earliest valid timeframe of your data. Your endtime can either be a fixed time or can be set to “now”

temporalFilter=phenomenonTime,2021-03-04T19:59:44Z/2021-03-04T20:33:22Z 
temporalFilter=phenomenonTime,2021-03-04T19:59:44Z/now 
%d bloggers like this: