This application focuses on the (dynamic) harvest of IoT-based data in a testbed agnostic manner. In layman’s terms, we aim at retrieving data from sensors coming from heterogeneous platforms (as the ones that compose the FIESTA-IoT federation) in a single and common solution. For this experiment, and according to the legacy description of this pilot, we only focus on the weather/environmental domain. Namely, we will only show resources and observations that have to do with a subset of physical phenomena (e.g. temperature, illuminance, wind speed, etc.), where external running this experiment will be able to see the resources on a map and dynamically select subsets of them, in order to play around with the information (i.e. observations) the actual sensors generate. Amongst the set of features that we support in this experiment, we stand out the following ones: graphical representation of resources, location and phenomena-based resource discovery, retrieval of observations, combination of data for the generation of statistical analysis, graphical representation of these stats, etc.
We have chosen the Express (Node.js) framework to build the application server (backend). At client side, a typical combination of Javascript + HTML, including various popular libraries that deal with graphical outputs, such as Leaflet, Turf or D3.
So, the first step before running the application is to automatically download the required packages. For this, we have relied on two of the most widespread packages managers: npm and bower.
npm install
bower install
Now, you should have everything ready to run the server.
node server.js
(Of course, there are many other alternatives, but we show here the legacy one)
Nonetheless, to make it work accordingly you still need to configure some stuff as, for security reasons, we have kept hidden our very own credentials of some of the services that the application will use at run time. For the sake of having them altogether, the file config.yaml, located in the config folder, contains the following elements:
production:
iot_registry: 'https://platform.fiesta-iot.eu/iot-registry/api'
mapbox_style: 'username/code'
mapbox_access_token: 'token'
openam_user: 'user'
openam_password: 'password'
openam_authentication_endpoint: 'https://platform.fiesta-iot.eu/openam/json/authenticate'
Where:
- production: This is just the name given to the set of variables
- iot_registry: Address of the iot-registry API [Please do not change it]
- mapbox_style: You must have an account in Mapbox in order to generate the output map. This first input represent the base layer over which the rest of the map will be built [Necessary]
- mapbox_access_token: This second field is required to authenticate yourself and load your personalized map [Necessary]
- openam_user: Your FIESTA-IoT username. The FIESTA-IoT platform imposes that only registered users bound to the experimenter role are able to interact with the iot-registry API. Therefore, you have had to sign up here and request for a promotion to experimenter (by default, you will be given a basic observer role) [Necessary]
- openam_password: Your password associated to your FIESTA-IoT username [Necessary]
- openam_authentication_endpoint: As its name suggests, through this address the system will check your identity and will give you a SSO token in case your credentials are correct [Please do not change it]
Apart from this application, we strongly recommend that you refer to the following list of documents, which will help you understand how this experiments works behind the curtains:
For any kind of support or feedback, please contact us