Enhancement/nested telemetry messages#852
Enhancement/nested telemetry messages#852oscgonfer wants to merge 2 commits intomeshtastic:masterfrom
Conversation
|
Hi. Nice job. I've noticed one thing. We already know which sensor is sending the metric, so we don't need to add the Note that I'm just a HW person, and I'm slowly getting into coding and have no clue about building this stuff. |
|
That's an easy fix. Let's see if the proposal moves forward. There are many other implications for this on the client side. |
|
Hi @oscgonfer, I’ve been thinking about a possibly more additive approach. What if we keep the current flat This message could be sent at longer intervals (or on change / boot), so normal telemetry remains lightweight and unchanged, while clients that care about provenance can use the extra information. This would avoid breaking existing clients and seems like it could work nicely with sensor selection logic as discussed in meshtastic/firmware#9474. Curious what you think. |
|
From my gut "feeling" I'd say the approach with the nested protobuf is better, as it doesn't substantially increase the size of the protobuf (since encoding/decoding happens on both ends, and we're adding a tag and a length varint -> + 2 bytes) and it has it all on the message itself. However, it's true that the approach you suggest wouldn't involve changes on clients and that it could be a good solution. I'd say an input from the development roadmap point of view should be considered in this discussion. Maybe @caveman99 or other maintainers/admins can chip in. The tricky thing is the case where multiple senors provide similar metrics. In smartcitizen.me, for instance, its quite typical to have 3-4 temperature sensors in the same unit. The nested approach guarantees a safe 1-1 relationship, avoiding the wait (and potentially missing) the |
A new proposal for nesting protobuf messages in sensor data structures, to add information for the sensor producing the data (not just the metric). Currently, only with AQ telemetry module.
The result reads, decoded on the other end: