style.tilde.hacking.sensorReading

tilde.style

{
  "id": "style.tilde.hacking.sensorReading",
  "defs": {
    "main": {
      "key": "tid",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "sensorType",
          "value",
          "valueScale",
          "unit",
          "createdAt"
        ],
        "properties": {
          "unit": {
            "type": "string",
            "maxLength": 32,
            "description": "Unit for value, e.g. 'celsius', 'percent'."
          },
          "value": {
            "type": "integer",
            "description": "The reading, scaled to an integer by valueScale (AT Protocol records can't hold floats) — real value = value / valueScale."
          },
          "deviceId": {
            "type": "string",
            "maxLength": 128,
            "description": "Free-form identifier for which physical device produced this — e.g. which Raspberry Pi."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "ATProto-compatible UTC timestamp — use nebra.get_atproto_utc_time()."
          },
          "sensorType": {
            "type": "string",
            "maxLength": 64,
            "description": "What kind of sensor this reading came from, e.g. 'temperature', 'humidity'."
          },
          "valueScale": {
            "type": "integer",
            "description": "Divide `value` by this to recover the real-world reading, e.g. value=238, valueScale=10 means 23.8."
          }
        }
      },
      "description": "A single reading from a live sensor (e.g. temperature, humidity), published via Nebra."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "_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."
}

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

Lexicon Garden

@