HVAC Reference Application Tutorial

This HVAC Reference Application is an interactive tutorial that allows users to learn the core features of Murano from both a hardware and software perspective. You will have the option to prototype or simulate the implementation of an HVAC monitoring system with simple controls using the Murano platform.

Requirements

This tutorial is designed to be flexible based the hardware, software, and tools you have available. If you have one of the supported hardware items, you will be able to create a full IoT solution with working hardware. If you do not have any of the supported hardware available, we have created a Python based simulator that will help you get started.

Supported Hardware

SeeedStudio BeagleBone Green Wireless

SeeedStudio BeagleBone Green (BBG) is a low-cost, open-source, community-supported development platform for developers and hobbyists. It is a joint effort by BeagleBoard.org and Seeed Studio. It is based on the classical open-source hardware design of BeagleBone Black and has been developed into this differentiated version. The BBG includes two Grove connectors, making it easier to connect to the large family of Grove sensors. The onboard HDMI is removed to make room for these Grove connectors.

TI SimpleLink™ Wi-Fi® and Internet-of-Things Solution

The CC3220 and CC3200 SimpleLink™ devices are complete platform solutions including software, sample applications, tools, user and programming guides, reference designs, and the TI E2E™ support community. These devices are available in QFN packages that are easy to lay out.

Install Murano CLI

Exosite offers a command-line tool that allows you to efficiently work with the project in this tutorial. Even though everything in this tutorial can be accomplished using a Web UI, feel free to install Murano CLI.

MuranoCLI interacts with Murano and makes different tasks easier.
MuranoCLI makes it easy to deploy code to a project, import
product definitions, set up endpoints and APIs, and more.
MuranoCLI works around the idea of syncing, much like `rsync`.
Your project files are synced up (or down) from Murano.

Murano CLI is a Ruby-based command-line interface. Murano CLI will be used for most actions throughout the rest of this tutorial.

Check to see if Ruby is installed first by opening up a terminal window and typing the following command:

Note: Always copy and paste what comes after the $.

$ which gem

If you see something like /usr/bin/gem, then Ruby is already installed.

If you do not have Ruby installed, the official Ruby docs will help you get it installed:
[https://www.ruby-lang.org/en/documentation/installation/](https://www.ruby-lang.org/en/documentation/installation/)

Once Ruby is installed, install Murano CLI by running this command:

$ sudo gem install MuranoCLI

If prompted, please enter your local computer password.

Download the HVAC code

This tutorial uses a common codebase that includes a web application and specifications for the hardware. The code has been written to be flexible and works with multiple hardware platforms or the Python simulator.

Open the Choose starting point dropdown, select Start from scratch, and click the "ADD" button. In the next step you can use code to configure your product.

Before continuing, you will need to find the ID of the product you created.

In Murano select Products.

Select the product you just created.

Copy the Product ID on this page.

Murano CLI

To create a new product using the Murano CLI, run:

$ murano product create <name> --save

This command will return the ID of your product for the next step, and it will save the ID to .murano/config.

Next, execute the following to set the product definition for this example as defined in the specs/resources.yaml file:

$ murano syncup --specs

This command sets up all of the data aliases used in this example. You can now see them by going to https://www.exosite.io/business/products and clicking the DEFINITION tab. Many of the aliases are used by Gateway Engine. Notice, the aliases like "ambient_temperature", "desired_temperature", and "heat_on". These are all the different resources used for this HVAC tutorial.

Connect Product to Solution

You will need to link your product with your solution. Linking allows your solution and product to communicate with one another.

Web UI

In your Murano solution, click on the SERVICES tab.

Select Product.

Select the settings icon.

Select the product(s) you want to include in the solution.

Click "APPLY".

Murano CLI

To connect a product with a solution using the Murano CLI:

$ murano assign set

Sync Your Solution

Before moving on to hardware, all of the configuration needs to be synced up to Murano.

$ murano syncup

What is happening when you sync code?
Murano CLI looks at the directory structure of your local repository and syncs the appropriate files and configurations directly to your solution in Murano. Endpoints, event handles, static files, and modules are synced. If you make changes locally, a syncup command will ensure Murano matches your local changes. If you make changes using the Murano interface, a syncdown will ensure your local repository matches Murano.

At this point your product and solution are configured and ready to start receiving data from your hardware of choice or the simulator. You can see the solution interface at this point by clicking the DOMAIN link on the Solutions page.

Next Steps

If you have hardware available, you can walk through installing required software on your hardware, connecting the hardware and its sensors to the Murano platform, and connecting the sensor data to a Murano solution.

If you do not have hardware available, you can walk through running the simulator. This should provide you with an easy starting point for connecting devices and creating solutions to visualize and interpret your device's data.