Skip to main content

Data Points

Table of Contents

  1. Introduction
  2. What is a Data Point?
  3. Importance of Data Points
  4. Creating Data Points in OmniWOT
  5. Example Use Case: Smart Agriculture Sensor
  6. Best Practices
  7. Platform Behavior
  8. Glossary
  9. Conclusion

1. 🔰 Introduction

In IoT platforms like OmniWOT, Data Points represent the smallest measurable units collected from devices—such as temperature, battery level, motion, or GPS coordinates.
They are essential for:

  • Visualization on dashboards
  • Triggering alerts and rules
  • Storing structured historical data
  • Enabling API-based access and reporting

2. 📌 What is a Data Point?

A Data Point is a named field within the decoded payload from an IoT device. Each data point has:

  • Name (e.g., soilMoisture)
  • Type (e.g., float, integer, boolean, string)
  • Unit (e.g., %, °C, lux, m/s²)
  • Description (optional, for clarity)

It represents one discrete piece of sensor data.


3. 🌟 Importance of Data Points

PurposeWhy It's Important
DashboardsPower widgets and real-time views
Alerts & TriggersCreate conditions like "battery < 20%"
Data StorageStore structured data in PostgreSQL or time series DB
API & ReportingQuery via RESTful APIs using semantic data
Analytics & AIFeed clean sensor data into ML pipelines

Without clearly defined data points, your data pipeline is unstructured and unmanageable.


4. Creating Data Points in OmniWOT

OmniWOT Technologies provides a streamlined interface to create and manage Data Points using Protocol Buffers (Proto). Users can define these in three flexible ways:

1. Navigate to Data Points:

  • On the sidebar, click on Config > Data Points
Dashboard Overview

2. Click "Create Data Point":

  • On the right hand side click on the button "Create Data Point"
Dashboard Overview

3. You have 3 ways to create data points:

3.1 - Start with JSON (Create from JSON Sample)

  • Best For: Rapid prototyping with existing sample payloads

  • How It Works:

    • Paste/upload a JSON sample
    • OmniWOT auto-generates the equivalent .proto schema
Dashboard Overview

Example:

Input JSON:

{
"temperature": 22.5,
"batteryLevel": 90,
"deviceId": "sensor_01"
}

Generated Proto:

message SensorData {
float temperature = 1;
int32 batteryLevel = 2;
string deviceId = 3;
}

4.2 - From Payload Decoder (Create from Decoder Sample)

  • Best For: LoRaWAN devices with encoded payloads

  • How It Works:

    • Provide a JavaScript decoder function
    • Supply a sample byte array
    • OmniWOT decodes and infers .proto fields automatically
Dashboard Overview

Example:

JS Decoder:

function decode(bytes) {
return {
soilMoisture: ((bytes[0] << 8) | bytes[1]) / 10,
isOn: bytes[2] === 1,
};
}

Generated Proto:

message SoilStatus {
float soilMoisture = 1;
bool isOn = 2;
}

4.3 - Add Proto Directly (Create using Proto definition)

  • Best For: Advanced users or predefined device schemas

  • How It Works:

    • Manually input or paste a full .proto schema
    • Offers full control and customization
Dashboard Overview

Example:

message PumpController {
bool isPumpOn = 1;
float soilMoisture = 2;
enum Mode {
AUTO = 0;
MANUAL = 1;
}
Mode irrigationMode = 3;
}

  1. 🛠️ Creating Data Points in OmniWOT You can define data points in OmniWOT via three primary methods, depending on your source data:

➤ A. Create from JSON Sample Ideal for: Users with raw decoded JSON uplinks Steps: Go to the Data Points tab under the device profile

Click “Create from JSON”

Paste a sample JSON payload:

json:

{
"temperature": 26.7,
"humidity": 70,
"soilMoisture": 54.2,
"battery": 3.9
}

OmniWOT auto-generates:

Names

Types (float, integer)

Units (optional, editable)

Review & Save

✅ Benefits: Fastest way to define data points from existing output

➤ B. Create from Payload Decoder Ideal for: Devices using JavaScript decoders Steps: Go to the Decoder Script tab

Write or upload a JavaScript function returning a structured object:

js:

function decodeUplink(input) {
return {
data: {
temperature: 26.7,
battery: 3.9
}
};
}

Click “Analyze Decoder”

The platform scans the data object and generates data point templates

Review and assign metadata (units, descriptions)

✅ Benefits: Integrated workflow if you're writing custom decoders

➤ C. Create using Proto Definition Ideal for: Enterprise or structured integrations Steps: Upload your .proto file with schema:

proto:

message SensorData {
float temperature = 1;
float humidity = 2;
float battery = 3;
}

OmniWOT will parse and register these fields as data points

Supports gRPC or Protobuf-based payloads

✅ Benefits: Strong typing, supports nested fields and enums

  1. 🌾 Example Use Case: Smart Agriculture Sensor Device sends JSON payload: json
{
"temperature": 27.5,
"humidity": 61,
"soilMoisture": 47.3,
"battery": 3.7
}

Resulting Data Points:

NameTypeUnitDescription
temperaturefloat°CAmbient temperature
humidityint%Relative humidity
soilMoisturefloat%Moisture in soil
batteryfloatVBattery voltage of sensor
  1. ✅ Best Practices Practice Description Use consistent naming e.g., soilMoisture, not soil_mst or SM Define units clearly Helps with visualization and rules Avoid duplicate names Prevents overwrites and confusion Add descriptions Makes data points understandable Group logically e.g., environmental, location, power

  2. ⚙️ Platform Behavior Data points are device-type scoped, not per-device

Once defined, data points automatically appear in:

Dashboards

Alerts

Data streams

Data is time-stamped and stored in time series DB

OmniWOT supports versioning of data point definitions

  1. 📚 Glossary Term Meaning Data Point A measurable field (e.g., temperature) in decoded data Payload The raw binary or JSON data received from a device Decoder Script that converts payload into readable structure Proto Protocol Buffers schema used for typed data Unit Measurement unit (e.g., %, °C, V)

  2. 🔚 Conclusion Data points are the foundation of any meaningful IoT solution. In OmniWOT, they are easy to define, highly flexible, and support multiple workflows—from quick JSON prototyping to enterprise-grade Proto schemas. By properly structuring your data points, you unlock powerful features across the platform including dashboards, rules engine, analytics, and APIs.

5. Example Use Case: Smart Agriculture Sensor

Data PointTypeUnitAccessPurpose
soilMoisturefloat%ReadMonitor soil condition
temperaturefloat°CReadAmbient temp for crop health
pumpStatusboolean-RWControl water pump
irrigationModeenum-RWSet auto/manual irrigation

6. Best Practices

  • ✅ Keep naming conventions consistent and semantic
  • ✅ Use meaningful units and descriptions
  • ✅ Leverage enums for status/mode values
  • ✅ Retain latest values only where necessary
  • ✅ Use decoder functions responsibly to reduce complexity
  • ❌ Avoid excessive use of string fields for telemetry

7. Platform Behavior

FeatureDescription
Protocol Buffer IntegrationAll Data Points are internally represented using .proto format
ValidationAutomatic type inference and schema validation
VersioningChanges to Data Point definitions are version-controlled
Cancel OptionCancel any data point creation process without saving

8. Glossary

TermMeaning
TelemetryRemote data collection from sensors
ProtoProtocol Buffers schema definition
DownlinkSending commands to a device
UplinkDevice sending data to the platform
DecoderJS function to translate payloads

9. Conclusion

Data Points are the backbone of the OmniWOT IoT architecture. Whether you're building agricultural systems, industrial automation, or smart cities — defining clean, scalable, and semantically-rich Data Points enables powerful data-driven applications.

OmniWOT's versatile tooling with JSON, decoders, and Proto directly ensures you're always in control, no matter your technical skill level.

For advanced use cases or integrations, we recommend leveraging full Proto definitions and adhering to best practices to maintain interoperability and future scalability.