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 |