bi_explain_alert_chain
Decode a Blue Iris alert's action chain and verify what actually happened: retrace filters, verdicts, and the ±2-minute log of MQTT, email, SMS, FTP actions to determine FIRED or SUPPRESSED causes.
Instructions
Use after bi_list_alerts to decode what actions fired on a specific alert. Pass the alert's path from that response. Explain a specific alert's action chain. Given (camera, alert_path), returns the alert's facts (memo, profile/preset at trigger, zones), each action row with its decoded filters, comparator verdicts for the cases that need them (compound predicates like 'car+licenseplate', confidence thresholds like 'person:80', cross-zone sequencing, wait-row gating), and a ±2-minute log cross-reference of what BI actually did (MQTT publishes, email/SMS/FTP results, AI cancellations). Simple filter matches (object-in-list, profile, source bit) are surfaced as raw facts; the caller decides FIRED vs SUPPRESSED for those. Admin-gated (uses the log cmd).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| raw | No | If true, return the raw Blue Iris JSON instead of the shaped view. | |
| path | Yes | Alert path from bi_list_alerts (e.g. '@4473131744.bvr'). Required. | |
| camera | Yes | Camera short name (e.g. 'SecCam_3'). Required. | |
| max_alert_age_h | No | Refuse to query the log for alerts older than this many hours. Default 24. BI's log cmd has no upper-time bound, so older alerts trigger a global log slice; raise this only when forensic review is worth the cost. |