Log a watering
/modules/{moduleId}/irrigation/events Millimetres are FROZEN here, using the equipment valid on the DATE OF THE WATERING (not the date of the call) and a snapshot of the parameters used. warnings is not a failure: the row is recorded even with no computable dose — validation refuses the inconsistent, never the incomplete. The row carries source: "api".
Path parameters
-
moduleIdinteger required
Headers
-
Idempotency-KeystringReplays the same 2xx response (24 h)
Request body
-
startedAtstring date-time requiredStart of the watering.
-
endedAtstring date-timeEnd. Alternative to
durationMin— the duration is derived from it. -
inputModestring requiredHow the application is declared.
durationrequires NO configuration (it is the universal fallback mode) but only yields a dose once the flow rate is known;depth_mmis taken as is;volume_m3requires the irrigated area. -
durationMinintegerDuration in minutes. Alternative to
endedAt— only one of the two is stored. -
inputDepthMmnumberDepth of water in mm. Required in
depth_mmmode, and then taken as is. -
inputVolumeM3numberVolume in m³. Required in
volume_m3mode. -
statusstringplanned= scheduled,done= done,skipped= cancelled (never shown on charts). -
notestring
Response
Watering recorded
-
eventIrrigationEventOne water application, at the probe. Millimetres are FROZEN at write time and never recomputed on read.
Show 18 attributes Hide attributes
-
idinteger -
moduleIdinteger -
scheduleIdinteger nullableSchedule this row is an occurrence of, if any.
-
isDetachedbooleanSchedule occurrence corrected by hand: the nightly regeneration will never touch it again.
-
startedAtstring date-time -
durationMininteger nullableDuration in minutes.
nullindepth_mm/volume_m3mode when no duration was declared. -
endedAtstring date-time nullableComputed (
startedAt+durationMin), not stored.nullif the duration is unknown. -
inputModestringHow the application is declared.
durationrequires NO configuration (it is the universal fallback mode) but only yields a dose once the flow rate is known;depth_mmis taken as is;volume_m3requires the irrigated area. -
inputDepthMmnumber nullableValue entered in
depth_mmmode, in mm. -
inputVolumeM3number nullableValue entered in
volume_m3mode, in m³. -
waterMmnumber nullableDose over the TOTAL AREA, in mm — the figure comparable to rainfall, ETc or the water meter.
null= cannot be converted as things stand; the row stays valid and is shown with its duration. -
waterMmWettednumber nullableDose in the WETTED ZONE (=
waterMm÷ fw), in mm — where the probe is installed, and therefore what explains the observed rise in VWC.nullwhen fw is 1: both figures would be identical. -
configSnapshotIrrigationConfigSnapshot nullableSnapshot of the parameters ACTUALLY USED to compute this row, frozen at write time. Distinct from the setup history: the history says which equipment was in place on a given date, the snapshot says what was actually used — the two can legitimately differ if the setup has been corrected since.
Show 8 attributes Hide attributes
-
installationIdinteger nullableSetup version used.
-
scopestring nullableScope this setup came from.
-
systemstring nullable -
flowMmPerHnumber nullableApplication rate used, in mm/h.
-
fractionWettednumber nullableWetted soil fraction used (0 < fw ≤ 1).
-
fractionWettedIsDefaultbooleantrue = system default, not entered.
-
irrigatedAreaM2number nullableIrrigated area used, in m².
-
computedAtstring date-time
-
-
statusstringplanned= scheduled,done= done,skipped= cancelled (never shown on charts). -
sourcestringWhere the row comes from.
manual= entered in the hub ·schedule= occurrence materialized by a schedule ·api= this API ·mcp= AI assistant. Read-only: the source is set by whichever surface writes the row. -
verifiedAtstring date-time nullablenull= nobody confirmed this watering (occurrence auto-confirmed by a schedule). -
notestring nullable -
createdAtstring date-time
-
-
warningsarray of IrrigationWarningWhy the dose could not be computed, or which assumption it rests on. NONE of them is blocking: the watering is recorded whatever happens,
waterMmsimply stayingnull.
Errors
- 400
Entry refused
INVALID_INPUT_MODEINVALID_DURATIONINVALID_ENDED_ATENDED_BEFORE_STARTEDINVALID_DEPTHINVALID_VOLUMEMISSING_DURATIONMISSING_DEPTHMISSING_VOLUMEINVALID_STARTED_ATINVALID_STATUSMODULE_NOT_OWNED - 401
Not authenticated
- 403
Insufficient scope/role, or outside your company