Archives: Wikis

Example links for the Catalogue

Here are some examples of how to use the catalogue to search for IoT Resources and perform actions on them. These can be tested against the demo catalogue at CNet, You can watch and see the effect of your commands at the demo setup at

Catalogue Meta Data (list all services of the catalogue) (list all IoT Resources with their endpoints)* (list all IoT Resources with complete meta data)

Searching the Catalogue[contains(.,’Hue’)] (list all Philips Hue Resources )[upnp:friendlyName[contains(.,’Hue’)]][IoTObservation:Status[.=’off’]]  (list all Philips Hue Resources that are currently switched off)

Get IoT Resource meta data through the Catalogue (list all services provided by IoT Resource AirQualityDevice) (list all actions provided in the “sensor” service) (list all statevariables that are logged)

Actuation on IoT Resources using resource id (list the energyconsumption of the DiscoBall for the last 3 hours) (start the DiscoBall) (stop the DiscoBall)

Actuation on IoT Resources using search expressions[upnp:manufacturer=’CNet’][IoT:currentconsumption>200]/services/switch/actions/TurnOff (turn off all  switches from manufacturer CNet that is consuming more than 200W)

IoT World Gateway GUI


This is a guide to the IoT World Gateway GUI which is a visualizing tool for your IoTWorld.

First view


  1. Enter a valid endpoint and click use
  2. Select an action e.g. GetIotResource, GetIotResourcesEndpoints. Depending on this selection some or all of the following controls will be visible
  3. If the previous selection was GetIoTResource this list will appear where you can select the specific IoTResource to view
  4. This field shows the URL to the resource catalogue and changes depending on the previous selections
  5. The “Go” button visualizes the selected action in the “Output” window to the left bottom, and in the case of the GetIotResource action the IoTResource services will be shown to the top right (see next image).
  6. The “Output” window shows the xml results from the Resource Catalogue, by clicking the “View xml” link to the upper right corner of the window a new browser tab will be opened with the same results. You could also copy the URL from the previous action field (4) and get the same result.
  7. The “IoT Data Streams” window consists of two customizable charts showing two of the IoTResources. Which IoT Resource to show can be edited by clicking on the “Edit” button to the upper right of each chart.
  8. You can also edit the header of the page by clicking on the “Edit” button to the upper tight of the blue header

Select an IoT Resource


  1. Once you have selected an Iot Resource and klicked “Go” the “Output” window will be updated and another window called “Services” will appear to the right
  2. The “Services” window show all services provided by the IoT Resource as buttons. Clicking one of the service buttons will generate a chart showing the last 180 measurements

Edit IoT Data Stream Charts


  1. When you click the “Edit” button to the right of the chart, a pop-up window appears
  2. Two selections are required in the pop-up window, the first is the IoTResource and the second is the service. Once the selection has been made you click the “Save” button to save the changes. The changes will be saved in the web browsers local storage

Access and parse the resource catalogue

First a short overview of the resource catalogue

Main page or root of the resource catalogue ex.

List of actions

List of access resources

List of State variables

Select a state variable and get latest 180 measurements

Read xml with Javascript

function readXml(url) {
var xhr = createCORSRequest('GET', url);
if (!xhr) {
console.log('CORS not supported');

// Response handlers.
xhr.onload = function () {
var xml = xhr.responseText;
if (typeof firstAction !== ‘undefined’) {

xhr.onerror = function () {
console.log(‘Woops, there was an error making the request.’);


function createCORSRequest(method, url) {
var xhr = new XMLHttpRequest();
if (“withCredentials” in xhr) {
// XHR for Chrome/Firefox/Opera/Safari., url, true);
} else if (typeof XDomainRequest != “undefined”) {
// XDomainRequest for IE.
xhr = new XDomainRequest();, url);
} else {
// CORS not supported.
xhr = null;
return xhr;