Configure what counts as a fault.
List every configured rule
List every configured rule › Responses
Every rule, as a JSON array.
idServer-generated (a hex string, distinct from name) - this is the value a webhook's filter.rule_id must match, not name.
namemodetypeExactly one of topic_glob or brick_class - topic_glob for the
original per-topic-string targeting, brick_class to target every
point already classified into that Brick class (see
mapping.classify_point) regardless of which topic/building/naming
scheme it came from. fault_detector.py resolves a brick_class
roster via SPARQL against the same Oxigraph graph mapping.py writes
to, not against the topic string at all.
minrange only.
maxrange only.
stuck_secondsstuck only.
max_age_secondsstale only.
severityFree-form (e.g. info/warning/critical) - not validated or enumerated server-side, the alarm console UI just displays whatever string was given. Defaults to warning if omitted. Copied onto each fault this rule opens at open time (see Fault.severity) - editing a rule's severity later doesn't relabel faults it already raised.
Create a fault-detection rule
mode is "cur" (evaluated in real time against live MQTT
readings) or "his" (evaluated periodically against
point_history). type is "range" (Cur-only), or "stuck"/
"stale" (His-only). Extra fields depend on type: range needs
min/max; stuck needs stuck_seconds; stale needs
max_age_seconds.
Create a fault-detection rule › Request Body
namemodetypeExactly one of topic_glob or brick_class - topic_glob for the
original per-topic-string targeting, brick_class to target every
point already classified into that Brick class (see
mapping.classify_point) regardless of which topic/building/naming
scheme it came from. fault_detector.py resolves a brick_class
roster via SPARQL against the same Oxigraph graph mapping.py writes
to, not against the topic string at all.
minrange only.
maxrange only.
stuck_secondsstuck only.
max_age_secondsstale only.
severityFree-form (e.g. info/warning/critical) - not validated or enumerated server-side, the alarm console UI just displays whatever string was given. Defaults to warning if omitted. Copied onto each fault this rule opens at open time (see Fault.severity) - editing a rule's severity later doesn't relabel faults it already raised.
Create a fault-detection rule › Responses
Created.
idServer-generated (a hex string, distinct from name) - this is the value a webhook's filter.rule_id must match, not name.
namemodetypeExactly one of topic_glob or brick_class - topic_glob for the
original per-topic-string targeting, brick_class to target every
point already classified into that Brick class (see
mapping.classify_point) regardless of which topic/building/naming
scheme it came from. fault_detector.py resolves a brick_class
roster via SPARQL against the same Oxigraph graph mapping.py writes
to, not against the topic string at all.
minrange only.
maxrange only.
stuck_secondsstuck only.
max_age_secondsstale only.
severityFree-form (e.g. info/warning/critical) - not validated or enumerated server-side, the alarm console UI just displays whatever string was given. Defaults to warning if omitted. Copied onto each fault this rule opens at open time (see Fault.severity) - editing a rule's severity later doesn't relabel faults it already raised.

