Device State Ingest Documentation

This section is designed to guide you through the process of setting up and managing state ingest from your various devices to the Okos Polip platform. Our goal is to make it as straightforward as possible for you to connect and monitor your devices, regardless of their complexity or capabilities.

Overview

TLDR; An introduction to the concept of device state ingest, explaining what it means, why it’s important, and how Okos Polip handles this process efficiently.

Device state ingest is the process of getting data from your physical device to the cloud. At its most basic it is a one-way uplink of device state data; however we support other channels:

  • State Data (bi-directional IN/OUT)
  • Sensor Data (uni-directional OUT)
  • Remote Procedure Calls (RPCs)
  • Meta Data (uni-directional IN)
  • Manufacturer Data (uni-directional IN)
  • Errors and Notifications (uni-directional OUT)

For small teams and independent creators getting a well-defined generalized device-to-cloud (and cloud-to-device) solution is expensive to build in house. Furthermore, building a robust pipeline is not in-of-itself a differentiator for a specific home automation product. But device-to-cloud is needed; developers can leverage third-party software solutions to bridge the gap. Often these systems are hard to set up and maintain, have a hard vendor lock-in, and may force particular hardware controllers into your product.

Okos Polip strives to be

Supported Devices

A core value of Okos Polip is to be platform agnostic as far as reasonably possible. Anything that can eventually send an HTTP POST to a JSON REST API is capable of using the device state ingester. That being said there are some things to consider.

Okos Polip maintains device state ingest client libraries for:

  • C++ (for example Arduino)
  • Python (with ROS support)
  • Javascript / Typescript

Devices generally need:

  • HTTP library and means to resolve ingester route. C++ client library relies on callbacks to generalize against user supplied HTTP libraries. Python uses requests and Javascript uses axios to make HTTP POSTs.
  • Enough RAM to store JSON buffers and HTTP message buffers. Actual size depends on application and libraries used.

Nice to have:

  • Additional RAM to support HTTPS protocol
  • Cryptography support to compute hashed message tag
  • RTC or use NTP clock for timestamps
Getting Started

Step-by-step instructions on how to start ingesting device states into Okos Polip. This includes:

  • Setting up your device
  • Installing necessary libraries or clients
  • Configuring your device to communicate with Okos Polip
Advanced Configuration

Detailed guidance on advanced configuration options to optimize state ingest, such as:

  • Customizing data intervals
  • Managing bandwidth usage
  • Ensuring data security during transmission
API Reference

A detailed API reference guide that includes all the necessary endpoints for device state ingest, descriptions of each endpoint, request and response examples, and explanations of all parameters.

Examples

Practical examples showing how to implement device state ingest in various scenarios. These examples will provide code snippets and detailed explanations for common use cases, helping you to understand how to integrate your devices effectively.

Best Practices

A collection of best practices to enhance the reliability and efficiency of your device state ingest implementation. Topics will include error handling, maintaining device connectivity, and optimizing data transmission.

Troubleshooting

Helpful troubleshooting tips and common pitfalls to avoid during the device state ingest process. This section aims to address frequent issues, provide solutions, and offer guidance on how to obtain further support if needed.


Support and Community

Join our vibrant community of developers and industry experts. Share your experiences, ask questions, and find solutions to your integration challenges.

Ingest with Okos Polip