{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from seeq import spy\n",
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div style=\"background-color: #EEFFEE;text-align: left;\">Logged in to <strong>http://localhost:34216</strong> successfully as <strong>agent_api_key</strong>.<br>Seeq Server Version: <strong>R22.0.48.10-BETA</strong><br>Seeq Python Module Version: <strong>0.48.10.168</strong></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Log into Seeq Server if you're not using Seeq Data Lab:\n",
    "spy.login(url='http://localhost:34216', credentials_file='../credentials.key', force=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# spy.assets\n",
    "\n",
    "The `spy.assets` submodule provides a framework for creating templates and building them into asset trees full of signals, conditions and scalars.\n",
    "\n",
    "With `spy.assets`, you can:\n",
    "\n",
    "* Map tags from external datasources like OSIsoft PI, Honeywell PHD and others to user-friendly and purpose-built asset trees\n",
    "* Leverage object-oriented design principles like _encapsulation_, _inheritance_, _composition_, and _mixins_ to increase reuse and consistency while still accommodating the many exceptions that naturally occur in manufacturing scenarios\n",
    "* Convert units of measure, re-sample data, and apply data cleansing tools to raw data\n",
    "* Add high-value calculations to asset templates with simple dependency referencing syntax\n",
    "\n",
    "The work you do with `spy.assets` is (by default) sandboxed to a particular workbook that you own. As a result, you can easily experiment with new asset structures and calculations before publishing to your broader organization."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Concepts\n",
    "\n",
    "There are several important concepts to understand as we dive in to the `spy.assets` submodule:\n",
    "\n",
    "* An **asset** is simply a container (with associated _properties_) that has children. Those children can be other assets and/or _attributes_ (signals, conditions and scalars).\n",
    "* An **attribute** is a signal, condition or scalar that is a child of an asset and is said to be _contained_ by that asset. This is a similar concept to OSIsoft Asset Framework's _attribute_.\n",
    "* A **property** is a named value (with optional units of measure) that captures metadata associated with assets, signals, conditions and scalars. They correspond to the columns in a metadata DataFrame.\n",
    "* A **component** is an asset that is a child of another asset and is said to be _contained_ by the parent asset. For example, a _Furnace_ asset may contain a _Blast Air Blower_.\n",
    "* A **template** defines the set of _attributes_ and _components_ that comprise a particular Asset. A template corresponds to a class of asset like _Furnace_, _Well_, _Pump_.\n",
    "* A **reference** is a link to a signal, condition or scalar that exists somewhere else. If you are mapping a flat list of tags into an asset hierarchy, the asset hierarchy contains _references_ to those tags."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## How Python fits in\n",
    "\n",
    "A template is specified in Python by defining a [class](https://docs.python.org/3/tutorial/classes.html) that derives from `spy.assets.Asset` or `spy.assets.Mixin` (more about _mixins_ later). These classes can have member functions and data members, just like any other Python class.\n",
    "\n",
    "Classes can have special member functions that represent _attributes_. They are _decorator_ with the `spy.assets.Asset.Attribute` decorator, which tells the SPy framework to use them to define attributes for the asset. Similarly, the `spy.assets.Asset.Component` decorated indicates to the SPy framework that a _component_ is being defined as a child of the asset, which is usually a different Python class instance that derives from `spy.assets.Asset` or `spy.assets.Mixin`.\n",
    "\n",
    "You'll see how it works in the examples that follow."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Getting Started\n",
    "\n",
    "First we need to import the Python modules we will need and log in:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "from seeq.spy.assets import Asset\n",
    "\n",
    "# Show all data in DataFrame output -- don't truncate it\n",
    "pd.set_option('display.max_colwidth', None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Preparing the Ingredients\n",
    "\n",
    "There are two main steps to creating an asset tree, and they're similar to cooking in your kitchen: First you find and prepare the \"ingredients\", then you use them in a \"recipe\".\n",
    "\n",
    "The \"ingedients\" are the signals, conditions and/or scalars that already exist in Seeq, either as indexed items from external datasources or as items you've imported to the internal Seeq database. You will create a DataFrame that represents the _metadata_ ingredients, and those ingredients will be used by `spy.assets.build()` to create another DataFrame full of new items to be pushed as an asset tree.\n",
    "\n",
    "For this example, we're going to map a flat tag structure into an asset template called `HVAC`. We will use Seeq's built-in Example Data.\n",
    "\n",
    "Let's search for all the \"flat list\" example data tags that have the pattern `Area <letter>_<sensor name>`:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div style=\"background-color: #EEFFEE;text-align: left;\">Query successful</div><table><tr><td style=\"background-color: #EEFFEE;\"></td><td style=\"background-color: #EEFFEE;\">Name</td><td style=\"background-color: #EEFFEE;\">Time</td><td style=\"background-color: #EEFFEE;\">Count</td><td style=\"background-color: #EEFFEE;\">Result</td></tr><tr style=\"background-color: #EEFFEE;\"><td>0</td><td>Area ?_*</td><td>00:00:00.05</td><td>69</td><td>Success</td></tr></table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>Name</th>\n",
       "      <th>Description</th>\n",
       "      <th>Type</th>\n",
       "      <th>Value Unit Of Measure</th>\n",
       "      <th>Datasource Name</th>\n",
       "      <th>Archived</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990</td>\n",
       "      <td>Area D_Relative Humidity</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>51D52461-A667-413A-AD9E-548FE16E601B</td>\n",
       "      <td>Area Z_Compressor Power</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>kW</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>56EA3704-964D-431F-8EF8-8D29503B9D63</td>\n",
       "      <td>Area G_Wet Bulb</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>757F76C6-EE6D-4884-A93F-38C5E388E8E9</td>\n",
       "      <td>Area Z_Temperature</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>844054AD-8264-4CAF-817B-8FEB6749107A</td>\n",
       "      <td>Area D_Compressor Power</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>kW</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     ID                      Name  \\\n",
       "0  B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990  Area D_Relative Humidity   \n",
       "1  51D52461-A667-413A-AD9E-548FE16E601B   Area Z_Compressor Power   \n",
       "2  56EA3704-964D-431F-8EF8-8D29503B9D63           Area G_Wet Bulb   \n",
       "3  757F76C6-EE6D-4884-A93F-38C5E388E8E9        Area Z_Temperature   \n",
       "4  844054AD-8264-4CAF-817B-8FEB6749107A   Area D_Compressor Power   \n",
       "\n",
       "   Description          Type Value Unit Of Measure Datasource Name  Archived  \n",
       "0          NaN  StoredSignal                     %    Example Data     False  \n",
       "1          NaN  StoredSignal                    kW    Example Data     False  \n",
       "2          NaN  StoredSignal                    °F    Example Data     False  \n",
       "3          NaN  StoredSignal                    °F    Example Data     False  \n",
       "4          NaN  StoredSignal                    kW    Example Data     False  "
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "hvac_metadata_df = spy.search({\n",
    "    'Name': 'Area ?_*'\n",
    "})\n",
    "\n",
    "hvac_metadata_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The `hvac_metadata_df` _metadata_ DataFrame serves as the \"ingredients\" for the recipe that we will define a little later.\n",
    "\n",
    "In order to build the HVAC assets, we must add three important columns to our _metadata_ DataFrame:\n",
    "\n",
    "* `Build Asset` specifies the name of the asset that a row metadata applies to. In our case, that will be `Area X`, where X is a letter differentiating the different areas of the plant that an HVAC system serves.\n",
    "* `Build Path` specifies the path through the asset hierarchy where you want the asset to live.\n",
    "\n",
    "We will create these columns using the power of Pandas DataFrames:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>Name</th>\n",
       "      <th>Description</th>\n",
       "      <th>Type</th>\n",
       "      <th>Value Unit Of Measure</th>\n",
       "      <th>Datasource Name</th>\n",
       "      <th>Archived</th>\n",
       "      <th>Build Asset</th>\n",
       "      <th>Build Path</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990</td>\n",
       "      <td>Area D_Relative Humidity</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>51D52461-A667-413A-AD9E-548FE16E601B</td>\n",
       "      <td>Area Z_Compressor Power</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>kW</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>56EA3704-964D-431F-8EF8-8D29503B9D63</td>\n",
       "      <td>Area G_Wet Bulb</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>757F76C6-EE6D-4884-A93F-38C5E388E8E9</td>\n",
       "      <td>Area Z_Temperature</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>844054AD-8264-4CAF-817B-8FEB6749107A</td>\n",
       "      <td>Area D_Compressor Power</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>kW</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>64</th>\n",
       "      <td>75B867ED-5EB8-4978-BFF8-39FFB098860D</td>\n",
       "      <td>Area H_Optimizer</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>65</th>\n",
       "      <td>8AAFAC3E-2AF8-42A1-9BA9-72A86BFF5D1F</td>\n",
       "      <td>Area Z_Relative Humidity</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>66</th>\n",
       "      <td>ABDA1CA2-A369-4536-BAB9-B0FDE9FC61CE</td>\n",
       "      <td>Area E_Relative Humidity</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>67</th>\n",
       "      <td>FDD39A0F-E7EA-4285-A077-303EBE53778E</td>\n",
       "      <td>Area E_Compressor Stage</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>string</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>68</th>\n",
       "      <td>5D648AB9-C4DC-45BB-B218-3CBE28088ECB</td>\n",
       "      <td>Area A_Compressor Stage</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>string</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>69 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                      ID                      Name  \\\n",
       "0   B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990  Area D_Relative Humidity   \n",
       "1   51D52461-A667-413A-AD9E-548FE16E601B   Area Z_Compressor Power   \n",
       "2   56EA3704-964D-431F-8EF8-8D29503B9D63           Area G_Wet Bulb   \n",
       "3   757F76C6-EE6D-4884-A93F-38C5E388E8E9        Area Z_Temperature   \n",
       "4   844054AD-8264-4CAF-817B-8FEB6749107A   Area D_Compressor Power   \n",
       "..                                   ...                       ...   \n",
       "64  75B867ED-5EB8-4978-BFF8-39FFB098860D          Area H_Optimizer   \n",
       "65  8AAFAC3E-2AF8-42A1-9BA9-72A86BFF5D1F  Area Z_Relative Humidity   \n",
       "66  ABDA1CA2-A369-4536-BAB9-B0FDE9FC61CE  Area E_Relative Humidity   \n",
       "67  FDD39A0F-E7EA-4285-A077-303EBE53778E   Area E_Compressor Stage   \n",
       "68  5D648AB9-C4DC-45BB-B218-3CBE28088ECB   Area A_Compressor Stage   \n",
       "\n",
       "    Description          Type Value Unit Of Measure Datasource Name  Archived  \\\n",
       "0           NaN  StoredSignal                     %    Example Data     False   \n",
       "1           NaN  StoredSignal                    kW    Example Data     False   \n",
       "2           NaN  StoredSignal                    °F    Example Data     False   \n",
       "3           NaN  StoredSignal                    °F    Example Data     False   \n",
       "4           NaN  StoredSignal                    kW    Example Data     False   \n",
       "..          ...           ...                   ...             ...       ...   \n",
       "64          NaN  StoredSignal                   NaN    Example Data     False   \n",
       "65          NaN  StoredSignal                     %    Example Data     False   \n",
       "66          NaN  StoredSignal                     %    Example Data     False   \n",
       "67          NaN  StoredSignal                string    Example Data     False   \n",
       "68          NaN  StoredSignal                string    Example Data     False   \n",
       "\n",
       "   Build Asset                    Build Path  \n",
       "0       Area D  My HVAC Units >> Facility #1  \n",
       "1       Area Z  My HVAC Units >> Facility #1  \n",
       "2       Area G  My HVAC Units >> Facility #1  \n",
       "3       Area Z  My HVAC Units >> Facility #1  \n",
       "4       Area D  My HVAC Units >> Facility #1  \n",
       "..         ...                           ...  \n",
       "64      Area H  My HVAC Units >> Facility #1  \n",
       "65      Area Z  My HVAC Units >> Facility #1  \n",
       "66      Area E  My HVAC Units >> Facility #1  \n",
       "67      Area E  My HVAC Units >> Facility #1  \n",
       "68      Area A  My HVAC Units >> Facility #1  \n",
       "\n",
       "[69 rows x 9 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# We can use Pandas' string extraction capabilities to create the Build Asset column\n",
    "hvac_metadata_df['Build Asset'] = hvac_metadata_df['Name'].str.extract('(Area .)_.*')\n",
    "\n",
    "# We will specify a simple path in a new tree where we want these to live\n",
    "hvac_metadata_df['Build Path'] = 'My HVAC Units >> Facility #1'\n",
    "\n",
    "hvac_metadata_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Writing the Recipe\n",
    "\n",
    "The recipe that turns the ingredients into an asset structure is specified using Python classes that derive from `Asset` or `Mixin`.\n",
    "\n",
    "First let's define our `HVAC` class:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "class HVAC(Asset):\n",
    "    \n",
    "    @Asset.Attribute()\n",
    "    def Temperature(self, metadata):\n",
    "        # We use simple Pandas syntax to select for a row in the DataFrame corresponding to our desired tag\n",
    "        return metadata[metadata['Name'].str.endswith('Temperature')]\n",
    "    \n",
    "    @Asset.Attribute()\n",
    "    def Relative_Humidity(self, metadata):\n",
    "        # All Attribute functions must take (self, metadata) as parameters\n",
    "        return metadata[metadata['Name'].str.contains('Humidity')]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This Python code defines an `HVAC` asset that has two attributes: `Temperature` and `Relative Humidity`. (The underscore will, by default, automatically be replaced with a space.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can feed the \"ingredients\" into the \"recipe\" using the `spy.assets.build()` function. This command will build a new set of asset and signal definitions based on the `hvac_metadata_df` _metadata_ DataFrame. Each unique combination of `Build Path` and `Build Asset` will be treated as a different asset, and the `metadata` argument that is passed in to the `Asset.Attribute()` decorated functions will only contain the rows for a particular `Build Path` / `Build Asset` pair."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>Description</th>\n",
       "      <th>Type</th>\n",
       "      <th>Value Unit Of Measure</th>\n",
       "      <th>Datasource Name</th>\n",
       "      <th>Archived</th>\n",
       "      <th>Referenced Name</th>\n",
       "      <th>Reference</th>\n",
       "      <th>Name</th>\n",
       "      <th>Asset</th>\n",
       "      <th>Asset Object</th>\n",
       "      <th>Path</th>\n",
       "      <th>Template</th>\n",
       "      <th>Build Result</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area D_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>25801310-22D6-4AA3-B41D-CFD3FF63271D</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area D_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area D</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>8AAFAC3E-2AF8-42A1-9BA9-72A86BFF5D1F</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area Z_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>757F76C6-EE6D-4884-A93F-38C5E388E8E9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area Z_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>48FEF0C8-44F5-4765-80B5-841C6376D8A1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area G_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>D466BBD7-86F0-4F0A-9C5F-357631E421FD</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area G_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area G</td>\n",
       "      <td>Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>896F2491-B1EB-4088-801E-C72D8F0A009A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area J_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>765486AE-16C4-44C8-8B3F-DCBD7754525C</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area J_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area J</td>\n",
       "      <td>Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>B1C37B46-C8D0-4475-9E69-AAE91208F692</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area C_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>37992633-97AD-4C82-BD73-AB9CE47CDC85</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area C_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area C</td>\n",
       "      <td>Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>017421E7-73DC-4199-8174-17897A1B41D5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area B_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>D6083022-141E-4DE3-A127-80313649A5F9</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area B_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area B</td>\n",
       "      <td>Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>615823A4-B01D-40B4-9EB4-A7DD193B0759</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area A_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>CAF69C63-B970-435A-8D58-838FE8564ADE</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area A_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area A</td>\n",
       "      <td>Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>ABDA1CA2-A369-4536-BAB9-B0FDE9FC61CE</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area E_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>1D339F67-2FD7-4F75-B361-8585E2EAEC64</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area E_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area E</td>\n",
       "      <td>Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>25FFBEA7-C231-4B8C-A26B-A1AAC1B3419C</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area K_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>5E078E48-DC2E-449B-A382-D145E39291B5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area K_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area K</td>\n",
       "      <td>Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>684E9F8A-EC88-425A-AF3C-CB91F89B211C</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area I_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>F98AD94F-DA16-428F-8458-11C2AAB58152</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area I_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area I</td>\n",
       "      <td>Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>No matching metadata row found for \"Relative_Humidity\"</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>No matching metadata row found for \"Temperature\"</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area F</td>\n",
       "      <td>Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>7B68C212-C133-4D66-9F4A-57817A9533F6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area H_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>221AA2F3-1FB1-46B6-9BD3-50368E034B8D</td>\n",
       "      <td>NaN</td>\n",
       "      <td>StoredSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area H_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area H</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                      ID  Description          Type  \\\n",
       "0   B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990          NaN  StoredSignal   \n",
       "1   25801310-22D6-4AA3-B41D-CFD3FF63271D          NaN  StoredSignal   \n",
       "2                                    NaN          NaN         Asset   \n",
       "3   8AAFAC3E-2AF8-42A1-9BA9-72A86BFF5D1F          NaN  StoredSignal   \n",
       "4   757F76C6-EE6D-4884-A93F-38C5E388E8E9          NaN  StoredSignal   \n",
       "5                                    NaN          NaN         Asset   \n",
       "6   48FEF0C8-44F5-4765-80B5-841C6376D8A1          NaN  StoredSignal   \n",
       "7   D466BBD7-86F0-4F0A-9C5F-357631E421FD          NaN  StoredSignal   \n",
       "8                                    NaN          NaN         Asset   \n",
       "9   896F2491-B1EB-4088-801E-C72D8F0A009A          NaN  StoredSignal   \n",
       "10  765486AE-16C4-44C8-8B3F-DCBD7754525C          NaN  StoredSignal   \n",
       "11                                   NaN          NaN         Asset   \n",
       "12  B1C37B46-C8D0-4475-9E69-AAE91208F692          NaN  StoredSignal   \n",
       "13  37992633-97AD-4C82-BD73-AB9CE47CDC85          NaN  StoredSignal   \n",
       "14                                   NaN          NaN         Asset   \n",
       "15  017421E7-73DC-4199-8174-17897A1B41D5          NaN  StoredSignal   \n",
       "16  D6083022-141E-4DE3-A127-80313649A5F9          NaN  StoredSignal   \n",
       "17                                   NaN          NaN         Asset   \n",
       "18  615823A4-B01D-40B4-9EB4-A7DD193B0759          NaN  StoredSignal   \n",
       "19  CAF69C63-B970-435A-8D58-838FE8564ADE          NaN  StoredSignal   \n",
       "20                                   NaN          NaN         Asset   \n",
       "21  ABDA1CA2-A369-4536-BAB9-B0FDE9FC61CE          NaN  StoredSignal   \n",
       "22  1D339F67-2FD7-4F75-B361-8585E2EAEC64          NaN  StoredSignal   \n",
       "23                                   NaN          NaN         Asset   \n",
       "24  25FFBEA7-C231-4B8C-A26B-A1AAC1B3419C          NaN  StoredSignal   \n",
       "25  5E078E48-DC2E-449B-A382-D145E39291B5          NaN  StoredSignal   \n",
       "26                                   NaN          NaN         Asset   \n",
       "27  684E9F8A-EC88-425A-AF3C-CB91F89B211C          NaN  StoredSignal   \n",
       "28  F98AD94F-DA16-428F-8458-11C2AAB58152          NaN  StoredSignal   \n",
       "29                                   NaN          NaN         Asset   \n",
       "30                                   NaN          NaN           NaN   \n",
       "31                                   NaN          NaN           NaN   \n",
       "32                                   NaN          NaN         Asset   \n",
       "33  7B68C212-C133-4D66-9F4A-57817A9533F6          NaN  StoredSignal   \n",
       "34  221AA2F3-1FB1-46B6-9BD3-50368E034B8D          NaN  StoredSignal   \n",
       "35                                   NaN          NaN         Asset   \n",
       "\n",
       "   Value Unit Of Measure Datasource Name Archived           Referenced Name  \\\n",
       "0                      %    Example Data    False  Area D_Relative Humidity   \n",
       "1                     °F    Example Data    False        Area D_Temperature   \n",
       "2                    NaN             NaN      NaN                       NaN   \n",
       "3                      %    Example Data    False  Area Z_Relative Humidity   \n",
       "4                     °F    Example Data    False        Area Z_Temperature   \n",
       "5                    NaN             NaN      NaN                       NaN   \n",
       "6                      %    Example Data    False  Area G_Relative Humidity   \n",
       "7                     °F    Example Data    False        Area G_Temperature   \n",
       "8                    NaN             NaN      NaN                       NaN   \n",
       "9                      %    Example Data    False  Area J_Relative Humidity   \n",
       "10                    °F    Example Data    False        Area J_Temperature   \n",
       "11                   NaN             NaN      NaN                       NaN   \n",
       "12                     %    Example Data    False  Area C_Relative Humidity   \n",
       "13                    °F    Example Data    False        Area C_Temperature   \n",
       "14                   NaN             NaN      NaN                       NaN   \n",
       "15                     %    Example Data    False  Area B_Relative Humidity   \n",
       "16                    °F    Example Data    False        Area B_Temperature   \n",
       "17                   NaN             NaN      NaN                       NaN   \n",
       "18                     %    Example Data    False  Area A_Relative Humidity   \n",
       "19                    °F    Example Data    False        Area A_Temperature   \n",
       "20                   NaN             NaN      NaN                       NaN   \n",
       "21                     %    Example Data    False  Area E_Relative Humidity   \n",
       "22                    °F    Example Data    False        Area E_Temperature   \n",
       "23                   NaN             NaN      NaN                       NaN   \n",
       "24                     %    Example Data    False  Area K_Relative Humidity   \n",
       "25                    °F    Example Data    False        Area K_Temperature   \n",
       "26                   NaN             NaN      NaN                       NaN   \n",
       "27                     %    Example Data    False  Area I_Relative Humidity   \n",
       "28                    °F    Example Data    False        Area I_Temperature   \n",
       "29                   NaN             NaN      NaN                       NaN   \n",
       "30                   NaN             NaN      NaN                       NaN   \n",
       "31                   NaN             NaN      NaN                       NaN   \n",
       "32                   NaN             NaN      NaN                       NaN   \n",
       "33                     %    Example Data    False  Area H_Relative Humidity   \n",
       "34                    °F    Example Data    False        Area H_Temperature   \n",
       "35                   NaN             NaN      NaN                       NaN   \n",
       "\n",
       "   Reference               Name   Asset  \\\n",
       "0       True  Relative Humidity  Area D   \n",
       "1       True        Temperature  Area D   \n",
       "2        NaN             Area D  Area D   \n",
       "3       True  Relative Humidity  Area Z   \n",
       "4       True        Temperature  Area Z   \n",
       "5        NaN             Area Z  Area Z   \n",
       "6       True  Relative Humidity  Area G   \n",
       "7       True        Temperature  Area G   \n",
       "8        NaN             Area G  Area G   \n",
       "9       True  Relative Humidity  Area J   \n",
       "10      True        Temperature  Area J   \n",
       "11       NaN             Area J  Area J   \n",
       "12      True  Relative Humidity  Area C   \n",
       "13      True        Temperature  Area C   \n",
       "14       NaN             Area C  Area C   \n",
       "15      True  Relative Humidity  Area B   \n",
       "16      True        Temperature  Area B   \n",
       "17       NaN             Area B  Area B   \n",
       "18      True  Relative Humidity  Area A   \n",
       "19      True        Temperature  Area A   \n",
       "20       NaN             Area A  Area A   \n",
       "21      True  Relative Humidity  Area E   \n",
       "22      True        Temperature  Area E   \n",
       "23       NaN             Area E  Area E   \n",
       "24      True  Relative Humidity  Area K   \n",
       "25      True        Temperature  Area K   \n",
       "26       NaN             Area K  Area K   \n",
       "27      True  Relative Humidity  Area I   \n",
       "28      True        Temperature  Area I   \n",
       "29       NaN             Area I  Area I   \n",
       "30       NaN  Relative Humidity  Area F   \n",
       "31       NaN        Temperature  Area F   \n",
       "32       NaN             Area F  Area F   \n",
       "33      True  Relative Humidity  Area H   \n",
       "34      True        Temperature  Area H   \n",
       "35       NaN             Area H  Area H   \n",
       "\n",
       "                              Asset Object                          Path  \\\n",
       "0   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "1   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "2   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "3   My HVAC Units >> Facility #1 >> Area Z  My HVAC Units >> Facility #1   \n",
       "4   My HVAC Units >> Facility #1 >> Area Z  My HVAC Units >> Facility #1   \n",
       "5   My HVAC Units >> Facility #1 >> Area Z  My HVAC Units >> Facility #1   \n",
       "6   My HVAC Units >> Facility #1 >> Area G  My HVAC Units >> Facility #1   \n",
       "7   My HVAC Units >> Facility #1 >> Area G  My HVAC Units >> Facility #1   \n",
       "8   My HVAC Units >> Facility #1 >> Area G  My HVAC Units >> Facility #1   \n",
       "9   My HVAC Units >> Facility #1 >> Area J  My HVAC Units >> Facility #1   \n",
       "10  My HVAC Units >> Facility #1 >> Area J  My HVAC Units >> Facility #1   \n",
       "11  My HVAC Units >> Facility #1 >> Area J  My HVAC Units >> Facility #1   \n",
       "12  My HVAC Units >> Facility #1 >> Area C  My HVAC Units >> Facility #1   \n",
       "13  My HVAC Units >> Facility #1 >> Area C  My HVAC Units >> Facility #1   \n",
       "14  My HVAC Units >> Facility #1 >> Area C  My HVAC Units >> Facility #1   \n",
       "15  My HVAC Units >> Facility #1 >> Area B  My HVAC Units >> Facility #1   \n",
       "16  My HVAC Units >> Facility #1 >> Area B  My HVAC Units >> Facility #1   \n",
       "17  My HVAC Units >> Facility #1 >> Area B  My HVAC Units >> Facility #1   \n",
       "18  My HVAC Units >> Facility #1 >> Area A  My HVAC Units >> Facility #1   \n",
       "19  My HVAC Units >> Facility #1 >> Area A  My HVAC Units >> Facility #1   \n",
       "20  My HVAC Units >> Facility #1 >> Area A  My HVAC Units >> Facility #1   \n",
       "21  My HVAC Units >> Facility #1 >> Area E  My HVAC Units >> Facility #1   \n",
       "22  My HVAC Units >> Facility #1 >> Area E  My HVAC Units >> Facility #1   \n",
       "23  My HVAC Units >> Facility #1 >> Area E  My HVAC Units >> Facility #1   \n",
       "24  My HVAC Units >> Facility #1 >> Area K  My HVAC Units >> Facility #1   \n",
       "25  My HVAC Units >> Facility #1 >> Area K  My HVAC Units >> Facility #1   \n",
       "26  My HVAC Units >> Facility #1 >> Area K  My HVAC Units >> Facility #1   \n",
       "27  My HVAC Units >> Facility #1 >> Area I  My HVAC Units >> Facility #1   \n",
       "28  My HVAC Units >> Facility #1 >> Area I  My HVAC Units >> Facility #1   \n",
       "29  My HVAC Units >> Facility #1 >> Area I  My HVAC Units >> Facility #1   \n",
       "30  My HVAC Units >> Facility #1 >> Area F  My HVAC Units >> Facility #1   \n",
       "31  My HVAC Units >> Facility #1 >> Area F  My HVAC Units >> Facility #1   \n",
       "32  My HVAC Units >> Facility #1 >> Area F  My HVAC Units >> Facility #1   \n",
       "33  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "34  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "35  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "\n",
       "   Template                                            Build Result  \n",
       "0      HVAC                                                 Success  \n",
       "1      HVAC                                                 Success  \n",
       "2      HVAC                                                 Success  \n",
       "3      HVAC                                                 Success  \n",
       "4      HVAC                                                 Success  \n",
       "5      HVAC                                                 Success  \n",
       "6      HVAC                                                 Success  \n",
       "7      HVAC                                                 Success  \n",
       "8      HVAC                                                 Success  \n",
       "9      HVAC                                                 Success  \n",
       "10     HVAC                                                 Success  \n",
       "11     HVAC                                                 Success  \n",
       "12     HVAC                                                 Success  \n",
       "13     HVAC                                                 Success  \n",
       "14     HVAC                                                 Success  \n",
       "15     HVAC                                                 Success  \n",
       "16     HVAC                                                 Success  \n",
       "17     HVAC                                                 Success  \n",
       "18     HVAC                                                 Success  \n",
       "19     HVAC                                                 Success  \n",
       "20     HVAC                                                 Success  \n",
       "21     HVAC                                                 Success  \n",
       "22     HVAC                                                 Success  \n",
       "23     HVAC                                                 Success  \n",
       "24     HVAC                                                 Success  \n",
       "25     HVAC                                                 Success  \n",
       "26     HVAC                                                 Success  \n",
       "27     HVAC                                                 Success  \n",
       "28     HVAC                                                 Success  \n",
       "29     HVAC                                                 Success  \n",
       "30     HVAC  No matching metadata row found for \"Relative_Humidity\"  \n",
       "31     HVAC        No matching metadata row found for \"Temperature\"  \n",
       "32     HVAC                                                 Success  \n",
       "33     HVAC                                                 Success  \n",
       "34     HVAC                                                 Success  \n",
       "35     HVAC                                                 Success  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "build_df = spy.assets.build(HVAC, hvac_metadata_df)\n",
    "\n",
    "build_df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This new `build_df` DataFrame contains new metadata that represent all the Seeq items that can be pushed into Seeq to realize this simple asset model.\n",
    "\n",
    "Let's look to see if there were any errors during building:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Type</th>\n",
       "      <th>Asset</th>\n",
       "      <th>Path</th>\n",
       "      <th>Build Result</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>NaN</td>\n",
       "      <td>Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>No matching metadata row found for \"Relative_Humidity\"</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>No matching metadata row found for \"Temperature\"</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Type   Asset                          Path  \\\n",
       "30  NaN  Area F  My HVAC Units >> Facility #1   \n",
       "31  NaN  Area F  My HVAC Units >> Facility #1   \n",
       "\n",
       "                                              Build Result  \n",
       "30  No matching metadata row found for \"Relative_Humidity\"  \n",
       "31        No matching metadata row found for \"Temperature\"  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "build_df[build_df['Build Result'] != 'Success'][['Type', 'Asset', 'Path', 'Build Result']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As you can see, no matching metadata was found for Area F. If you do a search in Seeq Workbench for `Area F_`, you'll see that there are no `Temperature` or `Relative Humidity` tags for that area. That's fine! When we push, we simply won't add signals for Area F."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div style=\"background-color: #EEFFEE;text-align: left;\">Pushed successfully to datasource <strong>Seeq Data Lab [Datasource ID: Seeq Data Lab]</strong> and scoped to workbook ID <strong>E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B</strong><br>Click the following link to see what you pushed in Seeq:<br><a href=\"http://localhost:34216/D5B313D9-4E6C-430F-AA86-680331D28C33/workbook/E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B/worksheet/F0361088-983C-41E4-86C6-A057BD4C248B\" target=\"_new\">http://localhost:34216/D5B313D9-4E6C-430F-AA86-680331D28C33/workbook/E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B/worksheet/F0361088-983C-41E4-86C6-A057BD4C248B</a></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>Description</th>\n",
       "      <th>Type</th>\n",
       "      <th>Value Unit Of Measure</th>\n",
       "      <th>Datasource Name</th>\n",
       "      <th>Archived</th>\n",
       "      <th>Referenced Name</th>\n",
       "      <th>Reference</th>\n",
       "      <th>Name</th>\n",
       "      <th>Asset</th>\n",
       "      <th>Asset Object</th>\n",
       "      <th>Path</th>\n",
       "      <th>Template</th>\n",
       "      <th>Build Result</th>\n",
       "      <th>Formula Parameters</th>\n",
       "      <th>Push Result</th>\n",
       "      <th>Datasource Class</th>\n",
       "      <th>Datasource ID</th>\n",
       "      <th>Data ID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>F26011F9-9BC3-469A-A763-875BC0C23DC4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area D_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>signal=B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3598C93D-74D5-4D42-9024-E83D69449582</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area D_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=25801310-22D6-4AA3-B41D-CFD3FF63271D]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>08D550FE-55BF-4284-BC52-8FD4A89E26B3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area D</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>6E9F78C4-479D-4DB6-A91B-33E89C0CC1AC</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area Z_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=8AAFAC3E-2AF8-42A1-9BA9-72A86BFF5D1F]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>3C9D98D6-DEE9-4770-BD33-ED7A551A023F</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area Z_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=757F76C6-EE6D-4884-A93F-38C5E388E8E9]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6D391B31-B415-4A1A-9C00-C8F478D9D298</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area Z</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>6BECE80E-7A01-4C22-A305-9878F3767E0D</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area G_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=48FEF0C8-44F5-4765-80B5-841C6376D8A1]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>B5533DD6-6D51-41A2-AD1E-2F5C1344124C</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area G_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=D466BBD7-86F0-4F0A-9C5F-357631E421FD]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>699E7012-82F3-467D-B077-4141389C6B7A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area G</td>\n",
       "      <td>Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area G</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>DECC71DA-6CF3-4A6F-B376-80AA360C39E7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area J_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=896F2491-B1EB-4088-801E-C72D8F0A009A]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>50A92769-481D-4CA6-B263-B6606CC98696</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area J_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=765486AE-16C4-44C8-8B3F-DCBD7754525C]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>6231C301-8EB9-49B7-A4C4-85FF8825DC6A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area J</td>\n",
       "      <td>Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area J</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>E425C435-DE9F-4A86-89CA-D5BB4ED67BA7</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area C_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=B1C37B46-C8D0-4475-9E69-AAE91208F692]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>44E76F27-8379-4735-98D9-1826FFCDF538</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area C_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=37992633-97AD-4C82-BD73-AB9CE47CDC85]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>7A369D56-443B-4F81-8A4E-D8B7D7FDDF13</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area C</td>\n",
       "      <td>Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area C</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>B351967A-311B-4701-B4AF-984011BEC9F1</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area B_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=017421E7-73DC-4199-8174-17897A1B41D5]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>3D008133-9019-4941-8406-0EEDED7C6BC5</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area B_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=D6083022-141E-4DE3-A127-80313649A5F9]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2B90F20E-35CE-4CFE-A5AE-14ABE02616B8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area B</td>\n",
       "      <td>Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area B</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>087D8084-41DD-457F-BF79-C0AC90D0EE57</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area A_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=615823A4-B01D-40B4-9EB4-A7DD193B0759]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>DF1B5620-EE62-4555-8C0A-489DA8724A0A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area A_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=CAF69C63-B970-435A-8D58-838FE8564ADE]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>E23BCC2A-D1E3-4DF9-B97E-987625ED586B</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area A</td>\n",
       "      <td>Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area A</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>A9615F97-5788-41B9-9CB2-5F6A33E99984</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area E_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=ABDA1CA2-A369-4536-BAB9-B0FDE9FC61CE]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>88813A90-E01C-48AC-B696-DF2CE54FEADC</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area E_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=1D339F67-2FD7-4F75-B361-8585E2EAEC64]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>9548F0A0-A5BC-482A-9A1B-08F2632B2BDD</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area E</td>\n",
       "      <td>Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area E</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>17194879-C6CF-475A-9181-C8C4DB7ACCEC</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area K_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=25FFBEA7-C231-4B8C-A26B-A1AAC1B3419C]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>8111BF2B-36CD-4520-8BF7-4C0BB260D1B4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area K_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=5E078E48-DC2E-449B-A382-D145E39291B5]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>999B410C-ED5F-468D-AD60-4E1AB3302C54</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area K</td>\n",
       "      <td>Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area K</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>32BB2D74-2771-4611-8265-ECF0E1B069CA</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area I_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=684E9F8A-EC88-425A-AF3C-CB91F89B211C]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>8350B3F8-02B3-41FA-A2CF-37AEFD62B7E8</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area I_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=F98AD94F-DA16-428F-8458-11C2AAB58152]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>DE7AD35E-9495-46F4-9C63-15690AE881DA</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area I</td>\n",
       "      <td>Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area I</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>30</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>No matching metadata row found for \"Relative_Humidity\"</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Type is required for all item definitions</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>31</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>No matching metadata row found for \"Temperature\"</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Type is required for all item definitions</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32</th>\n",
       "      <td>75BB7369-D9C2-46EA-9576-D775157EDF2B</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area F</td>\n",
       "      <td>Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area F</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area F</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>33</th>\n",
       "      <td>086054AD-A6BA-4197-915A-527692F7E992</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area H_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=7B68C212-C133-4D66-9F4A-57817A9533F6]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H &gt;&gt; Relative Humidity</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>34</th>\n",
       "      <td>ACDA9E3F-F415-49BF-9826-CADD800C8055</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area H_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>[signal=221AA2F3-1FB1-46B6-9BD3-50368E034B8D]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H &gt;&gt; Temperature</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>35</th>\n",
       "      <td>1642C196-8694-44F5-A641-9B14D4118B1E</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area H</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                      ID Description              Type  \\\n",
       "0   F26011F9-9BC3-469A-A763-875BC0C23DC4         NaN  CalculatedSignal   \n",
       "1   3598C93D-74D5-4D42-9024-E83D69449582         NaN  CalculatedSignal   \n",
       "2   08D550FE-55BF-4284-BC52-8FD4A89E26B3         NaN             Asset   \n",
       "3   6E9F78C4-479D-4DB6-A91B-33E89C0CC1AC         NaN  CalculatedSignal   \n",
       "4   3C9D98D6-DEE9-4770-BD33-ED7A551A023F         NaN  CalculatedSignal   \n",
       "5   6D391B31-B415-4A1A-9C00-C8F478D9D298         NaN             Asset   \n",
       "6   6BECE80E-7A01-4C22-A305-9878F3767E0D         NaN  CalculatedSignal   \n",
       "7   B5533DD6-6D51-41A2-AD1E-2F5C1344124C         NaN  CalculatedSignal   \n",
       "8   699E7012-82F3-467D-B077-4141389C6B7A         NaN             Asset   \n",
       "9   DECC71DA-6CF3-4A6F-B376-80AA360C39E7         NaN  CalculatedSignal   \n",
       "10  50A92769-481D-4CA6-B263-B6606CC98696         NaN  CalculatedSignal   \n",
       "11  6231C301-8EB9-49B7-A4C4-85FF8825DC6A         NaN             Asset   \n",
       "12  E425C435-DE9F-4A86-89CA-D5BB4ED67BA7         NaN  CalculatedSignal   \n",
       "13  44E76F27-8379-4735-98D9-1826FFCDF538         NaN  CalculatedSignal   \n",
       "14  7A369D56-443B-4F81-8A4E-D8B7D7FDDF13         NaN             Asset   \n",
       "15  B351967A-311B-4701-B4AF-984011BEC9F1         NaN  CalculatedSignal   \n",
       "16  3D008133-9019-4941-8406-0EEDED7C6BC5         NaN  CalculatedSignal   \n",
       "17  2B90F20E-35CE-4CFE-A5AE-14ABE02616B8         NaN             Asset   \n",
       "18  087D8084-41DD-457F-BF79-C0AC90D0EE57         NaN  CalculatedSignal   \n",
       "19  DF1B5620-EE62-4555-8C0A-489DA8724A0A         NaN  CalculatedSignal   \n",
       "20  E23BCC2A-D1E3-4DF9-B97E-987625ED586B         NaN             Asset   \n",
       "21  A9615F97-5788-41B9-9CB2-5F6A33E99984         NaN  CalculatedSignal   \n",
       "22  88813A90-E01C-48AC-B696-DF2CE54FEADC         NaN  CalculatedSignal   \n",
       "23  9548F0A0-A5BC-482A-9A1B-08F2632B2BDD         NaN             Asset   \n",
       "24  17194879-C6CF-475A-9181-C8C4DB7ACCEC         NaN  CalculatedSignal   \n",
       "25  8111BF2B-36CD-4520-8BF7-4C0BB260D1B4         NaN  CalculatedSignal   \n",
       "26  999B410C-ED5F-468D-AD60-4E1AB3302C54         NaN             Asset   \n",
       "27  32BB2D74-2771-4611-8265-ECF0E1B069CA         NaN  CalculatedSignal   \n",
       "28  8350B3F8-02B3-41FA-A2CF-37AEFD62B7E8         NaN  CalculatedSignal   \n",
       "29  DE7AD35E-9495-46F4-9C63-15690AE881DA         NaN             Asset   \n",
       "30                                   NaN         NaN               NaN   \n",
       "31                                   NaN         NaN               NaN   \n",
       "32  75BB7369-D9C2-46EA-9576-D775157EDF2B         NaN             Asset   \n",
       "33  086054AD-A6BA-4197-915A-527692F7E992         NaN  CalculatedSignal   \n",
       "34  ACDA9E3F-F415-49BF-9826-CADD800C8055         NaN  CalculatedSignal   \n",
       "35  1642C196-8694-44F5-A641-9B14D4118B1E         NaN             Asset   \n",
       "\n",
       "   Value Unit Of Measure Datasource Name Archived           Referenced Name  \\\n",
       "0                      %    Example Data    False  Area D_Relative Humidity   \n",
       "1                     °F    Example Data    False        Area D_Temperature   \n",
       "2                    NaN             NaN      NaN                       NaN   \n",
       "3                      %    Example Data    False  Area Z_Relative Humidity   \n",
       "4                     °F    Example Data    False        Area Z_Temperature   \n",
       "5                    NaN             NaN      NaN                       NaN   \n",
       "6                      %    Example Data    False  Area G_Relative Humidity   \n",
       "7                     °F    Example Data    False        Area G_Temperature   \n",
       "8                    NaN             NaN      NaN                       NaN   \n",
       "9                      %    Example Data    False  Area J_Relative Humidity   \n",
       "10                    °F    Example Data    False        Area J_Temperature   \n",
       "11                   NaN             NaN      NaN                       NaN   \n",
       "12                     %    Example Data    False  Area C_Relative Humidity   \n",
       "13                    °F    Example Data    False        Area C_Temperature   \n",
       "14                   NaN             NaN      NaN                       NaN   \n",
       "15                     %    Example Data    False  Area B_Relative Humidity   \n",
       "16                    °F    Example Data    False        Area B_Temperature   \n",
       "17                   NaN             NaN      NaN                       NaN   \n",
       "18                     %    Example Data    False  Area A_Relative Humidity   \n",
       "19                    °F    Example Data    False        Area A_Temperature   \n",
       "20                   NaN             NaN      NaN                       NaN   \n",
       "21                     %    Example Data    False  Area E_Relative Humidity   \n",
       "22                    °F    Example Data    False        Area E_Temperature   \n",
       "23                   NaN             NaN      NaN                       NaN   \n",
       "24                     %    Example Data    False  Area K_Relative Humidity   \n",
       "25                    °F    Example Data    False        Area K_Temperature   \n",
       "26                   NaN             NaN      NaN                       NaN   \n",
       "27                     %    Example Data    False  Area I_Relative Humidity   \n",
       "28                    °F    Example Data    False        Area I_Temperature   \n",
       "29                   NaN             NaN      NaN                       NaN   \n",
       "30                   NaN             NaN      NaN                       NaN   \n",
       "31                   NaN             NaN      NaN                       NaN   \n",
       "32                   NaN             NaN      NaN                       NaN   \n",
       "33                     %    Example Data    False  Area H_Relative Humidity   \n",
       "34                    °F    Example Data    False        Area H_Temperature   \n",
       "35                   NaN             NaN      NaN                       NaN   \n",
       "\n",
       "   Reference               Name   Asset  \\\n",
       "0       True  Relative Humidity  Area D   \n",
       "1       True        Temperature  Area D   \n",
       "2        NaN             Area D  Area D   \n",
       "3       True  Relative Humidity  Area Z   \n",
       "4       True        Temperature  Area Z   \n",
       "5        NaN             Area Z  Area Z   \n",
       "6       True  Relative Humidity  Area G   \n",
       "7       True        Temperature  Area G   \n",
       "8        NaN             Area G  Area G   \n",
       "9       True  Relative Humidity  Area J   \n",
       "10      True        Temperature  Area J   \n",
       "11       NaN             Area J  Area J   \n",
       "12      True  Relative Humidity  Area C   \n",
       "13      True        Temperature  Area C   \n",
       "14       NaN             Area C  Area C   \n",
       "15      True  Relative Humidity  Area B   \n",
       "16      True        Temperature  Area B   \n",
       "17       NaN             Area B  Area B   \n",
       "18      True  Relative Humidity  Area A   \n",
       "19      True        Temperature  Area A   \n",
       "20       NaN             Area A  Area A   \n",
       "21      True  Relative Humidity  Area E   \n",
       "22      True        Temperature  Area E   \n",
       "23       NaN             Area E  Area E   \n",
       "24      True  Relative Humidity  Area K   \n",
       "25      True        Temperature  Area K   \n",
       "26       NaN             Area K  Area K   \n",
       "27      True  Relative Humidity  Area I   \n",
       "28      True        Temperature  Area I   \n",
       "29       NaN             Area I  Area I   \n",
       "30       NaN  Relative Humidity  Area F   \n",
       "31       NaN        Temperature  Area F   \n",
       "32       NaN             Area F  Area F   \n",
       "33      True  Relative Humidity  Area H   \n",
       "34      True        Temperature  Area H   \n",
       "35       NaN             Area H  Area H   \n",
       "\n",
       "                              Asset Object                          Path  \\\n",
       "0   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "1   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "2   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "3   My HVAC Units >> Facility #1 >> Area Z  My HVAC Units >> Facility #1   \n",
       "4   My HVAC Units >> Facility #1 >> Area Z  My HVAC Units >> Facility #1   \n",
       "5   My HVAC Units >> Facility #1 >> Area Z  My HVAC Units >> Facility #1   \n",
       "6   My HVAC Units >> Facility #1 >> Area G  My HVAC Units >> Facility #1   \n",
       "7   My HVAC Units >> Facility #1 >> Area G  My HVAC Units >> Facility #1   \n",
       "8   My HVAC Units >> Facility #1 >> Area G  My HVAC Units >> Facility #1   \n",
       "9   My HVAC Units >> Facility #1 >> Area J  My HVAC Units >> Facility #1   \n",
       "10  My HVAC Units >> Facility #1 >> Area J  My HVAC Units >> Facility #1   \n",
       "11  My HVAC Units >> Facility #1 >> Area J  My HVAC Units >> Facility #1   \n",
       "12  My HVAC Units >> Facility #1 >> Area C  My HVAC Units >> Facility #1   \n",
       "13  My HVAC Units >> Facility #1 >> Area C  My HVAC Units >> Facility #1   \n",
       "14  My HVAC Units >> Facility #1 >> Area C  My HVAC Units >> Facility #1   \n",
       "15  My HVAC Units >> Facility #1 >> Area B  My HVAC Units >> Facility #1   \n",
       "16  My HVAC Units >> Facility #1 >> Area B  My HVAC Units >> Facility #1   \n",
       "17  My HVAC Units >> Facility #1 >> Area B  My HVAC Units >> Facility #1   \n",
       "18  My HVAC Units >> Facility #1 >> Area A  My HVAC Units >> Facility #1   \n",
       "19  My HVAC Units >> Facility #1 >> Area A  My HVAC Units >> Facility #1   \n",
       "20  My HVAC Units >> Facility #1 >> Area A  My HVAC Units >> Facility #1   \n",
       "21  My HVAC Units >> Facility #1 >> Area E  My HVAC Units >> Facility #1   \n",
       "22  My HVAC Units >> Facility #1 >> Area E  My HVAC Units >> Facility #1   \n",
       "23  My HVAC Units >> Facility #1 >> Area E  My HVAC Units >> Facility #1   \n",
       "24  My HVAC Units >> Facility #1 >> Area K  My HVAC Units >> Facility #1   \n",
       "25  My HVAC Units >> Facility #1 >> Area K  My HVAC Units >> Facility #1   \n",
       "26  My HVAC Units >> Facility #1 >> Area K  My HVAC Units >> Facility #1   \n",
       "27  My HVAC Units >> Facility #1 >> Area I  My HVAC Units >> Facility #1   \n",
       "28  My HVAC Units >> Facility #1 >> Area I  My HVAC Units >> Facility #1   \n",
       "29  My HVAC Units >> Facility #1 >> Area I  My HVAC Units >> Facility #1   \n",
       "30  My HVAC Units >> Facility #1 >> Area F  My HVAC Units >> Facility #1   \n",
       "31  My HVAC Units >> Facility #1 >> Area F  My HVAC Units >> Facility #1   \n",
       "32  My HVAC Units >> Facility #1 >> Area F  My HVAC Units >> Facility #1   \n",
       "33  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "34  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "35  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "\n",
       "   Template                                            Build Result  \\\n",
       "0      HVAC                                                 Success   \n",
       "1      HVAC                                                 Success   \n",
       "2      HVAC                                                 Success   \n",
       "3      HVAC                                                 Success   \n",
       "4      HVAC                                                 Success   \n",
       "5      HVAC                                                 Success   \n",
       "6      HVAC                                                 Success   \n",
       "7      HVAC                                                 Success   \n",
       "8      HVAC                                                 Success   \n",
       "9      HVAC                                                 Success   \n",
       "10     HVAC                                                 Success   \n",
       "11     HVAC                                                 Success   \n",
       "12     HVAC                                                 Success   \n",
       "13     HVAC                                                 Success   \n",
       "14     HVAC                                                 Success   \n",
       "15     HVAC                                                 Success   \n",
       "16     HVAC                                                 Success   \n",
       "17     HVAC                                                 Success   \n",
       "18     HVAC                                                 Success   \n",
       "19     HVAC                                                 Success   \n",
       "20     HVAC                                                 Success   \n",
       "21     HVAC                                                 Success   \n",
       "22     HVAC                                                 Success   \n",
       "23     HVAC                                                 Success   \n",
       "24     HVAC                                                 Success   \n",
       "25     HVAC                                                 Success   \n",
       "26     HVAC                                                 Success   \n",
       "27     HVAC                                                 Success   \n",
       "28     HVAC                                                 Success   \n",
       "29     HVAC                                                 Success   \n",
       "30     HVAC  No matching metadata row found for \"Relative_Humidity\"   \n",
       "31     HVAC        No matching metadata row found for \"Temperature\"   \n",
       "32     HVAC                                                 Success   \n",
       "33     HVAC                                                 Success   \n",
       "34     HVAC                                                 Success   \n",
       "35     HVAC                                                 Success   \n",
       "\n",
       "                               Formula Parameters  \\\n",
       "0     signal=B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990   \n",
       "1   [signal=25801310-22D6-4AA3-B41D-CFD3FF63271D]   \n",
       "2                                             NaN   \n",
       "3   [signal=8AAFAC3E-2AF8-42A1-9BA9-72A86BFF5D1F]   \n",
       "4   [signal=757F76C6-EE6D-4884-A93F-38C5E388E8E9]   \n",
       "5                                             NaN   \n",
       "6   [signal=48FEF0C8-44F5-4765-80B5-841C6376D8A1]   \n",
       "7   [signal=D466BBD7-86F0-4F0A-9C5F-357631E421FD]   \n",
       "8                                             NaN   \n",
       "9   [signal=896F2491-B1EB-4088-801E-C72D8F0A009A]   \n",
       "10  [signal=765486AE-16C4-44C8-8B3F-DCBD7754525C]   \n",
       "11                                            NaN   \n",
       "12  [signal=B1C37B46-C8D0-4475-9E69-AAE91208F692]   \n",
       "13  [signal=37992633-97AD-4C82-BD73-AB9CE47CDC85]   \n",
       "14                                            NaN   \n",
       "15  [signal=017421E7-73DC-4199-8174-17897A1B41D5]   \n",
       "16  [signal=D6083022-141E-4DE3-A127-80313649A5F9]   \n",
       "17                                            NaN   \n",
       "18  [signal=615823A4-B01D-40B4-9EB4-A7DD193B0759]   \n",
       "19  [signal=CAF69C63-B970-435A-8D58-838FE8564ADE]   \n",
       "20                                            NaN   \n",
       "21  [signal=ABDA1CA2-A369-4536-BAB9-B0FDE9FC61CE]   \n",
       "22  [signal=1D339F67-2FD7-4F75-B361-8585E2EAEC64]   \n",
       "23                                            NaN   \n",
       "24  [signal=25FFBEA7-C231-4B8C-A26B-A1AAC1B3419C]   \n",
       "25  [signal=5E078E48-DC2E-449B-A382-D145E39291B5]   \n",
       "26                                            NaN   \n",
       "27  [signal=684E9F8A-EC88-425A-AF3C-CB91F89B211C]   \n",
       "28  [signal=F98AD94F-DA16-428F-8458-11C2AAB58152]   \n",
       "29                                            NaN   \n",
       "30                                            NaN   \n",
       "31                                            NaN   \n",
       "32                                            NaN   \n",
       "33  [signal=7B68C212-C133-4D66-9F4A-57817A9533F6]   \n",
       "34  [signal=221AA2F3-1FB1-46B6-9BD3-50368E034B8D]   \n",
       "35                                            NaN   \n",
       "\n",
       "                                  Push Result Datasource Class  Datasource ID  \\\n",
       "0                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "1                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "2                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "3                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "4                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "5                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "6                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "7                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "8                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "9                                     Success    Seeq Data Lab  Seeq Data Lab   \n",
       "10                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "11                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "12                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "13                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "14                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "15                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "16                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "17                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "18                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "19                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "20                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "21                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "22                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "23                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "24                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "25                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "26                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "27                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "28                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "29                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "30  Type is required for all item definitions              NaN            NaN   \n",
       "31  Type is required for all item definitions              NaN            NaN   \n",
       "32                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "33                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "34                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "35                                    Success    Seeq Data Lab  Seeq Data Lab   \n",
       "\n",
       "                                                                                                        Data ID  \n",
       "0   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area D >> Relative Humidity  \n",
       "1         [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area D >> Temperature  \n",
       "2                         [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area D  \n",
       "3   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area Z >> Relative Humidity  \n",
       "4         [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area Z >> Temperature  \n",
       "5                         [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area Z  \n",
       "6   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area G >> Relative Humidity  \n",
       "7         [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area G >> Temperature  \n",
       "8                         [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area G  \n",
       "9   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area J >> Relative Humidity  \n",
       "10        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area J >> Temperature  \n",
       "11                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area J  \n",
       "12  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area C >> Relative Humidity  \n",
       "13        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area C >> Temperature  \n",
       "14                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area C  \n",
       "15  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area B >> Relative Humidity  \n",
       "16        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area B >> Temperature  \n",
       "17                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area B  \n",
       "18  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area A >> Relative Humidity  \n",
       "19        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area A >> Temperature  \n",
       "20                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area A  \n",
       "21  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area E >> Relative Humidity  \n",
       "22        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area E >> Temperature  \n",
       "23                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area E  \n",
       "24  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area K >> Relative Humidity  \n",
       "25        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area K >> Temperature  \n",
       "26                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area K  \n",
       "27  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area I >> Relative Humidity  \n",
       "28        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area I >> Temperature  \n",
       "29                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area I  \n",
       "30                                                                                                          NaN  \n",
       "31                                                                                                          NaN  \n",
       "32                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area F  \n",
       "33  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area H >> Relative Humidity  \n",
       "34        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal} My HVAC Units >> Facility #1 >> Area H >> Temperature  \n",
       "35                        [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset} My HVAC Units >> Facility #1 >> Area H  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "spy.push(metadata=build_df, errors='catalog')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The asset tree is now available for viewing in Seeq. It is scoped to a workbook that you own called _Data Lab >> Data Lab Analysis_, so you won't see it in any other workbook. If/when you want to publish the tree globally, add the `workbook=None` parameter to your `spy.push()` function call."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Calculated Signals, Conditions and Scalars\n",
    "\n",
    "Now let's do something a little more advanced. We'll define a new class that has calculations alongside references to raw signals. This class will _derive from_ our existing `HVAC` class so that it _inherits_ the references we already defined."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "class HVAC_With_Calcs(HVAC):\n",
    "    \n",
    "    @Asset.Attribute()\n",
    "    def Temperature_Rate_Of_Change(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Signal',\n",
    "            \n",
    "            # This formula will give us a nice derivative in F/h\n",
    "            'Formula': '$temp.lowPassFilter(150min, 3min, 333).derivative() * 3600 s/h',\n",
    "            \n",
    "            'Formula Parameters': {\n",
    "                # We can reference the base class' Temperature attribute here as a dependency\n",
    "                '$temp': self.Temperature(metadata),\n",
    "            }\n",
    "        }\n",
    "    \n",
    "    @Asset.Attribute()\n",
    "    def Too_Hot(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Condition',\n",
    "            'Formula': '$temp.valueSearch(isGreaterThan($threshold))',\n",
    "            'Formula Parameters': {\n",
    "                '$temp': self.Temperature(metadata),\n",
    "                \n",
    "                # We can also reference other attributes in this derived class\n",
    "                '$threshold': self.Hot_Threshold(metadata)\n",
    "            }\n",
    "        }\n",
    "    \n",
    "    @Asset.Attribute()\n",
    "    def Hot_Threshold(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Scalar',\n",
    "            'Formula': '80F'\n",
    "        }"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We'll make some adjustments to our metadata DataFrame to use the new template and then push into Seeq:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div style=\"background-color: #EEFFEE;text-align: left;\">Pushed successfully to datasource <strong>Seeq Data Lab [Datasource ID: Seeq Data Lab]</strong> and scoped to workbook ID <strong>E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B</strong><br>Click the following link to see what you pushed in Seeq:<br><a href=\"http://localhost:34216/D5B313D9-4E6C-430F-AA86-680331D28C33/workbook/E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B/worksheet/F0361088-983C-41E4-86C6-A057BD4C248B\" target=\"_new\">http://localhost:34216/D5B313D9-4E6C-430F-AA86-680331D28C33/workbook/E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B/worksheet/F0361088-983C-41E4-86C6-A057BD4C248B</a></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Type</th>\n",
       "      <th>Formula</th>\n",
       "      <th>Name</th>\n",
       "      <th>Asset</th>\n",
       "      <th>Asset Object</th>\n",
       "      <th>Path</th>\n",
       "      <th>Template</th>\n",
       "      <th>Build Result</th>\n",
       "      <th>ID</th>\n",
       "      <th>Description</th>\n",
       "      <th>Value Unit Of Measure</th>\n",
       "      <th>Datasource Name</th>\n",
       "      <th>Archived</th>\n",
       "      <th>Referenced Name</th>\n",
       "      <th>Reference</th>\n",
       "      <th>Formula Parameters</th>\n",
       "      <th>Push Result</th>\n",
       "      <th>Datasource Class</th>\n",
       "      <th>Datasource ID</th>\n",
       "      <th>Data ID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>CalculatedScalar</td>\n",
       "      <td>80F</td>\n",
       "      <td>Hot Threshold</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>C6247396-CFD5-4F57-A1BE-B0FBC9E36EB3</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Scalar...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>F26011F9-9BC3-469A-A763-875BC0C23DC4</td>\n",
       "      <td>NaN</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area D_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>[signal=B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>3598C93D-74D5-4D42-9024-E83D69449582</td>\n",
       "      <td>NaN</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area D_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>[signal=25801310-22D6-4AA3-B41D-CFD3FF63271D]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>$temp.lowPassFilter(150min, 3min, 333).derivat...</td>\n",
       "      <td>Temperature Rate Of Change</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>6D61E9C8-3E03-41BD-B3DF-707B967F6F55</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[temp=3598C93D-74D5-4D42-9024-E83D69449582]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>CalculatedCondition</td>\n",
       "      <td>$temp.valueSearch(isGreaterThan($threshold))</td>\n",
       "      <td>Too Hot</td>\n",
       "      <td>Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area D</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>748269C9-B84C-4DE7-A352-DE264F5476CF</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[temp=3598C93D-74D5-4D42-9024-E83D69449582, th...</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>67</th>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Relative Humidity</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>086054AD-A6BA-4197-915A-527692F7E992</td>\n",
       "      <td>NaN</td>\n",
       "      <td>%</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area H_Relative Humidity</td>\n",
       "      <td>True</td>\n",
       "      <td>[signal=7B68C212-C133-4D66-9F4A-57817A9533F6]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>68</th>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>ACDA9E3F-F415-49BF-9826-CADD800C8055</td>\n",
       "      <td>NaN</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Area H_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>[signal=221AA2F3-1FB1-46B6-9BD3-50368E034B8D]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>69</th>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>$temp.lowPassFilter(150min, 3min, 333).derivat...</td>\n",
       "      <td>Temperature Rate Of Change</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>0179404D-6ACC-4F54-90C1-7792960F7E6A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[temp=ACDA9E3F-F415-49BF-9826-CADD800C8055]</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>70</th>\n",
       "      <td>CalculatedCondition</td>\n",
       "      <td>$temp.valueSearch(isGreaterThan($threshold))</td>\n",
       "      <td>Too Hot</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>4A8F9F2A-F900-471D-AFBE-02BF38E1CA80</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[temp=ACDA9E3F-F415-49BF-9826-CADD800C8055, th...</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area H</td>\n",
       "      <td>Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1 &gt;&gt; Area H</td>\n",
       "      <td>My HVAC Units &gt;&gt; Facility #1</td>\n",
       "      <td>HVAC With Calcs</td>\n",
       "      <td>Success</td>\n",
       "      <td>1642C196-8694-44F5-A641-9B14D4118B1E</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Success</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>72 rows × 20 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                   Type                                            Formula  \\\n",
       "0      CalculatedScalar                                                80F   \n",
       "1      CalculatedSignal                                                NaN   \n",
       "2      CalculatedSignal                                                NaN   \n",
       "3      CalculatedSignal  $temp.lowPassFilter(150min, 3min, 333).derivat...   \n",
       "4   CalculatedCondition       $temp.valueSearch(isGreaterThan($threshold))   \n",
       "..                  ...                                                ...   \n",
       "67     CalculatedSignal                                                NaN   \n",
       "68     CalculatedSignal                                                NaN   \n",
       "69     CalculatedSignal  $temp.lowPassFilter(150min, 3min, 333).derivat...   \n",
       "70  CalculatedCondition       $temp.valueSearch(isGreaterThan($threshold))   \n",
       "71                Asset                                                NaN   \n",
       "\n",
       "                          Name   Asset  \\\n",
       "0                Hot Threshold  Area D   \n",
       "1            Relative Humidity  Area D   \n",
       "2                  Temperature  Area D   \n",
       "3   Temperature Rate Of Change  Area D   \n",
       "4                      Too Hot  Area D   \n",
       "..                         ...     ...   \n",
       "67           Relative Humidity  Area H   \n",
       "68                 Temperature  Area H   \n",
       "69  Temperature Rate Of Change  Area H   \n",
       "70                     Too Hot  Area H   \n",
       "71                      Area H  Area H   \n",
       "\n",
       "                              Asset Object                          Path  \\\n",
       "0   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "1   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "2   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "3   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "4   My HVAC Units >> Facility #1 >> Area D  My HVAC Units >> Facility #1   \n",
       "..                                     ...                           ...   \n",
       "67  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "68  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "69  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "70  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "71  My HVAC Units >> Facility #1 >> Area H  My HVAC Units >> Facility #1   \n",
       "\n",
       "           Template Build Result                                    ID  \\\n",
       "0   HVAC With Calcs      Success  C6247396-CFD5-4F57-A1BE-B0FBC9E36EB3   \n",
       "1   HVAC With Calcs      Success  F26011F9-9BC3-469A-A763-875BC0C23DC4   \n",
       "2   HVAC With Calcs      Success  3598C93D-74D5-4D42-9024-E83D69449582   \n",
       "3   HVAC With Calcs      Success  6D61E9C8-3E03-41BD-B3DF-707B967F6F55   \n",
       "4   HVAC With Calcs      Success  748269C9-B84C-4DE7-A352-DE264F5476CF   \n",
       "..              ...          ...                                   ...   \n",
       "67  HVAC With Calcs      Success  086054AD-A6BA-4197-915A-527692F7E992   \n",
       "68  HVAC With Calcs      Success  ACDA9E3F-F415-49BF-9826-CADD800C8055   \n",
       "69  HVAC With Calcs      Success  0179404D-6ACC-4F54-90C1-7792960F7E6A   \n",
       "70  HVAC With Calcs      Success  4A8F9F2A-F900-471D-AFBE-02BF38E1CA80   \n",
       "71  HVAC With Calcs      Success  1642C196-8694-44F5-A641-9B14D4118B1E   \n",
       "\n",
       "   Description Value Unit Of Measure Datasource Name Archived  \\\n",
       "0          NaN                   NaN             NaN      NaN   \n",
       "1          NaN                     %    Example Data    False   \n",
       "2          NaN                    °F    Example Data    False   \n",
       "3          NaN                   NaN             NaN      NaN   \n",
       "4          NaN                   NaN             NaN      NaN   \n",
       "..         ...                   ...             ...      ...   \n",
       "67         NaN                     %    Example Data    False   \n",
       "68         NaN                    °F    Example Data    False   \n",
       "69         NaN                   NaN             NaN      NaN   \n",
       "70         NaN                   NaN             NaN      NaN   \n",
       "71         NaN                   NaN             NaN      NaN   \n",
       "\n",
       "             Referenced Name Reference  \\\n",
       "0                        NaN       NaN   \n",
       "1   Area D_Relative Humidity      True   \n",
       "2         Area D_Temperature      True   \n",
       "3                        NaN       NaN   \n",
       "4                        NaN       NaN   \n",
       "..                       ...       ...   \n",
       "67  Area H_Relative Humidity      True   \n",
       "68        Area H_Temperature      True   \n",
       "69                       NaN       NaN   \n",
       "70                       NaN       NaN   \n",
       "71                       NaN       NaN   \n",
       "\n",
       "                                   Formula Parameters Push Result  \\\n",
       "0                                                 NaN     Success   \n",
       "1       [signal=B8FA62DA-5C42-4CA3-9C3F-E80E6E5AE990]     Success   \n",
       "2       [signal=25801310-22D6-4AA3-B41D-CFD3FF63271D]     Success   \n",
       "3         [temp=3598C93D-74D5-4D42-9024-E83D69449582]     Success   \n",
       "4   [temp=3598C93D-74D5-4D42-9024-E83D69449582, th...     Success   \n",
       "..                                                ...         ...   \n",
       "67      [signal=7B68C212-C133-4D66-9F4A-57817A9533F6]     Success   \n",
       "68      [signal=221AA2F3-1FB1-46B6-9BD3-50368E034B8D]     Success   \n",
       "69        [temp=ACDA9E3F-F415-49BF-9826-CADD800C8055]     Success   \n",
       "70  [temp=ACDA9E3F-F415-49BF-9826-CADD800C8055, th...     Success   \n",
       "71                                                NaN     Success   \n",
       "\n",
       "   Datasource Class  Datasource ID  \\\n",
       "0     Seeq Data Lab  Seeq Data Lab   \n",
       "1     Seeq Data Lab  Seeq Data Lab   \n",
       "2     Seeq Data Lab  Seeq Data Lab   \n",
       "3     Seeq Data Lab  Seeq Data Lab   \n",
       "4     Seeq Data Lab  Seeq Data Lab   \n",
       "..              ...            ...   \n",
       "67    Seeq Data Lab  Seeq Data Lab   \n",
       "68    Seeq Data Lab  Seeq Data Lab   \n",
       "69    Seeq Data Lab  Seeq Data Lab   \n",
       "70    Seeq Data Lab  Seeq Data Lab   \n",
       "71    Seeq Data Lab  Seeq Data Lab   \n",
       "\n",
       "                                              Data ID  \n",
       "0   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Scalar...  \n",
       "1   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...  \n",
       "2   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...  \n",
       "3   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...  \n",
       "4   [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...  \n",
       "..                                                ...  \n",
       "67  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...  \n",
       "68  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...  \n",
       "69  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...  \n",
       "70  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...  \n",
       "71  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...  \n",
       "\n",
       "[72 rows x 20 columns]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Make a copy of our original metadata but change the Build Template\n",
    "hvac_with_calcs_metadata_df = hvac_metadata_df.copy()\n",
    "\n",
    "build_with_calcs_df = spy.assets.build(HVAC_With_Calcs, hvac_with_calcs_metadata_df)\n",
    "\n",
    "pd.set_option('display.max_colwidth', 50)\n",
    "\n",
    "spy.push(metadata=build_with_calcs_df, errors='catalog')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now when you look at the asset tree in Seeq, you'll see `Temperature Rate Of Change`, `Too Hot` and `Hot Threshold`. Each time we push, we are overwriting the definition we pushed previously."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Components\n",
    "\n",
    "You can create an entire asset hierarchy by defining Asset classes that are _composed_ of other Asset classes. To illustrate, let's start by preparing a DataFrame with our ingredients. This example will be a little contrived given the example data that is available in Seeq.\n",
    "\n",
    "We will define a metadata DataFrame where there are two Refrigerators and each will have two Compressors. In the cell below, you will see that we define the `Build Asset` column with the Refigerator name but also define a `Compressor` column with the Compressor name. We have assigned Area A-D signals to specific Refrigerators and Compressors."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div style=\"background-color: #EEFFEE;text-align: left;\">Query successful</div><table><tr><td style=\"background-color: #EEFFEE;\"></td><td style=\"background-color: #EEFFEE;\">Name</td><td style=\"background-color: #EEFFEE;\">Datasource Class</td><td style=\"background-color: #EEFFEE;\">Time</td><td style=\"background-color: #EEFFEE;\">Count</td><td style=\"background-color: #EEFFEE;\">Result</td></tr><tr style=\"background-color: #EEFFEE;\"><td>0</td><td>/Area [A-D]_(?:Temperature|Compressor Power)/</td><td>Time Series CSV Files</td><td>00:00:00.01</td><td>8</td><td>Success</td></tr></table>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>Name</th>\n",
       "      <th>Build Path</th>\n",
       "      <th>Build Asset</th>\n",
       "      <th>Compressor</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>844054AD-8264-4CAF-817B-8FEB6749107A</td>\n",
       "      <td>Area D_Compressor Power</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator 2</td>\n",
       "      <td>Compressor 4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>37992633-97AD-4C82-BD73-AB9CE47CDC85</td>\n",
       "      <td>Area C_Temperature</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator 2</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>CAF69C63-B970-435A-8D58-838FE8564ADE</td>\n",
       "      <td>Area A_Temperature</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator 1</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>80ECC0A0-C344-4D1B-9C3F-20E4AFE2FC61</td>\n",
       "      <td>Area C_Compressor Power</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator 2</td>\n",
       "      <td>Compressor 3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>A9BB5690-E6BA-46E0-98CF-E61E4677E8AC</td>\n",
       "      <td>Area B_Compressor Power</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator 1</td>\n",
       "      <td>Compressor 2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>1A238C28-0DAB-440E-A63F-86E06FF45BF9</td>\n",
       "      <td>Area A_Compressor Power</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator 1</td>\n",
       "      <td>Compressor 1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>D6083022-141E-4DE3-A127-80313649A5F9</td>\n",
       "      <td>Area B_Temperature</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>25801310-22D6-4AA3-B41D-CFD3FF63271D</td>\n",
       "      <td>Area D_Temperature</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                     ID                     Name  \\\n",
       "0  844054AD-8264-4CAF-817B-8FEB6749107A  Area D_Compressor Power   \n",
       "1  37992633-97AD-4C82-BD73-AB9CE47CDC85       Area C_Temperature   \n",
       "2  CAF69C63-B970-435A-8D58-838FE8564ADE       Area A_Temperature   \n",
       "3  80ECC0A0-C344-4D1B-9C3F-20E4AFE2FC61  Area C_Compressor Power   \n",
       "4  A9BB5690-E6BA-46E0-98CF-E61E4677E8AC  Area B_Compressor Power   \n",
       "5  1A238C28-0DAB-440E-A63F-86E06FF45BF9  Area A_Compressor Power   \n",
       "6  D6083022-141E-4DE3-A127-80313649A5F9       Area B_Temperature   \n",
       "7  25801310-22D6-4AA3-B41D-CFD3FF63271D       Area D_Temperature   \n",
       "\n",
       "           Build Path     Build Asset    Compressor  \n",
       "0  Refrigerator Units  Refrigerator 2  Compressor 4  \n",
       "1  Refrigerator Units  Refrigerator 2           NaN  \n",
       "2  Refrigerator Units  Refrigerator 1           NaN  \n",
       "3  Refrigerator Units  Refrigerator 2  Compressor 3  \n",
       "4  Refrigerator Units  Refrigerator 1  Compressor 2  \n",
       "5  Refrigerator Units  Refrigerator 1  Compressor 1  \n",
       "6  Refrigerator Units             NaN           NaN  \n",
       "7  Refrigerator Units             NaN           NaN  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "metadata_df = spy.search({\n",
    "    'Name': r'/Area [A-D]_(?:Temperature|Compressor Power)/',\n",
    "    'Datasource Class': 'Time Series CSV Files'\n",
    "})\n",
    "\n",
    "metadata_df.at[metadata_df['Name'] == 'Area A_Temperature', 'Build Asset'] = 'Refrigerator 1'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area A_Compressor Power', 'Build Asset'] = 'Refrigerator 1'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area A_Compressor Power', 'Compressor'] = 'Compressor 1'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area B_Compressor Power', 'Build Asset'] = 'Refrigerator 1'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area B_Compressor Power', 'Compressor'] = 'Compressor 2'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area C_Temperature', 'Build Asset'] = 'Refrigerator 2'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area C_Compressor Power', 'Build Asset'] = 'Refrigerator 2'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area C_Compressor Power', 'Compressor'] = 'Compressor 3'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area D_Compressor Power', 'Build Asset'] = 'Refrigerator 2'\n",
    "metadata_df.at[metadata_df['Name'] == 'Area D_Compressor Power', 'Compressor'] = 'Compressor 4'\n",
    "\n",
    "metadata_df['Build Path'] = 'Refrigerator Units'\n",
    "\n",
    "metadata_df[['ID', 'Name', 'Build Path', 'Build Asset', 'Compressor']]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can define our Asset classes. Will be using the `Asset.Component()` decorator and the `self.build_components()` function:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div style=\"background-color: #EEFFEE;text-align: left;\">Pushed successfully to datasource <strong>Seeq Data Lab [Datasource ID: Seeq Data Lab]</strong> and scoped to workbook ID <strong>E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B</strong><br>Click the following link to see what you pushed in Seeq:<br><a href=\"http://localhost:34216/D5B313D9-4E6C-430F-AA86-680331D28C33/workbook/E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B/worksheet/F0361088-983C-41E4-86C6-A057BD4C248B\" target=\"_new\">http://localhost:34216/D5B313D9-4E6C-430F-AA86-680331D28C33/workbook/E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B/worksheet/F0361088-983C-41E4-86C6-A057BD4C248B</a></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ID</th>\n",
       "      <th>Description</th>\n",
       "      <th>Type</th>\n",
       "      <th>Value Unit Of Measure</th>\n",
       "      <th>Datasource Name</th>\n",
       "      <th>Archived</th>\n",
       "      <th>Compressor</th>\n",
       "      <th>Referenced Name</th>\n",
       "      <th>Reference</th>\n",
       "      <th>Name</th>\n",
       "      <th>...</th>\n",
       "      <th>Asset Object</th>\n",
       "      <th>Path</th>\n",
       "      <th>Template</th>\n",
       "      <th>Build Result</th>\n",
       "      <th>Formula</th>\n",
       "      <th>Formula Parameters</th>\n",
       "      <th>Datasource Class</th>\n",
       "      <th>Datasource ID</th>\n",
       "      <th>Data ID</th>\n",
       "      <th>Push Result</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2EF82742-9146-4C76-BF6D-A3A9A2BBA194</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>kW</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Compressor 4</td>\n",
       "      <td>Area D_Compressor Power</td>\n",
       "      <td>True</td>\n",
       "      <td>Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[signal=844054AD-8264-4CAF-817B-8FEB6749107A]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>68F47A38-D6FD-4258-A0DF-02C73A2488F2</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedCondition</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>High Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>$a.valueSearch(isGreaterThan(20kW))</td>\n",
       "      <td>[a=2EF82742-9146-4C76-BF6D-A3A9A2BBA194]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>D1024208-C753-4149-B2B5-751F292BE235</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Compressor 4</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>B44A559C-2DD3-44D5-B98F-D03130A04BA6</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>kW</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Compressor 3</td>\n",
       "      <td>Area C_Compressor Power</td>\n",
       "      <td>True</td>\n",
       "      <td>Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[signal=80ECC0A0-C344-4D1B-9C3F-20E4AFE2FC61]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>99DED08F-4732-40D1-99A3-214281B40083</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedCondition</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>High Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>$a.valueSearch(isGreaterThan(20kW))</td>\n",
       "      <td>[a=B44A559C-2DD3-44D5-B98F-D03130A04BA6]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>F149C886-AF8A-4D3A-B0C9-4563B5E8447A</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Compressor 3</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>FD8DBB2F-070F-4446-BCAA-BDBED6F0D391</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area C_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[signal=37992633-97AD-4C82-BD73-AB9CE47CDC85]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>5D11541E-43CC-4BF0-8BEE-29BAA38F07BD</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedCondition</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Compressor High Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator</td>\n",
       "      <td>Success</td>\n",
       "      <td>$p0 || $p1</td>\n",
       "      <td>[p0=68F47A38-D6FD-4258-A0DF-02C73A2488F2, p1=9...</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>10D3D651-A43C-4073-84D0-71344826C707</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Compressor Power Max</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator</td>\n",
       "      <td>Success</td>\n",
       "      <td>$p0.max($p1)</td>\n",
       "      <td>[p0=2EF82742-9146-4C76-BF6D-A3A9A2BBA194, p1=B...</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>30762899-F892-4E77-B711-E922EB372957</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Refrigerator 2</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 2</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>C5BAA4AE-48FB-4631-AAB8-E94BB780FF5B</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>kW</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Compressor 2</td>\n",
       "      <td>Area B_Compressor Power</td>\n",
       "      <td>True</td>\n",
       "      <td>Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[signal=A9BB5690-E6BA-46E0-98CF-E61E4677E8AC]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>FCB08D48-32C3-4DE0-98DA-016617543441</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedCondition</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>High Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>$a.valueSearch(isGreaterThan(20kW))</td>\n",
       "      <td>[a=C5BAA4AE-48FB-4631-AAB8-E94BB780FF5B]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>EB285DDE-B939-4E16-A0C5-A3202DC0F79C</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Compressor 2</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>09D2BC42-87C5-42A4-AB81-2C7948EC0404</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>kW</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>Compressor 1</td>\n",
       "      <td>Area A_Compressor Power</td>\n",
       "      <td>True</td>\n",
       "      <td>Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[signal=1A238C28-0DAB-440E-A63F-86E06FF45BF9]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>468B2644-F096-4C5F-9A6B-1ECC0FAEAA9B</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedCondition</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>High Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>$a.valueSearch(isGreaterThan(20kW))</td>\n",
       "      <td>[a=09D2BC42-87C5-42A4-AB81-2C7948EC0404]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>303F4F90-73BB-432D-8EB3-8D8B09B0886E</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Compressor 1</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1 &gt;&gt; Compre...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Compressor</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>F3A7FD1F-7847-4679-9A53-5AF0305224BF</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>°F</td>\n",
       "      <td>Example Data</td>\n",
       "      <td>False</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Area A_Temperature</td>\n",
       "      <td>True</td>\n",
       "      <td>Temperature</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>[signal=CAF69C63-B970-435A-8D58-838FE8564ADE]</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>CFD5D432-B611-4A19-9B95-18A04F276D42</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedCondition</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Compressor High Power</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator</td>\n",
       "      <td>Success</td>\n",
       "      <td>$p0 || $p1</td>\n",
       "      <td>[p0=FCB08D48-32C3-4DE0-98DA-016617543441, p1=4...</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>0C26AE28-5AF5-4B54-B444-6D2A5E43A68F</td>\n",
       "      <td>NaN</td>\n",
       "      <td>CalculatedSignal</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Compressor Power Max</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator</td>\n",
       "      <td>Success</td>\n",
       "      <td>$p0.max($p1)</td>\n",
       "      <td>[p0=C5BAA4AE-48FB-4631-AAB8-E94BB780FF5B, p1=0...</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>5F90747E-1BCA-49F8-8F98-CE1EABDCE534</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Asset</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Refrigerator 1</td>\n",
       "      <td>...</td>\n",
       "      <td>Refrigerator Units &gt;&gt; Refrigerator 1</td>\n",
       "      <td>Refrigerator Units</td>\n",
       "      <td>Refrigerator</td>\n",
       "      <td>Success</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>Seeq Data Lab</td>\n",
       "      <td>[E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...</td>\n",
       "      <td>Success</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>20 rows × 21 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                      ID Description                 Type  \\\n",
       "0   2EF82742-9146-4C76-BF6D-A3A9A2BBA194         NaN     CalculatedSignal   \n",
       "1   68F47A38-D6FD-4258-A0DF-02C73A2488F2         NaN  CalculatedCondition   \n",
       "2   D1024208-C753-4149-B2B5-751F292BE235         NaN                Asset   \n",
       "3   B44A559C-2DD3-44D5-B98F-D03130A04BA6         NaN     CalculatedSignal   \n",
       "4   99DED08F-4732-40D1-99A3-214281B40083         NaN  CalculatedCondition   \n",
       "5   F149C886-AF8A-4D3A-B0C9-4563B5E8447A         NaN                Asset   \n",
       "6   FD8DBB2F-070F-4446-BCAA-BDBED6F0D391         NaN     CalculatedSignal   \n",
       "7   5D11541E-43CC-4BF0-8BEE-29BAA38F07BD         NaN  CalculatedCondition   \n",
       "8   10D3D651-A43C-4073-84D0-71344826C707         NaN     CalculatedSignal   \n",
       "9   30762899-F892-4E77-B711-E922EB372957         NaN                Asset   \n",
       "10  C5BAA4AE-48FB-4631-AAB8-E94BB780FF5B         NaN     CalculatedSignal   \n",
       "11  FCB08D48-32C3-4DE0-98DA-016617543441         NaN  CalculatedCondition   \n",
       "12  EB285DDE-B939-4E16-A0C5-A3202DC0F79C         NaN                Asset   \n",
       "13  09D2BC42-87C5-42A4-AB81-2C7948EC0404         NaN     CalculatedSignal   \n",
       "14  468B2644-F096-4C5F-9A6B-1ECC0FAEAA9B         NaN  CalculatedCondition   \n",
       "15  303F4F90-73BB-432D-8EB3-8D8B09B0886E         NaN                Asset   \n",
       "16  F3A7FD1F-7847-4679-9A53-5AF0305224BF         NaN     CalculatedSignal   \n",
       "17  CFD5D432-B611-4A19-9B95-18A04F276D42         NaN  CalculatedCondition   \n",
       "18  0C26AE28-5AF5-4B54-B444-6D2A5E43A68F         NaN     CalculatedSignal   \n",
       "19  5F90747E-1BCA-49F8-8F98-CE1EABDCE534         NaN                Asset   \n",
       "\n",
       "   Value Unit Of Measure Datasource Name Archived    Compressor  \\\n",
       "0                     kW    Example Data    False  Compressor 4   \n",
       "1                    NaN             NaN      NaN           NaN   \n",
       "2                    NaN             NaN      NaN           NaN   \n",
       "3                     kW    Example Data    False  Compressor 3   \n",
       "4                    NaN             NaN      NaN           NaN   \n",
       "5                    NaN             NaN      NaN           NaN   \n",
       "6                     °F    Example Data    False           NaN   \n",
       "7                    NaN             NaN      NaN           NaN   \n",
       "8                    NaN             NaN      NaN           NaN   \n",
       "9                    NaN             NaN      NaN           NaN   \n",
       "10                    kW    Example Data    False  Compressor 2   \n",
       "11                   NaN             NaN      NaN           NaN   \n",
       "12                   NaN             NaN      NaN           NaN   \n",
       "13                    kW    Example Data    False  Compressor 1   \n",
       "14                   NaN             NaN      NaN           NaN   \n",
       "15                   NaN             NaN      NaN           NaN   \n",
       "16                    °F    Example Data    False           NaN   \n",
       "17                   NaN             NaN      NaN           NaN   \n",
       "18                   NaN             NaN      NaN           NaN   \n",
       "19                   NaN             NaN      NaN           NaN   \n",
       "\n",
       "            Referenced Name Reference                   Name  ...  \\\n",
       "0   Area D_Compressor Power      True                  Power  ...   \n",
       "1                       NaN       NaN             High Power  ...   \n",
       "2                       NaN       NaN           Compressor 4  ...   \n",
       "3   Area C_Compressor Power      True                  Power  ...   \n",
       "4                       NaN       NaN             High Power  ...   \n",
       "5                       NaN       NaN           Compressor 3  ...   \n",
       "6        Area C_Temperature      True            Temperature  ...   \n",
       "7                       NaN       NaN  Compressor High Power  ...   \n",
       "8                       NaN       NaN   Compressor Power Max  ...   \n",
       "9                       NaN       NaN         Refrigerator 2  ...   \n",
       "10  Area B_Compressor Power      True                  Power  ...   \n",
       "11                      NaN       NaN             High Power  ...   \n",
       "12                      NaN       NaN           Compressor 2  ...   \n",
       "13  Area A_Compressor Power      True                  Power  ...   \n",
       "14                      NaN       NaN             High Power  ...   \n",
       "15                      NaN       NaN           Compressor 1  ...   \n",
       "16       Area A_Temperature      True            Temperature  ...   \n",
       "17                      NaN       NaN  Compressor High Power  ...   \n",
       "18                      NaN       NaN   Compressor Power Max  ...   \n",
       "19                      NaN       NaN         Refrigerator 1  ...   \n",
       "\n",
       "                                         Asset Object  \\\n",
       "0   Refrigerator Units >> Refrigerator 2 >> Compre...   \n",
       "1   Refrigerator Units >> Refrigerator 2 >> Compre...   \n",
       "2   Refrigerator Units >> Refrigerator 2 >> Compre...   \n",
       "3   Refrigerator Units >> Refrigerator 2 >> Compre...   \n",
       "4   Refrigerator Units >> Refrigerator 2 >> Compre...   \n",
       "5   Refrigerator Units >> Refrigerator 2 >> Compre...   \n",
       "6                Refrigerator Units >> Refrigerator 2   \n",
       "7                Refrigerator Units >> Refrigerator 2   \n",
       "8                Refrigerator Units >> Refrigerator 2   \n",
       "9                Refrigerator Units >> Refrigerator 2   \n",
       "10  Refrigerator Units >> Refrigerator 1 >> Compre...   \n",
       "11  Refrigerator Units >> Refrigerator 1 >> Compre...   \n",
       "12  Refrigerator Units >> Refrigerator 1 >> Compre...   \n",
       "13  Refrigerator Units >> Refrigerator 1 >> Compre...   \n",
       "14  Refrigerator Units >> Refrigerator 1 >> Compre...   \n",
       "15  Refrigerator Units >> Refrigerator 1 >> Compre...   \n",
       "16               Refrigerator Units >> Refrigerator 1   \n",
       "17               Refrigerator Units >> Refrigerator 1   \n",
       "18               Refrigerator Units >> Refrigerator 1   \n",
       "19               Refrigerator Units >> Refrigerator 1   \n",
       "\n",
       "                                    Path      Template Build Result  \\\n",
       "0   Refrigerator Units >> Refrigerator 2    Compressor      Success   \n",
       "1   Refrigerator Units >> Refrigerator 2    Compressor      Success   \n",
       "2   Refrigerator Units >> Refrigerator 2    Compressor      Success   \n",
       "3   Refrigerator Units >> Refrigerator 2    Compressor      Success   \n",
       "4   Refrigerator Units >> Refrigerator 2    Compressor      Success   \n",
       "5   Refrigerator Units >> Refrigerator 2    Compressor      Success   \n",
       "6                     Refrigerator Units  Refrigerator      Success   \n",
       "7                     Refrigerator Units  Refrigerator      Success   \n",
       "8                     Refrigerator Units  Refrigerator      Success   \n",
       "9                     Refrigerator Units  Refrigerator      Success   \n",
       "10  Refrigerator Units >> Refrigerator 1    Compressor      Success   \n",
       "11  Refrigerator Units >> Refrigerator 1    Compressor      Success   \n",
       "12  Refrigerator Units >> Refrigerator 1    Compressor      Success   \n",
       "13  Refrigerator Units >> Refrigerator 1    Compressor      Success   \n",
       "14  Refrigerator Units >> Refrigerator 1    Compressor      Success   \n",
       "15  Refrigerator Units >> Refrigerator 1    Compressor      Success   \n",
       "16                    Refrigerator Units  Refrigerator      Success   \n",
       "17                    Refrigerator Units  Refrigerator      Success   \n",
       "18                    Refrigerator Units  Refrigerator      Success   \n",
       "19                    Refrigerator Units  Refrigerator      Success   \n",
       "\n",
       "                                Formula  \\\n",
       "0                                   NaN   \n",
       "1   $a.valueSearch(isGreaterThan(20kW))   \n",
       "2                                   NaN   \n",
       "3                                   NaN   \n",
       "4   $a.valueSearch(isGreaterThan(20kW))   \n",
       "5                                   NaN   \n",
       "6                                   NaN   \n",
       "7                            $p0 || $p1   \n",
       "8                          $p0.max($p1)   \n",
       "9                                   NaN   \n",
       "10                                  NaN   \n",
       "11  $a.valueSearch(isGreaterThan(20kW))   \n",
       "12                                  NaN   \n",
       "13                                  NaN   \n",
       "14  $a.valueSearch(isGreaterThan(20kW))   \n",
       "15                                  NaN   \n",
       "16                                  NaN   \n",
       "17                           $p0 || $p1   \n",
       "18                         $p0.max($p1)   \n",
       "19                                  NaN   \n",
       "\n",
       "                                   Formula Parameters Datasource Class  \\\n",
       "0       [signal=844054AD-8264-4CAF-817B-8FEB6749107A]    Seeq Data Lab   \n",
       "1            [a=2EF82742-9146-4C76-BF6D-A3A9A2BBA194]    Seeq Data Lab   \n",
       "2                                                 NaN    Seeq Data Lab   \n",
       "3       [signal=80ECC0A0-C344-4D1B-9C3F-20E4AFE2FC61]    Seeq Data Lab   \n",
       "4            [a=B44A559C-2DD3-44D5-B98F-D03130A04BA6]    Seeq Data Lab   \n",
       "5                                                 NaN    Seeq Data Lab   \n",
       "6       [signal=37992633-97AD-4C82-BD73-AB9CE47CDC85]    Seeq Data Lab   \n",
       "7   [p0=68F47A38-D6FD-4258-A0DF-02C73A2488F2, p1=9...    Seeq Data Lab   \n",
       "8   [p0=2EF82742-9146-4C76-BF6D-A3A9A2BBA194, p1=B...    Seeq Data Lab   \n",
       "9                                                 NaN    Seeq Data Lab   \n",
       "10      [signal=A9BB5690-E6BA-46E0-98CF-E61E4677E8AC]    Seeq Data Lab   \n",
       "11           [a=C5BAA4AE-48FB-4631-AAB8-E94BB780FF5B]    Seeq Data Lab   \n",
       "12                                                NaN    Seeq Data Lab   \n",
       "13      [signal=1A238C28-0DAB-440E-A63F-86E06FF45BF9]    Seeq Data Lab   \n",
       "14           [a=09D2BC42-87C5-42A4-AB81-2C7948EC0404]    Seeq Data Lab   \n",
       "15                                                NaN    Seeq Data Lab   \n",
       "16      [signal=CAF69C63-B970-435A-8D58-838FE8564ADE]    Seeq Data Lab   \n",
       "17  [p0=FCB08D48-32C3-4DE0-98DA-016617543441, p1=4...    Seeq Data Lab   \n",
       "18  [p0=C5BAA4AE-48FB-4631-AAB8-E94BB780FF5B, p1=0...    Seeq Data Lab   \n",
       "19                                                NaN    Seeq Data Lab   \n",
       "\n",
       "    Datasource ID                                            Data ID  \\\n",
       "0   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...   \n",
       "1   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...   \n",
       "2   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...   \n",
       "3   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...   \n",
       "4   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...   \n",
       "5   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...   \n",
       "6   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...   \n",
       "7   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...   \n",
       "8   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...   \n",
       "9   Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...   \n",
       "10  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...   \n",
       "11  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...   \n",
       "12  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...   \n",
       "13  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...   \n",
       "14  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...   \n",
       "15  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...   \n",
       "16  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...   \n",
       "17  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Condit...   \n",
       "18  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Signal...   \n",
       "19  Seeq Data Lab  [E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B] {Asset}...   \n",
       "\n",
       "   Push Result  \n",
       "0      Success  \n",
       "1      Success  \n",
       "2      Success  \n",
       "3      Success  \n",
       "4      Success  \n",
       "5      Success  \n",
       "6      Success  \n",
       "7      Success  \n",
       "8      Success  \n",
       "9      Success  \n",
       "10     Success  \n",
       "11     Success  \n",
       "12     Success  \n",
       "13     Success  \n",
       "14     Success  \n",
       "15     Success  \n",
       "16     Success  \n",
       "17     Success  \n",
       "18     Success  \n",
       "19     Success  \n",
       "\n",
       "[20 rows x 21 columns]"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class Refrigerator(Asset):\n",
    "    @Asset.Attribute()\n",
    "    def Temperature(self, metadata):\n",
    "        # This signal attribute is assigned to the Refrigerator asset\n",
    "        return metadata[metadata['Name'].str.endswith('Temperature')]\n",
    "\n",
    "    # Note the use of Asset.Component here, which allows us to return a list of definitions\n",
    "    # instead of just a single definition.\n",
    "    @Asset.Component()\n",
    "    def Compressors(self, metadata):\n",
    "        # Using the Compressor template class, we build all of the compressor definitions\n",
    "        # associated with a particular Refrigerator. The column_name supplied tells the\n",
    "        # build_components function which metadata column to use for the Compressor names.\n",
    "        return self.build_components(template=Compressor, metadata=metadata, column_name='Compressor')\n",
    "    \n",
    "    @Asset.Attribute()\n",
    "    def Compressor_Power_Max(self, metadata):\n",
    "        # We can refer to the Compressors and \"pick\" attributes for which to perform a\n",
    "        # roll up. In this example, we're picking the 'Power' signals that are on each\n",
    "        # compressor and creating a new signal representing the maximum power across\n",
    "        # all the compressors.\n",
    "        return self.Compressors().pick({\n",
    "            'Name': 'Power'\n",
    "        }).roll_up('maximum')\n",
    "    \n",
    "    @Asset.Attribute()\n",
    "    def Compressor_High_Power(self, metadata):\n",
    "        # Similar to Compressor_Power_Max, we are rolling up a compressor calculation but\n",
    "        # this time it's a condition. 'High Power' at the Refrigerator level will have\n",
    "        # capsules if either compressor's 'High Power' condition is present.\n",
    "        return self.Compressors().pick({\n",
    "            'Name': 'High Power'\n",
    "        }).roll_up('union')\n",
    "    \n",
    "class Compressor(Asset):\n",
    "    @Asset.Attribute()\n",
    "    def Power(self, metadata):\n",
    "        # Each compressor has just a single attribute, Power\n",
    "        return metadata[metadata['Name'].str.endswith('Power')]\n",
    "    \n",
    "    @Asset.Attribute()\n",
    "    def High_Power(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Condition',\n",
    "            'Formula': '$a.valueSearch(isGreaterThan(20kW))',\n",
    "            'Formula Parameters': {\n",
    "                '$a': self.Power()\n",
    "            }\n",
    "        }\n",
    "\n",
    "build_df = spy.assets.build(Refrigerator, metadata_df)\n",
    "\n",
    "spy.push(metadata=build_df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There should now be a `Refrigerator Units` asset tree in Seeq with two Refrigerators with two Compressors each.\n",
    "\n",
    "In this manner, you can make an arbitrarily deep hierarchy composed of various asset types."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Metrics\n",
    "\n",
    "Metrics (aka _Scorecard Metrics_ / _Threshold Metrics_) are powerful items in Seeq that allow you to easily specify aggregations, statistics and associated boundaries. Click on `Scorecard Metric` in the Seeq Workbench _Tools_ pane to experiment with them.\n",
    "\n",
    "Metrics can be specified as attributes in asset classes and can refer to other attributes. Here are some examples:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "class HVAC_With_Metrics(HVAC):\n",
    "    @Asset.Attribute()\n",
    "    def Too_Humid(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Condition',\n",
    "            'Name': 'Too Humid',\n",
    "            'Formula': '$relhumid.valueSearch(isGreaterThan(70%))',\n",
    "            'Formula Parameters': {\n",
    "                '$relhumid': self.Relative_Humidity(),\n",
    "            }\n",
    "        }\n",
    "\n",
    "    @Asset.Attribute()\n",
    "    def Humidity_Upper_Bound(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Signal',\n",
    "            'Name': 'Humidity Upper Bound',\n",
    "            'Formula': '$relhumid + 10',\n",
    "            'Formula Parameters': {\n",
    "                '$relhumid': self.Relative_Humidity(),\n",
    "            }\n",
    "        }\n",
    "\n",
    "    @Asset.Attribute()\n",
    "    def Humidity_Lower_Bound(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Signal',\n",
    "            'Name': 'Humidity Lower Bound',\n",
    "            'Formula': '$relhumid - 10',\n",
    "            'Formula Parameters': {\n",
    "                '$relhumid': self.Relative_Humidity(),\n",
    "            }\n",
    "        }\n",
    "\n",
    "    @Asset.Attribute()\n",
    "    def Humidity_Statistic_KPI(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Metric',\n",
    "            'Measured Item': self.Relative_Humidity(),\n",
    "            'Statistic': 'Range'\n",
    "        }\n",
    "\n",
    "    @Asset.Attribute()\n",
    "    def Humidity_Simple_KPI(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Metric',\n",
    "            'Measured Item': self.Relative_Humidity(),\n",
    "            'Thresholds': {\n",
    "                'HiHi': self.Humidity_Upper_Bound(),\n",
    "                'LoLo': self.Humidity_Lower_Bound()\n",
    "            }\n",
    "        }\n",
    "\n",
    "    @Asset.Attribute()\n",
    "    def Humidity_Condition_KPI(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Metric',\n",
    "            'Measured Item': self.Relative_Humidity(),\n",
    "            'Statistic': 'Maximum',\n",
    "            'Bounding Condition': self.Too_Humid(),\n",
    "            'Bounding Condition Maximum Duration': '30h'\n",
    "        }\n",
    "\n",
    "    @Asset.Attribute()\n",
    "    def Humidity_Continuous_KPI(self, metadata):\n",
    "        return {\n",
    "            'Type': 'Metric',\n",
    "            'Measured Item': self.Relative_Humidity(),\n",
    "            'Statistic': 'Minimum',\n",
    "            'Duration': '6h',\n",
    "            'Period': '4h',\n",
    "            'Thresholds': {\n",
    "                'HiHiHi': 60,\n",
    "                'HiHi': 40,\n",
    "                'LoLo': 20\n",
    "            }\n",
    "        }"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now let's push a small asset tree with these metrics in it:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div style=\"background-color: #EEFFEE;text-align: left;\">Pushed successfully to datasource <strong>Seeq Data Lab [Datasource ID: Seeq Data Lab]</strong> and scoped to workbook ID <strong>E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B</strong><br>Click the following link to see what you pushed in Seeq:<br><a href=\"http://localhost:34216/D5B313D9-4E6C-430F-AA86-680331D28C33/workbook/E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B/worksheet/F0361088-983C-41E4-86C6-A057BD4C248B\" target=\"_new\">http://localhost:34216/D5B313D9-4E6C-430F-AA86-680331D28C33/workbook/E965F8DF-EC82-4BF7-AE43-22E6ADA5B20B/worksheet/F0361088-983C-41E4-86C6-A057BD4C248B</a></div>"
      ],
      "text/plain": [
       "<IPython.core.display.HTML object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "metadata_df = spy.search({\n",
    "    'Name': 'Area A_*',\n",
    "    'Datasource Class': 'Time Series CSV Files'\n",
    "})\n",
    "\n",
    "metadata_df['Build Asset'] = 'Metrics Area A'\n",
    "metadata_df['Build Path'] = 'Metrics Example'\n",
    "build_df = spy.assets.build(HVAC_With_Metrics, metadata_df)\n",
    "push_df = spy.push(metadata=build_df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You should now see a `Metrics Example` tree that you can drill into and bring up metrics."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Troubleshooting / Debugging\n",
    "\n",
    "Since we are using Python classes to describe our asset tree and the attributes therein, troubleshooting our code is a little bit harder than just working with DataFrames. If the code within your Asset.Attribute function isn't working the way you expect, ideally you would be able to see what's happening inside of it while the `spy.assets.build()` function is running.\n",
    "\n",
    "A useful tool is Python's built-in command-line debugger called [pdb](https://docs.python.org/3/library/pdb.html). Let's try using it in the example below. When you execute the following cell, you'll notice that an `ipdb>` prompt appears, showing you the line of code you're about to execute. You can show the value of the `metadata` variable just by typing `metadata` and pressing ENTER. Then type `c` and hit ENTER to allow execution to continue."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "> \u001b[1;32m<ipython-input-16-7c76d2a34c9e>\u001b[0m(14)\u001b[0;36mMy_Scalar\u001b[1;34m()\u001b[0m\n",
      "\u001b[1;32m     12 \u001b[1;33m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[0m\u001b[1;32m     13 \u001b[1;33m        return {\n",
      "\u001b[0m\u001b[1;32m---> 14 \u001b[1;33m            \u001b[1;34m'Type'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;34m'Scalar'\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[0m\u001b[1;32m     15 \u001b[1;33m            \u001b[1;34m'Formula'\u001b[0m\u001b[1;33m:\u001b[0m \u001b[1;34m'%s'\u001b[0m \u001b[1;33m%\u001b[0m \u001b[0mlen\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mmetadata\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[0m\u001b[1;32m     16 \u001b[1;33m        }\n",
      "\u001b[0m\n",
      "ipdb> c\n"
     ]
    }
   ],
   "source": [
    "# You must import the IPython breakpoint function, called \"set_trace\"\n",
    "from IPython.core.debugger import set_trace\n",
    "\n",
    "class DebuggingExample(Asset):\n",
    "    @Asset.Attribute()\n",
    "    def My_Scalar(self, metadata):\n",
    "        # Put in a \"breakpoint\" so that execution stops here and a command line pops up. Notice the\n",
    "        # if statement here as an example of how to be more precise about when the breakpoint is hit:\n",
    "        # We're only going to enter the debugger if the asset's name is 'Debugging Area A'\n",
    "        if self.definition['Name'] == 'Debugging Area A':\n",
    "            set_trace()\n",
    "        \n",
    "        return {\n",
    "            'Type': 'Scalar',\n",
    "            'Formula': '%s' % len(metadata)\n",
    "        }\n",
    "    \n",
    "debugging_metadata_df = pd.DataFrame([{\n",
    "    'Build Asset': 'Debugging Area A',\n",
    "    'Build Path': 'Debugging Example'\n",
    "}])\n",
    "\n",
    "build_df = spy.assets.build(DebuggingExample, debugging_metadata_df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "There are lots of great commands to help you navigate through your code as it executes. Read through all the commands at [pdb](https://docs.python.org/3/library/pdb.html) to familiarize yourself. The most important ones are `step`, `next` and `continue`. Anything else you type at the prompt gets evaluated as Python code, so you can do things like `metadata['Build Asset']` to show just the `Build Asset` column of the `metadata` DataFrame."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Using an Integrated Development Environment (IDE)\n",
    "\n",
    "If you want to \"level up\" and start using more powerful development and debugging tools, you can! There are several good choices available to you, including [SPyder](https://www.spyder-ide.org/) (free and open source) and [PyCharm](https://www.jetbrains.com/pycharm/) (Community Edition is free).\n",
    "\n",
    "If you take this route, you'll want to move your code into \"normal\" .py files and execute SPy commands from a main script with the debugger engaged."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
