v1.9.3
Summary
Version 1.9.3 adds Axis Paging Console integration, an extensively expanded use-case library covering the full engine feature set, and fixes to incorrect template variable names that were silently producing empty strings.
Added
- Paging Console Execute action — triggers a pre-configured action on an Axis Paging Console (e.g. C6110) by action UUID. Supports remote device target.
- Paging Console Button action — dynamically update a button slot on a Paging Console page to a specified action UUID, or clear it. GETs the current layout, patches the target slot, and PUTs it back atomically. Enables context-aware panel layouts driven by rule automation (e.g. swap emergency button on arm/disarm). Supports remote device target.
ACAP_VAPIX_Put_Path— new local VAPIX PUT helper for arbitrary REST paths on the local device, used by the Paging Console Button action.- Remote PUT/GET path helpers — clean
VAPIX_GET_PATH/VAPIX_PUT_PATHmacros that transparently route to local or remote devices based onremote_hostconfig. - Paging Console capability loader — the rule editor "Load" button fetches available actions and pages from the target device for both paging console action types.
- Use Cases web page —
docs/use-cases.htmlpublished to GitHub Pages at https://mo3he.github.io/Event-Engine-ACAP/use-cases.html with downloadable templates, how-it-works flows, and setup notes for all 42 templates. - 21 new use-case templates covering all previously-uncovered engine features: counter-driven escalation (7.1a/7.1b), compound AND trigger with trigger_window (7.2), day_night condition (7.3), on_failure chain with FTP fallback (7.4), cron + vapix_event_state watchdog (7.5), paging scheduled announcement (7.6), VMS event bridge via fire_vapix_event (7.7), condition_logic OR audit logger (7.8), http_check network-gated alert (7.9), raw snapshot_upload (7.10), paging_console_button state management (7.11a/7.11b), AND_ACTIVE dual-zone breach with mqtt on_failure (7.12), and direct-sensor and webhook display variants (4.3/4.4).
- 15 new in-app quick-start templates (28 → 42 total): HTTP Webhook trigger, Rule Fired trigger, trigger_logic AND, trigger_logic AND_ACTIVE, day_night condition, counter condition, http_check condition, condition_logic OR, snapshot_upload, http_request on_failure, max_executions per day, recording while_active, set_rule_enabled, increment_counter, privacy_mask.
Fixed
{{camera.model}}→{{camera.name}}—camera.modelwas never a valid template variable; 7 in-app quick-start templates and the README incorrectly used it, silently producing empty strings. All occurrences corrected.- AOA trigger_data fields — the AOA quick-start template used
{{trigger.scenario_id}}and{{trigger.reason}}, neither of which exist in trigger_data for AOA scenario events. Fixed to use{{trigger.active}}. - MQTT
topic_filtertemplate expansion — trigger config fields are stored verbatim and never template-expanded; the Arm/Disarm templates usedcameras/{{camera.serial}}/armas a topic filter, which subscribed to the literal 28-character string and never matched any broker message. Changed tocameras/+/arm(MQTT wildcard). - Template field bugs — 5 existing use-case templates had wrong field names in scheduler config:
"daily_time"instead of"time"for daily_time schedules (1.3, 2.2a, 2.2b) andschedule_type: "sunset"/"sunrise"instead ofschedule_type: "astronomical"withevent: "sunset"/"sunrise"(2.1a, 2.1b). These silently prevented the schedules from firing.
Changed
- README updated: Paging Console actions documented in the Actions table and remote device support table;
{{camera.model}}corrected to{{camera.name}}in the Dynamic Variables table; Use Cases link updated to the new GitHub Pages page.
Notes
- Existing rules, settings, and API behaviour are unchanged.
- The Paging Console Button action requires Axis C6110 firmware with the
/config/rest/paging-console-button-layout/v1/REST API. Verify the page UUID and action UUIDs from the C6110 web interface before deploying. - Remote Paging Console actions use digest authentication. Ensure device credentials are configured in the action block.