Jump to content


File Information

  • Submitted: Jan 15 2009 02:26 PM
  • Last Updated: Jan 15 2009 02:48 PM
  • File Size: 4.65K
  • Views: 3704
  • Downloads: 77
  • Author: 123
  • Contact: PM

Previous Versions

  • 15 Jan 2009 Download Module: Enhanced SecuritySystem ControlPanel
  • 15 Jan 2009 Download Module: Enhanced SecuritySystem ControlPanel

Download Module: Enhanced SecuritySystem ControlPanel

- - - - -

The attached file contains an enhanced version of the SecuritySystem ControlPanel. It displays the following additional information:
  • A list of all Triggered Zones (a.k.a Violated Zones).
  • Two of the SecuritySystem object's properties: "LastTriggeredZone" and "StatusLastFunction".
Because this is a generic keypad, it should work with any alarm panel supported by Premise (Ademco, CADDX, HAI, ELK).

  • Perform a complete backup.
    In Builder's main menu, select File > Backup to client.
  • Export the Plugins module.
    In Builder's Shortcut bar, click Modules. In the Explorer window, right-click Modules > Plugins and select Export).
  • Unzip the attached archive file.
    It contains two date-stamped files: SecurityEx and SecurityEx_Plugins.
  • Import the SecurityEx module first.
    In Builder's main menu, select File > Import and choose SecurityEx.xdo.
  • Import the SecurityEx_Plugins module.
    In Builder's main menu, select File > Import and choose SecurityEx_Plugins.xdo.
Importing the SecurityEx_Plugins module will modify existing Plugins. There's no way to uninstall it; you have to overwrite it with the original Plugins module. To restore the original SecuritySystem ControlPanel, you can either:
Delete the Plugins module and re-import it from the copy you made in step 2.
Restore from the backup you made in step 1.

All SecurityZone objects must be children of a SecuritySystem object.  Let me repeat that: make sure all of the SecurityZones are child objects of SecuritySystem.  The  enhanced ControlPanel won't display triggered zones if you have SecurityZone objects peppered throughout all Rooms.

In addition to what the SecuritySystem ControlPanel normally does (arm/disarm/panic) it now displays all triggered zones, the last triggered zone (LastTriggeredZone), and the status of the last function (StatusLastFunction).  

All of the code is commented and visible in SecurityEx so you can alter it to suit your needs. The enhanced SecuritySystem ControlPanel looks fine in most Themes but you may want to tweak it to work best with your preferred Theme.  Under Modules > Plugins > Selectors > Security > SecuritySystem > SecuritySystemControlPanel, you'll find several "CompositeControlPanels" called "State", "Zones", "Keypad" and "Functions". Each one has a CSS section that lets you control its font, color, position, etc.

How it's Built
DISCLAIMER: I don't completely understand the architecture and operation of Premise's AutomationBrowser.  It is undocumented and the Q&A found in the old support forum only hints at how it works and what you can do with it. Most of what I've learned is by trial and error.

The SecuritySystem ControlPanel's appearance is governed by:
  • Modules > Plugins > ControlsLibrary > SecuritySystemControls
    The objects found here define UI "widgets" and their associated images, trigger scripts, and subscribed properties (i.e. The widget can "subscribe" to a Light's Powerstate property. Whenever PowerState changes, the UI widget will automatically refresh the value in the web-browser).
  • Modules > Plugins > Selectors > Security > SecuritySystem > SecuritySystemControlPanel
    The objects found here govern a UI widget's position, size, and general appearance (i.e. using CSS).
In the ControlPanel's Selectors, I changed the position of the Keypad, Function Keys, and State Panel. In the ControlPanel's ControlsLibrary, I added three new "CompositeControls" called "ZonesPanel", "LastZoneStatusPanel", and "LastFunctionStatusPanel". Each one of these CompositeControls contains "BoundPropertyControls" that define what property to display in the browser (i.e. what property to subscribe to).

Whereas LastTriggeredZone and StatusLastFunction are existing properties of the SecuritySystem object, there is no property that lists all of the triggered zones. I added a new (hidden) property called "TriggeredZones" by extending the SecuritySystem class (that's what SecurityEx does). I also added a method to the SecurityZone class that causes "TriggeredZones" to be refreshed whenever a zone is triggered.

  • 172 Total Files
  • 8 Total Categories
  • 28 Total Authors
  • 33649 Total Downloads
  • SysEventBroker_with_AV Latest File
  • chucklyons Latest Submitter

1 user(s) are online (in the past 15 minutes)

0 members, 1 guests, 0 anonymous users