Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
We're 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 Enterprise: For customers requiring dedicated support, service levels, and/or support for large volumes of devices or data.
Optional: Ubidots Private Cloud deployment
: 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). See .
IoT Development can be hard, but we want to make it as easy as it can get.
We know this is not an easy undertaking, specially because there are so many layers involved in an IoT project (from hardware to cloud), and we can only act in the last one: the Application layer. This being said, we do place lots of heart in understanding the entire IoT development process, and we hope these guides serve as a way to aid that process.
New to Ubidots?
We're an Industrial IoT (Internet of Things) Platform helping thousands of End Users and System Integrators connect their industrial assets to the cloud, maximizing uptime, improving efficiency, and driving digital transformation.
These guides are categorized as follows:
Integration guides: A compilation of tutorials, libraries and examples on how to connect various devices, gateways and 3rd-part services to Ubidots.
UbiFunctions: Our serverless environment has grown from a custom decoding tool, to an integration and analytics powerhouse. It deserved a chapter on its own.
Dashboards: Our drag-n-drop IoT dashboards are often called "codeless", but this doesn't mean they don't support a good degree of customization. Check these guides to learn how to extend the power of Ubidots dashboards.
Learn more about , or .
We'll continue to add more guides and categories. in the meantime, make sure you check out our !
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:
Each dot contains these items:
Item
Description
Mandatory
Size limit
value
A numerical value.
Yes
Up to 16 bit floating-point numbers.
timestamp
Unix Epoch time, in milliseconds. If not specified, then our servers will assign one upon reception.
No
context
An arbitrary collection of key-value pairs. Mostly used to store the latitude and longitude coordinates of GPS devices.
No
1 KB
You can find further details below.
A numerical value. Ubidots accepts up to 16 floating-point length numbers.
{"value" : 34.87654974}
But why did we choose to have a timestamp in milliseconds? This is not only a common practice in APIs, it also allows us to support many IoT applications where several datapoints are send in the same second.
"timestamp" : 1537453824000
The above timestamp corresponds to Thursday, September 20, 2018 2:30:24 PM.
Numerical values are not the only data type supported; you can also store string or char data types inside what we call context. The context is a key-value object that allows you to store not only numerical but also string values. An example use of the context could be:
"context" : {"status" : "on", "weather" : "sunny"}
A context is commonly used to store the latitude and longitude coordinates of your device for GPS/tracking application use cases. All Ubidots maps uses the lat and lng keys from a dot's context to extract the coordinates of your device, in that way you just need to send a single dot with the coordinates values in the variable context to plot a map instead of sending separately both latitude and longitude in two different variables. Below you can find a typical context with coordinates values:
"context" : {"lat":-6.2, "lng":75.4, "weather" : "sunny"}
Please note that you can mix both string and numerical values in the context. If your application is for geo-localization purposes, make sure that the coordinates are set in decimal degrees.
We are a hardware-agnostic cloud, and do not sell any hardware.
We do work with hardware companies as partners in order to test how their hardware integrates with our cloud, but this does not imply a distribution partnership.
Ubidots does not provide System Integration services. In most cases, our licenses enable projects that are deployed by either a specialized SI (System Integrator), or a customer with internal integration capabilities.
However, if your project requires Professional Services other than hardware integration, then the Ubidots team - together with an Ubidots Enterprise license - might be a good fit.
Here some areas where our team can help:
Integration of 3rd-party APIs and databases with Ubidots.
Integration with your Security Provider, for Single Sign On (SSO) purposes.
Integration of Ubidots dashboards or widgets into your Web or Mobile application.
Development of key features to enable your use case.
By default, our business model is to enable beautiful IoT dashboards, but you can take all the credit!
This means that, in most cases, there's no need to become an Ubidots Distributor in order to use our tools and serve clients in your geography.
This diagram better explains how to use our platform, under a white-label model:
This approach is quite powerful because it enables you to offer a platform as if it were your own. Such offering, together with your value added services, allows you to determine your own mark up based on the particularities of your market and region. Such mark up is usually bigger than a distributor discount.
If the above model still doesn't work for you, a distribution agreement makes sense when at least one of the following is true:
The partner needs to act as an official Ubidots distributor in front of their clients. This is the case for some public tender opportunities.
The partner wishes to transfer all the admin capabilities of an Ubidots account to the end customer.
The partner realizes value-added services that are not bundled into an Ubidots license (i.e. Consulting companies), so it is not in his interest to bundle the cost of the platform into an entire solution.
A timestamp, as best described , is a way to track time as a running total of seconds. This count starts at the Unix Epoch on January 1st, 1970 at UTC. Therefore, the unix time stamp is merely the number of seconds between a particular date and the Unix Epoch.
PRO-TIP: A useful tool to convert between Unix timestamps and human-readable dates is .
In practice, we only recommend using downlink commands to push configurations to remote devices, or better said, to perform "Virtual controls". The problem with physical controls is that, even though they are technically possible, they pose a huge risk when communication fails.
See some examples of Virtual vs Physical controls:
Control Type
Examples
👍 Virtual controls
Change the update frequency of a device.
Reboot a device remotely.
Command a device to download a new firmware from a specific URL.
⚠️ Physical controls
Open/Close a water valve. DANGER: If the "close" command is not received, then a flood might happen.
Start/Stop a production line. DANGER: If the "start" command is received during a maintenance window, then an accident can happen.
Ubidots accepts , , and payloads. To learn how to send data using each one of these protocols, please refer to our .
In theory, you can program a device to act based on changes of an Ubidots variable. This could be done by either polling the cloud at periodic time intervals, or by .
Global Connectivity IoT SIM Cards
Build your own custom widgets with the HTML Canvas
Ubidots offers off-the-shelf widgets to cover most visualization needs. However, some projects may require more specific and custom widgets. That's why we offer the HTML Canvas widget, which supports your own code to deliver custom visualizations.
HTML Canvas is a widget that enables the creation of custom widgets. It accomplishes this by letting the user write their own custom code using the following languages (as well as some Ubidots' built-in methods and third-party libraries which will be described later):
HTML
CSS
JavaScript
This widget features a code editor composed of three tabs, one for each language.
Whenever the other available widgets don't meet a specific requirement in terms of functionality and/or style.
Go to a dashboard, click the Add new widget button (+), scroll down to the Advanced section and select HTML Canvas.
The widget offers the following settings:
Code editor
3rd party libraries
Enable lazy loading
Preload Dashboard data
The appearence of the widget can be further customized with these options:
Name
Custom Style
Check the documentation here in order to know how to customize your HTML Canvas' styles.