UBIDOTS
Ubidots is an Internet of Things Development Platform helping thousands of IoT
Entrepreneurs, System Integrators, and Businesses launch and scale their IoT projects without
having to hire a software team.
Ubidots provides 3 tiers to power your IoT Development cycle:
Ubidots STEM: A free tier for makers, students, researchers, and hobbysts learning
about the possibilities of IoT.
Ubidots Cloud: Our main deployment, offered under the traditional SaaS model
(Software as a Service).
Ubidots Enterprise: For customers requiring dedicated support, service levels, and/or
support for large volumes of devices or data.
Optional: Ubidots Private Cloud deployment.
The main entities in Ubidots are:
Devices
Variables
Dots
Every time an Ubidots Device receives a sensor value in a variable, a data-point or "dot" is
created. Ubidots stores dots that come from your devices inside variables, and these stored
dots have corresponding timestamps:
An Ubidots Device is a virtual entity. This means you could map multiple physical devices to
a single Ubidots Device, or map many variables from a single physical device to several
Ubidots Devices. It is your decision how you want to organize your data in your Ubidots
account.
Our recommendation is of course to map 1 Physical Device to 1 Ubidots Device.
The basic components of any IoT application powered by Ubidots are Devices, Variables,
Synthetic Variables, Dashboards, and Events.
1. Devices
A Ubidots' device is a virtual representation of a data-source or simply, an asset taking sensor
data and transmitting said data through a connection protocol to Ubidots' cloud. Click here
for current firmware examples and tutorials for connecting your device to Ubidots.
All devices are different, but the standard setup on any device entails:
A library that should be installed in the device's IDE (not required).
Filling parameters for authentication and connection such as a TOKEN (i.e., the
unique ID for each account or user), device and variable labels (i.e., devices and
variables unique identifiers in Ubidots), Wi-Fi SSID and password, depending on the
device and the requirements.
Making API requests (i.e., a call from a device to the web server). Ubidots’ libraries
spare the need to manually make these requests. However, if you’re working with a
device not currently in the list of supported hardware, you can choose a connectivity
protocol such as MQTT or HTTP and make a request using the API accordingly.
Creating devices: there are three ways to create devices:
1. Devices are created automatically in Ubidots the first time a dot is received to a user's
private TOKEN or an Organizational TOKEN.
2. Clicking the "+" icon in the top right corner of any single device's screen.
3. Creating a Device Type which then creates a new device with pre-determined device
properties, appearance, and variables and automate the on-boarding of thousands of
devices.
2. Variables
Once a device is created and receiving data from your hardware or another 3rd party data-
source, the data will be presented in its raw or calculated form as a variable.
Types of Variables:
– Default - raw data coming from devices (people counted, for example).
– Synthetic - correspond to statistical or arithmetical operations of default variables in a
determined time-frame (e.g., average daily traffic this month).
Below you can read more about synthetic variable setups.
Creating variables: there are two ways to create variables.
1. Assigning a label as a variable within your hardware's code.
2. Clicking on the "+" or "+ add variable" buttons, found in any device screen, and
assigning a name to it (which will also correspond to the variable's label). By default,
Ubidots assigns an additional unique identifier to the variable called "variable ID". To
find both the variable's ID and variable's label, click on the "i" button found on each
variable card.
3. Synthetic Variables Engine
Ubidots' synthetic variables engine is a tool that allows you to create insights from the raw
data stored in Ubidots in a simple and effective way. With it, you can create synthetic
variables that calculate and enhance data to enhance decision-making based on data.
For example, to calculate the average (mean) energy consumed this week, we created a
synthetic variable called "Energy consumed/day" to calculate the product of "Current" and
"Voltage" (P=C*V): The default variable "Current" is multiplied by "Voltage". Then average
the product every week with the built-in function mean().
Synthetic Variables Analytics
There are some available functions, such as cos(x) or ceil(x) functions, and more!
Note that default variables are yellow, and Synthetic Variables are green.
4. Dashboards and Visualizations
Dashboards are the human-machine interfaces where data is easily visualized. Your Ubidots
account will let you create as many dashboards as needed, containing widgets and data-
visualizations to comprehend your data at a glance.
5. Events
In Ubidots, Events are messages triggered and delivered through Email, SMS, Telegrams,
Slack, Voice Call or webhook messages based on a customized design rule created in the
application.
3 Event types:
When sensor readings reach a specific value:
Variable is inactive during a specific amount of time:
When a device enters or exits a specific area (geofence):
1. Creating a conditional event
To begin, head to the “data” tab →"Events" and hover over the “+” button, located at the
upper right corner of the screen, and click on the “create event” button (the one with a “+”
icon).
Once the event modal pops up, you’ll find yourself in the first stage of configuration, where
you’ll set up the logic of the triggers.
By default, a newly created event loads with a value-based trigger, but you can choose
another type of trigger by clicking on the “+ add trigger” or “+ add OR group” buttons.
The available types of triggers are these:
Value based (e.g., if the value is greater than X).
Inactivity (e.g., if the variable has not been updated in X amount of time).
Geofence (if the device enters/exits a defined area in a map).
These triggers can be deleted or copied by clicking on the corresponding button located at the
upper right corner of the trigger.
To learn about inactivity and geofence triggers, head to their corresponding guides, linked
above. Keep reading this guide to learn about value-based triggers.
2. Creating a value-based trigger
2.1. Triggers
Step 1: Select one variable per conditional expression. Multiple variables can be added using
AND (“+ add trigger”)/OR (“+ add OR group”) conditionals.
Step 2: Define the triggering condition out of these options:
Equal to
Not equal to
Greater than
Greater than or equal to
Less than
Less than or equal to
Step 3: Select whether the event’s variable’s value will be compared to a fixed value or to
another Ubidots variable by choosing the Dynamic Threshold option (the “+” button next to
the “trigger value” field). With a dynamic threshold it’s possible to, for example, have an
event activate when a variable's value is greater than another variable. Note that dynamic
thresholds are only available from the Industrial plan and above.
2.2. Actions
After configuring the “triggers” tab and clicking on “next”, you’ll move onto the “actions”
tab. There, you’ll be able to select and configure the action that will be triggered when the
event is activated.
Step 4: Click on the “+ add action” button to start this process. These are the options you can
choose from:
Send email
Send SMS
Send Telegram
Make voice call
Send Slack
Set variable
Trigger webhook
Trigger function
2.3. Settings
After completing the action configuration and clicking on “next”, you’ll proceed to the final
step, the “settings” tab. There, you’ll identify your event and define its active windows.
Step 5: Start this stage by naming your event and, optionally, giving it a description so that
it’s easy to distinguish from other events later on.
Step 6: Another optional step is to use a tag on the event. This is a great tool to control what
your end users see in your app. In this case, for instance, you could decide that your end user
sees one event, but not another, using tags.
Step 7: Determine the activity window in which the events should be executed. An event can
have multiple active windows by clicking on the “+ add window button” and configuring
them correspondingly.
Notes:
1. Events will only activate during the active windows you define in this step.
2. A variable whose incoming values don’t go below the defined threshold will still
activate the event when a new value arrives during the next active window (as
depicted in the image below).
Step 8: Click on the “save” button to finish creating the event.