SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
Project Things
A secure gateway to connect your things to Internet
February 2, 2019
<https://fosdem.org/2019/schedule/event/project_things>
Speakers
2
Dipesh Monga
@ Mozilla Techspeakers
Philippe Coval
@ Samsung OpenSource
The hidden dangers of uploading our physical lives to the cloud.
3
Shodan: The scariest search engine on the Internet
4
Shodan: Potential Targets
6
• Routers
• Webcams
• SCADA systems
• Traffic Lights
• Wind farms
• Refrigerators
• Printers
• Gas station pumps, Power Grids
Project Things
by Mozilla
8
Mozilla Solution Addresses Biggest Smart Home Concerns
Source: Forrester. Based on North American Consumer Technographics Consumer Tech, Media, & Telecom Online Benchmark Recontact Survey 2, Q3 2016. Base: US
Online Adults 18+ (Online Weekly or More); n= 4,515
9
Mozilla Project Things
Vision
We envision an open and decentralized Internet of Things that puts people first, where
individuals can shape their own experience and are empowered, safe and independent.
Mission
Our mission is to create an open source Web of Things implementation which embodies
Mozilla’s values and helps drive IoT standards for security, privacy, and interoperability.
Directly monitor and control your home
over the web, without a middleman
10
• Affordable one-off purchase, no monthly subscription
• Private data stays in your home by default
• Expand with devices from multiple manufacturers
Things Gateway - Use Cases
12
W3C Web of Things Cuts Across Silos
13
Web of Things Smart Toaster
The Web of Things means addressing
Things via URLs and following standard
APIs. Using a web framework makes things
discoverable and linkable, and provides web
developers with an opportunity to let users
interact via a wide range of interfaces:
screens, voice, gesture, augmented reality…
It works even without an Internet
connection.
14
Things Gateway 0.7 (2019-01)
Build your own gateway with a Raspberry Pi
Controllers
Things
Things Gateway
(Linux)
Gateway OEM product support
• Secure, private remote access tunnels
• Over-the-air software updates
• Future options: Encrypted backups, security
monitoring, 3rd party web services (via OAuth)
What Goes on in the Cloud?
Existing Wi-Fi AP
Mozilla Project
Things
Framework
15
• Cloud: support for setup, backup, updates, 3rd party apps and services
integration, and remote encrypted tunneling
• Gateway: always on IoT connectivity hub in the home
• Controllers: smart speakers, tablets/phones, AR headsets...
• Devices: sensors and actuators (“things”) to instrument your smart
home
Things Gateway - Security
16
• HTTPS via mozilla-iot.org tunnelling service TCP tunnel uses PageKite
(no need to open ports on your router).
• Unique subdomains with LetsEncrypt TLS certificates:
(Optionally configure your own NAT, DNS & TLS)
• JSON Web Tokens used for authentication
• OAuth to authorise third party apps & services
● Downloadable OS image for Raspberry Pi
● Perfect for hackers and makers
iot.mozilla.org/gateway
Things Gateway
Tech details 😱
Setup:
Things Gateway
19
● Download gateway
○ Dump supported image to SDcard for RPi
○ or rebuild srcs for desktop or other boards
● Connect to it using web browser
○ Optionally: Setup WiFi, domain
● Install addons (ie: Virtual WebThings)
● Add more things to dashboard
● Automate conditions from sensors to actuators
○ Use rules engine from GUI
What are
WebThings ?
20
● Webthings are just HTTP servers
○ Connected to gateway (star topology, not P2P)
● Specified by MozIot schema (Described in JSON)
● Easy to implement (JS, Python, C/C++, Rust…):
○ for runtime:
■ npm install webthing
○ for IoT.js alt runtime: webthing-iotjs (fork)
■ IoT.js uses JerryScript engine (ES 5.1)
■ Develop on POSIX OS (GNU/Linux)
■ Deploy on MCU:
■ More: “Bring JS to IoT” (Sun 14h JS room)
RT
Implementings WebThings
var webthing = require('webthing-iotjs');
function SomeProperty(thing) {
webthing.Property.call(this, thing,
'SomeProperty',
new webthing.Value(42),
{'@type':'LevelProperty'});
});
var thing = new webthing.Thing('SomeThing');
thing.addProperty(new SomeProperty(thing));
var server = new webthing.WebThingServer
(new webthing.SingleThing(thing), 8888);
server.start();
21
$ curl http://localhost:8888
{
"name":"SomeThing",
"href":"/",
"@context":
"https://iot.mozilla.org/schemas",
"@type":[null],
"properties":{
"SomeProperty":{
"links":[
{"rel":"property",
"href":"/properties/SomeProperty"
}]}},
"links":[
{"rel":"properties",
"href":"/properties"
}]}
$ curl http://localhost:8888/properties/SomeProperty
{"SomeProperty":42}
Protocol Interoperability using REST
var mqtt = require('mqtt'); // IoT.js builtin module
function MqttProperty(thing) { var self=this;
webthing.Property.call(this,thing,
'Humidity', new webthing.Value(0),{'@type':'LevelProperty'});
thing.client.subscribe('workgroup/$MACHINE_ID/air/humidity');
thing.client.on('message', function(data) {
var update = JSON.parse(data.message.toString())['humidity'];
self.value.notifyOfExternalUpdate(update);
});
}
22
var thing = new webthing.Thing('MqttSensor');
thing.client = new mqtt.connect({host: 'iot.eclipse.org', port: 1883},
function(){ thing.addProperty(new MqttProperty(thing));
(new webthing.WebThingServer(...)).start();
});
Extends gateway
With addons
23
● Adapters to bridge:
○ Other IoT devices (or protocols)
■ E.g: Onvif Cameras…
○ Or online services:
■ E.g: ActivityPub/Mastodon, EMail
○ I/O: Generic Sensors (I2C), GPIO, USB?
● Can be implemented in any language
○ IPC is used for Node.JS using nanomsg
● Community supported
Live demo
24
https://youtu.be/OT0Ahuy3Cv4#webthing-iotjs-opendata-20190202rzr
Build your own web
things with the Things
Framework
Create a Things Gateway
adapter add-on to bridge an
existing IoT device or
protocol to the web
Help us develop our
Web of Things
implementation
Build a Web Thing Create an adapter Hack on Project Things
iot.mozilla.org/contribute
Get Involved
iot.mozilla.org
#iot on IRC
@MozillaIoT on Twitter
Mozilla IoT on Discourse
Find Out More
Thank you
#mozilla
#moztechspeakers
28
@diipeshmonga
@RzrFreeFr irc://irc.mozilla.org/iot
https://social.samsunginter.net/@rzr/
https://github.com/rzr/webthing-iotjs/wiki

Mais conteúdo relacionado

Mais procurados

Encode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in MotokoEncode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in Motoko
KlaraOrban
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
Benjamin Cabé
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
OpenStack Korea Community
 

Mais procurados (20)

Docker for .NET Developers
Docker for .NET DevelopersDocker for .NET Developers
Docker for .NET Developers
 
Encode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in MotokoEncode x ICH: Intro to Building on the IC in Motoko
Encode x ICH: Intro to Building on the IC in Motoko
 
Decomposing Lithium's Monolith with Kubernetes and OpenStack
Decomposing Lithium's Monolith with Kubernetes and OpenStackDecomposing Lithium's Monolith with Kubernetes and OpenStack
Decomposing Lithium's Monolith with Kubernetes and OpenStack
 
Barcelona MeetUp - Kontena Intro
Barcelona MeetUp - Kontena IntroBarcelona MeetUp - Kontena Intro
Barcelona MeetUp - Kontena Intro
 
Openstack Trunk Port
Openstack Trunk PortOpenstack Trunk Port
Openstack Trunk Port
 
IT Minds Mindblown Networking Event 2016
IT Minds Mindblown Networking Event 2016IT Minds Mindblown Networking Event 2016
IT Minds Mindblown Networking Event 2016
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
 
Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014Mirantis OpenStack-DC-Meetup 17 Sept 2014
Mirantis OpenStack-DC-Meetup 17 Sept 2014
 
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native EraNATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
NATS: Simple, Secure and Scalable Messaging For the Cloud Native Era
 
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
msnos: a cool and cozy blanket for your microservices - Bruno Bossola - Codem...
 
Deploying and managing container-based applications with OpenStack and Kubern...
Deploying and managing container-based applications with OpenStack and Kubern...Deploying and managing container-based applications with OpenStack and Kubern...
Deploying and managing container-based applications with OpenStack and Kubern...
 
Navigating OpenStack Networking
Navigating OpenStack NetworkingNavigating OpenStack Networking
Navigating OpenStack Networking
 
Blockchains - Architecture Overview and Consenus Models - Apr 26th, 2017
Blockchains - Architecture Overview and Consenus Models - Apr 26th, 2017Blockchains - Architecture Overview and Consenus Models - Apr 26th, 2017
Blockchains - Architecture Overview and Consenus Models - Apr 26th, 2017
 
Inside Architecture of Neutron
Inside Architecture of NeutronInside Architecture of Neutron
Inside Architecture of Neutron
 
Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8Fiware io t_ul20_cpbr8
Fiware io t_ul20_cpbr8
 
OpenStack Neutron Havana Overview - Oct 2013
OpenStack Neutron Havana Overview - Oct 2013OpenStack Neutron Havana Overview - Oct 2013
OpenStack Neutron Havana Overview - Oct 2013
 
OpenStack Neutron behind the Scenes
OpenStack Neutron behind the ScenesOpenStack Neutron behind the Scenes
OpenStack Neutron behind the Scenes
 
WordPressCafe - Deploying WordPress using Kontena
WordPressCafe - Deploying WordPress using KontenaWordPressCafe - Deploying WordPress using Kontena
WordPressCafe - Deploying WordPress using Kontena
 
OpenStack and OpenDaylight: An Integrated IaaS for SDN/NFV
OpenStack and OpenDaylight: An Integrated IaaS for SDN/NFVOpenStack and OpenDaylight: An Integrated IaaS for SDN/NFV
OpenStack and OpenDaylight: An Integrated IaaS for SDN/NFV
 

Semelhante a mozilla-things-fosdem-2019

Mainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformMainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT Platform
Sasa Klopanovic
 
Mainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformMainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT Platform
Sasa Klopanovic
 
The internet of things in now , see how golang is a part of this evolution
The internet of things in now , see how golang is a part of this evolutionThe internet of things in now , see how golang is a part of this evolution
The internet of things in now , see how golang is a part of this evolution
Yoni Davidson
 

Semelhante a mozilla-things-fosdem-2019 (20)

web-of-twins-20190604rzr
web-of-twins-20190604rzrweb-of-twins-20190604rzr
web-of-twins-20190604rzr
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, ParisThe complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
 
webthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzrwebthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzr
 
The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)
 
Create IoT with Open Source Hardware, Tizen and HTML5
Create IoT with Open Source Hardware, Tizen and HTML5Create IoT with Open Source Hardware, Tizen and HTML5
Create IoT with Open Source Hardware, Tizen and HTML5
 
webthing-iotjs-20181027rzr
webthing-iotjs-20181027rzrwebthing-iotjs-20181027rzr
webthing-iotjs-20181027rzr
 
Hack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGSHack the Real World with ANDROID THINGS
Hack the Real World with ANDROID THINGS
 
KNoT - a framework for iot interoperability
KNoT - a framework for iot interoperabilityKNoT - a framework for iot interoperability
KNoT - a framework for iot interoperability
 
Iot presentation
Iot presentationIot presentation
Iot presentation
 
webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrwebthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzr
 
Understanding IoT with Cloud IoT Core
Understanding IoT with Cloud IoT CoreUnderstanding IoT with Cloud IoT Core
Understanding IoT with Cloud IoT Core
 
Windows IoT
Windows IoTWindows IoT
Windows IoT
 
La web de las Cosas
La web de las CosasLa web de las Cosas
La web de las Cosas
 
Internet of things - The Present & The Future
Internet of things - The Present & The FutureInternet of things - The Present & The Future
Internet of things - The Present & The Future
 
Mainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformMainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT Platform
 
Mainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT PlatformMainflux - Hyperscalable Unified IoT Platform
Mainflux - Hyperscalable Unified IoT Platform
 
BKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End StoryBKK16-500K2 CTO talk - The End to End Story
BKK16-500K2 CTO talk - The End to End Story
 
The internet of things in now , see how golang is a part of this evolution
The internet of things in now , see how golang is a part of this evolutionThe internet of things in now , see how golang is a part of this evolution
The internet of things in now , see how golang is a part of this evolution
 
The Internet of Things: We've Got to Chat
The Internet of Things: We've Got to ChatThe Internet of Things: We've Got to Chat
The Internet of Things: We've Got to Chat
 

Mais de Phil www.rzr.online.fr

Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529
Phil www.rzr.online.fr
 

Mais de Phil www.rzr.online.fr (20)

Iot privacy-soscon-2019
Iot privacy-soscon-2019Iot privacy-soscon-2019
Iot privacy-soscon-2019
 
aframe-webthing-20190710
aframe-webthing-20190710aframe-webthing-20190710
aframe-webthing-20190710
 
digital-twins-webthings-iotjs-20190512rzr
digital-twins-webthings-iotjs-20190512rzrdigital-twins-webthings-iotjs-20190512rzr
digital-twins-webthings-iotjs-20190512rzr
 
up-down-stream-flows-20190411rzr
up-down-stream-flows-20190411rzrup-down-stream-flows-20190411rzr
up-down-stream-flows-20190411rzr
 
wotxr-20190320rzr
wotxr-20190320rzrwotxr-20190320rzr
wotxr-20190320rzr
 
tizen-rt-javascript-20181011
tizen-rt-javascript-20181011tizen-rt-javascript-20181011
tizen-rt-javascript-20181011
 
osvehicle-connected-20160429
osvehicle-connected-20160429osvehicle-connected-20160429
osvehicle-connected-20160429
 
tdc2015-strategy-devel-20150916
tdc2015-strategy-devel-20150916tdc2015-strategy-devel-20150916
tdc2015-strategy-devel-20150916
 
tizen-maintain-20150413rzr
tizen-maintain-20150413rzrtizen-maintain-20150413rzr
tizen-maintain-20150413rzr
 
Iotivity atmel-20150328rzr
Iotivity atmel-20150328rzrIotivity atmel-20150328rzr
Iotivity atmel-20150328rzr
 
Tizen store-z1-20150228rzr
Tizen store-z1-20150228rzrTizen store-z1-20150228rzr
Tizen store-z1-20150228rzr
 
Iotivity tizen-fosdem-2015
Iotivity tizen-fosdem-2015Iotivity tizen-fosdem-2015
Iotivity tizen-fosdem-2015
 
FOSDEM2015: Porting Tizen:Common to open source hardware devices
FOSDEM2015: Porting Tizen:Common to open source hardware devicesFOSDEM2015: Porting Tizen:Common to open source hardware devices
FOSDEM2015: Porting Tizen:Common to open source hardware devices
 
tizen-oshw-tds14sh
tizen-oshw-tds14shtizen-oshw-tds14sh
tizen-oshw-tds14sh
 
Tizen platform-dev-tds14sh
Tizen platform-dev-tds14shTizen platform-dev-tds14sh
Tizen platform-dev-tds14sh
 
Tdc2014 tizen common_20140603
Tdc2014 tizen common_20140603Tdc2014 tizen common_20140603
Tdc2014 tizen common_20140603
 
tizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcovaltizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcoval
 
Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201
 
Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529
 
Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 

mozilla-things-fosdem-2019

  • 1. Project Things A secure gateway to connect your things to Internet February 2, 2019 <https://fosdem.org/2019/schedule/event/project_things>
  • 2. Speakers 2 Dipesh Monga @ Mozilla Techspeakers Philippe Coval @ Samsung OpenSource
  • 3. The hidden dangers of uploading our physical lives to the cloud. 3
  • 4. Shodan: The scariest search engine on the Internet 4
  • 5.
  • 6. Shodan: Potential Targets 6 • Routers • Webcams • SCADA systems • Traffic Lights • Wind farms • Refrigerators • Printers • Gas station pumps, Power Grids
  • 8. 8 Mozilla Solution Addresses Biggest Smart Home Concerns Source: Forrester. Based on North American Consumer Technographics Consumer Tech, Media, & Telecom Online Benchmark Recontact Survey 2, Q3 2016. Base: US Online Adults 18+ (Online Weekly or More); n= 4,515
  • 9. 9 Mozilla Project Things Vision We envision an open and decentralized Internet of Things that puts people first, where individuals can shape their own experience and are empowered, safe and independent. Mission Our mission is to create an open source Web of Things implementation which embodies Mozilla’s values and helps drive IoT standards for security, privacy, and interoperability.
  • 10. Directly monitor and control your home over the web, without a middleman 10 • Affordable one-off purchase, no monthly subscription • Private data stays in your home by default • Expand with devices from multiple manufacturers
  • 11. Things Gateway - Use Cases
  • 12. 12 W3C Web of Things Cuts Across Silos
  • 13. 13 Web of Things Smart Toaster The Web of Things means addressing Things via URLs and following standard APIs. Using a web framework makes things discoverable and linkable, and provides web developers with an opportunity to let users interact via a wide range of interfaces: screens, voice, gesture, augmented reality… It works even without an Internet connection.
  • 14. 14 Things Gateway 0.7 (2019-01) Build your own gateway with a Raspberry Pi Controllers Things Things Gateway (Linux) Gateway OEM product support • Secure, private remote access tunnels • Over-the-air software updates • Future options: Encrypted backups, security monitoring, 3rd party web services (via OAuth) What Goes on in the Cloud? Existing Wi-Fi AP
  • 15. Mozilla Project Things Framework 15 • Cloud: support for setup, backup, updates, 3rd party apps and services integration, and remote encrypted tunneling • Gateway: always on IoT connectivity hub in the home • Controllers: smart speakers, tablets/phones, AR headsets... • Devices: sensors and actuators (“things”) to instrument your smart home
  • 16. Things Gateway - Security 16 • HTTPS via mozilla-iot.org tunnelling service TCP tunnel uses PageKite (no need to open ports on your router). • Unique subdomains with LetsEncrypt TLS certificates: (Optionally configure your own NAT, DNS & TLS) • JSON Web Tokens used for authentication • OAuth to authorise third party apps & services
  • 17. ● Downloadable OS image for Raspberry Pi ● Perfect for hackers and makers iot.mozilla.org/gateway Things Gateway
  • 19. Setup: Things Gateway 19 ● Download gateway ○ Dump supported image to SDcard for RPi ○ or rebuild srcs for desktop or other boards ● Connect to it using web browser ○ Optionally: Setup WiFi, domain ● Install addons (ie: Virtual WebThings) ● Add more things to dashboard ● Automate conditions from sensors to actuators ○ Use rules engine from GUI
  • 20. What are WebThings ? 20 ● Webthings are just HTTP servers ○ Connected to gateway (star topology, not P2P) ● Specified by MozIot schema (Described in JSON) ● Easy to implement (JS, Python, C/C++, Rust…): ○ for runtime: ■ npm install webthing ○ for IoT.js alt runtime: webthing-iotjs (fork) ■ IoT.js uses JerryScript engine (ES 5.1) ■ Develop on POSIX OS (GNU/Linux) ■ Deploy on MCU: ■ More: “Bring JS to IoT” (Sun 14h JS room) RT
  • 21. Implementings WebThings var webthing = require('webthing-iotjs'); function SomeProperty(thing) { webthing.Property.call(this, thing, 'SomeProperty', new webthing.Value(42), {'@type':'LevelProperty'}); }); var thing = new webthing.Thing('SomeThing'); thing.addProperty(new SomeProperty(thing)); var server = new webthing.WebThingServer (new webthing.SingleThing(thing), 8888); server.start(); 21 $ curl http://localhost:8888 { "name":"SomeThing", "href":"/", "@context": "https://iot.mozilla.org/schemas", "@type":[null], "properties":{ "SomeProperty":{ "links":[ {"rel":"property", "href":"/properties/SomeProperty" }]}}, "links":[ {"rel":"properties", "href":"/properties" }]} $ curl http://localhost:8888/properties/SomeProperty {"SomeProperty":42}
  • 22. Protocol Interoperability using REST var mqtt = require('mqtt'); // IoT.js builtin module function MqttProperty(thing) { var self=this; webthing.Property.call(this,thing, 'Humidity', new webthing.Value(0),{'@type':'LevelProperty'}); thing.client.subscribe('workgroup/$MACHINE_ID/air/humidity'); thing.client.on('message', function(data) { var update = JSON.parse(data.message.toString())['humidity']; self.value.notifyOfExternalUpdate(update); }); } 22 var thing = new webthing.Thing('MqttSensor'); thing.client = new mqtt.connect({host: 'iot.eclipse.org', port: 1883}, function(){ thing.addProperty(new MqttProperty(thing)); (new webthing.WebThingServer(...)).start(); });
  • 23. Extends gateway With addons 23 ● Adapters to bridge: ○ Other IoT devices (or protocols) ■ E.g: Onvif Cameras… ○ Or online services: ■ E.g: ActivityPub/Mastodon, EMail ○ I/O: Generic Sensors (I2C), GPIO, USB? ● Can be implemented in any language ○ IPC is used for Node.JS using nanomsg ● Community supported
  • 25. Build your own web things with the Things Framework Create a Things Gateway adapter add-on to bridge an existing IoT device or protocol to the web Help us develop our Web of Things implementation Build a Web Thing Create an adapter Hack on Project Things iot.mozilla.org/contribute Get Involved
  • 26. iot.mozilla.org #iot on IRC @MozillaIoT on Twitter Mozilla IoT on Discourse Find Out More
  • 27.