EZO v1 Contracts
This document locks the v1 contract surface.
Type IDs
sensor.ezo.phsensor.ezo.orpsensor.ezo.ecsensor.ezo.dosensor.ezo.rtdsensor.ezo.hum
Shared safe functions (all families)
findset_ledsleep
Function IDs (provider-local stable IDs)
1001->find1002->set_led1003->sleep
Signal table
| Family | Type ID | Signal IDs | Notes |
|---|---|---|---|
| pH | sensor.ezo.ph | ph.value | scalar |
| ORP | sensor.ezo.orp | orp.millivolts | scalar |
| EC | sensor.ezo.ec | ec.conductivity_us_cm, ec.tds_ppm, ec.salinity_psu, ec.specific_gravity | fixed signal set; unavailable outputs return non-OK quality |
| DO | sensor.ezo.do | do.mg_l, do.saturation_pct | fixed signal set; unavailable outputs return non-OK quality |
| RTD | sensor.ezo.rtd | rtd.temperature_c | scalar |
| HUM | sensor.ezo.hum | hum.relative_humidity_pct, hum.temperature_c, hum.dew_point_c | fixed signal set; unavailable outputs return non-OK quality |
Quality policy
- Do not remove configured signal IDs from the contract surface at runtime.
- When an output is unavailable on-device, return the signal with non-OK quality and explanatory metadata.
- Use explicit timestamps for sampled values.
Notes
- HUM/EC/DO field-level mappings are fixed for v1; unavailable outputs are represented with non-OK quality and metadata, not by removing signals.
- Signal IDs are lower_snake_case segments with dot-separated namespace prefixes.
