How to use Site Controller (LXC Container) with Microsoft Azure-IoT Hub

Introduction

Microsoft Azure IoT Hub is a powerful platform and we are happy to provide native support of the azeti Site Controller to send data into the IoT Hub.

How it works

  • Events and Historical Data is delivered via TLS encrypted MQTT towards Azure IoT Hub
  • azeti Control Panel can still be used in parallel for visualization and configuration
  • Credentials and URL can be configured within a new module of Site Controller
  • Sensor and software configuration are not affected and can be done as accustomed in the azeti Control Panel


Prerequisites

  • Site Controller LXC installation package, contact consulting@azeti.net if you didn't receive it yet
  • The guide shows the installation and configuraiton of Site Controller as LXC container for Cisco 8x9 platforms
  • A running account with Microsoft's azure IoT Hub setup
  • A valid device authentication token for the Site Controller to be connected
  • Google Chrome or Firefox Browser
  • System language set to english (required for using the Cisco web console)

Login to the Cisco LXC Web Console

Newer versions of the Cisco-LXC-Framework (or rather Cisco's Internet of Everything-Framework) come with a Web-Frontend, which can be used for LXC-management.

This guide assumes the web address: https://192.168.118.21:8443 for the web console. Please change it accordingly.


  1. Connect to the following address: https://<Guest OS IP Address>:8443.
  2. Login with username and password. 

    The user must have privilege-level 15 for the setup. If you are unsure about the credentials, please check the config of the host-OS on the router in question.

    In your running router-configuration, there should be a line, similar to:

    username cisco privilege 15 password 0 cisco

Deleting an existing LXC-Container

If you do already have an SiteController-LXC installed on the system, you have to delete that container. It is currently not supported to have two instances of the SiteController running on the same system. To delete the container, simply bring it to the state "DEPLOYED". The approach is very straight forward. The states of the LXC-Container can be triggered from the Web console by the corresponding links under the column "Actions" (red box on screenshot).

To delete and container, it has to be in the "Deployed"-State. So if your old container is running, please stop it; then deactivate it at last delete it, by clicking on the corresponding link in the "Actions"-column in the WebFE.

Different states for LXC-Containers

User uploads the Container → Deployed

User activates and configures the resources for the container → Activated

User configures the "package_config.ini" → still Activated 

User starts the LXC → Running state

Deploying the new Site Controller LXC

Login and make sure no other LXC container is currently present.

  1. Open Applications and choose Add/Deploy
  2. Choose the Site Controller LXC package (e.g. SiteController-1.3.5-...tar.gz) and enter an application id
  3. Now your LXC-Container is in the DEPLOYED state. Click Manage to activate the container and allocate resources appropriately.
  4. Select a monitoring sensor in the Serial Access Configuration, choose any if you are unsure. It is important that one is selected as otherwise the container execution will fail.
  5. Depending on your configuration and environment, it might be also necessary to modify the Network Configuration on the right side. When you are done, please click on the "activate"-button, to activate the container.

  6. In Applications choose the Actions column and click manage to reach the App-Config where you can configure the mandatory Azure login credentials

  7. Locate the [dc_azure] section and enter your credentials like in below example.

    [dc_azure]
    logger = azeti_file
    module_specific_log_level = DEBUG
    host = azeti-hub.azure-devices.net
    device = azeti-Azure
    SAStoken = SharedAccessSignature sr=azeti-hub.azure-devices.net%2Fdevice%[Rest redacted]
    # upload interval to server in seconds
    upload_interval = 15

    Please change this section corresponding to your environment. Important sections (like the name of the device) have been marked in the screenshot. SASToken has been redacted for security reasons.

  8. Click Save to persist the changes
  9. Finally start the container, or restart if it was already running

You should see your new device appear in the Microsoft Azure ioT Hub.

Next steps

Check out these articles to explore next steps such as importing a configuration from an existing installation.