Data Points
Data Points are created to store a series of data values over time with millisecond-level logging on the host server's file system.
Data Points: Time-Series Data Storage for IoT and Automation
Data Points are the foundational building blocks of the Krill Platform, representing individual measurable values in your automation system such as temperature, humidity, sensor readings, or any other time-varying data.
Overview
A Data Point continuously collects and stores time-series data from connected devices or sensors. Each data point can log data at millisecond-level precision on the host server’s file system, providing high-fidelity historical data for analysis and automation.
Key Features
- Time-Series Storage: Automatically logs all data values with precise timestamps
- Multiple Data Types: Support for DOUBLE (numeric), BOOL (true/false), TEXT, and JSON data types
- Configurable Precision: Set decimal precision for numeric values (e.g., 2 decimal places)
- Units Support: Define units of measurement for better data interpretation
- Manual Entry: Optional manual data entry mode for user-supplied values
- Snapshot Tracking: Maintains current value snapshot with timestamp
- Deduplication: Automatically prevents duplicate snapshots from being processed
- Stale Data Detection: Filters out outdated data points based on maxAge configuration
Data Processing Flow
graph TD
A[New Data Value] --> B{Is Duplicate?}
B -->|Yes| C[Skip Processing]
B -->|No| D{Is Stale?}
D -->|Yes| E[Skip Processing]
D -->|No| F[Update Snapshot Tracker]
F --> G[Enqueue for Storage]
G --> H[Trigger Child Executors]
H --> I[Store to Time-Series DB]
How It Works
When a data point receives a new value:
- Snapshot Update: The system receives a new snapshot (timestamp + value)
- Deduplication Check: Verifies the snapshot hasn’t been processed before
- Staleness Check: Ensures the data is fresh based on maxAge configuration
- Snapshot Processing: Updates the current snapshot and queues for storage
- Child Execution: Triggers any connected executors, triggers, or filters
- Persistence: Writes to hourly time-series files on the server
Remote Data Points
Data Points can be created on any Krill Server in your mesh network. When a data point is created on a remote server, updates are automatically forwarded to the correct host server via HTTP, enabling distributed data collection across your entire infrastructure.
Integration Points
Data Points serve as:
- Input Sources for Executors (Calculation, Compute, Logic Gates)
- Trigger Sources for Threshold monitoring and alarms
- Filter Inputs for data processing pipelines
- Storage Endpoints for calculation and computation results
Configuration Options
| Field | Description | Default |
|---|---|---|
name | Unique identifier for the data point | Auto-generated |
dataType | Type of data (DOUBLE, BOOL, TEXT, JSON) | DOUBLE |
precision | Decimal places for numeric values | 2 |
unit | Unit of measurement (e.g., “°C”, “psi”, “rpm”) | Empty |
manualEntry | Allow manual value entry | true |
maxAge | Maximum age in milliseconds (0 = no limit) | 0 |
sourceId | Optional source node reference | Empty |
Use Cases
- Sensor Data Collection: Temperature, humidity, pressure, light levels
- Equipment Monitoring: Motor speeds, valve positions, pump states
- Environmental Data: Weather station readings, air quality measurements
- Process Control: Set points, control outputs, feedback loops
- Energy Monitoring: Power consumption, voltage, current readings
- Custom Metrics: Any time-varying measurement in your system
Data Points provide the essential time-series foundation that powers the entire Krill automation platform.