jimboca / udi-poly-elk

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Polyglot V2 ELK Nodeserver

Important Notices

I am not responsible for any issues related to this nodeserver including missing an alarm! However I have been using this in my production enviorment for many months and have had no issues.

Why use this when ISY has the ELK module?

The ELK Module will not be available on Polisy, the node server will be the supported method.

The node server also has advantages. It creates a node for Areas, Zones, ... So you can put those nodes in scenes, or use them in programs just like any other node.

This node server works great with the new UD Mobile app for Android and iOS!

Installation

Install from the Polyglot store.

Configuration

Open the Configuration Page for the Nodeserver in the Polyglot UI and view the Configuration Help available on that page.

After setting configuration then restart the nodeserver and all configured areas will be added. There is a Node for each Area, and the Zone's for that area are grouped under it. Sometimes the ISY fails to actually group some of the nodes, if you notices Zone's not grouped, then right click on it and select Group, which will fix them all.

Requirements

This uses https://github.com/gwww/elkm1 which currently only supports an M1EXP in local non secure mode.

IF running on Raspberry Pi, you must be on the latest version, Buster with Python 3.6 or above, preferably 3.7.

Using this Node Server

General notes

If the Elk objects have characters in the name which are not allowed in ISY Node Names, those charcters will be stripped.

If you change a Elk object name it will not be automatically reflected on the ISY (currently). You will have to delete the node in the Polyglot UI Node's page for the node server, then restart the node server.

If there is an alarm event, sending a "disarm" with the node server turns off the alarm, but does not reset it, just like when you do it at the Elk keypad. You will have to send another "disarm" to reset it. This is mentioned for users of UD Mobile who may want to disarm reset the sytem after an alarm.

Syncing profile changes

When the Nodeserver starts up and finishes the sync with the Elk Panel it will build a custom profile which currently contains a list of your user names. This allows showing the real user name instead of user number. If you change, add or remove user names you must restart the nodeserver to have them reflected on the ISY. Also, close and re-open the Admin console if it was open while the nodeserver was restarting.

Nodes

ELK Controller

This has the following status:

  • NodeServer Online
    • Nodeserver up and running
  • ELK M1EXP Connected
    • Nodeserver is connected to the ELK
  • Logger Level
    • Defines how much logging information is printed.

Area Node

By default only the area one, is added, change the areas configuraion if you have more than one. The areas are 1-8, and the node names will match the names defined on your ELK. They contain the following:

  • Alarm Status
    • If there is an Alarm
      • No Alarm Active
      • Entrance Delay is Active
      • Alarm Abort Delay Active
      • Fire Alarm
      • Medical Alarm
      • Police Alarm
      • Burglar Alarm
      • Aux 1 Alarm
      • Aux 2 Alarm
      • Aux 3 Alarm
      • Aux 4 Alarm
      • Carbon Monoxide Alarm
      • Emergency Alarm
      • Freeze Alarm
      • Gas Alarm
      • Heat Alarm
      • Water Alarm
      • Fire Supervisory
      • Verify Fire
  • Armed Status
    • The current Armed status, can be controlled by the ISY
      • Unknown
        • Only set to this on startup until the status is Known, not settable by user.
      • Disarmed
      • Armed Away
      • Armed Stay
      • Armed Stay Instant
      • Armed Night
      • Armed Night Instant
      • Armed Vacation
      • Armed Next Away Mode (Probably should show this in Set list?)
      • Armed Next Stay Mode (Probably should show this in Set list?)
      • Force Arm To Away Mode (Need to test what this does, bypass?)
      • Force Arm To Stay Mode (Need to test what this does, bypass?)
  • Arm Up State
    • The current Arm Up State
      • Unknown (Only on startup)
      • Not Ready To Arm
      • Ready To Arm
      • Ready To Force Arm
      • Armed With Exit Timer
      • Armed Fully
      • Force Armed
      • Armed With Bypass
  • Last User
    • The last user to access any keypad with a code. See "Syncing profile changes" section for more information.
  • Chime Mode
    • Unknown
    • Silent
    • Single Beep
    • Constantly Beeping
    • Single Beep while Constantly Beeping
    • Single Chime
    • Single Chime with Single Beep
    • Single Chime with Constantly Beeping
    • Single Chime with Single Beep and Constantly Beeping
  • Additional Trigger
    • The ELK only sends a triggered zone when a violated zone actually triggers an alarm. If this option is True, which is the default, the Nodeserver will also set Last Triggered Zone when an approriate zone is violated and the ELK is in an Alarm State.
      • If Enabled:
        • In Stay, Away, Night and Vacation Mode, set triggered for any Entry/Exit Delay Nodes when they are violated.
        • In Night mode, set triggered for Night Delay Nodes when they are triggered
  • Poll Voltages
    • Enabled to poll the voltages on the Area's Zones. The ELK doesn't push voltages changes, they must be polled. By default this is False. Enabling this creates more traffic so this is off by default. You can query individual zones to get updates in a program, or enable to have then updated with each short poll.
  • Zones Violated
    • The number of Zones currently in Logical Status of Violated, regardless of the Armed Status. This does not mean the zone caused an Alarm, it only means the zone logical status is Violated
  • Zones Bypassed
    • The number of Zones currently in Logical Status of bypassed
  • Last Violated Zone
    • This is the last zone whose status logical status was Violated, this doesn't mean it caused an Alarm, only means it went Violated
  • Last Triggered Zone
    • The zone has caused an alarm to be triggered. This comes directly from the ELK when the zone is not an entry/exit, or optionally the node server will trigger for other cases. See Additional Trigger above for more informaition.

Keypad Node

There is a Keypad node for each keypad found and they are by default grouped under the Area Node they are assigned to. Keypads contain the following.

  • Keypad Status
    • Currently always True, may be used in the future
  • Last User
    • The last user to enter access code at the keyboard, which is also propagated up the the Area Last User
  • Temperature
    • The temperature from the keypad, or -40F is keypad doesn't report temperature.

Zone Node

Currently every Zone in the Area will be added as a Node if the Zone Definition is greater than Zero. They are grouped under the Area node they are assigned to. Nodes contain the following:

  • Physical Status
    • UNKNOWN
    • Unconfigured
    • Open
    • EOL
    • SHORT
  • Logical Status
    • UNKNOWN
    • Normal
    • Trouble
    • Violated
      • Note: This does not meant the zone caused an Alarm, it only means the zone logical status is Violated regardless of the Armed Status.
    • Bypassed
  • Voltage
    • The current Zone Voltage. Note this is not updated on change, it must be Polled. By default this is polling is disabled, to enable set "Poll Voltages" on the Zone's Area. The values are only updated on Short Poll intervals, which can be set in the Node Server Configuration Page. It is also updated on a Zone query, so you can write ISY progrmas to force the query if you want faster updates, or just to update a single zone.
  • Triggered Alarm
    • The zone has caused an alarm to be triggered. This comes directly from the ELK and only turns on if the zone triggers and alarm immediatly, if the zone has entry delay it will not set triggered when zone is violated, or when entry delay times out causing an alarm.
      • True
      • False
  • Area
    • The Area number the Zone is part of.
  • Type
    • The Zone Type configured in the ELK, 37 different choices
  • Send On For / Send Off For
    • Allow configuring of when the On and/or Off control signals are sent for the Zone Physical Status changes. This allows you to put the Node in a Scene and by default an On is sent when the Zone changes to Open, and an Off is sent when Zone changes to. But this can be changed with these options:
      • Ignore
      • Open
      • EOL
      • Short
  • Use Off Node
    • Setting this to True will create the Zone Off Node for this Zone, see Zone Off Node below for more information.

Zone Off Node

By default only a Zone node is created. When you enable a Zone "Use Off Node" this will create another node for that Zone which is sent the "Off" commands. This allows you to have separate nodes for On and Off so they can be in different Scenes if desired. This is conveinent for turning on a scene when a door opens, but not turning it off when the door closes. You could also sent 'Send Off For' to None as well, if you never care about the off control message being sent.

Output Node

There will be an Ouput node created for each Output you have listed in the outputs range. The output is named based on the name in the Elk and has status (ST) showing On, Off, or Unknown. The Unknown value should only happen when the output is first added until the Elk is queried to get the status.

When an Ouput is turned On or Off, a Control is also sent so you can put the node in a scene, or use Control in a ISY program.

When turning on an ELK output you can specify the seconds as zero which will keep the output on, or set the On Time to the number of seconds to wait before turning off. You can set the 'Default' time which will be used every time you turn it on, or you can Turn on With Time for a one time execution.

It has these options/commands:

  • Default On Seconds
    • The default time the output stays on when turned on, zero means latching so it stays on until turned off
  • Turn On for ... Seconds
    • This is one command to turn on for the specified seconds, or zero for latching

Using the Nodeserver

Following are examples have usages for this nodeserver.

Triggered Zone

The new Area Last Triggered Zone makes it easy to send a notification for Zone which started an alarm. I use the Notificaiton Nodeserver so the program looks like this:

ELK Alarm Zone - [ID 0025][Parent 0001]

If
        'ELK / Home' Last Triggered Zone is not Unknown

Then
        Resource 'ELK Alarm Zone'

Else
   - No Actions - (To add one, press 'Action')

The notification resource is also very simple as shown in the Network Resource. Network Resource

This can be adapated to your prefered notification method.

TODO and issues

https://github.com/jimboca/udi-poly-elk/issues

Support

Please post any questions or issues to the sub-forum https://forum.universal-devices.com/forum/176-elk-node-server/ unless you know it's really a bug or enhancement then you can add it to https://github.com/jimboca/udi-poly-elk/issues

Version History

About

License:MIT License


Languages

Language:Python 99.9%Language:Shell 0.1%