Cameras, Sensors & What’s Next for Mozilla’s Things Gateway

Today the Mozilla IoT team is happy to announce the 0.7 release of the Things Gateway. This latest release brings experimental support for IP cameras, as well as support for a wider range of sensors. We’ve also got some exciting news on where the project is heading next.

Camera Support

With 0.7, you can now view video streams and get snapshots from IP cameras which follow the ONVIF standard such as the Foscam R2.

To enable ONVIF support, install the ONVIF add-on via Settings > Add-ons in the gateway’s web interface.

Set up your camera as per the manufacturer’s instructions, including a username and password if it’s required. (Always remember to change from the default if there is one!) Then, you can click the “Configure” button on the ONVIF add-on (see above) to enter your login details in the form shown below:

Once the adapter is configured you should be able to add your device in the usual way, by clicking on the + button on the Things screen. When your camera appears you can give it a name before saving it:

When you click on the video camera you will see icons for an image snapshot and/or video stream:

Click on the icons and the image or video stream will pop up on the screen. When viewing an image property, you can click the reload button in the bottom left to reload the latest snapshot:

Video camera support is still experimental at this point as we look to optimise video performance, refine the UI and support a wider range of hardware. If running on the Raspberry Pi you can expect to see a noticeable delay on video streams as it transcodes video into a web friendly format. We’d appreciate your help testing with different cameras and giving us feedback to help improve this feature.


Things Gateway 0.7 also comes with support for a wider range of sensors.

We have added support for temperature sensors (e.g. Eve Degree, Eve Room and the SmartThings Multipurpose sensor).

And we have added support for leak sensors (e.g. the SmartThings Water Leak Sensor and the Fibaro Flood Sensor).

This means you can also now create new types of rules in the rules engine, for example to turn on a fan when temperature reaches a certain level, or be notified if a leak is detected.

Thing Description Changes

For developers, this release brings some changes to the Thing Description format used to advertise the properties, actions, and events web things support.

Rather than providing a single URL in an href member, each Property, Action and Event object can now provide an array of links with an href, rel and mediaType for each Link object. This is particularly useful for the new Camera and VideoCamera capabilities, which can provide links to an image resource or video stream. Below is an example of a Thing Description for a video camera that supports both new capabilities.

 "@context": "",
 "@type": ["Camera", "VideoCamera"],
 "name": "Web Camera",
 "description": "My web camera",
 "properties": {
   "video": {
     "@type": "VideoProperty",
     "title": "Stream",
     "links": [{
       "href": "rtsp://",
       "mediaType": "video/mp4"
   "image": {
     "@type": "ImageProperty",
     "title": "Snapshot",
     "links": [{
       "href": "",
       "mediaType": "image/jpg"

You may also notice that label has been renamed to title to be more in line with the latest W3C draft of the Thing Description specification.

We make an effort to retain backwards compatibility where possible, but please expect more changes like this as we rapidly evolve the Thing Description specification.

What’s Next

We’ve been delighted with the response we’ve seen to Project Things from hacker and maker communities in 2018. Thank you so much for all the contributions you’ve made in reporting bugs, implementing new features and building your own adapter add-ons and web things. Also thanks to you, a Project Things tutorial on Mozilla Hacks was our most read blog post of 2018!

Taking things (pun intended) to the next level in 2019, a big focus for our team will be to evolve the current Things Gateway application into a software distribution for wireless routers. By integrating all the smart home features we have built directly into your wireless router, we believe we can provide even more value in the areas of family internet safety and home network health.

In 2019, you can expect to see more effort go into the OpenWrt port of the Things Gateway to create our very own software distribution for “smart routers” which integrate smart home capabilities. We’ll start with new features for configuring your gateway as a wireless access point and all of the other features you’d expect from a wireless router. We anticipate many more new features to emerge as we develop this distribution, and explore all the value that a Mozilla trusted personal agent for your whole home network could provide.

We will keep generating Raspberry Pi builds of our ongoing quarterly releases for the foreseeable future, because that’s what most of our current users are using and that plucky little developer board is still close to our hearts. But look out for support for new hardware platforms coming soon.

For now, you can download the new 0.7 release from our website. If you have a Things Gateway already set up on a Raspberry Pi it should update itself automatically.

Happy hacking!

About Ben Francis

Former Mozilla Software Engineer. W3C Invited Expert on Web Applications and the Web of Things.

More articles by Ben Francis…


  1. Julien Moors

    Hello !

    What a great work here ! I’ve tried Homey (from Athom) and AnimusHeart as gateway but I’ve just ordered a Raspberry with a z-wave toggle to try Mozilla’s Things Gateway !

    I also use Fibaro RGBW, Fibaro Switch and Fibaro Relays, do you think they could be compatible even if they’re not in compatible list ?

    I can give a feed back if you want ?

    Have a nice day :)

    February 21st, 2019 at 02:02

    1. Ben Francis

      Hi Julien,

      Thanks for the feedback.

      If the Fibaro devices are not listed on the Supported Hardware list on the wiki ( then it means we haven’t tested it yet. But if you ask your question on Discourse a member of the team or community may be able to help (

      February 22nd, 2019 at 03:11

Comments are closed for this article.