Capabilities section
Capabilities define all the data Channels used by the device. Before your device’s data will appear in the app, each data point will need to be defined in your template as a Capability.
Creating Capabilities
Use the New Capability button to start creating a new capability. You can have as few or as many channels as needed, but for normal operation you will need the following minimum:
Signal (as Value: RSSI/Signal Strength).
Battery (as Value: Battery).
One or more additional capabilities for data your device uses. E.g. Probe Temperature, CO2 level, Motion status.
When creating a new Capability, refer to the following notes for each field:
Template: Choose the data archetype for this capability. This helps select defaults shown during the rest of the creation process. The two most common templates selected here will be Sensor Value or Sensor Status.
Data Type: Select the type of data used by this capability. The data type selected determines defaults for the rest of the process, including the default Units for your capability. You can pick from the list of default data types or create/edit a data type as needed.
Name: Give your capability a name. Note that this name will be displayed throughout the application, so we recommend a short user-readable name.💡 Note the special cases of Signal and Battery used in the application. The primary Signal strength and battery levels for devices is displayed in a special way in the application. If you want to take advantage of this, you must name these two capabilities “Signal” and “Battery” or they will appear commingled with all of your other data points.
Channel ID: Enter the correct Channel on which this data comes in. Be sure to refer to hardware and codec documentation and match the correct channel for this data point.
Chart: Select the type of Chart to visualize the data for this capability (e.g. History’s Chart tab).💡 If you do not want users to visualize the data in such a manner, you can select “n/a” and this data point will not appear in the Chart options shown to users.
Icon: Select the type of icon displayed for this data point.
Creating/Editing Data Types
Creating A New Data Type
If you do not see an existing data type that satisfies your data, you can create a new one. To do so, just click on the New Data Type button.
When creating a new data type, refer to the following notes on each field:
Template: Select the appropriate data archetype for this data type. This will help determine defaults and sort your data type appropriately when selected by users during future Capability creation processes.
Data Type: Enter an internal name for your data type. This is the name that will be displayed when finding your data type in the Data Type dropdown during Capability creation processes. E.g. Noise (Peak), Noise (Average).
Name: Enter a user-friendly display name. This is the name displayed to users when viewing device data in the application.💡 This can match the name you entered for Data Type, but it doesn’t have to. E.g. you might have “Noise (Peak)” in Data Type but want to display “Peak Noise” to users viewing their device data in the app.
Payload/Abbreviation: Enter the short payload abbreviation used in the codec for this data. E.g. “accel”, “bp”💡 There are specific rules for which payload abbreviation to use. Refer to your codec and the API documentation for additional details.
Icon: Specify the default icon selected when this data type is selected.
Defining Units
Within each data type you can define the supported units. For example, Temperature may support degrees in Fahrenheit, Celsius or even Kelvin. Units allow you to define not only what units are supported, but also how they are displayed to the user, how they appear in the codec as well as how they relate to one another (unit conversion).
Units for your data type will automatically come with any default units defined in the parent data type. For example, the default Temperature data type will automatically pull in Fahrenheit, Celsius and any other units. You can then customize them in your data type as needed, or if you are creating a completely new data type you will need to create the units so that anybody who makes use of your data type going forward will have these defaults.
Some notes on fields you will see for Units:
Label: ??? (doesn’t seem to be a need for this since the user can’t search for it - not sure why we don’t just have Display Unit alone - if this is internal, we should hide it from the user). Example: Celsius.
Display Unit: The name of the Unit, as displayed to the user. Example: °C.
Constant: The constant used to refer to this Unit in payloads. Example: CELSIUS💡 There are specific rules for which constant to use. Refer to your codec and the API documentation for additional details. Chances are the constant you want here has already been defined and you just need to match an existing example from the API documentation or from another template.
# of Decimals: Specify the decimal precision that you want displayed in the app.
Payload: The short abbreviation used to denote this unit in the payload. Example: c💡 There are specific rules for which constant to use. Refer to your codec and the API documentation for additional details. Again, there are examples in the API and you can refer to other templates for just above every existing unit type you can think of.
Standard Unit of Measurement: ???
Device sends data in this unit: ???
Equations: These allow you to define relations of one unit to another for conversion. For example users may want to switch the display of Temperature values from Fahrenheit to Celsius.💡 Don’t forget to clearly define which unit your device sends so that the other units can use this as a reference in your equations to perform the conversion.
Advanced Properties
????
Editing Existing Data Types
To edit an existing data type, find the existing data type in the dropdown and click on the Edit icon. On the screen that follows you can then make any changes needed.
The options that you see when editing an existing type is the same as when you create a new one. Just remember that making any changes here will impact all existing users of the type, so it’s best to tread carefully when making any changes.
Ordering Capabilities
After creating a list of capabilities, you will notice a number and position control shown in the Order column. This allows you to control the order in which the capabilities are displayed within the app (e.g. on Manage screen, History, Reports).
💡 Battery and Signal do not have order controls because they are displayed in specific places in the app. If you have additional data points for Signal or Battery and you want to control the order for these, simply name them something else (e.g. “Batt” instead of Battery, or “RSSI” instead of Signal).