Interlogix Ultrasync

There seem to be several things called Interlogix UltraSync, but they may have the same web interface.

A self contained hub / modular hub (https://www.interlogix.com/intrusion/category/control-panels?brand=17).

There is also the NX-595 comms (Hills ComNav in Australia) board https://www.interlogix.com/intrusion/product/networx-ip-communication-module

The app I was given, for my NX-595, is Ultra Connect, but there is a newer UltraSync that works with the same details (serial number, access code).

The configured web access server in the NX-595 is s1 .zerowire.com :443

1 Like

It is also possible to log in locally direct to the controller, e.g. ht tp:// 192.168.1.xxx/

Both of the two prototype projects on GitHub seem to use the same web interface, e.g. post to /user /keyfunction.cgi, etc. I think this is just scraping/replicating what the web interface does, not a true separate API, but that is good enough. (If you have the installer code for your system, you can even log in as that and reverse engineer those functions)

I’ve be able to modify this project below to work on my ComNav (NX-595E)
https://github.com/simonhebert/nx595e-webapi.

It provides a Web API with the following information

Alarm Status

{"armType":"off","isSystemReady":true,"isFireAlarm":false,"isIntrusionAlarm":false,"isExitTimeDelay":false,"isEntryTimeDelay":false,"isZoneBypassEnabled":false,"isChimeEnabled":false,"systemStatus":"No System Faults","zones":[{"index":0,"name":"Entry","status":"Ready","isBypassed":false},{"index":1,"name":"Living","status":"Ready","isBypassed":false},{"index":2,"name":"Kitchen","status":"Ready","isBypassed":false},{"index":3,"name":"Master","status":"Ready","isBypassed":false},{"index":4,"name":"Family","status":"Ready","isBypassed":false},{"index":5,"name":"Hallway","status":"Ready","isBypassed":false}]}

i’m also able to arm/disarm via a post command to the Web API.

anyone able to help in integrating the NX595 into HA

Just letting you all know I made massive productivity on my Ultrasync code base here. The API (also viewable through --details) should be able to make it possible to integrate into Home Assistant.

Prior to this update, you could always fully arm and disarm the alarm (including in stay mode). My latest changes allow you to monitor your security. It took a very long time to reverse engineer how all of the area and sensor banks are referenced, but i think i nailed it. Would love some feedback if anyone is willing to test it:

# simple installation
pip install ultrasync

Instructions are on my GitHub page, but I’m more than happy to help anyone else get set up or if they have any questions.

If I could get some feedback, that would be awesome! :slight_smile:

Hey Chris

Really curious how I can add this to my HomeAssistant OS.

hi @stefdewilde,

I’m starting the integration now, but it’s not complete. The first step was the library (and CLI tool) I shared that allows us to expose the UltraSync Hub in a way that we can be communicated to (and monitor) it via a API; this part is done! :+1: :tada: . You can use this tool (as is) right now if you want.

I haven’t done a pull request to Home Assistant yet, but I have begun the process here.

It’ll be pretty basic at first, but I’d like to be able to send away, stay, and disarm through HomeAssistant. I also want my initial release of this integration so that we can set up triggers to automatically arm the alarm (as stay) at night and disarm in the morning (as an example). As I make progress, I’ll share here. Please know that this is kind of an overwhelming undertaking, so please be patient; if you can help, by all means feel free too! :slightly_smiling_face:

3 Likes

Thanks for the answer chris.

I can help with beta testing haha. Not really a great coder. The link in your post is not working by the way.

Going to double post, so sorry mods :smiley:

I’ve looked to the component you’ve added and it looks good. Is there an option to import this and test it out?

Sure, it doesn’t work yet, but here is the flow (hopefully the instructions below aren’t too confusion; it requires docker unless you can get set up another way):

# Prep (location to work within)
mkdir -p ultrasync-test/config
cd ultrasync-test

# Launch Home Assistant Docker Container
docker run -d --name="ha-ultrasync-test" \
    -v $(pwd)/config:/config \
    -v /etc/localtime:/etc/localtime:ro \
    -p 8123:8123 \
    --net=host homeassistant/home-assistant:stable

# Get the container name name
CONTAINER=$(docker ps | egrep ha-ultrasync-test | awk '{print $1}')

# Connect to container and do a bit of changes...
docker exec -it $CONTAINER /bin/bash 

#
# Inside of bash container
#
# Clone my fork of the project
git clone https://github.com/caronc/core.git /usr/src/homeassistant.ultrasync

# Install ultrasync (use latest on github)
pip install git+https://github.com/caronc/ultrasync.git

# Move new checkout in place
mv /usr/src/homeassistant /usr/src/homeassistant.orig && \
    mv /usr/src/homeassistant.ultrasync /usr/src/homeassistant

# We need to restart the homeassistant tool now
exit

Now we’re back outside of our container; let’s restart it:

# Restarting our container allows us to kill the old instance and
# start the new one that is part of my git branch at this time
CONTAINER=$(docker ps | egrep ha-ultrasync-test | awk '{print $1}')
docker restart $CONTAINER

Be patient now at this point as it takes some time to startup. This could be 30 seconds or so but at some point the website http://localhost:8123 should be accessible.

  1. Create some testing account in with some easy to use account (for testing) as this container will allow you to test and not obstruct your actual HA installed elsewhere.
  2. Click on Configuration
  3. Click on Integrations
  4. Click on the big circle (bottom right) to Add (:heavy_plus_sign:) a new integration
  5. Search for Ultrasync
  6. Select the entry when it appears
  7. Provide the hostname of your UltraSync Hub, a user account (it’s strongly suggested you create your own custom one just for this) and the pin that goes with it.

Now I plan on editing this comment as i learn more… Above is what i WANT to happen :slightly_smiling_face:, but UltraSync isn’t showing up as an integration yet (Step 5). I still need to play with the code a little more; I feel I’m close… I do have a full time job, so hopefully I’ll be able to pick up more on this over the weekend. But once again I’m open to anyone who has suggestions or finds anything to get further.

Edit 2020-10-27: Flow works as intended now using latest code and following instructions identified here.

Just wanna say i’ve been waiting for someone to code this for a long time so thank you for your sharing and hopefully not too long till it gets to where you want it to be.

Pushed some more code today; those who successfully follow my instructions and use the latest code will now see 4 working area sensors:

I haven’t figured out how to send the away/stay/disarm yet; I’ll keep you posted if i do.

2 Likes

Just take your time to make it work.

You are close to greatness haha.

I created a Pull Request against Home Assistant here. I am currently missing unit tests; I’ll start working on these next. There are some other things i need to review too, but there hopefully shouldn’t be a whole lot of work up ahead. If you use my branch; it all works right now (well for me anyway).

There are 3 services you can use stay, away, and disarm which are working perfectly in Home Assistant now too! I tried to document most of this in the in the PR.

Can’t test it because I don’t have home assistant running in a docker but as a Raspberry Pi OS.

I have been waiting for something like this for a long time to be able to get alarm status info on my hass.io installation through my 595E. If somebody could point me towards the way to install it without docker I would be glad to help with testing.

Hey panos2310,

Have a moment… Chris is doing a good job and if everything goes, we will be adding it as a integration.

2 Likes

Posting an upvote as I am also eagerly waiting this intergration! Thanks so much @l2g

I am curious if you think your work is going to help resolve this thread as well: NX584 Alarm & Hass.IO Add-on

Completely different kind of hardware and probably different method of integration this old method has been known for a while but not convenient to all of the rest of us that have the 595E this is why we have been waiting for such a long time for the solution.

Keep up the good work focus on 595 and let us know if we can assist in anyway

Hi guys,

As a status update; there isn’t much more we can do at this point; we’re in the hands of the awesome HA members to accept and merge the code. I’ll definitely address any concerns they bring forth when/if they arrive to help with the process. :slightly_smiling_face:

All unit tests were done this past Friday (Oct 30th) and code is still subject to a review by them at this time. They did one review already and I addressed their concerns (no more HA YAML config).

  • Core Merge Request (still pending second review + merge): here (same link as in my last post)
  • Interlogix/UltraSync Branding (Approved and awaiting Core Merge): here
  • Documentation for new Integration (still pending approval): here

This first implementation is pretty basic, but it works great for me; hopefully it will work for all of you too. At this time I’m only using these two automations (and they worked fantastic all weekend):

# Alarm Activation
- alias: Activate Nightly Alarm
  trigger:
    platform: time
    at: "23:00:00"
  action:
    service: ultrasync.stay

# Alarm Deactivation
- alias: Disarm Nightly Alarm
  trigger:
    platform: time
    at: "06:00:00"
  action:
    service: ultrasync.disarm

Here is a screenshot of it’s overnight status that hopefully all of you will have too soon:

If you want to know right away if this new integration will eventually work for you (whenever it hopefully does get merged): Just follow my comment in this thread from almost a year ago. Install my ultrasync Python library and create a small config file. If you can interface with your panel with that, you’ll be good to go in Home Assistant.

As a side note: I looked at other home assistant integrations and saw that you can get really extravagant and create an alarm panel and stuff. Maybe this can evolve to that next. :slightly_smiling_face:

2 Likes

Great job man!

I will have to wait till the merge. I’m running HA as an OS on my Pi.