Services
Services are components that provide data processing, external integrations, or computed outputs. Unlike sensors, services may not directly interact with hardware but instead consume data from other sources.
Available Services
| Service | Status | Description |
|---|---|---|
| OpenMeteo | Available | Weather data from Open-Meteo API |
Planned Services
| Service | Description | Target |
|---|---|---|
| ML Inference | Object detection, classification using TensorRT/ONNX | TBD |
| SLAM | Simultaneous localization and mapping | TBD |
| Path Planning | Navigation and trajectory planning | TBD |
| Speech Recognition | Voice command processing | TBD |
Service Architecture
flowchart LR
subgraph External["External Source"]
api[API / Data Source]
end
subgraph Service["Service Node"]
fetch[Data Fetcher]
process[Processor]
publish[Publisher]
end
subgraph Bus["Message Bus"]
topic[Output Topics]
end
subgraph Optional["Optional Input"]
input[Input Topics]
end
api --> fetch
fetch --> process
process --> publish
publish --> topic
input -.-> process
Common Patterns
Data Flow
Services typically:
- Fetch data from external sources (APIs, databases, files)
- Process or transform the data
- Publish results to the message bus
Input/Output
Services may have:
- Publishers: Output topics for processed data
- Subscribers: Input topics for configuration or triggers
Configuration
Services are configured via YAML files:
# Example service configuration
service_name:
api_url: "https://api.example.com"
refresh_interval: 60
output_topic: "/service/data"
Each service type has its own configuration options. See the individual service pages for details.
Integration Points
Services can integrate with:
| Source | Example |
|---|---|
| REST APIs | Weather, maps, notifications |
| Databases | Time-series data, configurations |
| ML Models | Inference engines, classifiers |
| Cloud Services | Storage, compute, messaging |