SlideShare a Scribd company logo
Marc Pous
CEO, thethings.iO
marc@thethings.io
(+34) 936 816 891
training
T R A I N I N G
Internet of Things projects made easy
+ +
T R A I N I N G
the most simple enterprise IoT platform
T R A I N I N G
Before / After
T R A I N I N G
Reasons Why
Scalability Reduce Time to
Market
Flexible Pricing Lower Development
Costs
T R A I N I N G
Use Cases
T R A I N I N G
Who is it for
ENTERPRISES OEMs INTEGRATION FIRMS DEVELOPERS
“Scalable and
flexible solutions for
your customers and
products connected
to the Internet”
“Save time and cut
costs using
thethings.iO with
your customer’s
IoT projects”
“Easily prototype
your IoT projects,
from idea to
production”
PARTNERSHIP PROGRAM AVAILABLE
Certification
Set Up Training
T R A I N I N G
T R A I N I N G
Development Framework
1 2 3 4
- Activate and get tokens
- Resources Access
(Write/Read/ReadAll)
- Resource Subscription
- Magic resources
- Get/Add Tags
- Firmware Upgrade
- Dashboards Desing
- APPs Development
- Triggers
- Jobs
- Functions
- Actions
- Plugins
- thethings.iO Architecture
- Product Structure
- Networks and Protocols
- User Interfaces
- Glossary
- Project Definition
- thethings.iO model canvas
1. IoT use case definition
Setup Basics
T R A I N I N G
T R A I N I N G
thethings.iO Architecture
Customer
Dashboards
Admin Dashboards APPs API
Data Service API
Cloud Code Real-Time Storage
Device and
users
management
and
verification
the things.iO APIs
IoT device and connected objects
Sigfox Lora GPRS / 4GWi-Fi ...
Data Analytics AI
T R A I N I N G
Project Structure
T R A I N I N G
Networks and Protocols
Ethernet
Wi-Fi
GPRS / 3G / 4G
Sigfox
LoRa
NB-IoT
6LowPan
Bluetooth
Z-Wave
ZigBee
HTTP/S
MQTT/S
COAP/S
Websockets
UDP/TCP
Modbus
T R A I N I N G
User Interfaces
T R A I N I N G
Glossary
Products
- Products are virtual representations of your product types. A product has as many
things as devices you have in stock.
Things
- Things are the virtual representations of your Internet-connected devices.
- We can see a thing connected to the Internet as a collection of resources.
-
Resources
- The thing publishes or consumes these resources. For example, a thing with a
temperature sensor publishes "temperature" and a thing that is an on/off switch
consumes a resource called "turn" which can take the values "on" or "off".
- And each resource can be seen as a timeline.
T R A I N I N G
Project Definition – Questions
Which project structure do we need and how many thing licenses?
What kind of network and protocol will we use?
What user interfaces do we need? (admin dashboard, customer dashboard, mobile app)
Which kind of data do we need to collect? What information do we need to know for each device?
How many users and roles do we need?
HARDWARE PROTOCOLS
PAYLOADS
DATA APPS / DASHBOARDS ACTORS
CLOUD CODE
VALUE PROPOSITION 3rd PARTY INTEGRATIONS
Designed by: On:
Iteration #
thethings.iO Model Canvas
2. Connecting a Device
Setup Basics
T R A I N I N G
T R A I N I N G
Requirements
T R A I N I N G
Getting started
T R A I N I N G
Activation Codes
An activation code is a unique code that will enable your devices to be activated via the
registration API call.
Product 1
Activation Code 1
Activation Code N
Thing 1
Thing N
* Activation codes are flexible on production: random numbers, single codes, MAC address or hashed IDs provided by the customer.
T R A I N I N G
Activate and Get thingTokens
Through the API, we can activate the thing using the activation code and finally get the thing
token to start.
https://api.thethings.io/v2/things/
{
"activationCode":"sampleCode_1",
"model_id":"sampleModelId_1"
}
POST
T R A I N I N G
Resources Access: Write
We can start sending values to the resources.
https://api.thethings.io/v2/things/THING_TOKEN
{
"values": [ {
"key": "temperature",
"value": "21"
} ]
}
POST
T R A I N I N G
Resources Access: Read
We can read the sent values.
https://api.thethings.io/v2/things/THING_TOKEN/resource/RESOURCE_NAME
[{
"key": "temperature",
"value": "21",
"datetime": "2017-03-08T11:21:20.703Z"
}]
GET
Response example:
https://api.thethings.io/v2/things/THING_TOKEN/all_resourcesGET
T R A I N I N G
Resources Access: Subscription (socket.io)
thethings.iO offers a socket.io server to be able to develop realtime browser apps. So you
have to build your client with socket.io to be able to connect with our socket.io server.
https://ws.thethings.io/v2/things/THING_TOKEN
https://api.thethings.io/v2/things/THING_TOKEN
Test using Chrome at:
T R A I N I N G
Magic Resource
Magic resources are specials resources that starts with $, and have some special behaviors,
like trigger some common task, or update static data. These resources can be used as the
others ones using read and write operations.
- $geo resource
This resource allow update and retrieve the current thing position in GeoJSON format.
- $settings resource
This resource allow update and retrieve things settings meta-data store.
T R A I N I N G
Magic Resource: Write
https://api.thethings.io/v2/things/THING_TOKENPOST
{
"Values": [{
"key": "$geo",
"value" : {
"type": "Point",
"coordinates": [2.154007, 41.390205]
}
}]
}
T R A I N I N G
Magic Resource: Read
https://api.thethings.io/v2/things/THING_TOKEN/resources/$MAGIC_RESOURCEGET
[{
"key": "$geo",
"value": {
"type": "Point",
"coordinates": [
2.154007,
41.390207
]
}}]
Response example:
T R A I N I N G
Tags: Write
https://api.thethings.io/v2/things/THING_TOKEN/tagsPOST
{
"name":"test"
}
We will use tags to search things and to filter the data in the dashboards and apps.
T R A I N I N G
Tags: Read
https://api.thethings.io/v2/things/THING_TOKEN/tagsGET
{
"status": "success",
"tags": [
{
"_id": "test",
"name": "test"
}
]
}
Response example:
T R A I N I N G
Firmware Upgrade
thethings.iO offers Over-The-Air (OTA) firmware upgrade with HTTPS, MQTT and CoAP
which support to products manufacturers with minimal coding.
It permits you to distribute your firmware over Wi-Fi or mobile broadband using our API
without requiring the user to connect the device to a computer via USB to perform the
update, because firmware updates are available for download from the thethings.iO OTA
service.
The firmware manager permits you to manage and publish your firmwares upgrades for your
thing model and microcontroller unit (MCU) through the panel. The following features are
available:
- Create and upload new firmware versions
- List all available versions
- Delete firmware versions
- Manage hashes for verification
3. Building Dashboards And Apps
3.1. Dashboards Design
T R A I N I N G
T R A I N I N G
Overview dashboards
T R A I N I N G
Administration Dashboards
T R A I N I N G
Dashboard Widgets
Lines Pie Map Route
Table Timeline Buttons Scada
Value Text Gauge Bar
Doughnut
Polar Area
Logs
Led
Images
7.2
T R A I N I N G
Insight Dashboards
3. Building Dashboards And Apps
3.2. APPs Development
T R A I N I N G
T R A I N I N G
Getting Started
thethings.iO allows to open your data in order to create apps to control and monitor your
data (from subset of devices or subset of data).
T R A I N I N G
Creating the app: APPs Manager
T R A I N I N G
Register
https://api.thethings.io/v2/registerPOST
{
"email": "YOUR EMAIL HERE",
"password": "a hard to guess password",
"app": "The appID given in the panel"
}
{
"token": "SESSION_TOKEN",
"expirationDate": 31536000,
}
T R A I N I N G
Login
https://api.thethings.io/v2/loginPOST
{
"email": "YOUR EMAIL HERE",
"password": "a hard to guess password",
"app": "The appID given in the panel"
}
{
"token": "SESSION_TOKEN",
"expirationDate": 31536000
}
T R A I N I N G
Link things
https://api.thethings.io/v2/me/thingsPOST
{
"thingToken": "THING_TOKEN"
}
Before getting the user's data from a thing, a procedure called link thing is necessary, which
allows the platform to know that the user is the owner of the thing.
{
"status": "success",
"message": "created",
"thingId": "THING_ID"
}
Request: Response:
* There are other ways to link things
Header:
"Authorization: SESSION_TOKEN"
T R A I N I N G
Unlink things
https://api.thethings.io/v2/me/things/THING_IDDELETE
{
"status": "success",
"message": "unlinked",
"thingId": "THING_ID"
}
Response:
T R A I N I N G
List all user resources
https://api.thethings.io/v2/me/resourcesGET
[
{
"name" : "temperature",
"things" : ["thingId1", "thingId2"]
},
{
"name": "another resource name",
"things" : ["thingId2", "thingId3", ...]
},
...
]
Response:
T R A I N I N G
Getting resource values
https://api.thethings.io/v2/me/resources/RESOURCEGET
{
"thingId1" : [
{"value":15, "datetime" : "20150202T220035.00Z"},
{"value":17, "datetime" : "20150202T210035.00Z"}
]
}
Response:
T R A I N I N G
Getting all resources values
https://api.thethings.io/v2/me/all_resources/THING_IDGET
[{
key: 'temperature',
values: [ { value: 23, datetime: '2016-03-16T10:29:18.772Z' } ]
},{
key: 'voltage',
values: [ { value: 5, datetime: '2016-03-16T10:29:18.772Z' } ]
},{
key: 'current',
values: [ { value: 0.32, datetime: '2016-03-16T10:29:18.772Z' } ]
}]
Response:
T R A I N I N G
Resource Subscription
https://api.thethings.io/v2/me/resources/RESOURCE?subscribe=true&keepAlive=TIME_MSGET
[
{
"value":15,
"id": "thingId1"
}
]
Response:
T R A I N I N G
Magic Resource
https://api.thethings.io/v2/me/resources/RESOURCE/THING_IDPOST
{
"Values": [{
"key": "$geo",
"value" : {
"type": "Point",
"coordinates": [2.154007, 41.390205]
}
}]
}
T R A I N I N G
User Settings
https://api.thethings.io/v2/me/settingsGET
{
"hair-color" : "pink",
"phones" : ["123456", "998965"]
}
https://api.thethings.io/v2/me/settingsPUT
GET Response:
{
status: 'success',
message: 'updated'
}
PUT Response:
Q&A
T R A I N I N G
4. Data Processing with Cloud Code
Setup Basics
T R A I N I N G
T R A I N I N G
Triggers
Triggers are algorithms launched in real-time, everytime that thethings.iO receives data
from the product’s trigger.
thethings.iO offers 2 seconds of computation to the triggers.
Triggers are being used by:
● Data transformation
● Alerts and notifications
● Events and KPIs generation
● Real-time Callback to 3rd party services
T R A I N I N G
Jobs
Jobs are tasks executed once every hour or once a day. You can use the jobs to generate your
own kpis and analytics aggregating the data from the events.
Each job must contain a function job(params, callback), where:
- params is an empty object for now.
- callback is a function to be called when the job ends can contain a parameter string
error if the job needs to report an error.
The execution of a job is limited to 10 minutes. If the execution takes longer, the server will
end the sandbox.
The common use of jobs is to get the data from the events, process it and send it to a kpi.
T R A I N I N G
Functions
Functions are snippets of code executed when an API REST endpoint is called. They can also
be called from other parts of the cloud code like triggers and jobs.
Each function must contain a function main(params, callback), where:
- params is the input of the function which can be a string, object, array,...
- callback(error, result) is a function to be called when the function ends.
The execution of a function is limited to 20 seconds (If the execution takes longer, the server
will end the sandbox. Note, that you can call functions from the triggers, so you will have 20
seconds in instead of 2 seconds.
T R A I N I N G
Functions
There are two ways to call a function, from the API REST and from the cloud code (jobs and
triggers).
{
"params": THE FUNCTION INPUT GOES HERE
}
https://api.thethings.io/v2/things/:thingToken/code/function/FUNCTION_NAMEPOST
T R A I N I N G
Alerts
T R A I N I N G
Plugins: Email
email(
{
service: 'Mandrill',
auth: {
api_key: ''
}
},
{
from: 'support@thethings.io',
to: 'hello@thethings.io',
subject: 'New action',
text: 'New notification'
});
T R A I N I N G
Plugins: Twillio (Calls and SMS)
var telf = '+34672759681';
var message = 'Alguien se ha chocado con tu coche ahora!';
var twilio = new Twilio(
'',
''
);
twilio.sendMessage({
to: telf, // Any number Twilio can deliver to
from: '+34..., // A number you bought from Twilio and
can use for outbound communication
body: message // body of the SMS message
},
callback
);
var telf2 = '+34..'
var twilio = new Twilio(
'',
''
)
twilio.makeCall({
to: telf2, // Any number Twilio can deliver to
from: '+34...', // A number you bought from Twilio and can use
for outbound communication
url: 'http://hidden-cove-2761.herokuapp.com/' // A URL that
produces an XML document (TwiML) which contains instructions for
the call
}
T R A I N I N G
Plugins: Twitter
var inputTwitter = {
'status': 'Let´s dance'
}
var twitter = new Twitter({
accessToken: '',
accessTokenSecret: '',
consumerKey: '',
consumerSecret: ''
});
twitter.postTweet(inputTwitter, callback)
T R A I N I N G
Plugins: httpRequest
function trigger(params, callback){
var body = {
button: '1'
};
httpRequest({
host: 'maker.ifttt.com',
path: '/trigger/your_event/with/key/your_key',
method: 'POST',
headers:{
Accept: '*/*',
Connection: 'close',
'Content-Type':'application/json'
}
}, body, function(err, result) {
//and postprocess the api result here before
sending to your thing
console.log('Returned from httpRequest');
if (err) {
console.log('httpRequest error');
console.error(err);
return callback(err);
}
if (result) {
console.log('httpRequest success');
console.log(result);
}
callback(null, result);
});
}
https://blog.thethings.io/connect-ifttt-lifx-thethings-io-iot-platform/
T R A I N I N G
Plugins: analytics (events and kpis)
function trigger(params, callback) {
if (params.action !== 'write') {
return callback();
}
var values = params.values;
var lastSwitch = null;
for (var i = 0; i < values.length; ++i) {
//console.log(values[i].key, values[i].value)
if (values[i].key === 'switch') {
lastSwitch = values[i].value;
}
}
analytics.events.create({name:'switch',
value:lastSwitch});
callback();
}
function job(params, callback) {
analytics.events.getValuesByName('switch', function(error, data) {
if (error) return callback(error);
analytics.kpis.create('button presses', data.count());
callback();
});
}
T R A I N I N G
Plugins: thethingsAPI
Var thingToken = params.thingToken;
Var resource ='myResource';
thethingsAPI.thingRead(thingToken, 'Site', function(err, result) {
if (err) return callback(err);
callaback(null, result[0].value);
}
var data = {key:'$geo', value:0, geo: key_stat.geo};
var values = [data];
thethingsAPI.thingWrite(thingToken, {values: values} , function
(error, res) {
if (error) {
console.log(error, thingToken);
return callback(error);
}
return callback(null,'Success');
});
T R A I N I N G
Plugins: DataSet
http://developers.thethings.io/cloud-code-exposed-apis.html#DataSet
function job(params, callback){
analytics.events.getValuesByName('temperature',function(error, data){
var high0 = data.filter(function(val){
return val > 0;
}).avg();
var low0 = data.filter(function(val){
return val < 0;
}).avg();
analytics.kpis.create('avg-temperature',{ high: high0, low: low0 });
callback();
});
}
T R A I N I N G
Plugins: Geolib
var distance = geolib.getDistance(
{latitude: 51.5103, longitude: 7.49347},
{latitude: "51° 31' N", longitude: "7° 28' E"}
);
console.log(‘distance between coordinates’, distance);
https://github.com/manuelbieh/Geolib
(+34) 936 816 891
T R A I N I N G
training, thank you

More Related Content

What's hot

Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)
Fernando Lopez Aguilar
 
Azure IoT End-to-End
Azure IoT End-to-EndAzure IoT End-to-End
Azure IoT End-to-End
Martin Abbott
 
WSO2 Platform Introduction
WSO2 Platform IntroductionWSO2 Platform Introduction
WSO2 Platform Introduction
WSO2
 
Google Cloud IoT Core
Google Cloud IoT CoreGoogle Cloud IoT Core
Google Cloud IoT Core
Ido Flatow
 
FIWARE at LeWeb - Agenda
FIWARE at LeWeb - AgendaFIWARE at LeWeb - Agenda
FIWARE at LeWeb - Agenda
FIWARE
 
Internet Society Event on IoT - IoT@Microsoft
Internet Society Event on IoT - IoT@MicrosoftInternet Society Event on IoT - IoT@Microsoft
Internet Society Event on IoT - IoT@Microsoft
Marco Silva
 
Connecting IoT devices to Azure
Connecting IoT devices to AzureConnecting IoT devices to Azure
Connecting IoT devices to Azure
Guy Barrette
 
Internet of things (IoT) with Azure
Internet of things (IoT) with AzureInternet of things (IoT) with Azure
Internet of things (IoT) with Azure
Vinoth Rajagopalan
 
IoT Platforms and Architecture
IoT Platforms and ArchitectureIoT Platforms and Architecture
IoT Platforms and Architecture
Lee House
 
Webinar Registration Getting Started with Building Your First IoT App
Webinar Registration Getting Started with Building Your First IoT AppWebinar Registration Getting Started with Building Your First IoT App
Webinar Registration Getting Started with Building Your First IoT App
InfluxData
 
201410 1 fiware-overview
201410 1 fiware-overview201410 1 fiware-overview
201410 1 fiware-overview
FIWARE
 
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
Codit
 
Windows for Raspberry Pi 2 Makers (and more!)
Windows for Raspberry Pi 2Makers (and more!)Windows for Raspberry Pi 2Makers (and more!)
Windows for Raspberry Pi 2 Makers (and more!)
Guy Barrette
 
IoT on the Edge
IoT on the EdgeIoT on the Edge
IoT on the Edge
FIWARE
 
IoT Saturday PN 2019 - Eurotech
IoT Saturday PN 2019 - EurotechIoT Saturday PN 2019 - Eurotech
IoT Saturday PN 2019 - Eurotech
Luca Dazi
 
WSO2 IoT Server and Device Cloud
WSO2 IoT Server and Device CloudWSO2 IoT Server and Device Cloud
WSO2 IoT Server and Device Cloud
WSO2
 
Architectural Patterns in IoT Cloud Platforms
Architectural Patterns in IoT Cloud PlatformsArchitectural Patterns in IoT Cloud Platforms
Architectural Patterns in IoT Cloud Platforms
Roshan Kulkarni
 
Octoblu, the IoT platform
Octoblu, the IoT platformOctoblu, the IoT platform
Octoblu, the IoT platform
Ludovic Bouvier
 
Business Transformation with Microsoft Azure IoT
Business Transformation with Microsoft Azure IoTBusiness Transformation with Microsoft Azure IoT
Business Transformation with Microsoft Azure IoT
Ilyas F ☁☁☁
 
IoT on Azure
IoT on AzureIoT on Azure
IoT on Azure
Vinoth Rajagopalan
 

What's hot (20)

Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)Connecting to the internet of things (IoT)
Connecting to the internet of things (IoT)
 
Azure IoT End-to-End
Azure IoT End-to-EndAzure IoT End-to-End
Azure IoT End-to-End
 
WSO2 Platform Introduction
WSO2 Platform IntroductionWSO2 Platform Introduction
WSO2 Platform Introduction
 
Google Cloud IoT Core
Google Cloud IoT CoreGoogle Cloud IoT Core
Google Cloud IoT Core
 
FIWARE at LeWeb - Agenda
FIWARE at LeWeb - AgendaFIWARE at LeWeb - Agenda
FIWARE at LeWeb - Agenda
 
Internet Society Event on IoT - IoT@Microsoft
Internet Society Event on IoT - IoT@MicrosoftInternet Society Event on IoT - IoT@Microsoft
Internet Society Event on IoT - IoT@Microsoft
 
Connecting IoT devices to Azure
Connecting IoT devices to AzureConnecting IoT devices to Azure
Connecting IoT devices to Azure
 
Internet of things (IoT) with Azure
Internet of things (IoT) with AzureInternet of things (IoT) with Azure
Internet of things (IoT) with Azure
 
IoT Platforms and Architecture
IoT Platforms and ArchitectureIoT Platforms and Architecture
IoT Platforms and Architecture
 
Webinar Registration Getting Started with Building Your First IoT App
Webinar Registration Getting Started with Building Your First IoT AppWebinar Registration Getting Started with Building Your First IoT App
Webinar Registration Getting Started with Building Your First IoT App
 
201410 1 fiware-overview
201410 1 fiware-overview201410 1 fiware-overview
201410 1 fiware-overview
 
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
Azure IoT suite - A look behind the curtain (Sam Vanhoutte @AZUG Event)
 
Windows for Raspberry Pi 2 Makers (and more!)
Windows for Raspberry Pi 2Makers (and more!)Windows for Raspberry Pi 2Makers (and more!)
Windows for Raspberry Pi 2 Makers (and more!)
 
IoT on the Edge
IoT on the EdgeIoT on the Edge
IoT on the Edge
 
IoT Saturday PN 2019 - Eurotech
IoT Saturday PN 2019 - EurotechIoT Saturday PN 2019 - Eurotech
IoT Saturday PN 2019 - Eurotech
 
WSO2 IoT Server and Device Cloud
WSO2 IoT Server and Device CloudWSO2 IoT Server and Device Cloud
WSO2 IoT Server and Device Cloud
 
Architectural Patterns in IoT Cloud Platforms
Architectural Patterns in IoT Cloud PlatformsArchitectural Patterns in IoT Cloud Platforms
Architectural Patterns in IoT Cloud Platforms
 
Octoblu, the IoT platform
Octoblu, the IoT platformOctoblu, the IoT platform
Octoblu, the IoT platform
 
Business Transformation with Microsoft Azure IoT
Business Transformation with Microsoft Azure IoTBusiness Transformation with Microsoft Azure IoT
Business Transformation with Microsoft Azure IoT
 
IoT on Azure
IoT on AzureIoT on Azure
IoT on Azure
 

Similar to Training thethings.iO

Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community
TIDChile
 
Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8
FIWARE
 
Uni w pachube 111108
Uni w pachube 111108Uni w pachube 111108
Uni w pachube 111108
Paul Tanner
 
IoT on azure
IoT on azureIoT on azure
IoT on azure
Joanna Lamch
 
Understanding IoT with Cloud IoT Core
Understanding IoT with Cloud IoT CoreUnderstanding IoT with Cloud IoT Core
Understanding IoT with Cloud IoT Core
Tegar Imansyah
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflows
Aniruddha Chakrabarti
 
Using Data Science & Serverless Python to find apartment in Toronto
Using Data Science & Serverless Python to find apartment in TorontoUsing Data Science & Serverless Python to find apartment in Toronto
Using Data Science & Serverless Python to find apartment in Toronto
Daniel Zivkovic
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & Community
FIWARE
 
Adobe PDF and LiveCycle ES Security
Adobe PDF and LiveCycle ES SecurityAdobe PDF and LiveCycle ES Security
Adobe PDF and LiveCycle ES Security
guest2a5a03
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
Microsoft Tech Community
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
Microsoft Tech Community
 
The case for a unified way of speaking to things
The case for a unified way of speaking to thingsThe case for a unified way of speaking to things
The case for a unified way of speaking to things
Red Hat
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.io
Günter Obiltschnig
 
2018-10-17 J1 6D - Draw your imagination with Microsoft Graph API - Dipti Chh...
2018-10-17 J1 6D - Draw your imagination with Microsoft Graph API - Dipti Chh...2018-10-17 J1 6D - Draw your imagination with Microsoft Graph API - Dipti Chh...
2018-10-17 J1 6D - Draw your imagination with Microsoft Graph API - Dipti Chh...
Modern Workplace Conference Paris
 
Life on Clouds: a forensics overview
Life on Clouds: a forensics overviewLife on Clouds: a forensics overview
Life on Clouds: a forensics overview
Reality Net System Solutions
 
Mobility & Data Strategies
Mobility & Data StrategiesMobility & Data Strategies
Mobility & Data StrategiesSam Basu
 
Building TweetEngine
Building TweetEngineBuilding TweetEngine
Building TweetEngineikailan
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic Apps
BizTalk360
 
Microsoft Graph community call-October 2018
Microsoft Graph community call-October 2018Microsoft Graph community call-October 2018
Microsoft Graph community call-October 2018
Microsoft 365 Developer
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperSam Basu
 

Similar to Training thethings.iO (20)

Fiware IoT Proposal & Community
Fiware IoT Proposal & Community Fiware IoT Proposal & Community
Fiware IoT Proposal & Community
 
Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8
 
Uni w pachube 111108
Uni w pachube 111108Uni w pachube 111108
Uni w pachube 111108
 
IoT on azure
IoT on azureIoT on azure
IoT on azure
 
Understanding IoT with Cloud IoT Core
Understanding IoT with Cloud IoT CoreUnderstanding IoT with Cloud IoT Core
Understanding IoT with Cloud IoT Core
 
Using Node-RED for building IoT workflows
Using Node-RED for building IoT workflowsUsing Node-RED for building IoT workflows
Using Node-RED for building IoT workflows
 
Using Data Science & Serverless Python to find apartment in Toronto
Using Data Science & Serverless Python to find apartment in TorontoUsing Data Science & Serverless Python to find apartment in Toronto
Using Data Science & Serverless Python to find apartment in Toronto
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & Community
 
Adobe PDF and LiveCycle ES Security
Adobe PDF and LiveCycle ES SecurityAdobe PDF and LiveCycle ES Security
Adobe PDF and LiveCycle ES Security
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
Microsoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needsMicrosoft Graph: Connect to essential data every app needs
Microsoft Graph: Connect to essential data every app needs
 
The case for a unified way of speaking to things
The case for a unified way of speaking to thingsThe case for a unified way of speaking to things
The case for a unified way of speaking to things
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.io
 
2018-10-17 J1 6D - Draw your imagination with Microsoft Graph API - Dipti Chh...
2018-10-17 J1 6D - Draw your imagination with Microsoft Graph API - Dipti Chh...2018-10-17 J1 6D - Draw your imagination with Microsoft Graph API - Dipti Chh...
2018-10-17 J1 6D - Draw your imagination with Microsoft Graph API - Dipti Chh...
 
Life on Clouds: a forensics overview
Life on Clouds: a forensics overviewLife on Clouds: a forensics overview
Life on Clouds: a forensics overview
 
Mobility & Data Strategies
Mobility & Data StrategiesMobility & Data Strategies
Mobility & Data Strategies
 
Building TweetEngine
Building TweetEngineBuilding TweetEngine
Building TweetEngine
 
Building Push Triggers for Logic Apps
Building Push Triggers for Logic AppsBuilding Push Triggers for Logic Apps
Building Push Triggers for Logic Apps
 
Microsoft Graph community call-October 2018
Microsoft Graph community call-October 2018Microsoft Graph community call-October 2018
Microsoft Graph community call-October 2018
 
Fanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone DeveloperFanug - Pragmatic Windows Phone Developer
Fanug - Pragmatic Windows Phone Developer
 

More from Marc Pous

Lesson IoT platforms - Master IoT UPC - 4th March 2019
Lesson IoT platforms - Master IoT UPC - 4th March 2019Lesson IoT platforms - Master IoT UPC - 4th March 2019
Lesson IoT platforms - Master IoT UPC - 4th March 2019
Marc Pous
 
theThings.IO - Intel Galileo Ultracode & IoT Munich
theThings.IO - Intel Galileo Ultracode & IoT MunichtheThings.IO - Intel Galileo Ultracode & IoT Munich
theThings.IO - Intel Galileo Ultracode & IoT Munich
Marc Pous
 
One API to rule the Internet of Things - theThings.IO #apistrat
One API to rule the Internet of Things - theThings.IO #apistratOne API to rule the Internet of Things - theThings.IO #apistrat
One API to rule the Internet of Things - theThings.IO #apistrat
Marc Pous
 
The future of our cities: sustainability and technology
The future of our cities: sustainability and technologyThe future of our cities: sustainability and technology
The future of our cities: sustainability and technology
Marc Pous
 
The next big thing at RE-WORK Cities Marc Pous
The next big thing at RE-WORK Cities Marc PousThe next big thing at RE-WORK Cities Marc Pous
The next big thing at RE-WORK Cities Marc Pous
Marc Pous
 
Big data Curs del Cibernarium de Barcelona 2013
Big data Curs del Cibernarium de Barcelona 2013Big data Curs del Cibernarium de Barcelona 2013
Big data Curs del Cibernarium de Barcelona 2013
Marc Pous
 
The tales of smart cities (slides)
The tales of smart cities (slides)The tales of smart cities (slides)
The tales of smart cities (slides)
Marc Pous
 
The tales of smart cities
The tales of smart citiesThe tales of smart cities
The tales of smart cities
Marc Pous
 
The real-time Barcelona urban mobility with NoSQL technologies
The real-time Barcelona urban mobility with NoSQL technologiesThe real-time Barcelona urban mobility with NoSQL technologies
The real-time Barcelona urban mobility with NoSQL technologies
Marc Pous
 
Sensor networks
Sensor networksSensor networks
Sensor networksMarc Pous
 
Multimodal Interaction in Distributed and Ubiquitous Computing - ICIW 2010
Multimodal Interaction in Distributed  and Ubiquitous Computing - ICIW 2010Multimodal Interaction in Distributed  and Ubiquitous Computing - ICIW 2010
Multimodal Interaction in Distributed and Ubiquitous Computing - ICIW 2010
Marc Pous
 
Hoover Notes
Hoover NotesHoover Notes
Hoover NotesMarc Pous
 
WWW2009 - Accessible interactive community displays in public spaces - TMT Fa...
WWW2009 - Accessible interactive community displays in public spaces - TMT Fa...WWW2009 - Accessible interactive community displays in public spaces - TMT Fa...
WWW2009 - Accessible interactive community displays in public spaces - TMT Fa...
Marc Pous
 
Presentacion Interaccion 2008: Plataforma colaborativa accesible INREDIS
Presentacion Interaccion 2008: Plataforma colaborativa accesible INREDISPresentacion Interaccion 2008: Plataforma colaborativa accesible INREDIS
Presentacion Interaccion 2008: Plataforma colaborativa accesible INREDIS
Marc Pous
 

More from Marc Pous (14)

Lesson IoT platforms - Master IoT UPC - 4th March 2019
Lesson IoT platforms - Master IoT UPC - 4th March 2019Lesson IoT platforms - Master IoT UPC - 4th March 2019
Lesson IoT platforms - Master IoT UPC - 4th March 2019
 
theThings.IO - Intel Galileo Ultracode & IoT Munich
theThings.IO - Intel Galileo Ultracode & IoT MunichtheThings.IO - Intel Galileo Ultracode & IoT Munich
theThings.IO - Intel Galileo Ultracode & IoT Munich
 
One API to rule the Internet of Things - theThings.IO #apistrat
One API to rule the Internet of Things - theThings.IO #apistratOne API to rule the Internet of Things - theThings.IO #apistrat
One API to rule the Internet of Things - theThings.IO #apistrat
 
The future of our cities: sustainability and technology
The future of our cities: sustainability and technologyThe future of our cities: sustainability and technology
The future of our cities: sustainability and technology
 
The next big thing at RE-WORK Cities Marc Pous
The next big thing at RE-WORK Cities Marc PousThe next big thing at RE-WORK Cities Marc Pous
The next big thing at RE-WORK Cities Marc Pous
 
Big data Curs del Cibernarium de Barcelona 2013
Big data Curs del Cibernarium de Barcelona 2013Big data Curs del Cibernarium de Barcelona 2013
Big data Curs del Cibernarium de Barcelona 2013
 
The tales of smart cities (slides)
The tales of smart cities (slides)The tales of smart cities (slides)
The tales of smart cities (slides)
 
The tales of smart cities
The tales of smart citiesThe tales of smart cities
The tales of smart cities
 
The real-time Barcelona urban mobility with NoSQL technologies
The real-time Barcelona urban mobility with NoSQL technologiesThe real-time Barcelona urban mobility with NoSQL technologies
The real-time Barcelona urban mobility with NoSQL technologies
 
Sensor networks
Sensor networksSensor networks
Sensor networks
 
Multimodal Interaction in Distributed and Ubiquitous Computing - ICIW 2010
Multimodal Interaction in Distributed  and Ubiquitous Computing - ICIW 2010Multimodal Interaction in Distributed  and Ubiquitous Computing - ICIW 2010
Multimodal Interaction in Distributed and Ubiquitous Computing - ICIW 2010
 
Hoover Notes
Hoover NotesHoover Notes
Hoover Notes
 
WWW2009 - Accessible interactive community displays in public spaces - TMT Fa...
WWW2009 - Accessible interactive community displays in public spaces - TMT Fa...WWW2009 - Accessible interactive community displays in public spaces - TMT Fa...
WWW2009 - Accessible interactive community displays in public spaces - TMT Fa...
 
Presentacion Interaccion 2008: Plataforma colaborativa accesible INREDIS
Presentacion Interaccion 2008: Plataforma colaborativa accesible INREDISPresentacion Interaccion 2008: Plataforma colaborativa accesible INREDIS
Presentacion Interaccion 2008: Plataforma colaborativa accesible INREDIS
 

Recently uploaded

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Nexer Digital
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 

Recently uploaded (20)

PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?Elizabeth Buie - Older adults: Are we really designing for our future selves?
Elizabeth Buie - Older adults: Are we really designing for our future selves?
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 

Training thethings.iO

  • 2. T R A I N I N G Internet of Things projects made easy + +
  • 3. T R A I N I N G the most simple enterprise IoT platform
  • 4. T R A I N I N G Before / After
  • 5. T R A I N I N G Reasons Why Scalability Reduce Time to Market Flexible Pricing Lower Development Costs
  • 6. T R A I N I N G Use Cases
  • 7. T R A I N I N G Who is it for ENTERPRISES OEMs INTEGRATION FIRMS DEVELOPERS “Scalable and flexible solutions for your customers and products connected to the Internet” “Save time and cut costs using thethings.iO with your customer’s IoT projects” “Easily prototype your IoT projects, from idea to production” PARTNERSHIP PROGRAM AVAILABLE
  • 9. T R A I N I N G Development Framework 1 2 3 4 - Activate and get tokens - Resources Access (Write/Read/ReadAll) - Resource Subscription - Magic resources - Get/Add Tags - Firmware Upgrade - Dashboards Desing - APPs Development - Triggers - Jobs - Functions - Actions - Plugins - thethings.iO Architecture - Product Structure - Networks and Protocols - User Interfaces - Glossary - Project Definition - thethings.iO model canvas
  • 10. 1. IoT use case definition Setup Basics T R A I N I N G
  • 11. T R A I N I N G thethings.iO Architecture Customer Dashboards Admin Dashboards APPs API Data Service API Cloud Code Real-Time Storage Device and users management and verification the things.iO APIs IoT device and connected objects Sigfox Lora GPRS / 4GWi-Fi ... Data Analytics AI
  • 12. T R A I N I N G Project Structure
  • 13. T R A I N I N G Networks and Protocols Ethernet Wi-Fi GPRS / 3G / 4G Sigfox LoRa NB-IoT 6LowPan Bluetooth Z-Wave ZigBee HTTP/S MQTT/S COAP/S Websockets UDP/TCP Modbus
  • 14. T R A I N I N G User Interfaces
  • 15. T R A I N I N G Glossary Products - Products are virtual representations of your product types. A product has as many things as devices you have in stock. Things - Things are the virtual representations of your Internet-connected devices. - We can see a thing connected to the Internet as a collection of resources. - Resources - The thing publishes or consumes these resources. For example, a thing with a temperature sensor publishes "temperature" and a thing that is an on/off switch consumes a resource called "turn" which can take the values "on" or "off". - And each resource can be seen as a timeline.
  • 16. T R A I N I N G Project Definition – Questions Which project structure do we need and how many thing licenses? What kind of network and protocol will we use? What user interfaces do we need? (admin dashboard, customer dashboard, mobile app) Which kind of data do we need to collect? What information do we need to know for each device? How many users and roles do we need?
  • 17. HARDWARE PROTOCOLS PAYLOADS DATA APPS / DASHBOARDS ACTORS CLOUD CODE VALUE PROPOSITION 3rd PARTY INTEGRATIONS Designed by: On: Iteration # thethings.iO Model Canvas
  • 18. 2. Connecting a Device Setup Basics T R A I N I N G
  • 19. T R A I N I N G Requirements
  • 20. T R A I N I N G Getting started
  • 21. T R A I N I N G Activation Codes An activation code is a unique code that will enable your devices to be activated via the registration API call. Product 1 Activation Code 1 Activation Code N Thing 1 Thing N * Activation codes are flexible on production: random numbers, single codes, MAC address or hashed IDs provided by the customer.
  • 22. T R A I N I N G Activate and Get thingTokens Through the API, we can activate the thing using the activation code and finally get the thing token to start. https://api.thethings.io/v2/things/ { "activationCode":"sampleCode_1", "model_id":"sampleModelId_1" } POST
  • 23. T R A I N I N G Resources Access: Write We can start sending values to the resources. https://api.thethings.io/v2/things/THING_TOKEN { "values": [ { "key": "temperature", "value": "21" } ] } POST
  • 24. T R A I N I N G Resources Access: Read We can read the sent values. https://api.thethings.io/v2/things/THING_TOKEN/resource/RESOURCE_NAME [{ "key": "temperature", "value": "21", "datetime": "2017-03-08T11:21:20.703Z" }] GET Response example: https://api.thethings.io/v2/things/THING_TOKEN/all_resourcesGET
  • 25. T R A I N I N G Resources Access: Subscription (socket.io) thethings.iO offers a socket.io server to be able to develop realtime browser apps. So you have to build your client with socket.io to be able to connect with our socket.io server. https://ws.thethings.io/v2/things/THING_TOKEN https://api.thethings.io/v2/things/THING_TOKEN Test using Chrome at:
  • 26. T R A I N I N G Magic Resource Magic resources are specials resources that starts with $, and have some special behaviors, like trigger some common task, or update static data. These resources can be used as the others ones using read and write operations. - $geo resource This resource allow update and retrieve the current thing position in GeoJSON format. - $settings resource This resource allow update and retrieve things settings meta-data store.
  • 27. T R A I N I N G Magic Resource: Write https://api.thethings.io/v2/things/THING_TOKENPOST { "Values": [{ "key": "$geo", "value" : { "type": "Point", "coordinates": [2.154007, 41.390205] } }] }
  • 28. T R A I N I N G Magic Resource: Read https://api.thethings.io/v2/things/THING_TOKEN/resources/$MAGIC_RESOURCEGET [{ "key": "$geo", "value": { "type": "Point", "coordinates": [ 2.154007, 41.390207 ] }}] Response example:
  • 29. T R A I N I N G Tags: Write https://api.thethings.io/v2/things/THING_TOKEN/tagsPOST { "name":"test" } We will use tags to search things and to filter the data in the dashboards and apps.
  • 30. T R A I N I N G Tags: Read https://api.thethings.io/v2/things/THING_TOKEN/tagsGET { "status": "success", "tags": [ { "_id": "test", "name": "test" } ] } Response example:
  • 31. T R A I N I N G Firmware Upgrade thethings.iO offers Over-The-Air (OTA) firmware upgrade with HTTPS, MQTT and CoAP which support to products manufacturers with minimal coding. It permits you to distribute your firmware over Wi-Fi or mobile broadband using our API without requiring the user to connect the device to a computer via USB to perform the update, because firmware updates are available for download from the thethings.iO OTA service. The firmware manager permits you to manage and publish your firmwares upgrades for your thing model and microcontroller unit (MCU) through the panel. The following features are available: - Create and upload new firmware versions - List all available versions - Delete firmware versions - Manage hashes for verification
  • 32. 3. Building Dashboards And Apps 3.1. Dashboards Design T R A I N I N G
  • 33. T R A I N I N G Overview dashboards
  • 34. T R A I N I N G Administration Dashboards
  • 35. T R A I N I N G Dashboard Widgets Lines Pie Map Route Table Timeline Buttons Scada Value Text Gauge Bar Doughnut Polar Area Logs Led Images 7.2
  • 36. T R A I N I N G Insight Dashboards
  • 37. 3. Building Dashboards And Apps 3.2. APPs Development T R A I N I N G
  • 38. T R A I N I N G Getting Started thethings.iO allows to open your data in order to create apps to control and monitor your data (from subset of devices or subset of data).
  • 39. T R A I N I N G Creating the app: APPs Manager
  • 40. T R A I N I N G Register https://api.thethings.io/v2/registerPOST { "email": "YOUR EMAIL HERE", "password": "a hard to guess password", "app": "The appID given in the panel" } { "token": "SESSION_TOKEN", "expirationDate": 31536000, }
  • 41. T R A I N I N G Login https://api.thethings.io/v2/loginPOST { "email": "YOUR EMAIL HERE", "password": "a hard to guess password", "app": "The appID given in the panel" } { "token": "SESSION_TOKEN", "expirationDate": 31536000 }
  • 42. T R A I N I N G Link things https://api.thethings.io/v2/me/thingsPOST { "thingToken": "THING_TOKEN" } Before getting the user's data from a thing, a procedure called link thing is necessary, which allows the platform to know that the user is the owner of the thing. { "status": "success", "message": "created", "thingId": "THING_ID" } Request: Response: * There are other ways to link things Header: "Authorization: SESSION_TOKEN"
  • 43. T R A I N I N G Unlink things https://api.thethings.io/v2/me/things/THING_IDDELETE { "status": "success", "message": "unlinked", "thingId": "THING_ID" } Response:
  • 44. T R A I N I N G List all user resources https://api.thethings.io/v2/me/resourcesGET [ { "name" : "temperature", "things" : ["thingId1", "thingId2"] }, { "name": "another resource name", "things" : ["thingId2", "thingId3", ...] }, ... ] Response:
  • 45. T R A I N I N G Getting resource values https://api.thethings.io/v2/me/resources/RESOURCEGET { "thingId1" : [ {"value":15, "datetime" : "20150202T220035.00Z"}, {"value":17, "datetime" : "20150202T210035.00Z"} ] } Response:
  • 46. T R A I N I N G Getting all resources values https://api.thethings.io/v2/me/all_resources/THING_IDGET [{ key: 'temperature', values: [ { value: 23, datetime: '2016-03-16T10:29:18.772Z' } ] },{ key: 'voltage', values: [ { value: 5, datetime: '2016-03-16T10:29:18.772Z' } ] },{ key: 'current', values: [ { value: 0.32, datetime: '2016-03-16T10:29:18.772Z' } ] }] Response:
  • 47. T R A I N I N G Resource Subscription https://api.thethings.io/v2/me/resources/RESOURCE?subscribe=true&keepAlive=TIME_MSGET [ { "value":15, "id": "thingId1" } ] Response:
  • 48. T R A I N I N G Magic Resource https://api.thethings.io/v2/me/resources/RESOURCE/THING_IDPOST { "Values": [{ "key": "$geo", "value" : { "type": "Point", "coordinates": [2.154007, 41.390205] } }] }
  • 49. T R A I N I N G User Settings https://api.thethings.io/v2/me/settingsGET { "hair-color" : "pink", "phones" : ["123456", "998965"] } https://api.thethings.io/v2/me/settingsPUT GET Response: { status: 'success', message: 'updated' } PUT Response:
  • 50. Q&A T R A I N I N G
  • 51. 4. Data Processing with Cloud Code Setup Basics T R A I N I N G
  • 52. T R A I N I N G Triggers Triggers are algorithms launched in real-time, everytime that thethings.iO receives data from the product’s trigger. thethings.iO offers 2 seconds of computation to the triggers. Triggers are being used by: ● Data transformation ● Alerts and notifications ● Events and KPIs generation ● Real-time Callback to 3rd party services
  • 53. T R A I N I N G Jobs Jobs are tasks executed once every hour or once a day. You can use the jobs to generate your own kpis and analytics aggregating the data from the events. Each job must contain a function job(params, callback), where: - params is an empty object for now. - callback is a function to be called when the job ends can contain a parameter string error if the job needs to report an error. The execution of a job is limited to 10 minutes. If the execution takes longer, the server will end the sandbox. The common use of jobs is to get the data from the events, process it and send it to a kpi.
  • 54. T R A I N I N G Functions Functions are snippets of code executed when an API REST endpoint is called. They can also be called from other parts of the cloud code like triggers and jobs. Each function must contain a function main(params, callback), where: - params is the input of the function which can be a string, object, array,... - callback(error, result) is a function to be called when the function ends. The execution of a function is limited to 20 seconds (If the execution takes longer, the server will end the sandbox. Note, that you can call functions from the triggers, so you will have 20 seconds in instead of 2 seconds.
  • 55. T R A I N I N G Functions There are two ways to call a function, from the API REST and from the cloud code (jobs and triggers). { "params": THE FUNCTION INPUT GOES HERE } https://api.thethings.io/v2/things/:thingToken/code/function/FUNCTION_NAMEPOST
  • 56. T R A I N I N G Alerts
  • 57. T R A I N I N G Plugins: Email email( { service: 'Mandrill', auth: { api_key: '' } }, { from: 'support@thethings.io', to: 'hello@thethings.io', subject: 'New action', text: 'New notification' });
  • 58. T R A I N I N G Plugins: Twillio (Calls and SMS) var telf = '+34672759681'; var message = 'Alguien se ha chocado con tu coche ahora!'; var twilio = new Twilio( '', '' ); twilio.sendMessage({ to: telf, // Any number Twilio can deliver to from: '+34..., // A number you bought from Twilio and can use for outbound communication body: message // body of the SMS message }, callback ); var telf2 = '+34..' var twilio = new Twilio( '', '' ) twilio.makeCall({ to: telf2, // Any number Twilio can deliver to from: '+34...', // A number you bought from Twilio and can use for outbound communication url: 'http://hidden-cove-2761.herokuapp.com/' // A URL that produces an XML document (TwiML) which contains instructions for the call }
  • 59. T R A I N I N G Plugins: Twitter var inputTwitter = { 'status': 'Let´s dance' } var twitter = new Twitter({ accessToken: '', accessTokenSecret: '', consumerKey: '', consumerSecret: '' }); twitter.postTweet(inputTwitter, callback)
  • 60. T R A I N I N G Plugins: httpRequest function trigger(params, callback){ var body = { button: '1' }; httpRequest({ host: 'maker.ifttt.com', path: '/trigger/your_event/with/key/your_key', method: 'POST', headers:{ Accept: '*/*', Connection: 'close', 'Content-Type':'application/json' } }, body, function(err, result) { //and postprocess the api result here before sending to your thing console.log('Returned from httpRequest'); if (err) { console.log('httpRequest error'); console.error(err); return callback(err); } if (result) { console.log('httpRequest success'); console.log(result); } callback(null, result); }); } https://blog.thethings.io/connect-ifttt-lifx-thethings-io-iot-platform/
  • 61. T R A I N I N G Plugins: analytics (events and kpis) function trigger(params, callback) { if (params.action !== 'write') { return callback(); } var values = params.values; var lastSwitch = null; for (var i = 0; i < values.length; ++i) { //console.log(values[i].key, values[i].value) if (values[i].key === 'switch') { lastSwitch = values[i].value; } } analytics.events.create({name:'switch', value:lastSwitch}); callback(); } function job(params, callback) { analytics.events.getValuesByName('switch', function(error, data) { if (error) return callback(error); analytics.kpis.create('button presses', data.count()); callback(); }); }
  • 62. T R A I N I N G Plugins: thethingsAPI Var thingToken = params.thingToken; Var resource ='myResource'; thethingsAPI.thingRead(thingToken, 'Site', function(err, result) { if (err) return callback(err); callaback(null, result[0].value); } var data = {key:'$geo', value:0, geo: key_stat.geo}; var values = [data]; thethingsAPI.thingWrite(thingToken, {values: values} , function (error, res) { if (error) { console.log(error, thingToken); return callback(error); } return callback(null,'Success'); });
  • 63. T R A I N I N G Plugins: DataSet http://developers.thethings.io/cloud-code-exposed-apis.html#DataSet function job(params, callback){ analytics.events.getValuesByName('temperature',function(error, data){ var high0 = data.filter(function(val){ return val > 0; }).avg(); var low0 = data.filter(function(val){ return val < 0; }).avg(); analytics.kpis.create('avg-temperature',{ high: high0, low: low0 }); callback(); }); }
  • 64. T R A I N I N G Plugins: Geolib var distance = geolib.getDistance( {latitude: 51.5103, longitude: 7.49347}, {latitude: "51° 31' N", longitude: "7° 28' E"} ); console.log(‘distance between coordinates’, distance); https://github.com/manuelbieh/Geolib
  • 65. (+34) 936 816 891 T R A I N I N G training, thank you