Skip to content

EZO v1 Contracts

This document locks the v1 contract surface.

Type IDs

  1. sensor.ezo.ph
  2. sensor.ezo.orp
  3. sensor.ezo.ec
  4. sensor.ezo.do
  5. sensor.ezo.rtd
  6. sensor.ezo.hum

Shared safe functions (all families)

  1. find
  2. set_led
  3. sleep

Function IDs (provider-local stable IDs)

  1. 1001 -> find
  2. 1002 -> set_led
  3. 1003 -> sleep

Signal table

FamilyType IDSignal IDsNotes
pHsensor.ezo.phph.valuescalar
ORPsensor.ezo.orporp.millivoltsscalar
ECsensor.ezo.ecec.conductivity_us_cm, ec.tds_ppm, ec.salinity_psu, ec.specific_gravityfixed signal set; unavailable outputs return non-OK quality
DOsensor.ezo.dodo.mg_l, do.saturation_pctfixed signal set; unavailable outputs return non-OK quality
RTDsensor.ezo.rtdrtd.temperature_cscalar
HUMsensor.ezo.humhum.relative_humidity_pct, hum.temperature_c, hum.dew_point_cfixed signal set; unavailable outputs return non-OK quality

Quality policy

  1. Do not remove configured signal IDs from the contract surface at runtime.
  2. When an output is unavailable on-device, return the signal with non-OK quality and explanatory metadata.
  3. Use explicit timestamps for sampled values.

Notes

  1. HUM/EC/DO field-level mappings are fixed for v1; unavailable outputs are represented with non-OK quality and metadata, not by removing signals.
  2. Signal IDs are lower_snake_case segments with dot-separated namespace prefixes.