Network of Things with just a few lines of code

Interoperate all your devices: Router, Set Top Box, Door Bell, Voice Assistant, Security Camera, Home Automation Gateway, Wifi Sensors, into a unified Network of things that can communicate with each other over both the internet and intranet.

data security

Data Security

real time communication

Real-time Communication

remote connectivity

Remote Connectivity

Interoperability

Interoperability

Possibilities with Network of Things

Decentralized communication between app nodes and device nodes within a COCONet. The COCONet organizes the app and device nodes into an overlay network and clusters them into a mesh topology.

Build custom solutions with App-to-Device communication which allows the applications and devices on your network to connect, share resources, and seamlessly interact with each other. Devices in a network advertise their resources, capabilities and attributes to the apps in the network. By connecting into the COCONet, apps are able to control devices and receive information from them.

To connect apps into the COCONet, use the COCO Client SDK.

app to device communication

Direct and interoperable communication between device nodes within a COCONet. The COCONet organizes the device nodes into an overlay network and clusters them into a mesh topology.

OEMs can create a private ecosystem of all their smart appliances using Device-to-Device communication in real-time with interoperability, remote and offline connectivity with minimal huge savings on the Total cost of Ownership (TCO). A network of devices on a common unified network can further share resources data and create rules for automation to fulfill tasks across the entire network.

To connect devices into the COCONet, use the COCO Device SDK.

Device to device communication

Understanding Developer and User COCONet

COCONet is designed-for-privacy with real-time communication, remote connectivity, and interoperability.

Developer COCONet

Networks (COCONets) that are owned and managed directly by a Developer are called Developer COCONets. In typical usage, such decentralized networks have a very large number of nodes, e.g. a chat app where every user in the world has a node in the network. Apps built with this configuration can by-pass COCO’s User Login and Authorization systems, but still leverage the P2P communication between the various nodes of the network. The App Developer in such cases, maintains a cloud with his Service App calling into COCO’s REST APIs for managing his instances of COCONet and the nodes installed in it.

Developer COCONet

User COCONet

Networks (COCONets) that are owned and managed by owners who are registered with the COCO User Login and Authorization systems are called User COCONets. Such COCONets are built for Enterprises and Individuals that wish to control the Apps and Users within their own Private Network. Owners can perform management actions like inviting users into their COCONet via the COCO App. The invited user can join the COCONet using any application built for Private Networks. The app instances installed in a COCONet form a sub-cluster and can discover and communicate with one another. Developers can create Apps for installation into Private Networks during the App Registration process.

User COCONet

Easy-to-create Connected Experiences

What’s in it for you?

semantics
Rich Semantics

COCO provides three communication semantics: Messaging, Pub-Sub, and Streaming. Messaging allows applications to send/receive information as discrete messages. The Publisher-Subscriber (Pub-Sub) semantic allows applications to publish so that subscribers of the topic get an instant update. And, the streaming semantic enables large transfers such as multimedia streaming, or file transfers.

save costs
Save costs of the Cloud

Experience 90% savings on cloud bandwidth while running multimedia-rich applications like video conferencing, real-time photo sharing, video streaming, etc. The P2P architecture allows all nodes to avail processing power, and disk storage on the Edge, rather than Cloud storage. By utilizing such an architecture the costs to manage the cloud are completely eliminated.
NOTE: Cloud storage and backup has its place, if such functionality is required for your application, just add an App Node on the cloud and you are good to go.

low latency
Real-time communication with low latency

Bypass round trips to a central cloud and instead traverse the shortest path using P2P networks. App developers rely on this foundation to build a variety of apps that require low-latency using multiple languages, platforms, and across various device networks.

no single point of failure
No Central Point of Failure

Data is valuable only if it is available in large volumes covering many individuals. Using decentralization with a mesh topology enables developers to eliminate this single point of failure and spread the data storage across user devices. This helps reduce their risks of security breaches and data theft that can attract large fines via new data privacy legislatures like GDPR and CCPA.

QOS
Connectivity and Data QoS options

The COCO platform handles NAT and Firewall traversal without burdening the developer with managing connectivity. Further, the COCO platform handles remote and offline network connectivity between all nodes of the COCONet, allowing app developers to focus on solving their main business problems.
With additional options for TCP and UDP connections between nodes, COCO offers developers a swiss army knife for connectivity and communication.

Remote and Offline Access to Networks

Yes, you can access your networks from anywhere and still keep the data private. The data coming from the devices can also be accessed when there is no public internet available.

save development costs
Save costs and shorten long development cycles

Save over 70% of development costs by using COCO’s pre-built SDKs with rich semantics for different communication use cases. COCO provides the communication infrastructure for your various use cases, so that you can focus on your customers and on the application’s business logic.

Extendable, Reliable and Secure

Apps communicate with other nodes on the COCONet, using the cluster protocol. Applications can extend the protocol by creating their own structured data formats and protocol extension while communicating with other app nodes in the network.The COCONet enables security via the use of ECDH for key exchange, ECDSA for message signing, and ChaChaPoly-1305 for the encryption algorithm. All of this security management is handled by the platform taking away the burden from the developer. COCO provides end-to-end encryption-in-motion, while the responsibility of encryption-at-rest, and secure programming practices is with the developer.

Software library
Ready-made software libraries

With access to the Client SDK, Device SDK, and ready-to-use APIs, developers can create any type of application for both types of COCONet. Further COCO SDKs provide standard interfaces for IoT functionality in an extremely simplified API. The COCO platform becomes a tech partner for developers that provides managed connectivity. We encourage developers to focus on user experience and business logic, while we take care of the rest.

Flexible Network Topology

Developers can change the topology of their application between on-premise installation to hybrid cloud/on-premise to cloud-only installation without having to write any special software to manage these configurations. Further, the nodes of the COCONet that are part of the LAN will continue to communicate with each other even when the cloud is unavailable. This is another way that saves on time, cost, and effort of the developer.

Customizable Private Home Networks

COCO using P2P architecture and provides the infrastructure for you to create private networks at home and work. Adding and deleting nodes; inviting users and managing their controls and permissions can be managed using the COCO App or an App that is exclusively created for a Developer COCONet.

Interoperable with all Smart Things

Applications built using COCO and devices Buzzed on COCO are interoperable with all Smart Things. COCO works with over 2000 Zigbee, Zwave and Bluetooth devices.

COCONet in different shapes and sizes

What type of networks can you create to solve communication challenges within your industry?

Some use cases to get started with.

For OEMs and Device Manufacturers

Unlock new business potential by creating an Ecosystem of Devices that operate in a unified Network of Things.

No Backend development required

Bring your family of devices that can communicate and interoperate with each other to give your customers the experience they have been looking for – all this with just a few lines of code, and no cloud or backend development required.

Custom APIs & Device Extensions

Add Stickiness to your devices, by allowing Developers using the COCO platform to extend your devices via creating custom App and Device Extensions to your products, for any type of a COCONet.

P2P Architecture

For instance, leverage P2P to add fitness devices, health trackers, and other medical devices into a Developer COCONet to aid assisted lifestyle, in-patient treatment, out-patient diagnosis, and post-operative therapy sessions.

Customizable ready-to-go

Begin with COCO’s ready-to-use Developer Edition which already has a gateway, sensors, and alarms that are compatible with wireless protocols such as Zigbee, Zwave and Bluetooth. Bring other devices to any of your Developer COCONet.

Custom Automation

  • Build connected homes and structures that offer data privacy across everything smart — offices, buildings, stores, and cities.
  • P2P networks enable offline, cost-effective, and seamless communication among facilities, HVAC systems, water and drainage systems, energy saving systems, disintegrated beacons, disabled enablement systems, and the rest.
  • Establish a connected or a smart factory to run a constant stream of data between machines and applications.

Device Interoperability

  • P2P architecture allows the creation of a User COCONet that could include a sales assistant’s tablet, an e-commerce website, an RFID clothing label, smart changing rooms, temperature sensors, and more.
  • It could be simple grocery and inventory reminders or a real-time chat functionality between the brand and the customer.
  • Use high quality products at a low cost with low investment, yet customize the product for your end-consumers, creating a User COCONet.

Enriched Customer Experience

For instance, enrich private guest experiences in hospitality. Enable custom access to door locks, personalized check-ins and check-outs, etc.

For Industry-specific Solution Providers

Provide Custom Automation Solutions for Hotels and Resorts, Enterprise Automation, Healthcare, Manufacturing, and Building Management Systems.

For Developers

Control multiple devices from a central app using standard communication protocols. Write a software for devices of your choice to work with your chosen type of COCONet.

Custom Apps for Private Networks

Create Solutions for Schools with Apps to monitor the location of children in their own private network. Create a custom app for your guests to be able to control your door lock to let themselves in vehicle communication app exclusively for a fleet of transportation vehicles.

Customized Node Controls

  • Build an app for a User COCONet to control access to friends, maids, or helpers into an apartment or house.
  • Set limits on electricity usage monitored by an energy meter.
  • Monitor your connected vehicle and help your partner find the route to the nearest gas station.

Define Capabilities

  • Start and stop sprinklers based on the water levels in the overhead tank.
  • Heat water and toast bread, seven minutes after your alarm goes.
  • Switch on and off lights, based on the sensor data.

Share Resources

  • Transfer private and rich-media data across integrated devices in a banking system with  remote automated teller machines, banking applications, card scanners, digital payment applications, cash deposit machines, and online customer accounts for seamless communication.
  • Track health vitals and other diagnostic data in real-time, providing immediate access to doctors and primary caretakers.

Developer Resources

Take a look at some of the P2P basics

Apart from home automation what are the other scenarios that COCO supports?

COCO supports a variety of use cases. A few examples are Peer-to-Peer chat application without needing public internet connectivity, serverless file sharing between peers on the same COCO network, serverless remote connectivity to your network from anywhere in the world. COCO’s technology stack can be deployed in a variety of networked scenarios, not just home automation.

My apps need to be on the cloud for global connectivity. Can the data still be secure?

We would humbly suggest that your apps do not need to be on the Cloud for global connectivity. Using COCO, you can enjoy global connectivity while keeping your apps and data off the Cloud. It is possible of course to secure your Cloud-based apps and data, however, why run the risk of having such data hacked when you can remain Cloudless using COCO?

Does using COCO mean that I cannot receive personalized ads on my smartphone?

You are referring to the notion of data privacy. COCO enables data privacy, but how any particular solution uses data privacy is completely up to the implementation. If you wish to enable personalized ads through Google or Facebook or similar, there is nothing in COCO that is going to prevent that. We do believe however that using COCO, you may enjoy not being forced into sharing your data with central servers.

Is there an IoT Gateway that I could use to start building my IoT Apps? Do you recommend anything specific?

Glad you asked! The COCO developer edition comes with an IoT Gateway that is already “Buzzed on COCO”. We highly recommend this gateway as an excellent way to get started on building out your P2P IoT Apps.

The multi-radio, wireless gateway is designed for quick home automation solutions. It connects smart devices with each other featuring Zigbee, Z-wave, Bluetooth Low Energy, Wi-Fi and Ethernet, and lets you create innovative IoT applications, services, and products.

Iot multi radio gateway_COCO

The modular construction of the COCO gateway can be customized in radio standards as well as the look and function of the device. The IoT smart hub can be applied to different smart home use cases to create smart energy, home security, home safety, elderly care, and other similar smart home needs. It measures energy, temperature, illuminance, and relative humidity. 

 

 

What is fine-grain resource control?

Perhaps the best way to explain fine-grain resource control is through an example.

Let’s assume that you have COCO installed in your smart home, and would like to control your smart door lock remotely through your COCO network.

Let’s further assume that you would like to provide your maid access to enter your home by unlocking the smart door at around 9:00 am. Your maid is not to have access to any other resources on your network, for example, she may not access a storage device on the same network.

This is possible because of fine-grain resource control, where specific resources such as your smart door lock can be unlocked, for specific durations of time, while no other resources on the same network are accessed. This is as opposed to full network access that you may find in an enterprise VPN solution.

What are the IoT Development Platforms & Frameworks that COCO supports?

To enable rapid IoT development, the COCO App SDK is available on Operating Systems like Linux, Android, iOS, OS X, etc. and in various languages like C, C++, Java, Swift, and Javascript. Device manufacturers may use the COCO Device SDK on Operating Systems like Embedded Linux, FreeRTOS and ThreadX, and can be cross-compiled into various MCU and ARM architectures.

Could you help me with any marketplace that would help me sell my IoT Apps?

Yes, we are happy to partner with you on your marketplace. COCO’s marketplace (aka “COCO Grove”) is simply a list of apps and devices that enable COCO functionality. You can explore different apps and devices that are Buzzed on COCO and access the same for your network.

You can access COCO Grove also from the COCO App which is designed to help you get started with smart home automation, define resources, zones and capabilities based on your custom needs.

What is a User COCONet?

User COCONets are relatively smaller networks, owned and managed by users registered with the COCO User Login and Authorization systems. Such COCONets allow Enterprises and Individuals to control the Apps and Users within their own Private Network. Network management capabilities like inviting users into their COCONet can be performed using the COCO App. Invited users can join the COCONet using any application built for Private Networks. The app instances installed in a COCONet form a sub-cluster and can discover and communicate with one another.

What is a Developer COCONet?

Developer COCONets are owned and managed directly by a Developer who creates a global network with a very large number of nodes. Apps built for developer COCONets can by-pass COCO’s User Login and Authorization systems, but still, leverage the P2P communication between the various nodes of the network. For e.g. a global chat app where every user in the world has a node in the network. The App Developer can maintain a cloud with his Service App calling into COCO’s REST APIs for managing his instances of COCONet and the nodes installed in it.

What are Rules?

Rule is a group of one or more actions and one or more conditions, where the actions are automatically performed on the conditions being satisfied. A condition can be a resource condition (for e.g. Light Bulb Color = Red or my motion sensor has detected occupancy), or a schedule condition (for e.g. Every Monday at 9am, or every day at 6am). At least one schedule condition AND all resource conditions must be met in order for a Rule’s actions to be executed. An action can be a resource action (e.g. change my bulb’s color to Blue) or a Scene action (e.g. trigger my party scene). With this background, here are two examples of rules:

  1. Switch on your geyser (resource action) at 6am every morning (schedule condition), or
  2. Toggle all the lights in a room (scene action) when motion is detected (resource condition).

What are Scenes?

Scene is a group of one or more resource commands that are executed at the same time when the Scene is triggered by a user. For e.g. you want to switch off all the lights in a room (this is a grouping of the ‘Off’ action for every light bulb resource in the room), or perform the setup for a party (which may include many different resource actions such as turn-on disco lights, dim the main lights, turn-on the stereo system, play my playlist and so on). A scene is typically provided as a single button on a user interface which performs all of the predefined actions on being triggered.

What are Zones?

Zone is a group of one or more resources. It is similar to the usage of zones in Home Automation systems to designate regions within the home like the living room, bedroom, etc. where devices are physically located. In our platform, it can be used for any kind of categorization of resources, so that they may be browsed by zone and located more easily.

What is a P2P Network?

A peer-to-peer network derives its name from the topology of the network. In such a network topology, all networked machines are neither clients nor servers, they are instead peers (both clients AND servers). Historically, during the ARPANET days, all networks were designed to be peer-to-peer (P2P). In a peer-to-peer network, any machine on the network can communicate directly with any other machine on the network without requiring an intermediary to help exchange the data.

What is a Node?

A node is part of only one cluster, and can only communicate with other nodes of that one cluster. Communication between different clusters is not possible. Having said that, It is possible for an application to start two instances of the Control Plane (CP), so it appears as two nodes. While from the cluster protocol point of view there can be no communication between two different clusters, the application will have access to two clusters in this case, and can in principle relay messages from one cluster to another.

What is a Node_COCO Architecture_P2P Decentralized networks

Fig. Three different Apps/IoT Devices that are part of a cluster. 

In this example, A and B communicate directly with each other, as do B and C. Nodes A and C can also communicate with each other through node B (grey line).

Each node in a cluster has a unique name and its own public/private keypair. Each node maintains an encrypted database of information of other nodes that are visible to it, i.e. part of the same sub-cluster and the core cluster. This encrypted database does not always have to contain information about all nodes that belong to a cluster; it just has to know a few other nodes so it can make connections to them. When a connection is established between two nodes, they will exchange their knowledge of the cluster with each other, and potentially complement the information in each other’s databases.

The database contains information like the names of nodes, their public keys, and their last known IP addresses. Using this information, nodes can try to establish connections with each other over the Internet. Information about established connections is also shared with other nodes, such that all nodes have knowledge of the whole graph of connections within the cluster at any given point. If there is a path between two nodes in the graph, these two nodes can always communicate with each other.

What are Attributes?

Attributes are specific features os a resource’s capability. Each capability could have attributes specific to each capability of the resource. One such attribute in a lighting app could be to ‘turn-on’ or ‘turn-off’ the light; to change the color to RED, etc.

What are Capabilities?

Resources have capabilities that perform a few functions. For instance, a lighting app would have capabilities such as to light up, change color, dim or brighten the light.

Can I programmatically control my P2P network?

Yes, using our SDKs and APIs, we allow a developer to programmatically create and control their own network. Note that the developer has​ to be an owner of the network to be able to programmatically control the network. S​ee the API documentation here.

What are Resources?

Resources within a COCONet include the devices and apps on a given network. Each resource could have unique capabilities. For instance, in a smart home network, a light bulb or a smart home app could be a resource.

What is a Mesh Topology?

A mesh topology used by COCO is refered to as a ‘Cluster’. A mesh topology is the fundamental principle that connects the infrastructure nodes in a COCONet which makes it completely customisable for a given application while considering trade-offs around costs, on-device computing and storage capabilities, bandwidth availability, reliability and latency requirements.

In contrast to a star or a tree network topology, a unified P2P IP Mesh Overlay Network that works over TCP/IP and UDP/IP self-organises, auto-heals and provides low-latency communication between the nodes.

A mesh topology enables developers to eliminate this single point of failure and spread the data storage across user devices. This helps reduce their risks of security breaches and data theft that can attract large fines via new data privacy legislatures like GDPR and CCPA.

Quick Tools to Get Started

Dev portal

Developer Portal

SDK icon

Client SDK

getting started guide

Getting Started Guide

Reach Out To a COCO Expert