Add telemetry component type (rssi, latency_ms, boot_reason)#332
Open
tyeth wants to merge 1 commit into
Open
Conversation
…boot_reason Adds a new "telemetry" class of components matching adafruit/Adafruit_Wippersnapper_Python#262. Each telemetry component is a single host/device metric reported as a ws.telemetry.Event, identified by the name sent in ws.telemetry.Add. - New components/telemetry/schema.json (telemetryName, valueKind, unit, reportOnce, defaultPeriod + common fields) - rssi (float, dBm, periodic), latency_ms (float, ms, periodic), boot_reason (bytes, one-shot / period 0) definitions - Register telemetry in validate.yml CI matrix and filename regexes Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This was referenced Jun 11, 2026
brentru
requested changes
Jun 24, 2026
| "documentationURL": "https://learn.adafruit.com/adafruit-io-basics-wippersnapper", | ||
| "published": false, | ||
| "telemetryName": "boot_reason", | ||
| "valueKind": "bytes", |
Member
There was a problem hiding this comment.
valueKind seems identical in practice to sensorType - is there a reason we need a new type here?
| "description": "Reports a best-effort boot/reset reason for the device as a string. Published once when added, never on a periodic cadence.", | ||
| "documentationURL": "https://learn.adafruit.com/adafruit-io-basics-wippersnapper", | ||
| "published": false, | ||
| "telemetryName": "boot_reason", |
Member
There was a problem hiding this comment.
telemetryName -> name to match PB
| "minLength": 1, | ||
| "maxLength": 16 | ||
| }, | ||
| "reportOnce": { |
Member
There was a problem hiding this comment.
Shouldn't this be included in theAdd message?
| "description": "When true, this metric is reported a single time when added (period 0) rather than on a periodic cadence. Used for one-shot metrics such as boot_reason.", | ||
| "type": "boolean" | ||
| }, | ||
| "defaultPeriod": { |
Member
There was a problem hiding this comment.
Is this redundant? reportOnce already enables a sensor to send a single metric, why would this require a 0 for toggling too? Should be handled by code (dropped if we see reportOnce in the Add payload).
| "minLength": 3, | ||
| "maxLength": 24 | ||
| }, | ||
| "telemetryName": { |
| @@ -0,0 +1,11 @@ | |||
| { | |||
Member
There was a problem hiding this comment.
Can we also include images for each component? Can be very simple text for now, Tyler can design icons later.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a new telemetry class of components to match the firmware PR adafruit/Adafruit_Wippersnapper_Python#262 (telemetry components with drivers for RSSI, latency, and boot reason) and protobuf PR adafruit/Wippersnapper_Protobuf#204.
Each telemetry component is a single host/device metric the firmware samples and reports inside a
ws.telemetry.Event. The broker schedules reporting viaws.telemetry.Add(name,period); the component is identified bytelemetryName, which must match a firmware telemetry driver'sNAME.What's added
components/telemetry/schema.json— new component-type schema:telemetryName,valueKind(float/bytes/bool), optionalunit,reportOnce,defaultPeriod, plus the common fields.components/telemetry/rssi/definition.json— Wi-Fi RSSI (float, dBm), periodic (default 300s).components/telemetry/latency_ms/definition.json— broker round-trip latency (float, ms), periodic (default 300s).components/telemetry/boot_reason/definition.json— boot reason (bytes), one-shot (reportOnce, period 0)..github/workflows/validate.yml— registertelemetryin the validation matrix and the filename allowlist regexes.All three definitions are
"published": falseuntil firmware support ships.Notes
ds18x20).🤖 Generated with Claude Code