A secure and reliable communications backbone for the connected home.

OpenWeave

OpenWeave is an open-source implementation of the Weave network application layer, the secure, reliable communications backbone for Google Nest products. It is a versatile and lightweight solution for low-powered devices.

At Nest, we believe the core technologies that underpin connected home products need to be open and accessible. Alignment around common fundamentals will help products securely and seamlessly communicate with one another.

Why use OpenWeave?

OpenWeave's features were driven by requirements Nest identified while building their ecosystem of products. Weave's encryption protocols are designed to fit the processor and memory constraints of today's IoT devices. It has a compact message format and communicates only when it needs to, so sensors can run on batteries for years.

With OpenWeave, you can use the same best-in-class communications technology that the Nest family of products does.
  • Secure communications

    Weave security is independent of the underlying network. Every interaction between products, apps, and cloud services is secure. And because Weave has tiered-trust domains, sensitive operations are only accessible by the right devices.
  • Fast and reliable

    Weave products can talk directly to each other without relying on the cloud. Even if the internet goes down, or there is a power outage, Weave products can continue to work together.
  • Easy to connect

    Weave is as easy as scanning a QR code. It securely adds the new device to the device-to-device network. Then those devices help the new one connect to the internet.
  • Always up to date

    Products require bug fixes, security patches, and improvements to keep up with technology, and evolve with the needs of your family. Weave automatically takes care of software updates in the background.

Features

Not only does OpenWeave implement Weave, but it includes a variety of features and tools that make building, deploying, and testing a Home Area Network (HAN) easy.

Happy Network Simulation Tool

Happy is a tool for lightweight orchestration of simulated network topologies. Use it to test network protocols and other distributed execution programs on a single Linux development machine without using IoT device hardware.

Multi-Platform Support

OpenWeave is supported by a variety of toolchains and targets, such as Linux, Mac, Windows, and embedded platforms. It includes build scripts for Android and iOS, as well as a Device Layer for platform adaptations.

Protocols and Profiles

OpenWeave is more than just trait management. It includes multiple protocols such as the Weave Web API for device-to-cloud interactions and Weave Reliable Messaging for device-to-device communications. Profiles such as Echo, Heartbeat, and Time Sync ensure the stability of the Weave fabric.

Test Scripts

Use the included suite of unit test scripts to automate testing of Weave functionality in your simulated IoT deployment. Or build your own using the Java, Cocoa, or Python bindings.

News

Device Layer and nRF52840 Lock Example App added

May 17, 2019

We've recently added the Device Layer to OpenWeave, a platform adapation layer that implements the code necessary to integrate OW with multiple platform vendors. And for the new Nordic nRF5 Device Layer, we've added a sample app for a connected door lock device.

openweave.io is live!

May 2, 2018

Our new documentation site at openweave.io has launched. This is the companion site to the GitHub repository, featuring in-depth guides, tutorials, and reference material.

Happy Codelab released

Mar 15, 2018

Want to learn more about Happy, the network topology simulation tool used to test Weave products over IoT networks? Then try our Getting Started with Happy and Weave Codelab. You'll learn how to use Happy, as well as some basics of Weave.

Built by Nest, for thoughtful things

Connected home products aren't like mobile phones. Each one takes a different shape to solve a different problem. And when you look inside, you'll find the hardware capabilities of the CPU, RAM, power, and radios vary just as dramatically. To make great products that are as fast and dependable as our traditional wired homes, Nest needed a secure, reliable communications protocol that works with a wide range of hardware.

See Weave in action with the Nest Secure alarm system, a real-world example of what Weave can do.

Nest Guard

Nest Guard, the powered keypad at the heart of the Nest Secure alarm system, is always on. Nest Guard lets the service and app know about any sensor changes with Weave over the Wi-Fi network. And if the power goes out, it runs on a backup battery and can still talk to the service using Weave over cellular.

Nest Detect

Nest Detect, the tiny, battery-powered sensor of the Nest Secure alarm system, conserves energy by only waking up when there's activity. Using Weave over a Thread network, Nest Detect sensors can talk to Nest Guard when a door or window opens or motion is detected—even when the power is out.

Nest × Yale Lock

Because they share Weave as their common language, the Nest × Yale lock and the Nest Secure alarm system work better when they're together. When you unlock your front door, the lock automatically tells Nest Secure that it's safe to disarm, so you don't have to. The lock inherits Nest Guard's robustness, staying fully operational even when power or the internet goes down.

Nest Connect

Nest Connect serves as a range extender for the Nest Secure alarm system. Using Weave and Thread, it keeps Nest Guard and Nest Detect connected when they're placed far apart, especially in larger homes. It also connects the Nest × Yale Lock to the internet.

Better with OpenThread

OpenThread released by Google is an open-source implementation of the Thread networking protocol. OpenWeave can run on top of OpenThread, taking advantage of Thread's reliable mesh networking and security. OpenWeave + OpenThread is a production-scale IoT solution that's second to none.

Start using OpenWeave today

All rights reserved. Java is a registered trademark of Oracle and/or its affiliates. Thread is a registered trademark of the Thread Group, Inc.