Skip to content

[Discussion] Refurbished approach to telemetry #10997

Description

@oscgonfer

I am adding this issue to agree on different aspects that could be done on Telemetry that have been discussed in various areas but probably haven't put together yet formally. Hopefully this list will grow with more ideas.

Tagging @NomDeTom and @caveman99 directly as I'd love to hear your opinions. Feel free to add others.

Decouple reading and publication interval

This idea has been discussed for a while and it's partially linked to the Telemetry Database we have talked about although not only that.

Currently, we read data periodically, but we are semaphored by AirTime / ChUtil after the fact. I'd suggest having two intervals instead: one for reading data at a predefined rate, and one for publishing it over the mesh, which is semaphored if needed. Internally, we could group readings in smart ways to send them over the mesh as a joint packet that contains either:

  • a history of readings (for sensor role)
  • aggregated metrics over the latest publication (for everyone else)

This would effectively act as a queue for readings that are not sent over, but that are read no matter what. Sensor role could have an additional feature to store this persistently on flash or sd-card if available.

The phone API will behave the same way as it is right now. Below for the MQTT API.

Linked: #9519 and meshtastic/protobufs#854 (although far from complete).

Always publish to MQTT if enabled

Considering the use case for a node that has Wi-Fi/ MQTT enabled, for any role, it could always read data and upload it via mqtt, no matter if the mesh is restricted at that particular moment.

Remove sensor readings from payload

Remove sensor readings that are not important, but that are enabled by default - these could have a toggle for removal by admin message (?)

Linked: #9712

All values in telemetry as scaled ints

What if we made all values in telemetry s scaled ints, (documented in protobuf comments) to save space, similar to location.

Identifiable sensor readings

Nesting telemetry data in protobuf would help us have traceability of who is sending data, now that we have overlapping types of sensors.

Linked: meshtastic/protobufs#852

MQTT bridge and decoupling

I have not tested MQTT scripts lately, but transforming data for subscribers to JSON and decoupling it on topics seems like a reasonable service to provide, but not on the node itself.

Linked: #8665 and #3798

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestmoduleModules not otherwise mentioned - rangetest, serial, dropzone, neighbourinfo, storeforwardneeds-tacosEvery night can be taco nightrequires-protosRequires changes to protobufs to work

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions