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 (§4):

  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 §4.