style.tilde.hacking.sensorReading

tilde.style

{
  "$type": "com.atproto.lexicon.schema",
  "_comment": "NSID authority: style.tilde.hacking (same reversed-domain authority as the existing style.tilde.hacking.checkin/connection/toon — already DNS-_lexicon-proven for hacking.tilde.style, no new DNS step needed). Renamed 2026-09-06 from the placeholder `science.iosp.sensor.reading` (authority `science.iosp`/domain `iosp.science` was never decided by the group, never DNS-proven, not ours — confirmed via mcp__atmosphere__get_lexicon_schema returning not_found for lack of any resolvable authority). This is the real namespace the old lexicon's own _comment said to finalize before the actual event. Modeled on tilde.cards' cards.tilde.card.json lexicon template. `value`/`valueScale`: AT Protocol's on-wire record data model has no floating-point type (verified 2026-07-16 against a real PDS — a float `value` gets a 400 from com.atproto.repo.createRecord), so readings are stored as a scaled integer instead; see each field's description.",
  "defs": {
    "main": {
      "description": "A single reading from a live sensor (e.g. temperature, humidity), published via Nebra.",
      "key": "tid",
      "record": {
        "properties": {
          "createdAt": {
            "description": "ATProto-compatible UTC timestamp — use nebra.get_atproto_utc_time().",
            "format": "datetime",
            "type": "string"
          },
          "deviceId": {
            "description": "Free-form identifier for which physical device produced this — e.g. which Raspberry Pi.",
            "maxLength": 128,
            "type": "string"
          },
          "sensorType": {
            "description": "What kind of sensor this reading came from, e.g. 'temperature', 'humidity'.",
            "maxLength": 64,
            "type": "string"
          },
          "unit": {
            "description": "Unit for value, e.g. 'celsius', 'percent'.",
            "maxLength": 32,
            "type": "string"
          },
          "value": {
            "description": "The reading, scaled to an integer by valueScale (AT Protocol records can't hold floats) — real value = value / valueScale.",
            "type": "integer"
          },
          "valueScale": {
            "description": "Divide `value` by this to recover the real-world reading, e.g. value=238, valueScale=10 means 23.8.",
            "type": "integer"
          }
        },
        "required": [
          "sensorType",
          "value",
          "valueScale",
          "unit",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "style.tilde.hacking.sensorReading",
  "lexicon": 1
}

Validate Record

Validate a record against style.tilde.hacking.sensorReading

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:nikxdzksyzpo4sqk3nzlaaxm
CID
bafyreiaw6vgtytjkf4e2ixluercd5mq67yvpbel3335xnfelu5h6n76vay
Indexed At
2026-09-06 22:47 UTC
AT-URI
at://did:plc:nikxdzksyzpo4sqk3nzlaaxm/com.atproto.lexicon.schema/style.tilde.hacking.sensorReading

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • An instrument or procedure that produces observations.

  • Groups Observations of one ObservedProperty by one Sensor on one Thing. Carries all context needed to interpret observation results.

Lexicon Garden

@