Skip to content

DjGreenKrk/Q-sys_LightMagic_plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

SigmaNet Light Magic Controller for Q-SYS

A Q-SYS control plugin for SigmaNet Light Magic controllers using the LM3A protocol over HTTP.

The plugin is designed as an integration driver. It exposes ready-to-use, bidirectional controls that can be dragged directly from the component panel into a Q-SYS UCI without additional scripts, NOT gates, or separate feedback controls.

Important

This project is currently in beta. The plugin compiles and its protocol, parser, toggle, and dynamic-layout logic are covered by offline tests. Communication behavior must still be validated against the physical Light Magic controller used in the target installation.

Features

  • LM3A program, OFF, intensity, speed, and status commands
  • HTTP communication through the Q-SYS HttpClient API
  • Configurable IP address, port, enabled zones, and program-button count
  • Periodic status polling with user-command priority
  • One bidirectional Toggle per program for both command and feedback
  • Mutually exclusive program selection within each zone
  • Immediate local UI response followed by authoritative polling feedback
  • Debounced and coalesced intensity and speed updates
  • Online, data-valid, queue, response, and error diagnostics
  • Dynamic component pages for only the configured zones

Download

The compiled plugin is available at:

LightMagic-QSYS-Plugin.qplug

Installation

  1. Download LightMagic-QSYS-Plugin.qplug.
  2. Add it to the Q-SYS Designer custom plugin location used by your installation.
  3. Restart or refresh Q-SYS Designer.
  4. Find the component under SigmaNet as Light Magic Controller.
  5. Add a new instance to the schematic and confirm the displayed version.

Keep a copy of the previously deployed plugin and Q-SYS design before upgrading an existing installation.

Quick configuration

Set these component properties first:

Property Default Description
IP Address 10.0.0.208 Light Magic controller address
Port 80 HTTP port
Protocol Prefix LM3A Protocol command prefix
Enabled Zones 00 Comma- or space-separated zones, for example 00,08,16
Program Buttons Per Zone 8 Program Toggles generated for each enabled zone
Polling Enabled true Enables periodic status synchronization
Polling Interval 1.0 s Target duration of one polling cycle
Debug Mode None Selective TX, RX, queue, or polling logging

Zone 00 represents CUE/all zones. It is shown on the CUE component page. Other enabled zones receive pages such as Zone 08 and Zone 16.

Q-SYS UCI workflow

For each enabled zone, the component panel provides:

  • OFF
  • Program 001, Program 002, and subsequent program Toggles
  • Intensity
  • Speed
  • read-only active-program, program-count, and data-valid feedback

Open the required CUE or Zone XX page and drag a Toggle or fader directly into the UCI. The UCI control remains a proxy of the same plugin control, so a single object carries both command and real feedback. Its UCI Caption can be changed without changing the technical control name.

Example for Zone16Program001:

OFF -> ON:  LM3A16P00100
ON  -> OFF: LM3A16P00000

Selecting Program 002 turns Program 001 off locally without sending an intermediate P00000. A later status response such as F;2;100;0;7 is authoritative and sets Program 002 ON, all other program Toggles OFF, Intensity to 100, Speed to 0, and Program Count to 7.

If polling reports program 0, all program Toggles for that zone are OFF. Programmatic feedback updates are event-suppressed and never generate HTTP commands.

Runtime behavior

  • Only one HTTP request is active at a time.
  • User commands have priority over routine polling.
  • Poll requests are deduplicated.
  • Pending intensity and speed changes for the same zone are coalesced.
  • Successful write commands schedule a status-verification poll.
  • Online requires a recent valid LM3A response, not merely HTTP connectivity.
  • A bare G is accepted as command success.
  • A bare F is treated as an error.
  • F;program;intensity;speed;count is parsed as zone status.

Development

Plugin sources are in LightMagic-QSYS-Plugin.

Run the offline tests from the repository root:

& .\LightMagic-QSYS-Plugin\tests\protocol_tests.ps1
& .\LightMagic-QSYS-Plugin\tests\toggle_logic_tests.ps1
& .\LightMagic-QSYS-Plugin\tests\layout_tests.ps1

Build the plugin:

Push-Location .\LightMagic-QSYS-Plugin
& .\plugincompile\PLUGCC.exe LightMagic-QSYS-Plugin .\plugin.lua
Pop-Location

The compiler writes LightMagic-QSYS-Plugin.qplug inside the plugin source directory.

Project status and compatibility

The implementation is based on the available Light Magic v4 protocol documentation and is structured to accommodate later protocol findings. A Light Magic v5 installation should be tested carefully before production use.

This is an independent integration project authored by GreenCrew Julian Szymanski. It is not an official SigmaNet or QSC product.

License

See LICENSE.txt.

About

Q-SYS control plugin for SigmaNet Light Magic controllers using the LM3A protocol.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors