Plugin for Honeywell/Ademco VistaICM network module

This is a legacy forum which is locked for new topics. New topics should be started in one of the other forums under Extending Indigo
Forum rules
This is a legacy forum which is locked for new topics. New topics should be started in one of the other forums under Extending Indigo
alistair
Posts: 109
Joined: Fri Jul 14, 2006 11:25 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by alistair »

Yep - chime enabled etc shows up in the "Panel" device's status. Motion detectors, doors etc show up when you create a "Zone" for them (the plugin will need to know the zone number)

-Alistair
bbruck
Posts: 354
Joined: Sun Oct 05, 2008 11:41 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by bbruck »

So to go ahead and push the limits - can one push this information into a variable so we can diplay it on a control page?
Indigo user since 2008
30 Insteon, 20 Hue, 8 Ecobee, 3 TpLink, 0 Z-Wave devices
hamw
Posts: 1342
Joined: Mon Mar 31, 2008 7:45 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by hamw »

Alistair, could you post some images of your control pages for how you are implementing the additional info in your system? What variables you have found useful to monitor? Looks great so far!
gtreece
Posts: 171
Joined: Mon Sep 26, 2011 6:01 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by gtreece »

I had to modify the code slightly, to account for a different format string my ad2usb was sending back. I think it's related to the firmware loaded on your ad2usb. Once I did that, I started getting appropriate interaction. I haven't done a lot with it yet, but have tested several things:

Control page: I created a simple control page with a button to arm stay and a button to disarm. It also shows the current display text, as well as the value of the current arm state.

Sensor faults: I created a trigger based on one of my Ademco motion sensors. When it faults, it turns on nearby lights, sets a variable value, and announces motion through Airfoil.

I can envision a control page that shows fault status of zones, and/or allows bypassing zones. I can imagine augmenting the 'motion intelligence' of my house, based on having 3 Ademco motion sensors that could now be tied to controlling lights, music, etc., based on motion in the house. Places where I would want motion detection, that already had an alarm system motion sensor, may not need a duplicate Insteon motion sensor.

I have only noticed one error so far, in terms of communication failures. A motion sensor that faulted, but the 'clear' condition was not picked up by the plugin.

My ad2usb is returning RF signals from all my wireless devices (as well as from a neighbor's system). The plugin is not programmed to capture those yet. They are separate messages that indicate the condition of the individual sensors. Not sure yet if capturing those individual sensor comms would be more valuable than parsing out sensor info from the main command string.

Overall, I've very happy to have the alarm system connected to Indigo. Like the plugin so far!
bbruck
Posts: 354
Joined: Sun Oct 05, 2008 11:41 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by bbruck »

Can you say more about how you had to modify the code? I'm totally eager to get mine working!
Indigo user since 2008
30 Insteon, 20 Hue, 8 Ecobee, 3 TpLink, 0 Z-Wave devices
gtreece
Posts: 171
Joined: Mon Sep 26, 2011 6:01 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by gtreece »

Minor changes. I posted comments to the author on his blog, so I'm sure he'll take a look at them when he gets time.

in VistaICM.py:

Account for the longer command string (94 instead of 87):

Code: Select all

# Is this a newline character? (end of data?)
if len(data) == 1:
     if ord(data) == 13:
		#self.plugin.debugLog(u"Read %s from port!" % (commandString))
		if len(commandString) == 94:
			processCommand = True
I put the command string I was receiving above the author's, to show the difference, then adjusted the flag blocks positions to match:

Code: Select all

# Split the data out into its component parts
# e.g. [100000010000--------],008,[f70000071008001c08020000000000],"****DISARMED****  Ready to Arm  "
# e.g. [100000010001--------],08,[f70600071008005c08020000],"****DISARMED****  Ready to Arm  "
					
flagsBlock = commandString[1:21]
zoneNumber = commandString[24:26]
panelMessage = commandString[61:93]
Note that in the zoneNumber block, I used 24:26 rather than 23:26, as the rest of the plugin is coded to use 2 digit zone numbers, not 3 digit.
alistair
Posts: 109
Joined: Fri Jul 14, 2006 11:25 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by alistair »

gtreece - thanks for the update! I'll get the code in the plugin updated. Do you use github? If so, I can just add you as a developer on the plugin....

I'm doing exactly what you describe in my place. I have ~40 zones on my panel, mostly motion and door zones. I created a simple "Occupancy Manager" plugin which allows me to set timeouts for given zones, and trigger the timer. Each zone (e.g. "Kitchen", "Back Yard") is "reset" by motion or a door opening.

Lights trigger when the zone goes active (and it's night time) and shut down when the timer expires (i.e. no zone activity for a duration). The net/net is that I can walk around my house with lighting scenes coming on and off driven by indigo.

I use another plugin I'm working on to interface with AVEA RFID readers, and Kwikset/Baldwin ZWave locks (ZWave is via Mi Casa Verda's vera and my plugin) to arm/disarm the alarm, and allow various friends/cleaners etc access to the house.

Indigo's new plugin API is awesome! :)

-Alistair
bbruck
Posts: 354
Joined: Sun Oct 05, 2008 11:41 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by bbruck »

I'll just wait for you to update the code, Alistair.

Your other plugin seems to be exactly what I'm hoping for some day - control pages that show occupancy, and a lot more logic to control house actions based on Ademco notifications.
Indigo user since 2008
30 Insteon, 20 Hue, 8 Ecobee, 3 TpLink, 0 Z-Wave devices
gtreece
Posts: 171
Joined: Mon Sep 26, 2011 6:01 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by gtreece »

alistair, no I'm not on github, but could sign up. While I used to earn a living writing code, that was 20 years ago or so. I'm a bit rusty. Coding time now is limited, and confined mostly to php and applescript. I miss my coding days. Just don't seem to have much time these days. I'm happy to provide whatever assistance I can on the plugin though.

I am excited to learn the plugin architecture of Indigo, which means I'll need to get up to speed on python. I'm very interested in integrating door locks into Indigo, so I'm quite curious about your vera/rfid/zwave plugins.
bbruck
Posts: 354
Joined: Sun Oct 05, 2008 11:41 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by bbruck »

Alistair,

Don't wanna jog your elbow, but am anxiously awaiting your code update so I can use this plugin w/ my Vista system. Any notion when you may have some free time to finish it up?
Indigo user since 2008
30 Insteon, 20 Hue, 8 Ecobee, 3 TpLink, 0 Z-Wave devices
bbruck
Posts: 354
Joined: Sun Oct 05, 2008 11:41 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by bbruck »

I suspect Alistair may be too busy to finish this up. Seems like we're 95% of the way there - is there anyone else who might be able to help get my Ademco working with Alistair's code?
Indigo user since 2008
30 Insteon, 20 Hue, 8 Ecobee, 3 TpLink, 0 Z-Wave devices
User avatar
berkinet
Posts: 3441
Joined: Tue Nov 18, 2008 2:08 pm
Location: Berkeley, CA, USA & Mougins, France

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by berkinet »

bbruck wrote:I...- is there anyone else who might be able to help get my Ademco working with Alistair's code?
No promises, but I now have a bare-bones script that reads ad2usb messages over a network connection. I should be able to get this to update Zone devices soon.

However, turning this into a two-way communications tool for panel management may take some time. Once I have this working two-way over the network, I can see if I can re-integrate Alistair's work to add in USB support.

stay tuned...
User avatar
berkinet
Posts: 3441
Joined: Tue Nov 18, 2008 2:08 pm
Location: Berkeley, CA, USA & Mougins, France

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by berkinet »

I have made progress, I now have the plugin reading panel state messages and should soon be able to set the Zone devices to reflect their current status.

However, there is one significant caveat to the work I am doing. This plugin will require Virtual Relay support. I have elected to only use the long form messages for the panel state. For zone states I am using the REF, EXP and RFX messages. There is a significant advantage to this approach. We get positive notice when a zone fault clears as opposed to having to determine that a zone fault has cleared based on the time since we last saw a fault message from the zone. I should also be able to gather information about the code that was used to arm/disarm the alarm.

I hope to have a beta with read-only capabilities (I.e. no keypad support) by the weekend or early next week. THis first beta will only support network access.

For more information on configuring the ad2usb and the panel to use Relay messages, see this post on the Nutech forums.

EDIT: I should also note that to create the Indigo devices representing your zones you will need to know the following information:
  • Main board zones: The virtual relay board and device numbers (from the ad2usb)
  • Expansion zones: The board number and the device number (from the panel)
  • Wireless devices: The wireless tag number and the loop number (from the wireless device)
I also forgot to note that there is one very nice side effect to using the RFX (wireless) messages. It will be possible to use wireless transmitters that are NOT enrolled in your panel as Indigo inputs.
User avatar
berkinet
Posts: 3441
Joined: Tue Nov 18, 2008 2:08 pm
Location: Berkeley, CA, USA & Mougins, France

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by berkinet »

I have been thinking more about USB support in the plugin. There are presently several options for using Ehernet/IP to connect to a USB ad2usb.
  • Connect the ad2usb to a USB to Ethernet adapter - these are commercially available at prices < $100.
  • Connect the ad2usb to a computer running ser2sock (from NuTech) or other similar software. This could run on same Mac as Indigo, or on a remote system (Mac. Linux, FreeBSD, or Windows).
  • Use the Mono GUI. This software connects to the ad2usb using USB and can then, optionally, provide an IP interface for additional services to share the ad2usb.
  • Use a small board system, like the Phidgets SBC, or re-flash a Linksys router and then run ser2sock on that platform. There are a few threads on this topic on the NuTech forums.
  • I am fairly sure that there will be a new ad2usb that will have on-board Ethernet support - though the timing of the availability of this is unclear - for sure it's not imminent.
I seems to me that there is enough flexability here to make plugin support for USB unnecessary - and I'd rather spend the time working on features like detecting the code that was used to arm/disarm the panel.

If you are interested in this plugin and have thoughts on USB support, this would be a good time to voice your opinion.
bbruck
Posts: 354
Joined: Sun Oct 05, 2008 11:41 pm

Re: Plugin for Honeywell/Ademco VistaICM network module

Post by bbruck »

My ad2usb is connected via USB to my iMac, so I'm not sure what the USB to Ethernet adapter refers to.

Honestly I don't remember if I had to install ser2sock at all - just don't recall.

I have Mono GUI installed and like it, but cannot have it running when I do the Indigo integration

I guess my feedback would be that the design goal for this (any many other) plug-ins should be to minimize the requirement for understanding the technology at a deep level in order to get the plug-in to work. The plug in for weathersnoop is like that. Once I plugged my weather station into a USB port and started WeatherSnoop, it worked w/o my needing to delve into the mysteries of serial ports or sockets or anything else; and then with the Indigo plugin, it connected right into Indigo. So by extension, anything that minimizes the requirement to do more than plug in devices and potentially load other software using common Mac "drag this to the application folder" would be great!!!

Hope that helps, and thanks for working on this!
Indigo user since 2008
30 Insteon, 20 Hue, 8 Ecobee, 3 TpLink, 0 Z-Wave devices
Locked

Return to “Extending Indigo with Plugins and Python”