Custom Component: Crow Runner / Arrowhead AAP 8/16 Alarm IP Module

I haven’t managed to find the time to update and test yet but am trying to follow along with the thread.
I can confirm that (assuming we are all talking about the same panel) at least some of the relay outputs are designed to be used for garage doors. We have our setup like that.

My previous (home-grown Node-Red setup) integration between the Alarm and HA used this feature to control the garage door. We also have a zone connected to the alarm with a reed switch, so the alarm (and Home Assistant) can tell when the garage door is closed. It worked well as part of HA, and was a useful alarm zone as if the garage door is forced it sets the alarm, and if the garage door is open the alarm won’t set.

In an ideal world you would use a combination of the relay and a zone to give control and status of a garage door.

@febalci
Yeah I suppose so. Could you tell me how to set these debug levels and where please? So I have not done this before.
Cheers

Starting to work on this RL1 and RL2. The document is a a bit fuzzy for this, so i need your confirmation on this:

  1. Document says RL1 is ‘Turns relay 1 on for the set time’. Does that mean it turns on for some time (Relay 1 Timeout) only, or you turn it on and it stays until you turn it off.
  2. Is this RL1 and RL2 ‘toggle’? So you send RL1, relay 1 turns on, and you send ‘RL1’ again and it turns off?
  3. What does IP Module responds to RL1 turn on or RL1 turn off commands? OKKEYS only??

You have to add these to HA configuration.yaml, save it and restart HA:

logger:
  default: warning
  logs:
    custom_components.crowipmodule: debug
    pycrowipmodule: debug

But please be aware that this produces too much data to write on disk, i never tried it more than 5 minutes; if you like, wait for some days and i will come up with a tidied and summarized up log keeping pycrowipmodule version…

  1. RL1 and RL2 are configured as per this screenshot for the web interface:


    Depending on if you connect wires to NO (Normally Open) or NC (Normally Closed) the relay will either “connect” or “disconnect” the attached device for the number of seconds specified. In my case because it’s the garage door switch I have it connected to NO so it “connects” the switch for two seconds.

  2. RL1 and RL2 are “momentary switches”, sending “RL1” or “RL2” connects or disconnects the relay for the defined period of time (two seconds in my example).

  3. The IP module responds with “RL1 OK” for “RL1” and “RL2 OK” for “RL2” as follows:

wow, a different kind of relay logic if you ask me. As you said and as i understand, it is a push button (momentary switch) instead of an on/off button.

So that means, the IP Module do not send any more confirmation after the relay timeout is fulfilled (in your case 2 seconds).

Since HA does not support push buttons, we can put a regular switch, when you switch it to on, it will send command and return back to off position. One way send only, you will not know whether your garage door is open or closed, since RL1 does not return any on/off open/close ack, only R1 OK (R1 command sent’.

One last question, does RL1 command return ‘R1 OK’ or ‘R1_OK’ ?

As I understand it, thats the logic most garage doors use.

The way to understand if the door is open or closed is to have sensors (typically reed switches). I have one setup to monitor if the door is closed (which is what I care about) but if it says the door is “open” that could be in any stage of the travel apart from closed.

HA has a “cover” component that is designed for garage doors: https://www.home-assistant.io/integrations/cover/

From my understanding and testing you’re 100% correct.
Thank you, this will be very helpful.

For reference my alarm system has a Radio Frequency transmitter board that is powered from the alarm system, but otherwise has not reporting or communication with it, it’s a dumb transmitter that isn’t controlled by the alarm, just powered. It receives signals from the ArrowHead remotes but doesn’t pass them back to the alarm, just activates the garage door by a wired connection.

A question, I could connect the garage door to the following connector (in the pink square), but I don’t see a way for the IPModule to control that.

I’m not asking you to change anything or add anything for the above, just curious if you knew of any existing code path to activate/deactivate the “Garage Door” switch highlighted?

Is that not one of the relay’s? I would have to check where mine is connected, but that looks familiar!

It’s a relay on the Elite S board (as opposed to the two on the IPModule), yes.
I was just curious if there is a way to activate that relay already in the code. Not that I intend to use it, just curious.

@mish, i tried to implement it with v.0.27. You can find it in the ‘develop’ branch of github.
This version creates 2 more switches, Relay 1 and 2. When you switch it on, it sends a RL1 or RL2 command and switches itself back off in a couple of seconds. It doesn’t check ‘RL OK’ because, well there is no way to show the command is succesful since it is some sort of a push button.
Would you mind testing it?

In Crow Runner manual, there is a confusing explanation for that relay like:

Relay Out
This is a relay is related to Output 4 with single pole changeover contacts. If required, the
Common (C) contact of the relay is connected by default to GND via JUMPER, the jumper can
be selected to 12V or removed.

Screen Shot 2020-12-18 at 23.17.41

So, in summary, i still have no idea how to use this :sweat_smile:

@febalci, you are fantastic! Thank you for your work on this.

100% working, I’ll test timings and a few things a bit later - but it’s already perfectly usable.

Great, i will leave it in develop branch until it proves itself.

@Crumpy10, you can use this development version for debug; i removed the parser section logs which creates a whole bunch of additional lines. Still, this will create some huge log file, but i think this is the only way we can get close to the problem.

I tried to make “entity unavailable” during disconnects and problems, but i had problems just because this is not a polling component and also i still have very little idea with HA functions, i simply copied everything from envisalink integration and changed whole code according to IP module.

@mish, btw showing the problems and results with video is a superb idea, it leaves no space to misunderstandings :clap: :clap:

I’ll see if I can shed any light on that explanation of the onboard relay.

“single pole changeover contacts” just means that it is a single-pole, single-throw relay. You can see the little diagram of the relay just to the left of the terminals in that diagram. There is one “common” terminal, also called “COM”, and then there is a “normally open” or “NO” terminal, and a “normally closed”, or “NC” terminal. When the relay is turned off, COM will be shorted to the NC terminal, and when turned on, COM will be disconnected from NC and instead shorted to the NO terminal. By default, a jumper is fitted such that COM is connected to Ground. Which means when you turn the relay on you are shorting the NO terminal to Ground. Alternatively the jumper can be changed such that instead, the COM terminal is connected to 12V. If you are using this to control a garage door or something else which has its own voltage supply, you most likely do NOT want to have the jumper in at all - meaning COM will neither be connected to Ground or 12V, instead COM is connected to what you have connected to the “C” terminal in that diagram.

The relay is associated with Output 4, meaning it can be controlled using that output.

Hope that clears things up.

Hi guys!

I have luckily stumbled arrows this and am so happy you guys are working on it.

I cannot seem to get mine to work correctly. The sensors & alarm entities show up however, they do not work. The IP address is correct and I have logged into the module to confirm the port 5001 however, it still won’t work.

Any tips?

1 Like

@Twours welcome,

  1. Check the firmware you use on IP Module if it is “Ver 2.10.3628 2017 Oct 20 09:48:43”. You can see it on web login page of IP Module.
  2. Check in the IP Module web settings page if the port is 5000 or 5001
  3. You said you checked with telnet, did you checked writing STATUS on the telnet and the response to it?

I’ve had some more time to spend testing out my HA with this component recently, and I’m currently using V0.27

I can confirm that now after pressing disarm the status updates within a couple of seconds which is great.

I can also confirm that if the crow panel has dropped its connection, HA will now reconnect if I power cycle the crow alarm - i.e. HA reconnected to it without having to restart HA.

I’m reading back over this thread to get up to date with other version changes, as I seem to be having issues with arming. I haven’t included ‘code’ in my configuration.yaml and so I can see the keypads. As I understand Arm Away uses KEYS XXXX and Arm Stay uses Arm Stay; currently I can only Arm Stay but not Arm Away. Am I meant to put my alarm code in the init.py? I can see there is a code = ‘0000’ there.

By the way, typing the correct code in the keypad does nothing; even though on my actual alarm keypad typing in the code would arm or disarm the alarm.

Hi Febalci,

Thank you so much for your response!

my ESL Control IP Module is the following:
“VER 2.10.5542 2019 Sep 19”

The ULD Port is “5001”

I’m not sure what you mean by point 3?

Is the version incorrect? Is there anyway to upgrade the version?

@Twours, your IP Module has the stock firmware which is supposed to be used with AAP app only. Please check message https://community.home-assistant.io/t/custom-component-crow-runner-arrowhead-aap-8-16-alarm-ip-module/130588/23?u=febalci on how to change the firmware of IP Module in order to be used with this custom component. Please note that after you change the firmware, you will not be able to use the AAP app on smartphone anymore, you will only be able to use it with HA.