 Welcome, everyone, to the Linux Foundation Open Source Summit. Hello. Welcome, everyone, to the Linux Foundation Open Source Summit. My name is Kathy Jory. I'm streaming to you live from San Diego this morning. Actually, I don't live in San Diego, but having to be visiting down here. So I'm going to talk to you about today about the privacy implications and security of running a smart home. So hopefully, some of you out there have checked it out. There's a lot of convenience and physical security and things that are nice about smart home equipment. But there's a lot of things to watch out for as well. I worked for a little over two years on the project at Mozilla that was an attempt to be standards-based through the web smart home project. It really is successful. It really works great. And that's what I'm going to be demonstrating today. So do it yourself, even though I'm working as a volunteer right now on the project leadership committee of MicroBlocks, I still do a lot of support for Mozilla project as well. So we're right in. And I have some links on this main page that takes you to microblocks.fun, iot.mozilla.org, during the slides as well. And after I go through a few slides to introduce the things, I'm actually going to play a prerecording that I took at my own home for some of the smart home equipment that I have there so you can see what I have in this slide, which is a little video of what's going on there. So I want to explain what's different and what's similar. Oh, no, sorry. Before I go into that, I wanted to mention an online tutorial. And it is free and open to the public. I wrote up this to some other talks I've been giving to universities, IEEE chapters, and so forth, so they could do a walkthrough of the Web of Things gateways and some of the more popular things you can do with it. So this online tutorial, I'll try to put a link in the chat funk at the Q&A session. So that's the tutorial online for you. And then I want to jump in talking about what's important to you. Security is important to all of us. And when everyone talks about security, security, security, but I would argue more security for all privacy, for all the things that are going to their home when you open and close the door, lights turn on, this being streamed through your video cameras, do you really want to share that with all the companies, especially the big lightens? And that's where I'd say, no, there's certain things to share. My washing machine broke, and there's some diagnostic information I should be able to actively adopt in today, OK, I'm pushing this diagnostic data to manufacture of my smart dishwasher, whatever. And that's an acceptable use of sharing the data. And then thirdly, interoperability. Like, I cannot tell you how disappointing it is to be locked into one ecosystem or one protocol or whatever. And there's so many things out there, and they're so ubiquitous already that the whole idea of the web of things is saying, the internet of things is these things, it's not going to change, and people are involved in it. But how do things interoperable at a higher layer? Well, that's the IoT data. Express it in a format readable JSON as properties, actions, and events. You can publish that as web services, the same as web services you use for else. And now, suddenly, I can have this push button from Samsung control this outlet from IKEA. So suddenly, I can make these interoperable. This has a event of put double-pushed, long press. And this has an on-off property. So I can make maybe this press turn it on, and a double-press turn it off. And I use these for the buttons for dimmable bulbs from IKEA, and so forth. So that's the interoperability phase is you don't have to make the hardware know about each other, but you got to make them intersect at a higher level. So how does that happen? Basically, with the WP web standard, it's just like we communicate over web sockets and HTTP at a higher layer, and all the Zig Z-Wave, Bluetooth, HomeKit, whatever it is, communications can go on as it does today. You just have to get that stuff networked to some of a web server that ties it all together. And that's what we're going to talk about today with the gateway is this becomes on a Raspberry Pi. This becomes the hub of it all running the web server. So eventually, you bring all the data to an IPer. And the beauty of the project at Mozilla, the WebThings Gateway, is because it runs this Raspberry Pi. Here I have one with an LED strip. Here I have one in a nice little bottom OK-do because there's just released a kit where you can buy this with the microSD card. You know, you flash a microSD card, and you can buy it pre-flashed for this kit and turn it into your home gateway just like that. That's kind of nice. So the thing is, all of the data runs here. And now we have an old voice local voice system that runs like I plug in to one of the USB ports, a job or speaker microphone, and I can do voice command. And those voice commands don't ever leave this box. In other words, there's no cloud backing this up right now. There's no cloud backing up the data. Cloud backing up the voice or processing the voice. There's no cloud processing any of the smart home data that goes on on the gateway. So that's the big difference between the Mozilla smart home approach and industry. Where industry, every time you buy another smart thing from somebody, you download their app. You set it up on the network with their app. And Mozilla's approach, once you get it on your network, you can usually throw the app away. Keep it just in case, factory reset. But pretty much after that, it all communicates locally for most devices. And then there are battery operated devices like this little Xiaomi motion sensor. This happens to be Zigbee. So what happens when you have Zigbee and Z-Wave devices is that you need to buy a dongle. Here I have a Z-Wave dongle. And here I have a Zigbee dongle. For Zigbee, I usually use this Con-B2 dongle from Dresden Electronics. And so then in the typical vendor approach, all your data goes to the cloud. And these approaches, it all goes to your Raspberry Pi. And then basically what you wound up with is your own private smart home where the gateway and all the things connected to it, the web things gateway, is in your home, you can buy all of these devices, which a lot of my home for convenience, these little battery-appointed ones are nice. But you can also make your own. And I'm going to be demonstrating a really fun project, MicroBlocks, where I can turn these into web things quite easily, all these microcontroller things. It's a really, really powerful project. And then what does that result in? You build and buy. I mean, you can do a combination of both results in your own privacy. So you can do a floor layout view or just, I usually use the icon view. And that's what we're going to be demonstrating shortly. OK, so now I mentioned the fact that you can build your own web things. And it's a really powerful thing for education and for just makers doing yours. So what I'm going to show next, actually, one more thing. So the web things framework is, OK, this is your hub. And these things, then how do your things produce web of things standard-based data? Well, sometimes they don't. This thing is a ZigBee device. What happens is the gateway hosts what's called an add-on. And the community has helped build boatloads of add-ons that run here. And they basically do the bridging from whatever the thing speaks, say ZigBee. In this case, it's just I could do a radio link, proprietary radio link, or I could do just the USB and plug it straight into the hub. Whatever the add-on is, it basically bridges all the data to the web thing API. So you can see these frameworks that are written in Node, in Python, MicroPython, Rust. And one of them is MicroBlocks. It's not listed here, but it's one of the third-party libraries of which there are a whole bunch of them. So the schemas, it's important to know the schemas, are at iotutamazula.org slash schemas. And all of these frameworks are available on the website. So let's just show you, if I were to use this and this and turn this into a web thing for the web things gateway, the minimum I would need is I could load the MicroBlocks IDE, which I will demonstrate during the demo period. And I just give it a name, a capability. This is going to be a smart light, a property of on off. It can have multiple properties. It could have dimmability. It could have brightness. But just the simple thing is on off. I start the little web thing server. And then I basically have a setUserLED function that turns on and off in LED. And I could have a button press turn on and off the LED. Or I go to my web browser and I can turn on and off the LED. And that web browser can be on your smartphone, a tablet, just your laptop, any browser. So you're not stuck to specific smartphone apps. You can use any browser. And what does that look like? So the way that MicroBlocks works is behind the MicroBlocks, there's actually op codes and other information. So the thing, description in JSON becomes this huge, long string that describes the properties, actions, and events of the thing I make. So here's just a list of the types of capabilities that are in the Mozilla IoT schema, the types of properties, and the types of events. So the block makes that are to basically like assembly language, readable code. And those are converted into machine code that are actually running on a virtual machine on the board. For common boards, like the circuit player on MicroBit, when you plug it into the MicroBlocks IDE, it will download the virtual machine for you. But if you have some random other microcontroller and you can get a virtual machine running for it, then Platform.io can do all sorts of, you know, let's you build the virtual machines all 100% open source, education free, and you can build virtual machines for other hardware. OK, guess what? It's demo time. So hopefully this will work where I'm going to jump to my next slide and be able to play it. Here's the office light. I can turn on with a button, one press. Double press turns it off. I can also just click any of these icons to turn it on. If you're actually hearing this because I'm not hearing it. And I can do a long press to go full brightness. These are just some rules I have set up. So let's go around the house and check out what else we have. Next, we're going to wander into the laundry and check out my smart home camera. See this camera right here? That's the view it has out. Now, if we actually go to the home cam, we can compare the snapshot of what the camera sees. Pretty slick, eh? Better move this so I can close this. And in this laundry, I also have a very tiny Xiaomi temperature sensor. You can see it tells me the temperature. All right. There's a streaming function you can also do with the camera, but I'm not going to do that right now. We're going to head out to the front door. Right hidden behind my little bench, I have an IKEA button. Buttons are useful for a lot of things. Let's see what's going to happen when we open the door. There's my door sensor right there. And it's active or not active. Now we're going to go out and see that right outside the front door. We have a Xiaomi motion sensor. So the porch is active, porch motion. And then right down here, we have a string of LEDs. This might be hard to see. We're going to use the button to turn on the LEDs. You can also change the color. Just see what's going on here. These should be so bright out here. I can't see the garden. There's the LEDs. And then different button presses will change the garden color to different colors. And you can see the different colors. We'll leave that on for a moment. We'll head in. And I'll just show you the hub of all these things is what's called the WebThings Gateway. So I'm going to head over into the TV area. And you see that the TV area motion sensor just triggered. And I'm going to show you this little table. I have set up a bunch of things for the demo. But here's the Raspberry Pi with a ZigBee adapter. It's plugged into a speaker microphone, a Jabra, off-the-shelf speaker mic. There's a Google Home that does announcements for me. I'm going to show you what kind of announcements. This is a leak detector that's normally under the sink. So if it got wet, there's a rule. Let's see. I've got to scroll down here. You see the leak just went wet. And then every minute and a half, it should trigger the Google Home to do an announcement. I'll show you the Google Home right here has this leak detector thing. And you can also do random announcements. Check under the sink for possible leak. So that's what just happened when this got wet. So I'll let it dry off. And it only does that while the thing is wet. Check under the sink. Check under the sink for possible leak. OK, so now this should dry. And again, if I just show you the Google Home, hello, Linux Foundation. I'll show you how this works. Submit query. Hello, Linux Foundation conference attendees. All right. And now what is this little speaker microphone here for? It's good for turning things on and off with your voice. So I'm going to say, hey, Snips, turn on the music. And if you note, it actually just turned the Sonos to playing. And it's streaming radio Swiss jazz. So hopefully you can see, hear that. Hey, Snips, set the music to 60%. Do those things. Now we're going to walk over. Probably turn off the music for now. We're going to go over to this entry door. And you see here, I have a Samsung SmartThings door sensor. And if I open this, you see the entry door go on and off. That's very convenient. This is the main door that we come in and out of the garage. Oh, me. OK, I need to get that thing to dry out. And then down here, I just set up my study and my coffee button and lamp. And we're going to just see, let's see, where's the coffee? Now the leak is still showing wet. Here's the coffee button. And you can see that. I just, I don't have the coffee plugged into it. But you can use buttons to turn things on and off. And so I did a triple click to turn it off. And then I have this lamp. Hey, snips, turn on the study. And you can see, even though I'm all the way across the room, I can still turn on this light. Hey, snips, turn the study to blue. Pretty cool, huh? And then I can, there's a string of lights outside. And it's this string right here. And we're going to turn on that string just with a light, just with the web since I can't hear it from here. See, where is it right here? And hopefully you can see that string of lights go on. And then there's also the back deck motion sensor right here inside that, let me see, that little Ikea motion sensor. Come back in. And we'll say, hey, snips, turn everything off. Hey, snips, turn everything off. It's possible to leave. Oops, I still have to get the leaf to dry up. Still wet. Hey, snips, turn everything off. There we go. Now there's like just a couple more things I want to show you really quickly. And one is the convenience of having temperature and sensor. So like I said, some of these smart things, sensors have temperature sensors in them. So we're going to check out this upper deck sensor. So if I tip it up there. And you can see that it, when it opens, it triggers the fan right next to it to go on because there's a rule that says when the upper deck temperature is greater than 23, then turn on the fan. And so the fan for the outlet just went on. That's a Samsung smart things button. And then I just want you to show you here, this is just an Ikea outlet plugged in outside. And because we're in California, the weather is nice enough that this is just been outside all year round. And lastly, let me just show you the temperature here. It is right now 25 degrees Celsius. Not a bad day. And the rest of it I will do in real time at the show. Bye. OK, it looks like I'm back. All right, I was watching a little bit of the chat. So in addition to the learn more, the first thing I'm going to do is screen share with you all so that I can do a little bit more in depth of the gateway. So I'm going to share my screen. And here we are. So hopefully this will switch in and you can see my screen. All right, starting with, for example, just out front, I can click on this little screen and see that the car is still there. And just see what's out front. And you can do a video encoding through the Raspberry Pi. But I wrote a Raspberry Pi 4 when you turn on the stream. It takes quite a bit of chugging. I have this all running on a Raspberry Pi through now. There's I use pulses to turn on and off things. And so let me just describe to you what a pulse is. It's basically under the add-ons. You can set as many pulses as you want. It's a type of add-on right here, where if I configure, I have a pulse called a house. And I have a pulse called everything. And I've inverted the everything pulse so that I can use my voice to, say, turn the community everyone. And so I have a pulse house that turns everything on. Another one called everything that turns everything off. This is just an IKEA smart bulb that I can set the brightness. And I have this tied to a button, one of the Samsung Smart Things buttons. And a single press turns it on. Double press turns it off. Long press turns 100%. So I don't want to repeat everything I did in that recorded video. But for example, the Sonos speaker has all sorts of things you can do. But there's almost too much going on behind the scenes. So it's better that I tie a virtual dimmer switch. This music button is really a virtual switch. And then I can use my voice with it, or I could use the browser. And I can just click on the music by clicking the icon, just like this button here. I just turn it on. If I want to change the color, I can go in here and change to a specific color or some sort of pretty pink, whatever it is. And, yay, verily, it will be turning those things on. Before I jump into too many of the other demos in here, I want to show you logging, which is extremely powerful in my opinion, so whether or not from Uzbekistan. And so I can look in there and see when did the door that you go in and out last opened recently within the last hour. And I can look at when things open and close over the course of a week. And you could see that somebody's around a lot, because they're all stuck inside or stuck close to home. When we're back in the two people in the family to go off to work and come back, if this type of data of when things open and close are in the wrong hands, then people know that those empty hours occurring on a daily basis throughout the work week would tell people when to break in. You can also see from the motion sensors and the front door we go in and out less often. All of these Samsung battery operated motion sensors, leak detectors, everything have temperature. And I just find it exceedingly interesting to watch temperatures over the course of a week. So this is a Xiaomi temp sensor in the laundry. It's a smart thing button in the office there. And I have an add-on of just open weather map API data that pulls in so you can see the temperature outside. And then you can see the variation of a temperature sensor that's by the window. It matches the outside. You can see that over the last couple of days, the temperature went way down. Earthquakes are something that is extremely interesting to watch from California. And in fact, where announcements occur when it's over 5.0. So within the last week, you see that there was a 5.8 and a 6.1, I believe. It was pretty far away, like 394 kilometers away from my house. I didn't feel it. But it's really kind of interesting to watch these data. My port sensor is this Xiaomi one. It's very sensitive to wind of a bush that's nearby that flaps. So it's not really as good of a motion sensor as it is a wind detector. But you know, you can use things for different purposes. This is a IKEA motion sensor. I don't have one here, but it points at the back deck. I go riding, rowing out in the bay so I can see the tide in Redwood City. Again, this is internet data that is being brought into my home. So you filter it specific to your interests and your locations. Normally you have to go out to the internet and fetch information from different places. This brings it all to you, which is quite convenient. This garden lights in the front. I have turning on at sunset and turning off at 10 PM every day. So it seems like someone's home whether we're there or not. And I still have the ability manual override, of course. This is that leak detector that something funky happened when I got it wet and it didn't. I actually had to pop out the battery and plug it back in. And it was fine after that. But the sync detector rarely goes off. I've only had it go off once for real in this instance where somebody was putting a canner bottle or something in the back recycling under the sink and accidentally spilled some water that got the leak detector wet. And yay, verily, it went off and let me know. So it's kind of convenient to have that Google Home announcement. And I get a Slack message. And if I'm at my computer, I get a browser message. And then my upper deck door sensor, another Samsung one, has a temperature sensor in it. And when it opens up, when I open it up in the evening to cool off the house, we don't have air conditioning, it automatically turns on the fan next to the screen door if it's above 23 degrees Celsius. You can change your units and so forth to Imperial units. But I'm very much a metric fan. This is where everything lives, like, in my house on a floor plan. And I put on the side buttons that don't really relate to things that are physically located. But the office light, as you saw that I had turned that on, I can turn it back off again. This is where the Google Home and the Sonos and the doors and everything live, so you can turn things on and off. And this is the outside light string. So it's kind of fun to be able to, I know where things are. Some simple rules to start says, here's my office button. If I press it once, turn on the office light. Easy peasy. Same button, double press, turn the office light off. Same button, 100%. So with three simple rules, I can do that. Here's my virtual button for the music button, turns the speaker on. I could do a whole bunch of pulses to change setting and so ray assist jazz to KQED or something like that. I also have the volume. There isn't a complete track of this level to that level and the rules, that's tricky. So I do a greater than 50% set the volume high and less than 50% set the volume low. That seems to work pretty well for me. And then just a whole bunch of other buttons that turn things on and off. And here's the, for example, illuminate things at sunset. So I have a front office desk lamp. When I was working out of the house, it was nice. In the winter, it gets dark early. And to make it look like somebody's home, this little office lamp would come on and there's a shade in that front bedroom. So it looked like somebody's working in that office. Also the front garden lights would come on at sunset. And this event sunset at my location is based on the date time add-on. It's extremely convenient. In fact, just before I jump back into the rules, I just want to show you the date time add-on. So you can set rules based on, you know, like the leak detector will go every even minute. It will make that announcement to me until I make the thing dry again or turn off the rule. You can also disable the rules. But behind this has sunset and sunrise and stuff. So let's just go back to that rule a second. And you can see the dropdowns here, you know, is it a weekend, is it not a weekend, even hours, minutes, dark, not dark, you know, other logic, sunset, sunrise, all sorts of things you can do. So this rule was sunset, so we'll leave it like that. And then the next rule was those same lights go off at 10 p.m. These are the motion ones. So because the porch motion was so active with a nearby bush blowing in the wind, you can see I have disabled that porch motion thing. But otherwise I had it, would I have it do, tell, you know, announce it to me on the Google Home and say, you know, there's some motion on the porch. So if I put one of the better motion sensors out there, or actually I think I just need to put it on the other side of the porch because it's battery operated, I can look at it anywhere, facing back toward the front door. It's got to move its position. And then it should be fine because it's always nice to know, you know, there's somebody actually on your front porch, even if you're inside the house. Let's see. And then this is the, that Ikea light switch that has like dimmers and scene control and so forth. It has so many functions. You could literally use this five button button for oodles and oodles of rules in your home, like levels and scenes, an event one press, two long press, two release, three press. I mean, literally every one of these events could trigger an action. So, and then the other thing about the garden switch is like there's different colors one, but then there's the main one where I just, let's see, where's the garden lights on? I use a while off. If something triggers, you can do something, but you can have the button on and while the button is on, the garden is on. I do that with the music, virtual button and the Sonos as well. So that as soon as you turn it off, then the thing goes back off. And let's just create a rule from scratch, just for fun. I can have something where I want at a certain, let's see. I mean, literally I could do like at a certain time, like 12 o' six a.m. It could send a browser, oh, no, I didn't want Slack. I wanted browser notification, but I could actually send Slack messages through this exact Slack channel if I hook up the Slack API. And say, it's 11 o' six. And they're just like fired off, it's 11 o' six. So that's a little browser notification. And again, I can go in there and delete my rule, my new rule, or I could just disable it. And this is the one where if the fan, if it's hot upstairs, turn on the fan. And my earthquake alerts, and if I'm away, I can have something that on our authorized, people are asked to leave the premises immediately, stuff like that. So we did some rules, some logs, some floor plan. And then the key is in the settings. So the domain, you get to get your own private subdomain and there's a technology called PageKite that's used with the Raspberry Pi to tunnel in over HTTPS. There's another company, NKN.org, that is used there sort of overlay of security that you can, it's decentralized, you don't have to use the tunneling and you can get access remotely. But basically you're looking to remotely log into your gateway because none of these data are processed or stored in the cloud. On the network side, you have the option of on the Raspberry Pi of Ethernet or Wi-Fi, mine happens to be just Wi-Fi connected and it seems to work fine. You can enable as many user accounts as you want, I'm not gonna show you those, you're gonna try to log into my gateway. Add-ons, well, before I get to add-ons, that's the coolest thing, but localization, you can pick a number of different languages and these languages are posted as a pontoon project, just like Mozilla translates Firefox via this pontoon projects. So we have all these different languages that people have contributed for the WebThings gateway. If you don't see the language that you speak, then contribute a language translation and you'll be able to pick it. And temperature in units is Celsius or Fahrenheit. Updates right now, I'm using version 0.11 because my demonstration of the SNPs add-on was only available up through .11. .12 is the latest release and I've happened to have just last week been able to test the first instance that's add-on beyond the developers of the deep speech-based local voice. So some of you might ask, how good is the voice? Well, I've been really pleased with the SNPs add-on and libraries that can be running on a low Raspberry Pi and nothing goes to the internet and I'm hoping that deep speech works just as well because it's really fantastically convenient to be able to use your voice to turn things on and off. And I'm able-bodied, but you can imagine everyone that has less mobility or anything, if they have voice, that's just a great, great thing. And I'm hoping that someday there will be the text-to-speech capability that I use through the Google Home. I'm hoping that will also be available as an add-on. There are some demos of that available. It just doesn't work quite as easily for me as the Google Home. But the updates are over the air. Authorizations, right now I have one authorization. This is a JSON token that you enable in the developer section. And this is allowing web-to-web services to exchange a secure token in order to get data over the API. And right now the voice add-on that I use is the only one that uses this secure token. There's no experiments right now, but under developer for Raspberry Pi, you can enable SSH. I have it blocked to the outside, but internally I can SSH into my gateway. You can view internal logs. We'll show you a list of the logs and you can click on them. And you can create local authorizations. Again, I'm not gonna do that, but basically what happens is when you do that, you get to select do you want that third party to be able to monitor or just monitor and control or just monitor and then for which things, and when you apply that it will boom, it'll create a JSON token and actually shows you code snippets of using it in Rust and Node and Java and JavaScript, different languages. So that's pretty cool. That's mostly what you see under settings. Let me think if there's anything else that I wanted to show there. And then just going back here, it's kind of fun to look at some of the internet-based data. This is the, when is the high and low tide gonna be today? So I can plan my rowing. What's, here's the pre-canned Slack messages that I have that will send me information on the Slack channel because it might be the command parser or it might be the speech-to-text that was a little different. And then we can check back on the weather and you could have smart gardening that you could key off of internet data, not necessarily all local data if you don't have a sensor for the wind, you could just pull it off of the internet, let's see. And then earthquakes too bad there isn't one active while we're doing this, but it's really fun to see where they're occurring in the magnitude and the distance from my house. So it's all kind of focused on me and the preferences that I give in the add-on itself. So one more thing I wanted to show you then is the add-ons. So if you look at the add-ons, the datetime adapter really useful says who created it and what the license is. And then when I configure this one, I just have to include a latitude, longitude and some other information. And so like for example, if you like the Google text, home text speech one, which I find very fun. If you click on that link, it will take you to the GitHub account for that or whatever account it is. It'll take you to the source code and then there will be usage for how to use it better. And for example, the Slack integration again is there and that's not what I wanted to do. I wanted to click this so you could see the, again the read me for how to integrate messages to go to Slack. And then I use that for my smart home capability. So no matter where I am, those data will be pushed out to the gateway through the Slack connector and I get these alerts no matter where I am. And I have WiIMO and TP-Link. I'm not using an easy way of at the moment, but if you click plus and see the add-ons, this again shows you who created it, Felipe Koval and the license. They're all open source licenses. And if you want to add it to your gateway because you have those devices, then you just click add. Some have configurations that you need to build upon that, but they're all, at least I've found, to be very straightforward. So as I just scan this list, you can see all the fun counters, a fun one. You want to count how many times the door is open and closed during the day. I used that one time. It was fun. And every time I log in here, quite honestly I see new things like the display toggle. If you want to turn a Raspberry Pi touchscreen that's attached to your gateway on and off, you could have a display toggle thing. And then you could probably use your voice to say, turn on the display. And so the new voice controller is gonna be, hey, web things is what you'll say. I use the earthquake monitor. You can have it send email to you. There's lots of devices you can build on your own and including the micro box add-on. So I don't use micro box so much with my own home gateway, but I use it a lot just on my desk in my office. And I'll get to that one eventually. There's a frontier silicon internet radio. There's another internet radio one. So you can stream radio stations through your gateway. Anything that has this little notification of a bell, those are notification add-ons. You'd set up a rule, some event or some change of property state occurs and it will send you these notifications. All of HomeKit, by the way, if you buy devices that are HomeKit capable, I find they're a little bit more expensive, but I've heard the quality is quite good. So you buy anything that supports HomeKit and be sure, like some devices like the Phillips Hue or the IKEA gateway, I think there's add-ons where you can actually use both the commercial hub and the Mozilla gateway. HomeKit, as far as I understand, is not like that. You have to pick, you're using Apple's HomeKit hub or you're using the Mozilla webthings gateway. Let's see. And see on devices, internet radio, Cody Lamed, LG WebOS TV. There's several devices that support that WebOS. And Matrix Chat was one that Christian Paul just recently added. He works at Matrix. Mozilla uses Matrix for its chat. Capability. Microblox, this again is one of my favorites because now I can turn all of these little microcontrollers into webthings using this add-on. And actually, Microblox supports native webthings which is way down at the bottom. Let me just show you. Whoops, it's under W. Webthings. So this is the native webthing support. So if you program in, let me show you all of these, these types of devices, the M5 stack and M5 stick and M5 atom and anything ESP8266 or ESP32 based, they directly support this stuff with the webthing API, which is just really super cool. So you just plug in the SSID and password of your Wi-Fi in a Wi-Fi block to program these things and then you connect them up as webthings. Wi-mo devices I find really clunky on the provisioning side. Once you get them set up, they tend to work okay. So anyway, the add-on community I think is just phenomenal and a lot of devices, so Xiaomi, IKEA, smart things, all of these things that are ZigBee based, they're all accommodated by the ZigBee adapter. So you don't need to look for an IKEA adapter or a specific Samsung adapter. Okay, I'm spending way too much time on the gateway and I need to come and answer some questions because I didn't actually get to micro blocks. One more thing I want to show you is here's micro blocks, here's my micro bit and I can just go in here and say open. There's a Mozilla webthings category and I can say, okay, make a heart rate monitor and it will load an example and I can turn this. You can just see that it's heart rate, it's a multi-level sensor, it's got a number of property it starts and then if I run this, it will blink 60 beats a minute and if I push button A it goes lower, push button A it goes higher and all it is is these variables over here, the beats per minute and the interval that gets exchanged, just the beats per minute actually that gets exchanged with the gateway. And I just wanted to say that micro blocks totally rocks because it's a live programming language. So if you just click on a block, it actually happens in real time, include the display. All right, all right, so I'm gonna jump into questions and I will continue to do the Q&A on the track in Slack. So let me just, the privacy is critical, just how good is the voice? It's gonna get better and it's not perfect, it won't be as good as Alexa or Google Home. Somebody else asked about OpenHAB, I haven't actually personally used OpenHAB, I watched somebody else who uses it but why is web things, Mozilla did things differently because they didn't wanna force someone into one language and the add-ons you can write in any language and the web is really any language. So those were the questions that I got asked on the Q&A there and I welcome you to go over to the chat channel and we'll just take it from there on the Slack chat. Hope that works for everyone, thanks for your time. We'll see you on chat and let's see. Is my email actually first dot last? No, it's not, it's my first name, dot my last name, edgmail.com. I don't know if this is still live but I can look at Slack channel questions and answer them. The sensors I use, Xiaomi, Samsung Smart Things Ikea for the battery app and stuff, the powered stuff really doesn't matter. And then there's a link to the tutorial if you wanna do it yourself in the Slack channel. And I hope you all get a chance to give it a try, it's really a great project. I still don't know if this is going live. Are we still live?