Link an IoT-Connector to an Application

In Murano Applications & Murano are separated to isolate use-case & visualization from the connectivity, device management and data transformation layer. This also allowed to associate a single device to multiple Applications or add different devices hardware to a single Application.

Learn more about the Murano data-flow.

Table of Contents

The following assumes you already have an Application ready.

Find Connected Devices

If you are not the hardware maker, you will find available ready-to-use devices on the Exchange IoT-Marketplace under the IoT-Connector section..

From there pick the type of hardware you need and from the detail page, you will find the vendor link to purchase your devices if not done already.

Once you know which Connector to use, from the details page, you can directly link the IoT-Connector to your Application by clicking on the ADD TO SOLUTION button. After the disclaimer popup, you will need to select which Application to link this Connector to.

Add connector popup

Claim Devices

If not done yet, claim your devices from the IoT-Connector OEM page. The link is available on the Exchange Marketplace Connector details page.

If you are using ExoSense you can directly claim your devices from the Exosense device claiming page.

For IoT-Connector Owners

If you connect devices to murano by yourself we will assume you already created an IoT-Connector.


Manage Linked Connectors

Note: Following steps assume you have managing access to your application.

1. On the Murano Solution list 'Home' page

2. Go to your Application management page

Application list

3. There Click on the 'Services' tab then 'IoT-Connector Setup' sub menu.

You will see your available IoT-Connectors.

Link Connector

To connect one to your Application just check the checkbox and click 'Apply'.

Notice the 'Lua Script Alias' field on the right. By default to ensure unique naming across the system IoT-Connectors are accessible to scripting using their unique generated solution ID. However, as the random string is not handy to use in scripting a customized alias can be provided as default to the Connector name.

4. Once applied you will see a new entry in your services list matching your IoT-Connector name. Click on it.

You will get to the IoT-Connector Event-Handler scripting editor.

Link Connector

You can here define the logic handling data coming from your devices through the IoT-Connector.

Handling Connector events

Note: If you use an End-to-End Application this part is already handled for you by the application default scripts, so there is no need of doing any scripting and below section would be only for your reference.

For Compatible Connectors (Including Basic, As-a-Service, ExoSense Standard & Cloud) the provided payload will match the one from the Device2 micro-service event.

print(event.identity, event.payload) -- print the device id and message

Once your device sends data, you can find the message in your Application log.

Also have a look at the Device Metrics with Keystore service guide for a further example.

Murano enables many Connectors to be linked with many Applications.

Many to Many


By default when a device message is emitted by a Connector all linked applications will received it.

Connector script can be updated to change this behavior and send events to targeted applications only. To do so, replace the Inteface.trigger(..) function call in the Connector Device2 event event-handler script with Interface.triggerOne(..).

If you want to build a Multi-Tenants Iot-Connector, have a look to the Connector-as-a-Service which may be what you are looking for.


If you have multiple Connectors linked to your Application, you can distinguish them with the scripting Context data.

print(context.service) -- print the Connector solution ID

print(context.script_key) -- print the Connector script alias

You can dynamically list which Connectors are linked to your Application from scripting with the Config Service listServices operation

print(Config.listServices({type = "product"}))


Call the Connector API

In a similar way, you can interact with your Connector API the same way you would with the Device2 micro-service.

Example: Listing your devices with:


Where 'Myfirstconnector' must match the 'Lua Script Alias' defined in the IoT Connector Setup.

You can also use the Connector solution ID with:

murano.service_call("<Connector ID>", "listIdentities", {})

Find more info about services calls on the Murano Scripting reference