New Binding for Caddx alarm panels [NX584, NX8e, ...]

Hi @Mark_VG,

yes, these are the lines. Below i left only the 9 bytes of the message. (I deleted the header and the checksum)

86 00 00 00 00 40 63 04 E0
86 00 00 00 00 40 63 04 C0

As you can see above only the 9th byte changes.
Below is the binary representation of the 9th byte. The bits are numbered from right to left starting with 0. (Bit 5 is the sixth number from right to left)

E0: 11100000
C0: 11000000

As you can see only Bit 5 changes value which is “Cancel report is in the stack”.

If Byte 8, Bit 0 had changed, then the 04 would have changed to 05.

I suppose this is how the panel works.

hello @jossuar Joshuar - Χάρηκα Γιώργο!

I have a Caddx NX10 setup with any card you can imagine :slight_smile: - inlcuding the ethernet card and the x10 automation module. (rs232 interface)
I have been using the system wiht my Vera zwave unit for a few years and I am just setting up a RPi with Openhab 3 and did a test with the usb. it didnt work actually as expected. i.e. while it saw the Caddx alarm (online) there was no autodiscovery. I have the DL900 software working for me so I have a less complex view of the system settings. would you be so kind so as to indicate which settings in my system appear wrong?

I expected it work since it was already operational with Vera but there maybe some differences i guess inthe implemenation.

pic1 pic2

Hello @alexkarageorgis,

I suppose you are referring to the NX584 module. (Sorry I’m unfamiliar with the NX10)
The settings from the DL900 screen shots look good to me.
I suppose something is wrong with the bridge settings.

They should be (according to the screenshots):
“Caddx Bridge Serial Port”: You should choose the correct port here
“Baud Rate”: 9600
“Caddx Bridge Protocol”: Binary
“Maximum Zone Number”: The biggest zone number on your installation

I suppose you installed Openhab 3. Correct?

Hi - yes it is the NX584 sorry for not making it clear. And yes on Openhab 3.

The bridge when connected is appearing online but there is no zone discovery. I used a number of zones higher than the actual. Could this.matter; I.e does the max zone number need to be precise;

Also what is the terminal time setting for;

Hi @jossuar

Hope you well.

I have been doing a bit or work with my Caddx system again.

Still battling with the Partition level Zone Bypass. It definitely seems that the System does not send the “expected” status for the Binding to process. This seems to be inconsistent with the other similar status messages.

I have now resorted to using a Group to see any Bypassed Zones in a Partition. Works OK but would complicate any Widget creation which I am toying with - though might not be possible with my coding abilities.

The other thing I still battle with is Channels etc coming ONLINE after a system restart as well as Channels going OFFLINE when a label get s edited.

  1. So if the OH system is restarted some channels go offline and now the easiest way to get them ONLINE is to restart the binding - not sure if this is a timing issue whent he System is restarting?
  2. If you edit a Label on a channel, that channel will go OFFLINE until the Binding is restarted to force it ONLINE.

Would appreciate if you could have a look when you get a chnace?

I am currently using:

openhab> bundle:list |grep Caddx
 59 | Active |  80 | 3.1.0.202102111803      | openHAB Add-ons :: Bundles :: Caddx Binding

Thanks
Mark

Hi @alexkarageorgis,

No. The binding adds to the inbox things for zone1 - zone[max].
Do you know how to set the binding into debug mode, and get the log?

Hi @Mark_VG,

You do a reboot and after the reboot some channels are not getting online? On what system is your OH installation?

I will check.

Also FYI all the current changes on the binding have been accepted for the 3.1.0 milestone.

@jossuar shamefully no, but if you point me in the right direction i will try to figure it out.
I will do a further test with a shorter cable (directly plugged into the nx584 i have a usb exterder currently so i want to take that out fo the equation.

Hi

Yes, I run on a Windows 10 Setup. If I reboot the system or restart the OpenHab service some of the Channels do not go Online unless the Binding is restarted.

Great - thanks

So these fixes will be in the 3.1.0-M3 milestone - I see this is due at the end of the week. Might give it a few days before upgrading.
Cheers
Mark

Hi @alexkarageorgis,

see below. The default password for openhab is habopen

[11:38:17] openhabian@openHABianPi:~$ ssh openhab@localhost -p 8101
Password authentication
Password:

                          __  _____    ____
  ____  ____  ___  ____  / / / /   |  / __ )
 / __ \/ __ \/ _ \/ __ \/ /_/ / /| | / __  |
/ /_/ / /_/ /  __/ / / / __  / ___ |/ /_/ /
\____/ .___/\___/_/ /_/_/ /_/_/  |_/_____/
    /_/                        2.5.4
                               Release Build

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown openHAB.

openhab> log:set DEBUG org.openhab.binding.caddx
openhab> log:tail
1 Like

hi @jossuar i used usb 3 and a direct connection (not via a usb hub ) and disccovery worked.
Now all i need to understand is how to arm disarm and status check :slight_smile:

I guess because i have openhab 3 the issues that @Mark_VG is facing will be similar so i will wait for the new version.

@Mark_VG i am very jealous of your dashboard. what can i do to get something similar?

Hi

As I mentioned I have been toying with a Widget. However I am battling to get my mind round how to make this possible with all the different combinations available in a Caddx Alarm system.

We are happy to assist with specific questions as far as possible.

My suggestion would be to look at the discovered things, link items to the channels you are interested in and take it from there. The Binding documentations gives a pretty decent start to viewing the current status.

I used the KeyPad Widget from Yannick at:

I am happy to share my rules etc if that will help.

Mark

1 Like

@Mark_VG im very grateful.

i will install the widget for sure and start toying. and look at the documentation although i am still catching up in terms of understanding what exactly i am reading :slight_smile:

Quick question

1.if you feel like saving me some time. i have played around and added a few partitions and zones to get a feeling. I realize now i only need a zone + the bypass switch and the partition status. all the rest are good to know but i dont need them for now. what is the intelligent fast way of removing items and points. Is it deleting the thing (which may? remove itemes and points?) I dont mind keeping things in my case but i have added too much in model and items which means deleting one by one. What is the smart way?

  1. as if to a child how do I arm a partition :slight_smile: (eventually i want to speak to alexa and arm a partition in stay or with specific bypasses. - that is how i have it setup now in Vera (mios)

Hi @alexkarageorgis

  1. From what I have seen, deleting a Thing does not delete any Items etc. You can delete a Thing and recreate it and the linked items will come back - so it appears there is no cleanup. Depending on how far you are with your setup (I am beyond this point) you could do a clean install? Otherwise I guess manually remove the items you do not need from Settings, Things, Channels, Linked - Unlink & Remove Item.

  2. As I said - this more more complex and depends a lot on how your system is set up… My system has the required BYPASS zones configured on the panel - so no need to manually do that. You will need a Page or a Sitemap with the relevant Switch Items to be able to “Press the Button”. You will have to customize the rule to match your system.

My STAY rule is as follows:

rule "Partition 1 Arm in STAY"
when
    Item Partition1_Stay  received command ON
then
if (Partition1_ReadyToArm.state == OFF) {
    logWarn("actions", "Ready to ARM is OFF")
        Alarm_Feedback.postUpdate("Ready to ARM is OFF")
            createTimer(now.plusSeconds(5), [
            Alarm_Feedback.postUpdate("")
        ])
}
else if (Partition1_Armed.state == ON) {
    logWarn("actions", "Alarm is already ARMED")
    Alarm_Feedback.postUpdate("Alarm is already ARMED")
            createTimer(now.plusSeconds(5), [
            Alarm_Feedback.postUpdate("")
        ])
}
else {
    val actions = getActions("caddx","caddx:partition:<REDACT>:partition1")
    if (null === actions) {
        logWarn("actions", "Actions not found, check thing ID for bridge")
        return
    }
    logWarn("actions", "Ready to ARM is ON ")
    actions.stay()
}
end
1 Like

@Mark_VG so unlinking a channel is important? prior to deleting?

Can’t say with 100% certainty. But from My experience you can delete a Thing - the linked items will remain… and if you recreate (using the same name?) the linking comes back. So for a “clean” setup I think it would be best.

Hi @alexkarageorgis,

It should be possible to use the alarm keypad as an input device.

The api has support for communication with the NX-148 keypad. You can display a message on the keypad and receive the button presses. E.g. When you enter the house and disarm the alarm you could have a rule to display a menu on the keypad LCD form where the user could select a scene for the house (open the blinds, turn on the lights if it is night, etc).
The terminal time is the time the message should be displayed on the keypad before it reverts back to the default display.

This is a feature which i haven’t tested at all. :frowning: I do not have a NX-148 keypad. The above is what i have inferred from the manual.

1 Like

Wow, that sounds very interesting… Can you give more of an idea of how you see that working? I have an NX-148 keypad and will take a look at this as well.

BTW. I See 3.1.0-M3 is out and there is no mention of the latest fixes.

automower	Enhancements	8802	Add planner, calendar and command channels
chromecast	Enhancements	10245	Added play URL actions to chromecast binding
daikin	Enhancements	9602	add energy usage day & week

Hopefully an oversight…

Thanks as always
Mark

As I have written above, this info is what i have inferred from the NX-584 protocol manual. I also don’t know if this feature is correctly implemented by the binding.

The sequence should be as follows:

  • First a keypad thing should be defined. For this you have to specify the keypad address. The keypad address depends on the partition for which it is defined and if it is the 1st, 2nd, etc. You can get more info from the NX-8E manual Location 212 – PROGRAMMING THE LCD KEYPAD ADDRESS
  • Then a rule has to be defined for e.g. when the “partition_armed” channel changes value to OFF.
  • The rule has to execute the following actions on the keypad: enterTerminalMode for e.g. 60 sec, then sendKeypadTextMessage to display a message. e.g. Press 1 for blinds, Press 2 for lights, etc.
  • When the user presses the respective button on the keypad the keypad_key_pressed channel on the keypad should fire and a rule should catch it.

As i said it is pure speculation.

The last two merged Pull Requests have the 3.1 tag. I suppose they will not be merged in a milestone release, like previous PRs in the list below.
https://github.com/openhab/openhab-addons/pulls?q=is%3Apr+is%3Aclosed+caddx+