SlideShare a Scribd company logo
1 of 37
Download to read offline
IoT in the FIWARE Platform - 1
IoT Agents
Fernando López Aguilar
FIWARE Cloud and Platform Senior Expert
fernando.lopez@fiware.org
@flopezaguilar
2
IoT Interoperability ? Still a $1,000,000 question
3
Even worse in 2017…
4
5
6
We need to find
We need to find the exit of this labyrinth
Tenemos un plan
We have a plan :
Smart* FIWARE most-used IoT Stack
8
IoT Agents in a nutshell
9
IoT Agents
▪ Device Protocol to NGSI Bridge:
• One entity per device.
• Constrained set of interactions.
▪ Design principles:
• Modular approach.
• Deployment flexibility.
• Simplify the creation of Custom IoT Agents.
▪ Provisioning of devices and groups of devices.
▪ IoT Manager.
▪ Additional services (e.g. security, device registration, stats).
10
Integration with sensor networks
▪ Smart solutions need to deal with the wide variety of IoT protocols today
▪ Rather than trying to solve the battle of standards at IoT level, it brings a
standard where no standard exists today: context information management
11
Context Broker
IoT
Agent-1
IoT
Agent-2
IoT
Agent-n
IoT Agent
Manager
create/monitor
IoT Framework
Standard API (northbound interface)
(southbound interfaces)
MQTTETSI M2M IETF CoAP
Transport & Payload
▪ Device protocol = transport protocol + payload format
▪ Transports protocols
• HTTP
• MQTT
• Others
▪ Payload format
• UL (ultralight)
• JSON
• Others
▪ Transport and payload format are orthogonal, e.g.
• HTTP transport using JSON payload
• MQTT transport using JSON payload
• HTTP transport using UL payload
• MQTT transport using UL payload
• Etc.
12
Physical
Link
TCP
MQTT
Physical
Link
TCP
HTTP
Payload formats examples
▪ JSON
▪ Ultralight (UL)
13
{
"h": "45%",
"t": "23",
"l": "1570"
}
h|45%|t|23|l|1570
Ultralight 2.0 (Measures)
▪ Simple HTTP-based protocol
▪ Measure reporting:
• Key/Value pairs separated by | and #
• POST request with plain/text content to the IoTA path:
POST http://{{host}}:{{iota_ul-port}}/iot/d?k=&i={{device-id}}&t=2016-03-01T10:00:00Z
▪ Payload example:
t|34#h|87#l|1900
▪ Required query params
• k: Service API Key
• i: Device ID
▪ Optional query params
• t: timestamp of the measure 14
API operations
15
Configuration API: Group provision
▪ Create service
• /iot/services
▪ Not exactly REST (check doc)
• POST
• GET
• DELETE
• PUT
▪ Static attributes
▪ Mandatory
• Resource
• Api key
• Entity Type
16
{
"services": [
{
"apikey": "4jggokgpepnvsb2uv4s40d59ov",
"cbroker": "http://0.0.0.0:1026",
"entity_type": "thing",
"resource": "/iot/d"
}
]
}
Configuration API: Device provision
▪ Create device
• /iot/devices
▪ Not exactly REST (check doc):
• POST
• GET
• DELETE
• PUT
▪ Mandatory
• Device_id
• Entity_type
• protocol
▪ Commands
• endpoint
17
{
"devices": [
{
"device_id": "my_device_01",
"entity_name": "my_entity_01",
"entity_type": "thing",
"protocol": "PDI-IoTA-UltraLight",
"timezone": "Europe/Madrid",
"attributes": [
{
"object_id": "t",
"name": "temperature",
"type": "int"
},
{
"object_id": "l",
"name": "luminosity",
"type": "number"
}
]
}
]
}
Sending Measurements: Ultralight 2.0 HTTP
18
Simple HTTP Protocol
API key (k)
Device Id (i)
Key Pair values
Push and Pull commands
POST /iot/d?k= k=4jggokgpepnvsb2uv4s40d59ov
&i=my_device_01 HTTP/1.1
Host: localhost:7896
Content-Type: text/plain
Cache-Control: no-cache
t|37#l|1200HTTP/1.1 200 OK
Content-Length: 88
Content-Type: text/html
Connection: Closed
my_device_01@t|2| my_device_01@l|200
Example: Group provision
19
API Key provision
Type definition
Common attributes and
commands
POST /iot/services HTTP/1.1
Host: localhost:4041
Fiware-Service: smartsville
Fiware-ServicePath: /management
Content-Type: application/json
{
"services": [
{
"apikey": "1234567890",
"resource": "/iot/d",
"type": "smartcity",
"protocol": "PDI-IoTA-UltraLight"
}
]
}
Example: Device provision
20
Device ID definition
Defines per-device
attributes and commands
POST /iot/devices HTTP/1.1
Host: localhost:4041
Fiware-Service: smartsville
Fiware-ServicePath: /management
Content-Type: application/json
{
"devices": [{
"device_id": "smartsville",
"entity_type": "smartcity",
"protocol": "PDI-IoTA-UltraLight",
"attributes": [
{
"object_id": "lum",
"name": "Luminance",
"type": "lumens"
}
]}]}
Example: Ultralight 2.0 HTTP
21
Simple HTTP Protocol
Key Pair values
Push and Pull commands
POST /iot/d?k=1234567890&i=smartsville HTTP/1.1
Host: localhost:7896
Content-Type: text/plain
Cache-Control: no-cache
park1|true|park2|false|lum|300
HTTP/1.1 200 OK
Content-Length: 88
Content-Type: text/html
Connection: Closed
smartsville@semaphoreFreq|2|smartsville@luminosityLi
mit|200
Attributes and Commands
22
Attribute types
▪ Active attributes
• Actively updated to CB
▪ Lazy attributes
• Kept at the device, obtained using the CPr-forwarding mechanism
▪ Static attributes
• As active attributes, but with a “fixed” value
▪ Commands
• For actuation capabilities
• Managed in a similar way to lazy attributes, but involving also an
info and a status CB attributes
23
Interaction models: Active & Static
Attributes
24
IOT Agent
DB
Device
Protocol
NGSI
Entity information
Interaction
begins
Active attributes
25
…
"attributes": [
{ "object_id": "t", "name": "temperature", "type": "float" },
{ "object_id": "h", "name": "humidity", "type": "float" }
],
…
Static attributes
▪ Similar to active attributes but…
• They don’t correspond to actual measures sent by the physical device
• They have a fixed value
• They are attached to every IOTA-to-CB update operation
▪ Q: Why using static attributes?
26
…
"static_attributes": [
{ "name": "serialID", "type": "02598347", "value": "02598347" }
]
…
Interaction models: Lazy Attributes &
Commands
27
IOT Agent
Device
Protocol
NGSI
Command
Execution
Interaction
begins
Result Information
Requires the IOT Agent to be
registered as a Context
Provider
Lazy attributes
▪ Q: Why all this complication? Why don’t use only active attributes?
28
…
"lazy":[
{ "object_id": "l", "name": "luminosity", "type": "percentage" }
],
…
Commands
▪ Three supporting attributes at CB (per command)
• <cmd> (write), the one used by the application (through update context at
CB) in order to execute command
• <cmd>_status (read only), the one in which IOTA published status
□ UNKNOWN: transient status, just after device provisioning and before any
execution is done
□ PENDING: command execution is in progress
□ ERROR: command execution finished in error status
□ FINISHED: command execution finished in ok status
• <cmd>_info (read only): upon completion, the result of the command
execution (if any) is published by IOTA in this attribute
▪ Example:
• turn
• turn_info
• turn_status
29
…
"commands": [
{ "object_id": "u", "name": "turn", "type": "string" }
],
…
Commands
30
…
"commands": [
{ "object_id": "u", "name": "turn", "type": "string" }
],
…
turn_status
turn_status
turn_info
31
Question & Answer
fiware-tech-help@lists.fiware.org
fiware-lab-help@lists.fiware.org
32
Further reading
▪ IoT Agent Library
• https://github.com/telefonicaid/iotagent-node-lib
▪ IoT Agent-Ultralight 2.0
• Base doc: https://github.com/fiware/iotagent-ul
▪ Orion Context Broker
• Base doc: https://github.com/fiware/orion
• ReadTheDocs: https://fiware-orion.readthedocs.io
▪ STH-Comet
• Github repository: https://github.com/fiware/fiware-sth-comet
• ReadTheDocs: https://fiware-sth-comet.readthedocs.io/en/latest
▪ The FIWARE Catalogue
• https://catalogue.fiware.org/
33
34
http://fiware.org
Follow @FIWARE on Twitter
Thank you!
http://fiware.org
Follow @FIWARE on Twitter
35
Thank you!
http://fiware.org
Follow @FIWARE on Twitter
Backup slides

More Related Content

What's hot

FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conferenceFIWARE
 
Fiware Developers Week Iot exercises (Advanced)
Fiware Developers Week Iot exercises (Advanced)Fiware Developers Week Iot exercises (Advanced)
Fiware Developers Week Iot exercises (Advanced)dmoranj
 
IoT-Broker Developers Week
IoT-Broker Developers WeekIoT-Broker Developers Week
IoT-Broker Developers WeekFlavio Cirillo
 
201410 1 fiware-overview
201410 1 fiware-overview201410 1 fiware-overview
201410 1 fiware-overviewFIWARE
 
IoT Agents (Introduction)
IoT Agents (Introduction)IoT Agents (Introduction)
IoT Agents (Introduction)dmoranj
 
Setting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudSetting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudFernando Lopez Aguilar
 
Connecting Heterogeneus IoT Technologies & Products
Connecting Heterogeneus IoT Technologies & ProductsConnecting Heterogeneus IoT Technologies & Products
Connecting Heterogeneus IoT Technologies & ProductsFIWARE
 
FIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT AgentsFIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT AgentsFIWARE
 
Io t idas_intro_ul20_nobkg
Io t idas_intro_ul20_nobkgIo t idas_intro_ul20_nobkg
Io t idas_intro_ul20_nobkgFIWARE
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE
 
FIWARE Global Summit - Building Personalized FIWARE Enabled IoT Sandbox Solution
FIWARE Global Summit - Building Personalized FIWARE Enabled IoT Sandbox SolutionFIWARE Global Summit - Building Personalized FIWARE Enabled IoT Sandbox Solution
FIWARE Global Summit - Building Personalized FIWARE Enabled IoT Sandbox SolutionFIWARE
 
Fiware Developers Week IoT Agents (Advanced)
Fiware Developers Week IoT Agents (Advanced)Fiware Developers Week IoT Agents (Advanced)
Fiware Developers Week IoT Agents (Advanced)dmoranj
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WAREFermin Galan
 
FIWARE Tech Summit - FIWARE Connecting to IoT
FIWARE Tech Summit - FIWARE Connecting to IoTFIWARE Tech Summit - FIWARE Connecting to IoT
FIWARE Tech Summit - FIWARE Connecting to IoTFIWARE
 
FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
 FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M... FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...FIWARE
 
IoT Broker
IoT BrokerIoT Broker
IoT BrokerFIWARE
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2FIWARE
 
IoTSummit - Introduction to IoT Hub
IoTSummit - Introduction to IoT HubIoTSummit - Introduction to IoT Hub
IoTSummit - Introduction to IoT HubMarco Silva
 

What's hot (20)

FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
FIWARE Developers Week_FIWARE IoT: Beginner's tutorial_conference
 
Fiware Developers Week Iot exercises (Advanced)
Fiware Developers Week Iot exercises (Advanced)Fiware Developers Week Iot exercises (Advanced)
Fiware Developers Week Iot exercises (Advanced)
 
IoT-Broker Developers Week
IoT-Broker Developers WeekIoT-Broker Developers Week
IoT-Broker Developers Week
 
201410 1 fiware-overview
201410 1 fiware-overview201410 1 fiware-overview
201410 1 fiware-overview
 
IoT Agents (Introduction)
IoT Agents (Introduction)IoT Agents (Introduction)
IoT Agents (Introduction)
 
Setting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab CloudSetting up your virtual infrastructure using FIWARE Lab Cloud
Setting up your virtual infrastructure using FIWARE Lab Cloud
 
Connecting Heterogeneus IoT Technologies & Products
Connecting Heterogeneus IoT Technologies & ProductsConnecting Heterogeneus IoT Technologies & Products
Connecting Heterogeneus IoT Technologies & Products
 
FIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT AgentsFIWARE Tech Summit - FIWARE IoT Agents
FIWARE Tech Summit - FIWARE IoT Agents
 
Io t idas_intro_ul20_nobkg
Io t idas_intro_ul20_nobkgIo t idas_intro_ul20_nobkg
Io t idas_intro_ul20_nobkg
 
FIWARE IoT Proposal & Community
FIWARE IoT Proposal & CommunityFIWARE IoT Proposal & Community
FIWARE IoT Proposal & Community
 
What is an IoT Agent
What is an IoT AgentWhat is an IoT Agent
What is an IoT Agent
 
FIWARE Global Summit - Building Personalized FIWARE Enabled IoT Sandbox Solution
FIWARE Global Summit - Building Personalized FIWARE Enabled IoT Sandbox SolutionFIWARE Global Summit - Building Personalized FIWARE Enabled IoT Sandbox Solution
FIWARE Global Summit - Building Personalized FIWARE Enabled IoT Sandbox Solution
 
Fiware Developers Week IoT Agents (Advanced)
Fiware Developers Week IoT Agents (Advanced)Fiware Developers Week IoT Agents (Advanced)
Fiware Developers Week IoT Agents (Advanced)
 
Developing your first application using FI-WARE
Developing your first application using FI-WAREDeveloping your first application using FI-WARE
Developing your first application using FI-WARE
 
FIWARE Tech Summit - FIWARE Connecting to IoT
FIWARE Tech Summit - FIWARE Connecting to IoTFIWARE Tech Summit - FIWARE Connecting to IoT
FIWARE Tech Summit - FIWARE Connecting to IoT
 
FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
 FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M... FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
FIWARE Developers Week_IoT Agents with Thinking Things and OMA lightweight M...
 
IoT Broker
IoT BrokerIoT Broker
IoT Broker
 
Introduction to FIWARE Open Ecosystem
Introduction to FIWARE Open EcosystemIntroduction to FIWARE Open Ecosystem
Introduction to FIWARE Open Ecosystem
 
Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2Fiware IoT_IDAS_intro_ul20_v2
Fiware IoT_IDAS_intro_ul20_v2
 
IoTSummit - Introduction to IoT Hub
IoTSummit - Introduction to IoT HubIoTSummit - Introduction to IoT Hub
IoTSummit - Introduction to IoT Hub
 

Similar to FIWARE IoT Introduction 1

IoT Agents (With Lightweight M2M)
IoT Agents (With Lightweight M2M)IoT Agents (With Lightweight M2M)
IoT Agents (With Lightweight M2M)dmoranj
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a ServiceJesus Rodriguez
 
Develop a portal to manage your IoT Hub solution
 Develop a portal to manage your IoT Hub solution Develop a portal to manage your IoT Hub solution
Develop a portal to manage your IoT Hub solutionMarco Parenzan
 
Going Beyond the Device Heart Beat
Going Beyond the Device Heart BeatGoing Beyond the Device Heart Beat
Going Beyond the Device Heart BeatBalwinder Kaur
 
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Open Mobile Alliance
 
Iot meets Serverless
Iot meets ServerlessIot meets Serverless
Iot meets ServerlessNarendran R
 
Single Source of Truth for Network Automation
Single Source of Truth for Network AutomationSingle Source of Truth for Network Automation
Single Source of Truth for Network AutomationAndy Davidson
 
Expanding your impact with programmability in the data center
Expanding your impact with programmability in the data centerExpanding your impact with programmability in the data center
Expanding your impact with programmability in the data centerCisco Canada
 
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...Amazon Web Services
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile ServicesMarco Parenzan
 
System insight without Interference
System insight without InterferenceSystem insight without Interference
System insight without InterferenceTony Tam
 
Azure iot edge and AI enabling the intelligent edge
Azure iot edge and AI  enabling the intelligent edgeAzure iot edge and AI  enabling the intelligent edge
Azure iot edge and AI enabling the intelligent edgeMarco Dal Pino
 
Exploring the Azure IoT Ecosystem
Exploring the Azure IoT EcosystemExploring the Azure IoT Ecosystem
Exploring the Azure IoT EcosystemBizTalk360
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldSitaraman Lakshminarayanan
 
Python vs JLizard.... a python logging experience
Python vs JLizard.... a python logging experiencePython vs JLizard.... a python logging experience
Python vs JLizard.... a python logging experiencePython Ireland
 
MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
MongoDB.local Austin 2018:  Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...MongoDB.local Austin 2018:  Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...MongoDB
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE
 

Similar to FIWARE IoT Introduction 1 (20)

IoT Agents (With Lightweight M2M)
IoT Agents (With Lightweight M2M)IoT Agents (With Lightweight M2M)
IoT Agents (With Lightweight M2M)
 
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
MongoDB World 2018: Ch-Ch-Ch-Ch-Changes: Taking Your Stitch Application to th...
 
Building the IOT Platform as a Service
Building the IOT Platform as a ServiceBuilding the IOT Platform as a Service
Building the IOT Platform as a Service
 
Core Context Management
Core Context ManagementCore Context Management
Core Context Management
 
Develop a portal to manage your IoT Hub solution
 Develop a portal to manage your IoT Hub solution Develop a portal to manage your IoT Hub solution
Develop a portal to manage your IoT Hub solution
 
Going Beyond the Device Heart Beat
Going Beyond the Device Heart BeatGoing Beyond the Device Heart Beat
Going Beyond the Device Heart Beat
 
IoT
IoT IoT
IoT
 
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
 
Iot meets Serverless
Iot meets ServerlessIot meets Serverless
Iot meets Serverless
 
Single Source of Truth for Network Automation
Single Source of Truth for Network AutomationSingle Source of Truth for Network Automation
Single Source of Truth for Network Automation
 
Expanding your impact with programmability in the data center
Expanding your impact with programmability in the data centerExpanding your impact with programmability in the data center
Expanding your impact with programmability in the data center
 
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
Transforming Consumer Banking with a 100% Cloud-Based Bank (FSV204) - AWS re:...
 
2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services2015.04.23 Azure Mobile Services
2015.04.23 Azure Mobile Services
 
System insight without Interference
System insight without InterferenceSystem insight without Interference
System insight without Interference
 
Azure iot edge and AI enabling the intelligent edge
Azure iot edge and AI  enabling the intelligent edgeAzure iot edge and AI  enabling the intelligent edge
Azure iot edge and AI enabling the intelligent edge
 
Exploring the Azure IoT Ecosystem
Exploring the Azure IoT EcosystemExploring the Azure IoT Ecosystem
Exploring the Azure IoT Ecosystem
 
Externalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services worldExternalizing Authorization in Micro Services world
Externalizing Authorization in Micro Services world
 
Python vs JLizard.... a python logging experience
Python vs JLizard.... a python logging experiencePython vs JLizard.... a python logging experience
Python vs JLizard.... a python logging experience
 
MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
MongoDB.local Austin 2018:  Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...MongoDB.local Austin 2018:  Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
MongoDB.local Austin 2018: Ch-Ch-Ch-Ch-Changes: Taking Your MongoDB Stitch A...
 
FIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT AgentsFIWARE Wednesday Webinars - How to Debug IoT Agents
FIWARE Wednesday Webinars - How to Debug IoT Agents
 

More from Fernando Lopez Aguilar

Building the Smart City Platform on FIWARE Lab
Building the Smart City Platform on FIWARE LabBuilding the Smart City Platform on FIWARE Lab
Building the Smart City Platform on FIWARE LabFernando Lopez Aguilar
 
Big Data and Machine Learning with FIWARE
Big Data and Machine Learning with FIWAREBig Data and Machine Learning with FIWARE
Big Data and Machine Learning with FIWAREFernando Lopez Aguilar
 
Operational Dashboards with FIWARE WireCloud
Operational Dashboards with FIWARE WireCloudOperational Dashboards with FIWARE WireCloud
Operational Dashboards with FIWARE WireCloudFernando Lopez Aguilar
 
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoCreating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoFernando Lopez Aguilar
 
FIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFernando Lopez Aguilar
 
Data persistency (draco, cygnus, sth comet, quantum leap)
Data persistency (draco, cygnus, sth comet, quantum leap)Data persistency (draco, cygnus, sth comet, quantum leap)
Data persistency (draco, cygnus, sth comet, quantum leap)Fernando Lopez Aguilar
 
Cloud and Big Data in the agriculture sector
Cloud and Big Data in the agriculture sectorCloud and Big Data in the agriculture sector
Cloud and Big Data in the agriculture sectorFernando Lopez Aguilar
 
How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2Fernando Lopez Aguilar
 

More from Fernando Lopez Aguilar (20)

Introduction to FIWARE technology
Introduction to FIWARE  technologyIntroduction to FIWARE  technology
Introduction to FIWARE technology
 
DW2020 Data Models - FIWARE Platform
DW2020 Data Models - FIWARE PlatformDW2020 Data Models - FIWARE Platform
DW2020 Data Models - FIWARE Platform
 
FIWARE and Smart Data Models
FIWARE and Smart Data ModelsFIWARE and Smart Data Models
FIWARE and Smart Data Models
 
How to deploy a smart city platform?
How to deploy a smart city platform?How to deploy a smart city platform?
How to deploy a smart city platform?
 
Building the Smart City Platform on FIWARE Lab
Building the Smart City Platform on FIWARE LabBuilding the Smart City Platform on FIWARE Lab
Building the Smart City Platform on FIWARE Lab
 
Data Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LDData Modeling with NGSI, NGSI-LD
Data Modeling with NGSI, NGSI-LD
 
FIWARE and Robotics
FIWARE and RoboticsFIWARE and Robotics
FIWARE and Robotics
 
Big Data and Machine Learning with FIWARE
Big Data and Machine Learning with FIWAREBig Data and Machine Learning with FIWARE
Big Data and Machine Learning with FIWARE
 
Operational Dashboards with FIWARE WireCloud
Operational Dashboards with FIWARE WireCloudOperational Dashboards with FIWARE WireCloud
Operational Dashboards with FIWARE WireCloud
 
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE PerseoCreating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
Creating a Context-Aware solution, Complex Event Processing with FIWARE Perseo
 
FIWARE Identity Management and Access Control
FIWARE Identity Management and Access ControlFIWARE Identity Management and Access Control
FIWARE Identity Management and Access Control
 
Data persistency (draco, cygnus, sth comet, quantum leap)
Data persistency (draco, cygnus, sth comet, quantum leap)Data persistency (draco, cygnus, sth comet, quantum leap)
Data persistency (draco, cygnus, sth comet, quantum leap)
 
How to debug IoT Agents
How to debug IoT AgentsHow to debug IoT Agents
How to debug IoT Agents
 
FIWARE Overview
FIWARE OverviewFIWARE Overview
FIWARE Overview
 
Overview of the FIWARE Ecosystem
Overview of the FIWARE EcosystemOverview of the FIWARE Ecosystem
Overview of the FIWARE Ecosystem
 
Cloud and Big Data in the agriculture sector
Cloud and Big Data in the agriculture sectorCloud and Big Data in the agriculture sector
Cloud and Big Data in the agriculture sector
 
Berlin OpenStack Summit'18
Berlin OpenStack Summit'18Berlin OpenStack Summit'18
Berlin OpenStack Summit'18
 
How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2How to deploy spark instance using ansible 2.0 in fiware lab v2
How to deploy spark instance using ansible 2.0 in fiware lab v2
 
Simple docker hosting in FIWARE Lab
Simple docker hosting in FIWARE LabSimple docker hosting in FIWARE Lab
Simple docker hosting in FIWARE Lab
 
What is FIWARE Lab
What is FIWARE LabWhat is FIWARE Lab
What is FIWARE Lab
 

Recently uploaded

Zero-day Vulnerabilities
Zero-day VulnerabilitiesZero-day Vulnerabilities
Zero-day Vulnerabilitiesalihassaah1994
 
Niche Domination Prodigy Review Plus Bonus
Niche Domination Prodigy Review Plus BonusNiche Domination Prodigy Review Plus Bonus
Niche Domination Prodigy Review Plus BonusSkylark Nobin
 
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSLESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSlesteraporado16
 
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSTYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSedrianrheine
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...APNIC
 
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdfIntroduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdfShreedeep Rayamajhi
 
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsVision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsRoxana Stingu
 
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfLESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfmchristianalwyn
 
Presentation2.pptx - JoyPress Wordpress
Presentation2.pptx -  JoyPress WordpressPresentation2.pptx -  JoyPress Wordpress
Presentation2.pptx - JoyPress Wordpressssuser166378
 
world Tuberculosis day ppt 25-3-2024.pptx
world Tuberculosis day ppt 25-3-2024.pptxworld Tuberculosis day ppt 25-3-2024.pptx
world Tuberculosis day ppt 25-3-2024.pptxnaveenithkrishnan
 
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024Jan Löffler
 
Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Shubham Pant
 
A_Z-1_0_4T_00A-EN_U-Po_w_erPoint_06.pptx
A_Z-1_0_4T_00A-EN_U-Po_w_erPoint_06.pptxA_Z-1_0_4T_00A-EN_U-Po_w_erPoint_06.pptx
A_Z-1_0_4T_00A-EN_U-Po_w_erPoint_06.pptxjayshuklatrainer
 
Bio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxBio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxnaveenithkrishnan
 
Computer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteComputer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteMavein
 

Recently uploaded (15)

Zero-day Vulnerabilities
Zero-day VulnerabilitiesZero-day Vulnerabilities
Zero-day Vulnerabilities
 
Niche Domination Prodigy Review Plus Bonus
Niche Domination Prodigy Review Plus BonusNiche Domination Prodigy Review Plus Bonus
Niche Domination Prodigy Review Plus Bonus
 
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASSLESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
LESSON 10/ GROUP 10/ ST. THOMAS AQUINASS
 
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDSTYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
TYPES AND DEFINITION OF ONLINE CRIMES AND HAZARDS
 
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
Benefits of doing Internet peering and running an Internet Exchange (IX) pres...
 
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdfIntroduction to ICANN and Fellowship program  by Shreedeep Rayamajhi.pdf
Introduction to ICANN and Fellowship program by Shreedeep Rayamajhi.pdf
 
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced HorizonsVision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
Vision Forward: Tracing Image Search SEO From Its Roots To AI-Enhanced Horizons
 
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdfLESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
LESSON 5 GROUP 10 ST. THOMAS AQUINAS.pdf
 
Presentation2.pptx - JoyPress Wordpress
Presentation2.pptx -  JoyPress WordpressPresentation2.pptx -  JoyPress Wordpress
Presentation2.pptx - JoyPress Wordpress
 
world Tuberculosis day ppt 25-3-2024.pptx
world Tuberculosis day ppt 25-3-2024.pptxworld Tuberculosis day ppt 25-3-2024.pptx
world Tuberculosis day ppt 25-3-2024.pptx
 
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
WordPress by the numbers - Jan Loeffler, CTO WebPros, CloudFest 2024
 
Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024Check out the Free Landing Page Hosting in 2024
Check out the Free Landing Page Hosting in 2024
 
A_Z-1_0_4T_00A-EN_U-Po_w_erPoint_06.pptx
A_Z-1_0_4T_00A-EN_U-Po_w_erPoint_06.pptxA_Z-1_0_4T_00A-EN_U-Po_w_erPoint_06.pptx
A_Z-1_0_4T_00A-EN_U-Po_w_erPoint_06.pptx
 
Bio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptxBio Medical Waste Management Guideliness 2023 ppt.pptx
Bio Medical Waste Management Guideliness 2023 ppt.pptx
 
Computer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a WebsiteComputer 10 Lesson 8: Building a Website
Computer 10 Lesson 8: Building a Website
 

FIWARE IoT Introduction 1

  • 1. IoT in the FIWARE Platform - 1 IoT Agents Fernando López Aguilar FIWARE Cloud and Platform Senior Expert fernando.lopez@fiware.org @flopezaguilar
  • 2. 2
  • 3. IoT Interoperability ? Still a $1,000,000 question 3
  • 4. Even worse in 2017… 4
  • 5. 5
  • 6. 6 We need to find We need to find the exit of this labyrinth
  • 7. Tenemos un plan We have a plan :
  • 9. IoT Agents in a nutshell 9
  • 10. IoT Agents ▪ Device Protocol to NGSI Bridge: • One entity per device. • Constrained set of interactions. ▪ Design principles: • Modular approach. • Deployment flexibility. • Simplify the creation of Custom IoT Agents. ▪ Provisioning of devices and groups of devices. ▪ IoT Manager. ▪ Additional services (e.g. security, device registration, stats). 10
  • 11. Integration with sensor networks ▪ Smart solutions need to deal with the wide variety of IoT protocols today ▪ Rather than trying to solve the battle of standards at IoT level, it brings a standard where no standard exists today: context information management 11 Context Broker IoT Agent-1 IoT Agent-2 IoT Agent-n IoT Agent Manager create/monitor IoT Framework Standard API (northbound interface) (southbound interfaces) MQTTETSI M2M IETF CoAP
  • 12. Transport & Payload ▪ Device protocol = transport protocol + payload format ▪ Transports protocols • HTTP • MQTT • Others ▪ Payload format • UL (ultralight) • JSON • Others ▪ Transport and payload format are orthogonal, e.g. • HTTP transport using JSON payload • MQTT transport using JSON payload • HTTP transport using UL payload • MQTT transport using UL payload • Etc. 12 Physical Link TCP MQTT Physical Link TCP HTTP
  • 13. Payload formats examples ▪ JSON ▪ Ultralight (UL) 13 { "h": "45%", "t": "23", "l": "1570" } h|45%|t|23|l|1570
  • 14. Ultralight 2.0 (Measures) ▪ Simple HTTP-based protocol ▪ Measure reporting: • Key/Value pairs separated by | and # • POST request with plain/text content to the IoTA path: POST http://{{host}}:{{iota_ul-port}}/iot/d?k=&i={{device-id}}&t=2016-03-01T10:00:00Z ▪ Payload example: t|34#h|87#l|1900 ▪ Required query params • k: Service API Key • i: Device ID ▪ Optional query params • t: timestamp of the measure 14
  • 16. Configuration API: Group provision ▪ Create service • /iot/services ▪ Not exactly REST (check doc) • POST • GET • DELETE • PUT ▪ Static attributes ▪ Mandatory • Resource • Api key • Entity Type 16 { "services": [ { "apikey": "4jggokgpepnvsb2uv4s40d59ov", "cbroker": "http://0.0.0.0:1026", "entity_type": "thing", "resource": "/iot/d" } ] }
  • 17. Configuration API: Device provision ▪ Create device • /iot/devices ▪ Not exactly REST (check doc): • POST • GET • DELETE • PUT ▪ Mandatory • Device_id • Entity_type • protocol ▪ Commands • endpoint 17 { "devices": [ { "device_id": "my_device_01", "entity_name": "my_entity_01", "entity_type": "thing", "protocol": "PDI-IoTA-UltraLight", "timezone": "Europe/Madrid", "attributes": [ { "object_id": "t", "name": "temperature", "type": "int" }, { "object_id": "l", "name": "luminosity", "type": "number" } ] } ] }
  • 18. Sending Measurements: Ultralight 2.0 HTTP 18 Simple HTTP Protocol API key (k) Device Id (i) Key Pair values Push and Pull commands POST /iot/d?k= k=4jggokgpepnvsb2uv4s40d59ov &amp;i=my_device_01 HTTP/1.1 Host: localhost:7896 Content-Type: text/plain Cache-Control: no-cache t|37#l|1200HTTP/1.1 200 OK Content-Length: 88 Content-Type: text/html Connection: Closed my_device_01@t|2| my_device_01@l|200
  • 19. Example: Group provision 19 API Key provision Type definition Common attributes and commands POST /iot/services HTTP/1.1 Host: localhost:4041 Fiware-Service: smartsville Fiware-ServicePath: /management Content-Type: application/json { "services": [ { "apikey": "1234567890", "resource": "/iot/d", "type": "smartcity", "protocol": "PDI-IoTA-UltraLight" } ] }
  • 20. Example: Device provision 20 Device ID definition Defines per-device attributes and commands POST /iot/devices HTTP/1.1 Host: localhost:4041 Fiware-Service: smartsville Fiware-ServicePath: /management Content-Type: application/json { "devices": [{ "device_id": "smartsville", "entity_type": "smartcity", "protocol": "PDI-IoTA-UltraLight", "attributes": [ { "object_id": "lum", "name": "Luminance", "type": "lumens" } ]}]}
  • 21. Example: Ultralight 2.0 HTTP 21 Simple HTTP Protocol Key Pair values Push and Pull commands POST /iot/d?k=1234567890&amp;i=smartsville HTTP/1.1 Host: localhost:7896 Content-Type: text/plain Cache-Control: no-cache park1|true|park2|false|lum|300 HTTP/1.1 200 OK Content-Length: 88 Content-Type: text/html Connection: Closed smartsville@semaphoreFreq|2|smartsville@luminosityLi mit|200
  • 23. Attribute types ▪ Active attributes • Actively updated to CB ▪ Lazy attributes • Kept at the device, obtained using the CPr-forwarding mechanism ▪ Static attributes • As active attributes, but with a “fixed” value ▪ Commands • For actuation capabilities • Managed in a similar way to lazy attributes, but involving also an info and a status CB attributes 23
  • 24. Interaction models: Active & Static Attributes 24 IOT Agent DB Device Protocol NGSI Entity information Interaction begins
  • 25. Active attributes 25 … "attributes": [ { "object_id": "t", "name": "temperature", "type": "float" }, { "object_id": "h", "name": "humidity", "type": "float" } ], …
  • 26. Static attributes ▪ Similar to active attributes but… • They don’t correspond to actual measures sent by the physical device • They have a fixed value • They are attached to every IOTA-to-CB update operation ▪ Q: Why using static attributes? 26 … "static_attributes": [ { "name": "serialID", "type": "02598347", "value": "02598347" } ] …
  • 27. Interaction models: Lazy Attributes & Commands 27 IOT Agent Device Protocol NGSI Command Execution Interaction begins Result Information Requires the IOT Agent to be registered as a Context Provider
  • 28. Lazy attributes ▪ Q: Why all this complication? Why don’t use only active attributes? 28 … "lazy":[ { "object_id": "l", "name": "luminosity", "type": "percentage" } ], …
  • 29. Commands ▪ Three supporting attributes at CB (per command) • <cmd> (write), the one used by the application (through update context at CB) in order to execute command • <cmd>_status (read only), the one in which IOTA published status □ UNKNOWN: transient status, just after device provisioning and before any execution is done □ PENDING: command execution is in progress □ ERROR: command execution finished in error status □ FINISHED: command execution finished in ok status • <cmd>_info (read only): upon completion, the result of the command execution (if any) is published by IOTA in this attribute ▪ Example: • turn • turn_info • turn_status 29 … "commands": [ { "object_id": "u", "name": "turn", "type": "string" } ], …
  • 30. Commands 30 … "commands": [ { "object_id": "u", "name": "turn", "type": "string" } ], … turn_status turn_status turn_info
  • 31. 31
  • 33. Further reading ▪ IoT Agent Library • https://github.com/telefonicaid/iotagent-node-lib ▪ IoT Agent-Ultralight 2.0 • Base doc: https://github.com/fiware/iotagent-ul ▪ Orion Context Broker • Base doc: https://github.com/fiware/orion • ReadTheDocs: https://fiware-orion.readthedocs.io ▪ STH-Comet • Github repository: https://github.com/fiware/fiware-sth-comet • ReadTheDocs: https://fiware-sth-comet.readthedocs.io/en/latest ▪ The FIWARE Catalogue • https://catalogue.fiware.org/ 33

Editor's Notes

  1. Dante’s divine comedy Auguste Rodin, The Gates of Hell, De poorten van de hel
  2. Tipos de Entity type
  3. Que valores distintos de protocol tenemos?
  4. fiware-tech-help@lists.fiware.org fiware-lab-help@lists.fiware.org