Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The Device Simulator functionality allows you to add devices from our catalog to an account and use them as if they were real hardware. Everything about the process is the same as real hardware - readings can be triggered, configured alerts will fire, device history is the same, etc. Both templates & codec must support the feature before it can be enabled.

...

Table of Contents

Set Simulator flag enabled

...

Code Block
[
  {
    "format": "json",
    "ignore_codec": true,
    "payload": [
      {
        "channel": 5,
        "type": "batt",
        "unit": "p",
        "name": "Battery",
        "value": 88
      },
      {
        "channel": 506,
        "type": "co2",
        "unit": "ppm",
        "name": "CO2",
        "value": 250
      }
    ]
  },
  {
    "format": "json",
    "ignore_codec": true,
    "payload": [
      {
        "channel": 5,
        "type": "batt",
        "unit": "p",
        "name": "Battery",
        "value": 28.57
      },
      {
        "channel": 506,
        "type": "co2",
        "unit": "ppm",
        "name": "CO2",
        "value": 500
      }
    ]
  }
]

FAQs

When to add Simulator support

Per Upper Management - by default all new templates should have this enabled.

Always add support in the following situations:

  • Hardware support is being added to the platform for the first time.

...

  • New version of hardware, with different sensors or different behavior. Use common sense here - if to a user of the dashboard there are no differences in data displayed, alerts or widgets present, etc then there’s no need for another entry in Simulated devices.

When to NOT have simulator support enabled:

  • Unless directed to do so specifically, we do not want Templates that were created specifically for our partners to be enabled in the Simulator.

  • (lightbulb) Do not forget that if you make a Duplicate of an existing template that has the simulator flag enabled, the copy will get it too. This is a common mistake we make when copying templates in order to customize for our partners.

Must I add sample Payloads?

Technically, no (but effectively yes). Enabling the simulator flag is the only requirement - live data points will be pulled where possible for existing devices of the same type. But in when adding devices to the simulator for release, QA found that very few devices had enough live data to get away with adding the flag only. We went back and added payloads for basically every old device as a result of this finding.

Note

After enabling a device in the simulated device list, be sure to add it into an account. If you find that it says ‘Waiting on data’ after being added, that’s an indication that you need to add sample payloads before calling it ready for customers.

Another good indicator that samples are needed is if you click the Update button a few times and nothing changes (or it’s so subtle it won’t be noticed easily). This leads to poor UX and so should be solved by adding payloads.

We really only recommend relying on live data points to be found if you are dealing with a template that will be a widely deployed piece of hardware with tons of data always coming in.

How to locate sample payloads from the codec

...

  1. Device may not have sample payloads - There may no longer be enough live data to pull from. In this case look to see if sample_payloads is defined in the Template. If not, add it with good data that can always be pulled from [Shramik currently handling this].

  2. Sample readings are random, can be duplicated - The data pulled for the sample (whether live or sample) is random. This means it is entirely possible the same data can be pulled multiple times even though you’ve clicked the button. There is an enhancement request for this [See eptak’s list of tasks] where we want the sample payloads to be sent in order, one after another when provided.

  3. You haven’t customized the sample payloads well enough - When grabbing the sample payloads, make sure that each one if very different from the others. E.g. don’t change the Temperature slightly, change it by a bigger amount. Always fill in valid GPS coordinates and make them change location intelligently, etc.

Special Case: BLE / Beacons required (requires_template_id)

Info

We added this to solve the ‘Beacon also needs to be present’ scenario, but one could imagine we’ll have more situations where a device won’t work unless ‘this or that is also present’ that will need to be solved as well.

...