- Shipped
- October 18, 2026 at 8:34 PM UTC
- Author
- Kamo
- Commit
- 99ff37b
Eleven iot_* tools in the IoT pack, by its own conventions: offered per caller from the manifest (IotTools.RIGHT, the view's withholding reasons), every device, function and alarm checked against the caller's view, results whitelisted (no member's note, no customer name, no share label, no rule author's text), TEXT values taint the result. - Reads (VIEW_IOT_DEVICES): iot_list_sites (address and time zone, never a site's notes or an org-wide device count), iot_devices_for_customer (worst open alarm, newest work order), iot_devices_for_job, iot_get_history (a device's HISTORY functions only; withheld when none is in view), iot_list_commands (functions outside the view dropped), iot_get_alarm (timeline; a note is flagged, never quoted), iot_alarm_summary. - Alarm handling (ACKNOWLEDGE_IOT_ALARMS, WRITE_INTERNAL): iot_acknowledge_alarms (up to 25, the acknowledged skipped), iot_shelve_alarm: UPDATE_RECORD, re-classed OPERATE_SECURITY_DEVICE for a CRITICAL or MAJOR alarm, as acknowledging one is; iot_unshelve_alarm and iot_annotate_alarm: UPDATE_RECORD. A view-only session writes nothing; a class changed after approval is refused. Co-signing, retrying a command, grants, shares, safety overrides and IoT settings stay a person's; alarm rules, suppressions and KPIs need MANAGE_IOT_* (the SI floor).
