Building your own private smart home using a Raspberry Pi and Mozilla’s Points Gateway

Last year we announced Project Details by Mozilla. Project Things is really a framework of software and services that may bridge the communication gap in between connected devices by giving “ things” URLs on the web.

Nowadays I’ m excited to tell you about the newest version of the Things Gateway and exactly how you can use it to directly keep track of and control your home over the internet, without a middleman. Instead of installing an alternative mobile app for every smart house device you buy, you can manage all of your devices through a single secure internet interface. This blog post will clarify how to build your own Web of Details gateway with a Raspberry Pi and employ it to connect existing off-the-shelf smart house products from various different manufacturers using the power of the open internet.

There are lots of exciting brand new features in the latest version from the gateway, including a rules motor for setting ‘ issue, then that’ design rules for how things socialize, a floorplan view to construct devices on a map of your home, fresh voice control and support for many brand new types of “ things”. There’ s i9000 also a brand new add-ons system with regard to adding support for new protocols plus devices, and a new way to properly authorise third party applications to access your own gateway.


The first thing to do is to get your hands on the Raspberry Pi® single board pc. The latest Raspberry Pi 3 provides WiFi and Bluetooth support integrated, as well as access to GPIO ports pertaining to direct hardware connections. This is not important as you can use alternative developer planks, or even your laptop or personal computer, but it currently provides the best encounter.

If you need to use smart home devices making use of other protocols like Zigbee or even Z-Wave, you will need to invest in USB dongles. For Zigbee we currently assistance the Digi XStick (ZB fine mesh version). For Z-Wave you should be in a position to use any OpenZWave compatible dongle , yet so far we have only tested the particular Sigma Styles UZB Stick as well as the Aeotec Z-Stick (Gen5). Be sure to obtain the correct device for your region since Z-Wave operating frequencies can vary among countries.

You’ lmost all also need a microSD card to adobe flash the software onto! We recommend a minimum of 4GB.

Then there’ s the “ things” on their own. The gateway already supports a variety of smart plugs, sensors and wise bulbs from lots of different brands making use of Zigbee, Z-Wave and WiFi. Have a look at the wiki for devices that have already been tested. If you would like to lead, we are always looking for volunteers to assist us test more devices. Inform us what other devices you’ d prefer to see working and consider developing your own adapter add-on to make it function! (see later).

When you’ re not quite ready to dash out on all this hardware, but you consider out the gateway software, there’ s now a Virtual Stuff add-on you can install to add digital things to your gateway.


Next you’ ll need to download the Things Entrance 0. 3 software image for your Raspberry Pi and flash this onto your SD card. There are various ways to do this but Etcher is a graphical software for Windows, Linux and MacOS which makes it easy and safe to do.

If you want to experiment with the entrance software on your laptop or personal computer, you can follow the instructions on GitHub to download and build this yourself. We also have an fresh OpenWrt package and support to get more platforms is coming soon. Get in touch in case you’ re targeting a different system.

First Time Setup

Before booting up your entrance with the SD card inserted, ensure that any kind of Zigbee or Z-Wave USB dongles are plugged in.

When you initially boot the gateway, it acts as being a WiFi hotspot broadcasting the system name (SSID) “ Mozilla IoT Gateway”. You can connect to that WiFi killer spot with your laptop or smartphone that ought to automatically direct you to a set up page. Alternatively, you can connect the particular Raspberry Pi directly to your system using a network cable plus type gateway. nearby into your browser to start the setup process.

First, you’ re given the choice to connect to a WiFi network:

If you choose to connect with a WiFi network you’ lmost all be prompted for the WiFi security password and then you’ ll need to make sure you’ re connected to that same system in order to continue setup.

Next, you’ lmost all be asked to choose an unique subdomain for your gateway, which will automatically create an SSL certificate for you making use of LetsEncrypt and set up a safe tunnel to the Internet so you can gain access to the gateway remotely. You’ lmost all be asked for an email address so that you can reclaim your subdomain in long term if necessary. You can also choose to use your own website name if you don’ t want to utilize the tunneling service, but you’ lmost all need to generate your own SSL certification and configure DNS yourself.

You will then become securely redirected to your new subdomain and you’ ll be motivated to create your user account around the gateway.

You’ ll then automatically end up being logged into the gateway and will be prepared to start adding things. Note that the particular gateway’ s web interface is really a Progressive Web App that you can add to homescreen on your smartphone with Opera.

Including Things

To add products to your gateway, click on the “ +” icon at the bottom right of the display screen. This will put all the attached connectors into pairing mode. Follow the guidelines for your individual device to set it with the gateway (this frequently involves pressing a button at the device while the gateway is in partnering mode).

Devices which have been successfully paired with the gateway can look in the add device screen and you could give them a name of your selection before saving them on the entrance.

The particular devices you’ ve added will likely then appear on the Things screen.

You can turn factors on and off with a single tap, or even click on the expand button to go to a good expanded view all of all the thing’ s properties. For example a smart connect has an on/off switch and reviews its current power consumption, volt quality, current and frequency.

With a dimmable color light, you can turn the light off and on, set its colour, and set the brightness level.

Rules Engine

By clicking on the main menu you are able to access the rules engine.

The rules engine enables you to set ‘ if this, after that’ style guidelines for how devices interact with one another. For example , “ If Smart Connect A turns on, turn on Smart Connect B”.

To create a guideline, first click the “ +” key at the bottom right of the rules display. Then drag and drop details onto the screen and select the particular properties of the things you wish to link together.

You can give your rule the name and then click back to return to the rules screen where you’ lmost all see your new rule has been additional.


Clicking on the “ floorplan” option from the main menus allows you to arrange devices on a floorplan of your home. Click the edit button at the end right of the screen to add a floorplan image.

You’ ll have to create the floorplan image your self. This can be done with an online tool or even graphics editor, or you can just check out of a hand drawn map of your house! An SVG file with whitened lines and a transparent background is most effective.

You can arrange gadgets on the floor plan by dragging all of them around the screen.

Just click “ save” whenever you’ re done and you’ ll see all of your devices organized. You can click on them to access their own expanded view.


The particular gateway has an add-ons system to enable you to extend its capabilities. It comes using the Zigbee and Z-Wave adapter addons installed by default, but you can add assistance for additional adapters through the add-ons program under “ settings” in the main menus.

Click the “ + Add” button on any accessory you want to install.

For instance , there is a Virtual Things add-on that allows you to experiment with different types of web points without needing to buy any real equipment. Click the “ +” button at the end right of the screen to see a listing of available add-ons.

Click the “ + Add” button on any add-ons you wish to install. When you navigate back to the particular add-ons screen you’ ll view the list of add-ons that have been installed and you may enable or disable them.

In the next article, you’ ll learn how to create, deal, and share your own adapter add-ons within the programming language of your choice (e. g. JavaScript, Python or Rust).

Voice UI

The gateway also includes experimental voice controls which are switched off by default. You can enable this function through “ experiments” in configurations.

After the “ Speech Commands” experiment is definitely turned on you’ ll notice the microphone icon appear at the top correct of the things screen.

If the smartphone or even PC you’ re using includes a microphone you can tap the mic and issue a voice control like “ Turn kitchen on” to control devices connected to the gateway.

The voice control is still quite experimental and doesn’ t however recognise a very wide range of vocabulary, therefore it’ s best to try to stay with common words like kitchen, porch, living room, etc . This is an area we’ ll be working on improving within future, in collaboration with the Voice team at Mozilla.


Your entrance software should automatically keep by itself up to date with over-the-air updates through Mozilla. You can see what version from the gateway software you’ re operating by clicking on “ updates” within Settings.

What’ s Coming Next?

In the next release, the Mozilla IoT team plans to create brand new gateway adapters to connect more current smart home devices to the Internet of Things. We are also beginning work on a collection of software libraries in various programming languages, to help hackers plus makers build their own native internet things which directly expose the particular Web Matter API , using existing systems like Arduino and Android Elements. You will then be able to add these things towards the gateway by their URL.

We will continue to contribute to standardisation of the Web Thing Description format plus API via the W3C Web of Things Curiosity Group . By giving connected products URLs on the web and using a standard information model and API, we can assist create more interoperability on the Internet associated with Things.

The next post will explain how to build, package and promote your own adapter add-on using the development language of your choice, to add brand new capabilities to the Things Gateway.

How to Contribute

We need your help! The easiest way in order to contribute is to download the Things Entrance software image (0. 3 during the time of writing) and test it out for your self with a Raspberry Pi, to help all of us find bugs and suggest brand new features. You can view our source code and document issues on GitHub. You can also help us fix difficulties with pull requests and contribute your personal adapters for the gateway.

If you want to ask questions, you can find us within #iot on irc. mozilla. org or the “ Mozilla IoT” subject in Talk . See iot. mozilla. org for more information and follow @MozillaIoT upon Twitter if you want to be kept updated with developments.

Joyful hacking!

Editor’ s note: Would like to get started hacking? Here are a couple of tasks to get you started:

Full time UK-based Mozillian, working on the Web of Things.

A lot more articles by Ben Francis…

If you liked Building your own private smart home using a Raspberry Pi and Mozilla’s Points Gateway by Ben Francis Then you'll love Web Design Agency Miami

Add a Comment

Your email address will not be published. Required fields are marked *