DscServer (Java)

Pre-reqs - Java 1.7 or later installed on your system. See http://www.java.com.

Note that the java DscServer is free for non-commercial internal use. For remote access and automation support you purchase the DscServer app from Google Play and use the included DscKeypad app as the management client for this server.

Android app on Google Play

Run with

"java -jar DscServer.jar"

Where "java" is the path to java.exe.

For headless operation (after you've setup the server) use:

"java -cp DscServer.jar mpp.dsc.server.Server"

Configuration I hope is self-explanatory.

You need a UI to do the initial configuration and to accept or remove DscRemote clients, on smaller linux systems this might work: http://lxde.org/.

On a RaspberryPi (thanks Alex!):

  1. login as pi
  2. install java with sudo apt-get update && sudo \ apt-get install oracle-java7-jdk
  3. copy the jar file to the pi
  4. start LXDE with startx and run the java app in a terminal window with your normal command
  5. configure dscserver (see below)
  6. don't run it normally in the X - the logging window cripples the pi performance
  7. exit dscserver
  8. edit rc.local with the sudo -u pi "command" where command is something like "java -jar DscServer.jar"


  1. Connected - shows the clients that are currently connected to the DscServer
  2. Secure - shows the clients that are registered for secure (encrypted) access. Right click to remove a client.
  3. Log - a log of communication between the DscServer and the envisalink card.
  4. Emails, actions - the events that have been enabled (using the DscKeypad remote function).


  • Address - your envisalink card IP (should be static)
  • Password - your envisalink user password (default is "user"). Note that if the DscServer is running in a separate subnet you MUST change the default password on the envisalink card.
  • Secure
    • The encrypted port that you forward through your firewall to the DscServer. DscKeypads configured for secure connection to the DscServer will use this port.
    • un-check "Registration" to prevent any new secure client registration attempts (this locks down access to your DscServer)
    • checked "Only" to prevent unsecured clients from connected

If you lose your phone, remove it from the secured client list and use "Only" to prevent it from being used when it connects to your wifi.


  • Zones - comma separate zone names, * to skip. E.g. ",*,," would be three zones using default names "Zone 1", "Zone 3", "Zone 4", skipping Zone 2.
  • Partitions - comma separates supported partition names. Blank means one partition, named "Partition 1"
  • Motions - zone numbers added to this list are filtered from the Dsc log for readability. Typically you add your motion zones to this list.
  • Emails - enables emails on the events you have configured to be sent. An email is sent to the administrator(s) whenever a selected event occurs on the DscServer. The email contains the event and the current DSC system status.
  • Actions - enables the actions that you have configured. You can configure custom actions and specific emails.


  • Trace - writes detailed application log information to the console.
  • About - current version and link to the developer site

Configure Emails and Actions using the DscKeypad using the menu item "Manage Java Server". Use the menu item "SendToServer" to configure the remote java DscServer. You must be connected to the DscServer and the DscServer must be connected to the envisalink card for this action to succeed.

Supported Events:

Events can be used to trigger actions

  • NullEvent - never triggered, can be used for testing
  • AllDscEvent - every event from the envisalink. Use with caution, it generates a lot of emails!
  • AllEvents - like DscEvent but includes the other messages
  • General DSC events can be used to trigger an action or email.
  • ZoneOpen[...] - triggered when a zone in the provided list is opened
  • ZoneRestored[...] - triggered when a zone in the provided list is restored
  • Connected - triggered when the DscServer successfully connects to the envisalink
  • Disconnected - triggered when the envisalink disconnects from the DscServer
  • Midnight - triggered every day at midnight. If it doesn't occur you know your DscServer is unable to connect to the internet.

Supported Actions

  • DscEvent eMail to defined administrators
  • general eMail to other recipients
  • GET/PUT/POST to URL (e.g. to trigger a camera recorder, etc)
    • use "&zone;" and "&partition;" substitutions to customize the URL and body if needed
  • send UDP - sends a UDP message containing the event, e.g. to a syslog server
  • send DSC command - send a command to the DscServer

Connect your internal (unencrypted) clients (like the DscKeypad or automation servers) to port 4025. DO NOT expose this port outside of your firewall. On port 4025 the DscServer will appear as an enhanced, higher performing Envisalink card.

To setup the client on android:

Open the DscKeypad app (note, use the DscKeypad that comes with the DscServer, not the free standalone version) and under menu>Envisalink (the settings icon in the menu, long press on it to see the name) change the DscServer Address to point the the phone/tablet used in step 3 (you can find the tablet’s IP address in its wireless settings). Use the same username and password as for the envisalink card. The Secured DscServer should be UNCHECKED. Touch "back", and the DscKeypad should now connect to the DscServer as if it were an envisalink card.

Note that this connection is to the UNSECURED port of the DscServer - only use this port inside your firewall/network. See the FAQ below for connecting securely using encryption.

NOTE: as with the Envisalink card itself, DO NOT expose the unsecured port outside of your firewall. Use the other ports only behind a firewall with a wired LAN or an encrypted WIFI network.


  • 5.0.19 - match for android version
    • added user code mapping (see "system")
  • 4.2.4 - match for latest android version
    • added some runtime log messages
  • 4.1.2 - match for latest android version
  • 4.0.9 - fix memory leak in log viewer
  • 4.0.8 - match for android updates
  • 3.6.0 - match for android version
  • 3.5.1 - match for android version
    • log fetch command change
  • 3.0.1 - handle bus overrun with command retry
  • 3.0.0 - various fixes and features, see Android version

Feedback or questions: eMail Mike