Okay. Hi everyone! My name is Kathy Giori.
I come from Mozilla's Mountain View office in California
and as Ali said, you know,
we have a large organization mostly focused on Firefox,
but there's a hundred or so people in emerging technologies
and our Web of Things initiative is part of our emerging technologies.
We're focused on protecting people,
putting people first in terms of IoT
with the use case of Smart Homes as a first part.
So, the title
An IoTs Forecast That’s Sunny and Clear (No Clouds!).
So, what I'm going to be presenting today is
the web things gateway running on this little Raspberry Pi.
I actually don't have it connected to the Internet
because that was hard.
It can be connected to the Internet
but our whole project is basically protecting you
from these sorts of concerns.
So, we've interviewed a lot of people
and their concerns about security are always first and foremost.
I go to lot of conferences
and IoT security, security security as the only thing.
But even if I have a thing that's connected to the cloud
and is totally secure
what about my privacy?
Where's my data going?
Who has it?
So, privacy is also a big concern.
Interoperability.
Like can you only buy one brand?
And then overall value.
Do things last, can you reconnect them?
So, actually what Mozilla is doing quite a bit different,
most vendors,
most of time you buy the device,
they connect the device’s data to the cloud.
You download some smartphone app,
that app talks to the cloud.
In our case,
we actually run all of the interoperability of the web things locally
and you use a JWT or OAuth framework
to share those data with the cloud.
We're not saying like data never goes to the cloud,
we want consumers to decide what data goes to the cloud.
When I'm here I can tunnel into my office,
I can tunnel into my home
with an HTTPS tunnel
or no data is stored or processed in the cloud,
I'm just going like I go to a normal website.
Only the website is served up by the gateway.
I'm going to quickly go through some of these slides.
The decentralization we think is important.
So, all the data is in the hands of just a few big tech companies.
Privacy is you own and control your data.
When you set up this gateway
there is a subdomain that you create
that downloads a certificate from Let's Encrypt
and then you can own that unique domain as long as you want
and we've been working with the W3C Web of Things initiative
for the last couple of years
and that whole initiative says
you've got all these different radio protocols and messaging protocols
but where we really want to bring IoT data is to web developers
and web developers would like to consume it as a JSON description.
So, the W3C Web of Things
just says there's JSON descriptions and properties, actions, and events.
And that's how you figure this stuff up.
All of our source code is open source on GitHub, Mozilla - IoT.
We have public discourse and IRC channels and issues on GitHub.
The architecture is...
basically, the core is written in node,
but these adapters or add-on frameworks that bridge commercial devices
can be written in any language
and the whole goal is for you to take control of your smart home.
Earlier today, I want to call out Y. C. Wang
who's sitting on the couch in the back from Digi-Key
and he set up a meeting where we were at Ngee Ann Poly University
and he gave a hands-on demo today.
Where did I put my stuff? Okay.
And he donated some of these circuit playgrounds
that you can turn into fun stuff.
And I was using a program called MicroBlocks
which makes it really easy to do.
And we funded through Mozilla's Open Source Support grant
this project MicroBlocks
which is also completely open source and free
to incorporate a Web of Things library,
so you can go grab examples
and kids and students and myself,
you can build web things
and here even though it's not formatted,
you can see if I have an IP based like an ESP32
it can actually generate its JSON content locally on the microcontroller itself
and you could go to its web page
but it also connects it up to the gateway.
So, I thought I'd jump over to a live demo.
First let's see if we can get to some,
like it's 2 in the morning.
Yeah, it's quarter to 3 in the morning in California.
Let's just see if we can...
It's having trouble pulling up this page a moment ago.
Let me just reload it.
Let’s start with my house.
I want to just tell you about a little bit of the privacy issues.
So, if I load the logs in my house,
you can see the main door where we enter in and go out,
last opened at 8:48 or something like that.
So, my husband is at home.
So, you can see when he comes in and goes
just with one little door sensor.
Looks like this, right?
Imagine all that data.
And then there's things like lights automatically turning on and off
to make it appear that you are home.
The earthquake monitors, one of my favorites.
I'll show you what that looks like,
the tide in Redwood City.
So, what I wanted to show you is
it's not just about creating data that you generate that goes out
but these data like the earthquake monitor,
sometimes, randomly, I'll be giving a presentation
and an earthquake from the USGS will come in
and it'll go active
and it'll stay there for 10 minutes.
This is the tide in Redwood City.
So, these are APIs where we're setting up to the outside world.
And then I have like leak sensors under the sink,
tells me
and I have these hooked up to notifications
because I'm not looking at this user interface all the time
and so I can send notifications out in many different ways.
And the Internet radio I can stream,
I can load up some of my favorite stations like Radio Swiss Jazz or KQED.
I don't think I'll turn the radio on at home.
This page is ever loaded.
Load that one up.
And so, then I wanted to show you I have this local gateway here
that I'm just going to demonstrate.
Some of the magic that I can't really demonstrate very well here
is that I have a speaker microphone through USB.
I have my own little Wi-Fi network here.
So, it's on my own little home network if you will.
And I have commercial off-the-shelf stuff.
First, I need to jump over to this web page.
It's going to be going to this private network.
Okay.
Oh! and I didn't show you there's floor plan view and rules,
I will show that, demonstrate that really quickly here.
If I get this network set up.
Load.
Here it comes.
Okay.
So, what I've done is,
I've done a rule where if I open the door,
I'm going to turn on the rainbow light.
My page is not quite loaded yet.
And you can see the motion sensor.
Here we go.
So, if anyone can see that the icons match what I'm doing
and these snow pixels,
there's things...
Let me script to my other screen.
There's things one second pulse that I created
and an everything one second pulse that I created
that I can turn things on and off easily.
And I can even do this with my voice.
Hey Snips, turn things on.
Don't disappoint me.
Hey Snips, turn things on.
That's a little better
and you can
when you create new things it'll pick up the word,
I can say, Hey Snips, turn off the rainbow.
And then that little everything button
because it's always on,
when I turn it off it turns off the other things.
Hey Snips, turn everything off.
So, it's really useful for you to be able to create names of things
and then group things
when you're at home or anywhere
and then there's...
oh! I left my internet connected situation to do the local stuff.
I was going to show you really quick
if I have a chance
how to create new things.
So, I have this MicroBlocks application.
I'm just going to open an example,
or do something in real time.
My Circuit Playground Express,
it's a little ambulance example.
Instead of an ambulance I'm going to call it an alarm.
So, what this does is the mic
the web of things library is right here
and then you get like tones to make noises,
NeoPixels to change the colors.
You put it all together
and this is a live programming environment.
So, the blocks that I just started are actually running as byte code
and there's a MicroBlocks add-on
and if all goes well, it will find my ambulance,
that I had called an alarm
and I'll save that.
Done.
And now that thing becomes a web thing.
And then the last really quick thing
that I didn't really show off very well
but rules,
I already have a rule that when the door is open it turns on the rainbow.
We can just add the alarm to that,
say triggered
and this is a wild rule that can be if or while.
So, now I have this rule set up
when the door is open
should both have that light on,
oops, that’s a motion sensor
and set the...
See you can see how quickly all that goes.
So that's web things in a nutshell.
And I got one more little announcement.
Got to run back to the grab guest,
grab this,
is that I have a bag of micro SD cards
for the image that you can plug into a Raspberry Pi
and turn it into your own private Smart Home Web Thing Gateway.
I have a limited number there, about 30 or so,
but if you have a Raspberry Pi
I've pre flashed the Mozilla IoT software image
and you just plug it in and you go through three steps,
get it on your network,
give it a private subdomain
and give it a first user accounts,
you can tunnel in remotely
and then you start buying stuff or making stuff.
So, hope you'll enjoy that
and come find me later if you want a micro SD card.
Thank you.
[Applause]