NucuCar/NucuCar.Telemetry/Readme.md

75 lines
1.9 KiB
Markdown
Raw Normal View History

## Telemetry
It provides useful classes and abstractions for implementing telemetry
in individual components. All telemetry publishers use the MQTT protocol unless specified
otherwise.
### Azure Telemetry
#### Publisher
You can use cloud telemetry for free via Azure-IoT-Hub.
You still need a backend application that will process the messages.
You will need to create a:
- IoT Hub
- IoT Device
Then navigate to your device and grab the primary key, you will need it to create
a connection string of the form:
`HostName=YOUR_IOT_HUB_NAME.azure-devices.net;DeviceId=YOUR_DEVICE_NAME;SharedAccessKey=PRIMARY_OR_SECONDARY_KEY`
The connection string can be passed to the application via `appsettings.json` or command line arguments or environment variables:
```
dotnet run --Telemetry:ConnectionString=CONNECTION_STRING
export Telemetry:ConnectionString=CONNECTION_STRING
```
The Telemetry:Publisher must be set to: Azure
You may also use the format from above to override any settings in appsettings.json.
### Reader
A telemetry reader can be found in NucuCar.TestClient. You'll need a connection string that can be found in
Azure's IoT Hub Build-In Endpoints setting.
---
### Disk Telemetry
#### Publisher
Publishes telemetry on the disk.
Example connection string:
`Filename=telemetry;FileExtension=csv;Separator=,;BufferSize=4096`
The Telemetry:Publisher must be set to: Disk
See the source code for comments on the ConnectionString.
### Reader
You will need to parse the file by yourself.
---
### Firebase Firestore Database
#### Publisher
Publishes telemetry on the firestore.
The Telemetry:Publisher must be set to: Firestore
Example connection string:
`ProjectId=nucuhub;CollectionName=sensors-telemetry-test;Timeout=1000`
If you want to use Authentication you can do so by providing the following keys
in the connection string: WebApiEmail, WebApiPassword, WebApiKey.
### Reader
You will need use a firebase client or rest API.