Skip to content

Operating state and detectors (Anomaly Watch)

Two optional per-asset keys serve Anomaly Watch (section 8.5). A model without them loads and scores as before.

{ "id": "line2.blower1", "name": "Blower 1",
  "tags": [ { "path": "[default]Line2/Blower1/Torque", "role": "measurement", "unit": "%" } ],
  "state": { "run": "[default]Line2/Blower1/Running", "product": "[default]Line2/Product",
             "changeover": "[default]Line2/Changeover" } }
  • state names up to three tag paths. run true means the asset is running: a Boolean true, or a value of 0.5 or more as read for each 5-minute step (so a status code of -1 or 0.3 reads as stopped); changeover true, by the same rule, means a changeover, which wins over run; product is read as a label, so baselines are kept per state and product. Leave state out and the asset is screened against one undivided baseline. A run or changeover tag the gateway reports as string-valued is refused at save; a path that is not one of the asset's tags, does not exist or keeps no history is a warning (a baseline split by state needs the signal's history too).
  • detectors are written by Anomaly Watch when a person confirms an anomaly, then only by people (the Detector view's Edit the rule, which opens the context-model editor, and Reject). Each holds id (unique in the collection), name, tag (the watched tag), path (where the detector's own expression tag goes, [provider]Folder/Name), kind (drift, band, stuck, rate, quality), rule (basis, aggregate, windowMinutes, operator, percent, value, low, high, holdMinutes, deadband — the return margin in the tag's units: once fired, the rule stays fired until the value is back past its line by that much), state (when it is armed: running, stopped or any), expression, alarm (name, mode, setpointA, setpointB, priority, timeOnDelaySeconds, timeOffDelaySeconds, deadband, deadbandMode), status (proposed or rejected), createdAt, createdBy, fromFindingId, score (windowDays, fired, matched, falseAlerts, waiting, computedAt) and why (the writer's explanation, at most 1,000 characters). At most 20 per asset and 500 per collection. Alarm mode uses Ignition's own names (AboveValue, BelowValue, Equality, Inequality, OutsideValues).
  • applied is never stored. Once a person has imported a detector's tag, contextModel.get lists it as applied under a separate detectors key, read from the tag each time.