Q-SYS Event Scheduler
A device-agnostic, hour-by-hour event scheduler that staff edit on a touch panel. At each event's time the plugin drives that event's target — a named output bus wired to your existing device drivers. It's "smart-timer with schedules": point it at TVs, audio, lighting, paging, room combine — anything. The flagship example is a sports bar changing many DirecTV boxes to specific channels on a daily game schedule.
Screenshots
Schedule
Overview
Each **target** is simply a named **output bus**: every fire writes the value as a string (`ValueOut`), as a number when numeric (`NumOut`), and pulses a trigger (`TriggerOut`). You wire whichever pin the device needs. Events carry only a time, target, and value.
The flagship example is a sports bar changing many DirecTV boxes to specific channels on a per-shift game schedule — wire `ValueOut[t]` → each DirecTV instance's `TuneChannel`.
Features
A device-agnostic, hour-by-hour event scheduler that staff edit on a touch panel. At each event's time the plugin drives that event's target — a named output bus wired to your existing device drivers. It's "smart-timer with schedules": point it at video displays, audio, lighting, paging, room combine — anything. It scales to many events at many times across many targets per day.
Scheduling
- HH:MM granularity — schedule to any minute, not just on the hour
- Hour + Minute dropdowns — pick the time from two dropdowns (00–23 / 00–59); no typed colon
- 1–100 events — set the schedule size at design time
- Time-sorted, paginated view — 2–24 events per page with NavigateUp/Down and a page counter
- Edge-triggered firing — an event fires once, exactly as the clock ticks into its minute. A time already in the past never back-fires, and it can't double-fire while its minute is current
- Automatic daily recurrence — events simply fire again the next day at their time; no reset, midnight rollover, or fire window to configure
- Color-coded Status — a plain-language Status column shows each row as
off,in 2h 05m(countdown to the next occurrence), oron 0:12(Duration hold remaining) - No back-fire on restart — a mid-day reboot never re-sends events whose time already passed
- Apply State on Boot — optional property that sets every target to its most recent already-past event at startup (catch-up to "now" after a reboot)
Device-Agnostic Targets
- A target is just a named output bus — no device dropdown, no vendor lock-in. Every fire writes the value three ways and the integrator wires whichever pin the device needs:
ValueOut(text) — e.g. a channel/source string (206,212-1) → a device's channel/source inputNumOut(numeric, set when the value is a number) — e.g. an audio gain or a preset/scene indexTriggerOut(pulse) — e.g. a scene/snapshot recall, mute, or room-combine triggerStateOut(boolean) — held true/false for boolean values (on/off,true/false,1/0); wire into any logic input
- Trigger always pulses — same-value re-fires still reach the device
- Scheduled on/off or timed momentary — drive
StateOutsustained (on…off), or give an event a Duration (sec) soStateOutholds true for N seconds then drops. The value latches (it's not re-sent), so e.g. a TV's channel is left as-is. Duration works for any value, not just on/off - Example wirings — video display channel/source, switcher/AVR source select, lighting/scene preset, paging, mute, power/gate logic — all the same primitive
Editing & Presets
- Touch-panel editing — staff edit each row's time (Hour + Minute dropdowns), target, value, label, and on/off directly in the UI
- Read-only output monitor — the Targets tab shows each bus's Last Sent value (read-only), so operators can't accidentally type a value onto an output
- Named schedule presets — Save the working schedule into a slot; Load to replace it
- Persistent — schedule and presets are stored in the design and survive restarts
Live Feedback
- Next-event summary and active-event count outputs;
CurrentClocktime pin - Color-coded Status per row, plus a per-event
EventFiredLED pin that mirrors whether the output is currently active - Clear trial-expired state — every row reads
expiredand a banner warns events won't fire, so a lapsed trial is never mistaken for a scheduling bug
Diagnostics
- Debug Mode — verbose console logging
- Bench-test pins —
SimulatedTime(override the clock withHH:MM) andForceFireNow(fire every enabled event now) are available as component pins for integrators testing without waiting on the wall clock
Licensing & Deployment
- 30-minute trial — full functionality for evaluation
- Online activation — license key activation via vault.achkayem-solutions.com
- Unlimited or per-core licensing — offline-verified
- Persistent activation — license survives design restarts
- Q-SYS firmware 9.0.0+ required
Version history
Initial Release
