UniversalDevicesInc-PG3 / udi-poly-ELK

MIT License
2 stars 1 forks source link

Polyglot V3 ELK Node server

Important Notices

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

New documentation

There is a new documentation page I am working on and will transition all the information contained here eventually

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!

Help

If you have any issues are questions you can ask on PG3 ELK SubForum or report an issue at PG3 ELK Github issues.

Moving from PG2

There are a few ways to move

Backup and Restore

The best way to move from PG2 to PG3 is to backup on PG2 and restore on PG3, but the only option is to do all your node servers at once. I don't have much information on this method, if you have questions please ask on the PG3 forum.

Delete and add

If you can't or don't want backup/restore then you can delete the NS on PG2 and install on the same slot on PG2. All node addresses will stay the same so all your programs should work after doing an update and save on each one, or rebooting the ISY, especially any using the Controller node since it's ST value has changed. Just remember to capture the config information before deleting.

Add then delete

Another option is to install in a new slot then go edit all your programs and scenes that reference the nodes and switch to the new slots.

Installation

Install from the Polyglot store.

Configuration

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

After setting configuration then restart the node server 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.

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 Node server 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 node server to have them reflected on the ISY. Also, close and re-open the Admin console if it was open while the node server was restarting.

Nodes

ELK Controller

This has the following status:

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:

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.

Commands:

Keypad Control events

The Key status is not very useful, you should use the Control events for key presses instead as shown in this example progrea.

ELK Key Test - [ID 001C][Parent 0001]

If
        'ELK / Home / Master Bedroom' is switched F4

Then
        Set 'Notification Controller / UD Mobile' Send Message To JimsPhone Content 8 Notification ID (ID=8)

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:

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.

Thermostat Node

There will be a Thermostat node created under the ELK Controller node for each named thermostat in the ELK.

Light Node

The Lights configured on the ELK do not create Light nodes on the ISY. In versions prior to 3.6.0 it did, but not anymore. The ISY Light nodes should be deleted, but if they are not then find them in the node server Nodes page and click the delete box to the right of the node.

You can have the Elk Control existing ISY lights and the ISY Light status reflected back to he Elk. The Configuration Doc which is also on the configuration page of the node server provides more information. The configuration page also has a table shpwing the status of the Elk to ISY light matches.

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:

The output node can be put in a scene as a controller and when the ELK turns it on or off it can control the scene.

Counter Node

There will be a Counter node created under the Controller for each Counter that is not using the default name. So if you named the counter in the ELK it will show up.

The counter value can be set directly, incremented or decremented. Currently it is not possible to set the value to zero.

Task Node

There will be a Task node created under the Controller for each Task that is not using the default name. So if you named the task in the ELK it will show up.

The Task has a Status which is currently meaningless, but someday will show the date/time of last execution when ISY supports it.

The only command for a task is Activate

Using the Node server

Following are examples have usages for this node server.

Notifications

To include any information about a Zone in a notification you can use any if these drivers:

Area: ${sys.node.n004_area_1.name}
 Alarm Status:        ${sys.node.n004_area_1.ST}
 Armed Status:        ${sys.node.n004_area_1.GV0}
 Arm Up State:        ${sys.node.n004_area_1.GV1}
 Last Violated Zone:  ${sys.node.n004_area_1.GV8}
 Last Triggered Zone: ${sys.node.n004_area_1.GV9}
 Chime Mode:          ${sys.node.n004_area_1.GV2}
 Zones Violated:      ${sys.node.n004_area_1.GV3}
 Zones Bypassed:      ${sys.node.n004_area_1.GV4}
 Last user:           ${sys.node.n004_area_1.GV6}
 Last Keypad:         ${sys.node.n004_area_1.GV7}

${sys.node.n004_zone_1.name} ${sys.node.n004_zone_1.status}
${sys.node.n004_zone_2.name} ${sys.node.n004_zone_2.status}
...

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 Node server 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/UniversalDevicesInc-PG3/udi-poly-ELK/issues

Release Notes