UI7 and GE Caddx Plugin

Let’s stick to the topic that you already created rather than duplicating everyone’s effort.

Perhaps MCV fixed something in one of the many UI7 updates as I have not had a serial disconnect in quite some time. I did however run into a snag on adding some additional motion sensors. I added a remote box with a NX216 expander and used that to connect some new PIR sensors (5) throughout the house, 2 of which are outside (garage and front porch). Adding the zones was a breeze once I had them setup on Caddx. The problem I face now is that I set these zones to auto bypass, as I don’t want them triggering the alarm. I mistakenly thought this would auto bypass the zone, however it just puts the alarm in stay when one of the PIR causes an exit error.

I have some workarounds in place, and I am away for a month or so which prohibits me from reconfiguring the Caddx in any way. I did add all of these PIR sensors to what Caddx refers to as “Group Bypass” which will actually bypass the zones all at once using {Bypass, 0, Bypass, Bypass} on the keypad. I attempted to add Zone 0 to the Caddx device in Vera but was unsuccessful. I would like the capability of setting the group bypass with Vera if that’s feasible.

And just as I typed all of this out, I seem to have discovered that if you want to monitor a zone with Vera but not with the alarm just remove that zone from all partitions!! I forgot to set one of my new zones to partition 1 and so it has no partition assignment. It isn’t monitored on the panel yet I get status in Vera. Now if I could just enter programming codes from the plugin… scary I know!

You probably know that with the introduction of UI7 I had to hobble the plugin’s behaviour with respect to zone bypassing. MCV decided that the Vera would “own” a zone’s bypass state and that certain operations on Home Modes would not have the option of leaving a zone in its current bypass state. Now the only practical way to use the plugin in UI7 is to prevent it from accessing the alarm panel’s built-in bypass commands altogether. This puts it on a level footing with the other Vera alarm plugins, which have no access to alarm-side bypass state either.

Zone 0 doesn’t exist as a concept in the NX protocol; zones are already zero-based in the protocol so you’d have to transmit the byte -1 to get “Zone 0”, and I’m pretty sure the zones are unsigned integers. But it looks like you can activate Group Bypass with a command that is very similar to the panic modes. The command byte is 0xC (decimal 12) instead of 4, 5 or 6 (Fire, medical or police). If you felt like hacking the plugin code in L_CaddxNX584Security.lua and adding “\012” into the list of modes:

local command = { GroupBypass = "\012", -- add this line Medical = "\005", Fire = "\004", Police = "\006"
you could then make a scene on the partition that invoked group bypass as a “panic” request, using the advanced scene editor to set the action “urn:micasaverde-com:serviceId:AlarmPartition2”/“RequestPanicMode” and parameter “State” = “GroupBypass”. Remember that Panic modes are disabled unless you add a variable to the top-level alarm device in Vera: “urn:futzle-com:serviceId:CaddxNX584Security1”/“EnablePanic” = “1”.

In theory you can program any alarm location through the serial protocol. This is probably what the DL900 program does. It’s disabled by default on the alarm, so unless you went out of your way to enable it on the panel before you left, no amount of plugin coding will let you change a zone’s partition membership remotely. Also, you’d have to add the necessary code and actions to the plugin source, which I assure you is no small job.

Futzle, once again thanks for your amazing support! I have found a way to live with allowing Vera to set zone bypass by using PLEG. Unchanged would be a great feature for them to add but the only zones I alter outside of the “Mode” schedules are PIR zones. I appreciate your input on adding GroupBypass and I plan to implement when I return.

For what may seem like an antiquated device, I am learning that the possibilities are almost limitless with this alarm/Vera combination!

Futzle, would it be possible to just change the “Medical” command to \012 and then use the Medical button in the UI7 gui to trigger the group bypass?

I found another clue in the Caddx manual:
If a burglary zone resides in more than 1 partition, it will only be active when all partitions it resides
in are armed. A zone that resides in more than 1 partition will be reported to its lowest partition number.

Using this logic I added the motion zones to partition 3 (previously unused) with the intent of allowing Zone 1 to arm in away mode and in theory keeping the motion sensors disarmed unless zone 3 becomes armed. It doesn’t appear to be working this way, but I need to review the logs for details to be certain. The plugin did create a new child device and the zones page does indicate the motion sensors are a member of both zones.

I also confirmed that I have enabled programming from the NX-584. While it would be quite a task to add this capability to the plugin, would it be possible to send the raw serial commands either with a special luup command (and file?) or via the OpenWRT SSH environment?

Yep, sure.

While it would be quite a task to add this capability to the plugin, would it be possible to send the raw serial commands either with a special luup command (and file?) or via the OpenWRT SSH environment?

Possible? Yes, technically, but if you have to ask then you shouldn’t try. The plugin hasn’t been designed to send arbitrary byte strings along the serial connection. Assuming you could work out with pen and paper exactly what bytes you need to send, you could subvert the plugin’s startup code to send those bytes to the alarm panel, then see if the panel responds with an acknowledgment. It would be harder still to do it from the OpenWrt command line because the Caddx protocol is two-way and no sufficiently powerful language is installed on the Vera. I’m deliberately not going to give you code to run because you don’t sound hesitant enough and I’m afraid if I gave you code you’d try to run it. It would be easier to do through the keypad, even if you have to dictate keypresses over the phone to a nontechnical human.

Futzle, thanks for the reply! I assumed it would be complicated but would have only attempted if there was such a way to send commands 1 at a time in a command line fashion. I am a big fan of logging my putty sessions so I at least have a record of what I screw up! I’ve been reading a lot in my spare time (of which there is little) and I have some big plans for my Caddx system to grow in the future.

I confirmed group bypass was enabled and I added the panic variable required for the plugin to function, but sending the command returned an error:

08 06/30/15 22:14:18.923 JobHandler_LuaUPnP::HandleActionRequest device: 19 service: urn:micasaverde-com:serviceId:AlarmPartition2 action: e[36;1mRequestPanicModee[0m <0x30724680> 08 06/30/15 22:14:18.924 JobHandler_LuaUPnP::HandleActionRequest argument DeviceNum=19 <0x30724680> 08 06/30/15 22:14:18.925 JobHandler_LuaUPnP::HandleActionRequest argument serviceId=urn:micasaverde-com:serviceId:AlarmPartition2 <0x30724680> 08 06/30/15 22:14:18.925 JobHandler_LuaUPnP::HandleActionRequest argument action=RequestPanicMode <0x30724680> 08 06/30/15 22:14:18.926 JobHandler_LuaUPnP::HandleActionRequest argument State=Medical <0x30724680> 50 06/30/15 22:14:18.928 luup_log:18: Job: Partition: RequestMedicalPanic to Medical 19 job userdata: 0x144fd28 <0x2acdf000> 04 06/30/15 22:14:18.939 <Job ID="32" Name="" Device="19" Created="2015-06-30 22:14:18" Started="2015-06-30 22:14:18" Completed="2015-06-30 22:14:18" Duration="0.11668000" Runtime="0.11138000" Status="Failed" LastNote=""/> <0x2acdf000>

I am currently a couple thousand miles from home with no technically skilled person to bail me out, so I wasn’t planning to try anything sketchy. At this point it would just be nice to “read” the config out of the Caddx and store for reference somewhat like “show run” on a Cisco.

If you want the log to be more informative you can enable the plugin to log the byte stream that it sends and receives. That should tell you if the plugin has failed to send the right stream of bytes, or if the alarm panel has chosen to not accept them.

At this point it would just be nice to "read" the config out of the Caddx and store for reference somewhat like "show run" on a Cisco.

There’s a command in the serial protocol to get the value stored in each memory location. To get a complete dump would require querying every location sequentially, waiting for the acknowledgment and then moving on to the next value. The “easiest” way of doing that would be to modify the plugin and add the several hundred lines of code to implement that part of the protocol.

I never intended for the plugin to be a replacement for the DL900 software, which presumably does implement the complete protocol, including memory scanning. It could be extended to do that, but it needs someone to do the coding.

Is anyone else having this issue and if so has anyone figured out how to make it stop…

I’ve been away and just got back from vacation this AM. I upgraded to the latest Firmware on my Vera3 as it suggested I do when I logged into the device. Since the upgrade I am getting detected movement and movement stopped notifications from every alarm sensor. It says it is reported by serial #…which is my Vera3 ID.

This is okay for devices in the windows and doors I guess but my interior sensors are sending me notifications every few seconds as people move about. I have gotten a few hundred this AM since the upgrade.

The problem is I don’t know how to make it stop. I have looked through everything and I don’t see it setup anywhere and again was not getting them until I upgraded and am now getting them on every zone occurrence.

Notifications are not part of the plugin but part of the Vera base system. In particular there is some configuration of notifications on the “House Modes” page which apply to sensors. Perhaps your Vera firmware upgrade turned these on.

Dashboard > My Modes

Thanks - I noticed that my alarm generally has all of the zones armed regardless of the alarm being on or off. Prior to this upgrade I did not get information from Vera unless I requested it. Could be that it always did it but it was turned off as you stated. Last night I bypassed the motion and I stopped getting them and I guess it has been a while since I’ve be in the modes area as sure enough I was able to turn the notifications off and have now stopped getting them from all the zones other than the ones I setup to get.

Thanks for the help as usual and I need to keep up more with the changes as things have been working so well I have changed nothing in a long time, not until something like this happens that you realize the other features. Looks like they have added many.

Thanks Futzle for your great support.

The Plugin is working just fine for me en UI7 at the moment.

Out of security reasons I’m reluctant to let my domotica software control my alarm system. The other way around in OK for me.

With UI7, Vera introduced de house ‘Mode’s’. What I can’t figure out is how do I control the UI7 Mode’s using the NX-584 plugin?
So, if I arm my panel for away, I want the house mode of my Vera to change to AWAY as well.

Regards,
Willem-Bram

[quote=“wbvanglabbeek”]how do I control the UI7 Mode’s using the NX-584 plugin?
So, if I arm my panel for away, I want the house mode of my Vera to change to AWAY as well.[/quote]

I think that you can do this by making a scene that reacts to the DetailArmMode variable on the partition device. This variable contains “Ready” or “Disarmed” when the partition is disarmed, “Away” when away-armed, and “Stay” when stay-armed. Or something like that; this is from memory. There are other values too like “ExitDelay” which you will have to decide how to map to a house mode. Take a look at the state variables on the Advanced tab as you arm and disarm the partition to verify the actual string values.

Setting the Vera’s house mode programmatically requires Luup, or there is a House Modes plugin which might suffice. I don’t have any experience with this aspect, but there are tons of other discussions that you can refer to.

If you are a PLEG user, I bet this is all a piece of cake.

Thanks that did the trick. Both options work Luup and Plugin.

Hi Futzle,

Thank you very much for such a fantastic plugin!

I am using the Caddx Networx 8V2 with the NX-584E via the USB to Serial Connect. I’ve updated to your latest 81 version and was able to add all the zones and able to arm the system. However, I am unable to disarm either from the GUI or the iOS App. I also tried to input my alarm code under the “Arming Options” box and click Disarm. It seems like the Disarm button is not functioning or responding. Am I doing something wrong or missing something?

Thank you for your feedback and help!

This is consistent with configuring the alarm panel to reject the message type “Primary Keypad Function”. Check if this is the case by visiting the Advanced tab > Configure. If it is off then you will need to turn it on by using the Go To Program feature of your alarm panel’s keypad.

Failing that, you will need to watch the Luup log while you attempt to perform a disarm operation. (Create a sacrificial PIN if you share your log on the forum, because the PIN can appear in the log.) The log should tell you if it succeeds or fails, and if the latter, why.

Anyone running the new 7.0.12 beta and have last tripped false times? I’m using imperihome and before beta ui7 it was reading right. I seem to have weird issues now where all sensors have similar tripped times of a few min ago even though they haven’t been triggered.

Using the device advanced tab in vera and the unix time that also seems to not match my imperihome app nor the last time the device was actually tripped.

Anyone else see the same?

I’m still on 7.0.10 but I don’t use the LastTrip variable anyway so I wouldn’t notice a change.

Perhaps a guard needs to be added to the Lua code for zones: set LastTrip only if the old value of Tripped was 0. I didn’t have that in the code because, well, there’s no specification for how LastTrip is meant to work.

I’m open to recommendations based on how people use LastTrip.

I’m still on 7.0.10 but I don’t use the LastTrip variable anyway so I wouldn’t notice a change.

Perhaps a guard needs to be added to the Lua code for zones: set LastTrip only if the old value of Tripped was 0. I didn’t have that in the code because, well, there’s no specification for how LastTrip is meant to work.

I’m open to recommendations based on how people use LastTrip.[/quote]

Well I was on 7.09 before this beta update and it was working just fine. I use imperihome and below each motion or door sensor it shows (in 12h format) what time the sensor was last tripped. It’s good info for me to find out when the garage door, side gate or any sensor was last opened or anything real fast. So I just glance at it but don’t use it for any PLEG or other conditions.

I just know what was working is now not, but I have no idea why or where it got broken. The problem happened after update but not sure if it broke on the plugin side, Vera UI, or Imperihome side.

Is the LastTrip time advancing on zones that are tripped, on zones that are untripped, or both?