 This is Michael Christen. I'm the maintainer of the SUSE project and I'm giving a talk about the Internet of Things with SUSE AI and how can you make privacy-aware personal assistant in your home. So what we are doing in the last years with SUSE is that we create a smart speaker device, that we create a personal assistant with all the infrastructure what you need like your own skills and the skill server and everything for you to serve on your own devices, on your own server at home or maybe also hosted at our place at SUSE.AI where you can develop skills and create new skills for everyone. It's the Wikipedia concept for skills. So please have a look at our homepage at SUSE.AI.AI. There are all the skills that have been created by users right now. So you can browse them and you can click on them. You can see how they are programmed. And so it's easy to clone these skills and make your own. So what we want to do is we want to create a device like Alexa. So SUSE is like Siri Cortana Alexa as open source software. But we are not doing only open source, we create a privacy-aware software. That means a software that doesn't send all your data that you create everything that you say to a remote server but is able to do a processing at home, at your home. So let me explain what usually happens if you do a command to Alexa. First you say the hot word. The hot word is processed on the device. And after that everything you say of your command is then sent to Amazon and they are processing what you said. They are then calling some skills and processing the request and send back some audio with the answer. So the device is simply a microphone and a speaker and it's not doing much more. What we are doing is we have our own device. It's the SUSE speaker. And this is a development device based on Raspberry Pi with a specific microphone shield and a speaker on a 3D printed plate. So it's very easy and it's very simple in the process. It's the same as you are doing with Alexa. It also has a hot word detection. It detects the word SUSE. You say SUSE and after that it detects what you are saying. And then it needs to do a speech-to-text. Speech-to-text is currently not possible on the device. We will be able to do this maybe next year. Not now, but right now we are using Google speech-to-text which means we again send your audio to a remote server. It's not something we want to do, but something we have to do right now because there is no other option. Then the extracted text from your audio is then processed in our own SUSE server. And the SUSE server is using the SUSE skills that everybody can create on SUSE.ai and it creates an answer and speech-to-text is giving you the answer on the device. So because the server and all the skills are on the device you can program it to do a steering of your own devices at your home. And that's what I want to show today to you and show in some great detail how to do the programming and what kind of devices you can use. So this is how to install your SUSE smart speaker. Go to github.com, FOSSAsia SUSE installer and click on the releases. And here you can find the images that you need to put on your SD card to run your Raspberry Pi. So this is the same as installing a Raspberry Pi image. Take this image and put it instead the original image on your SD card for the Raspberry Pi. Now you have the SUSE AI image on the SD card. You put this into your SUSE smart speaker and you power it up. And after some while the speaker will set up its own hotspot. So this is how you connect and configure your smart speaker. First you have to find the speaker hotspot. It's the SSID SUSE.AI. You connect to this network and after you have a connection you can browse to the page 10.0.0.1. This is then the configuration page for your smart speaker. It's hosted on the smart speaker and you just need to put in the SSID of your own Wi-Fi at home. And finally you click reboot and that means the speaker reboots with the configuration of your own Wi-Fi. So that finishes the configuration of the speaker. It's now available through a voice interface. Now I would like to give you some examples how it works. SUSE has started. And after it started you can send some commands to it like SUSE. What's the time? It is 45 minutes past 18. The SUSE ecosphere is the set of all the applications we have within all the SUSE functionalities. So there is for example the smart speaker that we produced. But we also have Android applications. We have the iOS applications. We have a desktop chat application and a web application where you can do all the SUSE functions that you can do by voice. Can you also do by chat? So in this ecosphere we need all these different skills to do entertainment, productivity, telephony, messaging. We also want to do shopping and banking through that interface. And for all of that we need all these skills. The skills are done in the skill creation content management system that we have at SUSE.AI. If you go there you can click on chat and test out the chat but you also can log in and then create the skills. So after you have logged in click on edit skills and you can see the list of all the available skills. The easiest way to start working the skills is that you click on one. So just click on one skill then you get the overview of the skill. Click on edit and there you have it. You have the skill text which you can modify here like you can do this on a Wikipedia page. And you can just copy paste this into a new skill that you created. In this talk I want to show how Internet of Things devices can be attached to the SUSE smart speaker. And therefore we need some specific hardware. And one of the most popular hardware is the ESP8266 which is a kind of Arduino with attached Wi-Fi. So it's that very small chip that you can see here. And it's very easy to program this and you can run a web server on it. On the web server you can also implement an API which you can control from remote. The SUSE speaker is doing it's controlling this chip which is connected with Wi-Fi to the smart speaker. And this is going on inside your own home. So it's not using any kind of cloud services outside. This is the D1 Mini which is a kind of carrier board for the ESP8266. It has also an USB interface attached which makes it very easy to attach it to your computer and do the programming. Another version of this is the NodeMCU prototype platform. It's similar to the D1 but it has more ports so you can attach more devices to it. So if you have an for example a robot with 8 degrees of freedom then you can use this board. There are also battery shields available which makes it easy to attach a battery and charge the battery through that shield. You just put it on of your devices. You can do the same on the D1 Mini. And so it becomes a really small device with that battery shield. So it's easy to have remote devices which you can't see inside your home. You can put on sensors and many things to this. So one of the commercial applications, one of the commercial devices you can use is a shelly switch. A shelly switch is a very small device. It looks like this. You can connect power lines to it and it has a Wi-Fi client inside. You can send on an API on the device Wi-Fi commands so you can switch on light, switch off light or any other kind of device. And it has also some sensors, maybe a temperature sensor and it has a power consumption sensor. Now we can use Susie to switch on the light. Susie, switch on the light. Okay. Now that the light is on, we can also ask the power consumption. Susie, power consumption. 2.0 watt. The power consumption can be measured through an API of the shelly switch. But you can use the NoteMCU devices and the D1 Mini to also ask for input ports of the analog input of the device. Because there is an analog input. So you can measure a broad range of all kinds of... Here is how I set up the shelly switch. There are these ready-made devices available. It's called the shelly plug S. But I was going for this thing. It's supposed to be mounted inside of your wall, inside of a wall mounted switch. But you can also put it into your own department. Like this is a timer enclosure. I took it apart and I put inside the shelly switch, wired it up. And now you have to set it up. And to set it up, you find the shelly hotspot. Which I have here. I connected to this. And as soon as you connected to the hotspot. You can browse to the IP 192.168.33.1. And there you have it. You have the web interface of the switch. Where you can set up your own Wi-Fi. It's the same procedure as you did before with the Zuzi device. And then you can set up a specific IP which I recommend. Here it's the IP 192.168.1.52. So I can create skills to this IP. To test this you can switch on the light with the button on the web interface. And you can also see the power consumption. But both information is available through an API. Now that your shelly device is in your internet available. You can browse through to the settings page. And see all the settings. That's your network where you connected to. And it has a lot of attributes. You can see the status. How is it doing right now? Is it switched on or off? And you can see the power consumption. This is the power consumption in Watt. And you have the device temperature. And there is the API to turn the device on. If you call it, it switches on. And there is the call to switch it off. So if you call it, the device switches off. So what's inside of the shelly device is an ESP8266 chip. Which is very tiny and focused. So it's doing... I don't have a focus right now here. It's very tiny and it's this chip. And this is a D1 mini chip. It has some digital input-output lines. And one analog input-output lines. It's like an Arduino with Wi-Fi on board. So this is the ideal device to make our own applications based on that kind of hardware. It's really cheap. Below $10. So it's the perfect thing to attach another device to it. And you also need an operation system which is available for this. It's called NodeMCU. And there's a NodeMCU development device which looks like this. It's the same chip. Only the board is slightly larger. And it has more input and output lines. So this would be perfect to create a robot, for example. You can make a robot based on this. And I made one but it wasn't ready for First Asia. So maybe next time. So to program the Wi-Fi chip your own. So either using NodeMCU development board or a D1 mini. You need a program that you put onto your chip. And for this you use the Arduino programmer. And the Arduino programmer is a really nice and easy development environment. There are a lot of tutorials available. And what you put on the chip is a program like this. This is the web server that runs on the chip. You set the SSID of your home network. This is hard-coded here. It doesn't have as a web interface like the Shadowspitch. It's something you put specifically inside. And then you always have this loop method, which is called every time when loop is finished. So it runs forever. And every time it starts a Wi-Fi client. It's waiting for a request on HTTP request. And it reads some parameters. And after it took the parameters it writes output. And this is the whole web server. With this kind of code you can set any kind of data output lines. And you can read the analog output line. Now that you have programmed the ESP8266, you also need to program SUSE. So how do you put a program on SUSE? So first of all you must know that the SUSE device has several APIs open. So one of the APIs is at SUSE.local7070, which is the whole web interface that you also have at SUSE.ai. So you can browse here all the skills. And you can edit the skills. You can open this chat window. And you can everything that you can do on our central server, on your own server. So then you have the SUSE server itself, which is giving you answers to questions. And it creates a JSON answer. And we have all the elements that you can use to create an action, which gives you the answer that is otherwise spoken. And the SUSE device is hosting an etherpad. The etherpad is at port 9001. And you can use only one pad on that etherpad, which must be called SUSE. So open the etherpad and open the etherpad page SUSE. And these are the skills that are on the SUSE device right now. In this example to do an access to the ESP8266 with the Wi-Fi server that I just showed to you, are these rules here. So it's going to the IP address that you can configure in your web server. And it's reading the analog output. And this is a command where you can set the digital output number 4 to high. And this is the one which sets the digital output number 4 to low. And this can be done to switch on an LED and to switch off an LED. SUSE, switch on LED. SUSE, SUSE, switch off LED. Right here you see the example how to program the Shelly switch. The Shelly switch has this API and these are the commands to switch on the light. And these are the commands to switch off the light. This is the skill which reads the power consumption of the light. And it gives you through the status API the meters element in VAT. So you can speak out how much power your device is consuming. So this is my presentation for 4th Asia this year. Thank you very much and see you next year.