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 (per-type, contiguous from 1) ​

Every EZO family exposes the same three control functions, numbered {1..3} per the Anolis executable profile (§5):

  1. 1 -> find
  2. 2 -> set_led
  3. 3 -> 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 flat lower_snake_case (^[a-z][a-z0-9_]*$), per the Anolis executable profile §5.