Interlogix Ultrasync

Works like a charm :wink:
Also the HACS Repo is added in one try now.

Hi!
That is good progress!! It works very well on my side!
Now that there are sensors, do you have any ideas how to add them to HomeKit using HomeKit Bridge?
All my other devices are added correctly.

Can it be because you do not create a “Device” with all the entities linked to it? I think that if there is no device grouping them it can’t be added to HomeKit.

Do you think it would be easy to create such a device?

Thanks

I honestly do not know much about HomeKit at all. I’m not sure what is involved in creating a device. It looks exclusive to Apple (I don’t actually own anything Apple myself)? Based on a few Google searches, you may need to reverse engineer some of the Python code I wrote so that it works with the Apple framework? I don’t think i’ll be able to help you here :man_shrugging:

sorry :slightly_frowning_face:

I don’t think there is something special to do at all. It is all handled with the HomeKit Bridge integration but to be able to be detected as a device it needs to be added to Home Assistant as a device (which contains entities).
In other words, if you check your devices list in HA (config/devices/dashboard), Ultrasync should appear there.
Most of my other integrations have 1 device + X entities and this way it can be added as a HomeKit device. Ultrasync only as entities and no device.

EDIT: maybe I’m wrong and I’m understanding all of this wrong

The more I read, the less I think it is a problem with the “device”.

Here is a list of what is supported in HomeKit Bridge: https://www.home-assistant.io/integrations/homekit#supported-components

My guess is that we are using sensor for the zones but it would not work because it is not one of : TemperatureSensor, HumiditySensor, AirQualitySensor, CarbonMonoxideSensor, CarbonDioxideSensor or LightSensor.

I think it would be directly working if it was binary_sensor instead. But as you mentionned before, you can’t really use them as binary_sensors

Yeah, i’m not sure how easy it is to integrate there.

The alarm_control_panel might be possible, but it seems to be more geared towards systems that only have a digital screen interface (keypad). Where with the UltraSync this is all bypassed because you log in to the device itself through it’s web interface (there is no numeric/integration per say).

But i suppose it would be possible to have the numbers just not do anything, but have the Arm/Disarm buttons trigger what you can already do? This might be a bit of overkill for very little reward though, It also won’t solve your sensor issue :frowning:

Because of @l2g his comment I start reading and looking in the alarm_control_panel card.

The arming_time is 0 because my UltraSync system has an own timer.

In my configuartion file:

alarm_control_panel:
  - platform: manual
    name: "Alarm 66B"
    code:  yourowncode
    arming_time: 0

in my automation file:

- alias: alarmdisarm
  description: ""
  trigger: 
    - platform: state
      entity_id: alarm_control_panel.alarm_66b
      to: 'disarmed'
  action:
    - service: ultrasync.disarm

- alias: alarmarmstay
  description: ""
  trigger:
    - platform: state
      entity_id: alarm_control_panel.alarm_66b
      to: 'armed_home'
  action:
    - service: ultrasync.stay

- alias: alarmarmaway
  description: ""
  trigger:
    - platform: state
      entity_id: alarm_control_panel.alarm_66b
      to: 'armed_away'
  action:
    - service: ultrasync.away

- alias: readalarmstay
  description: ""
  trigger:
    - platform: state
      entity_id: sensor.ultrasync_area1state
      to: 'Armed Stay'
  action:
    service: alarm_control_panel.alarm_arm_home
    data:
      code: yourowncode
    entity_id: alarm_control_panel.alarm_66b

- alias: readalarmdisarm
  description: ""
  trigger:
    - platform: state
      entity_id: sensor.ultrasync_area1state
      to: 'Ready'
  action:
    service: alarm_control_panel.alarm_disarm
    data:
      code: yourowncode
    entity_id: alarm_control_panel.alarm_66b

- alias: readalarmaway
  description: ""
  trigger:
    - platform: state
      entity_id: sensor.ultrasync_area1state
      to: 'Armed Away'
  action:
    service: alarm_control_panel.alarm_arm_away
    data:
      code: yourowncode
    entity_id: alarm_control_panel.alarm_66b

You can make it probally shorter, but I couldn’t care :wink:

This is my Alarm Panel Card:

type: alarm-panel
states:
  - arm_home
  - arm_away
entity: alarm_control_panel.alarm_66b
style: |
  #keypad {
    display: none !important;
  }

You need this HACS plugin for the style and no keypad thing: https://github.com/thomasloven/lovelace-card-mod

1 Like

Hey Chris,

Can confirm everything seems to be working well on my system. Amazing work adding all the sensors in to HA individually! Definitely picking up on the “burglar alarm” states now too.

2020-12-17 12:54:33 [001] Laundry Door            : Ready
2020-12-17 12:54:33 [164] Home                    : Ready
---
2020-12-17 12:54:57 [165] Home                    : Exit Delay 1
---                                                                                                                      
2020-12-17 12:54:58 [166] Home                    : Exit Delay 1                                                         
---                                                                                                                      
2020-12-17 12:55:15 [167] Home                    : Exit Delay 1                                                         
---                                                                                                                      
2020-12-17 12:55:27 [168] Home                    : Armed Away                                                           
---                                                                                                                      
2020-12-17 12:55:28 [169] Home                    : Armed Away                                                           
---                                                                                                                      
2020-12-17 12:55:57 [170] Home                    : Armed Away                                                           
---                                                                                                                      
2020-12-17 12:55:58 [171] Home                    : Armed Away                                                           
---                                                                                                                      
2020-12-17 12:55:59 [173] Home                    : Armed Away                                                           
---                                                                                                                      
2020-12-17 12:56:02 [002] Kitchen/DiningMotion    : Not Ready                                                            
2020-12-17 12:56:02 [174] Home                    : Armed Away                                                           
---                                                                                                                      
2020-12-17 12:56:03 [175] Home                    : Armed Away                                                           
---                                                                                                                      
2020-12-17 12:56:04 [003] Kitchen/DiningMotion    : Ready                                                                
2020-12-17 12:56:04 [176] Home                    : Burglar Alarm                                                        
---
2020-12-17 12:56:06 [177] Home                    : Burglar Alarm

1 Like

I installed the same card myself this afternoon and if you just leave out the code: yourowncode parts the keypad also automagically dissapears.

Hi Chris i installed your HACS version earlier today on my home assistant instance on my rpi and it all seams to work fine. my version seams to be CN-0.108-O

Thank you so much for putting in al the time and effort to make this work it makes my alarm system 10 times more useful.

1 Like

But then you don’t need to put in a code? It just arms and disarms without then?

As far as I can see it uses the code you used to set up the connection.

I made a separate code for home assistant in my alarm system because I can’t connect from 2 devices to the system at once and my personal login is used when I acces the system from my phone.

Hey Chris @l2g ,

Thanks a lot for building this in - works a treat!

A quick question with the dynamic sensors… When I go through the install process and then connect my ComNav to HA, it adds 128 sensors (zones) when there are only 8 sensors set up on my Alarm Panel. It doesn’t seem to understand that there are only 8 sensors connected. In my normal alarm web interface via UltraConnect, it shows the 8 sensors here but the full 128 zones in HA.

Is this expected behavior?

EDIT: I found that you can disable the sensors / entities manually in HA (I am fairly new to HA) which then gives the expected behavior.

Also a suggestion that I came across, that the sensor names should have preceding zeros so they are really easy to find and search when the issue above happens as they will be in numerical order.

EG:

  • UltraSync Zone001State
  • UltraSync Zone002State
  • UltraSync Zone003State

At the moment, there is no preceding 0 so the sensors are a bit all over the place when displaying in HA with it thinking 100 is before 1.

@SubJimbo

I agree, i should add the zero, but this is going to break a lot of peoples configuration. So I may hold off for now. I never considered that all 128 zones could be visible.

… it adds 128 sensors (zones) when there are only 8 sensors set up on my Alarm Panel

Ideally I’d like to only show/detect the sensors you and I both know are present/installed. Like you, I think it’s overkill for you to see all 128 entries and have to start disabling them one at a time; that’s definitely no fun.

Can you access a terminal and get me a ultrasync --debug-dump. I’d be curious to see what the version of your ComNav panel is. I should be able to work with what you provide me and clean the output up for you. :+1:

There are lots of instructions around on how to get this Here is a recent ticket another person had where i documented it in further detail in case it helps. If you’re concerned with others seeing your alarm details, just send it directly to me via email (you can find it on my github page or in this thread i believe).

Good luck!

Chris

Hello Chris,

I recently purchased one alarm system with this “OS”. It has the same web interface but can’t logic with HACS integration, I get “failed to connect” error.

Installed ultrasync and can’t generate a debug dump. If You want I can send the html source from my system.

May be the error is that my login webpage is in spanish. Once logged the user is in english

Regards

Hi @GenGT,

Sorry to take so long to get back to you! It’s possible you have another UltraSync vendor that I haven’t known about. Is this a ComNav device? An Interlogix model? Or recently i learned of an xGen model that I’ve begun adding support for.

If you can’t get a --debug-dump, then the next best thing you can try to get for me is the HTML source of the webpage displayed to you after you log in. So basically: log into your Ultrasync Alarm panel (through the web page in your browser) and then from the (browser) menu options above, you should have an option to view html source.

Got tired of waiting for the integration to be added to the main OS so I installed HACS over the weekend. Great work on this @l2g

2 Likes

Hello Chris,

I’m having problems with the Alarm that lost the connectivity and I’m waiting for the technician to solve the problem. Meanwhile I saved the html after the alarm get “locked”. Its a Xgen 8

<!DOCTYPE html>
<!-- saved from url=(0020)http://x.x.x.x/ -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <script>if(0 == 1 && location.href.indexOf("https://") == -1) {location.href = location.href.replace("http://", "https://");}</script> 
    <title>xGen :: Secure Network</title>
    <meta name="viewport" content="initial-scale=1.0, width=device-width, maximum-scale = 1.0, minimum-scale = 1.0">
    <script src="./xGen __ Secure Network_files/es_es.js.descarrega" charset="utf-8"></script>
    <link href="./xGen __ Secure Network_files/m.css" rel="stylesheet">
    <script src="./xGen __ Secure Network_files/master.js.descarrega" charset="utf-8"></script>

<body onload="afterLoad();">
    <div class="ban">
        <p>UltraSync</p>
    </div> 
    <div class="login">
        <form method="post" action="http://172.16.0.189/login.cgi" id="login" onsubmit="return true;" data-bitwarden-watching="1">
            <h1 id="sign">Ingresar:</h1>
            <label id="namelab">Introduzca su nombre:</label>
            <input type="text" name="lgname" id="lgname" value="">
            <label id="pwlabel">Ingrese su Contraseña:</label>
            <input type="password" name="lgpin" id="lgpin" value="">
            <input type="submit" id="butn" value="Ingresar">
            <script>
            document.getElementById('lgname').focus();
            </script>
        </form>
    </div>
  <script>
  time="6002C63C";
      function afterLoad()
      {
       	document.getElementById('namelab').innerHTML = masterStrings[17]+':';
       	document.getElementById('pwlabel').innerHTML = masterStrings[18]+':';
       	document.getElementById('sign').innerHTML = masterStrings[19]+':';
       	document.getElementById('butn').value = masterStrings[19];
      }
  </script>     



</body></html>

@GenGT,

Thanks for sharing that, this is really new :slight_smile:; specifically this:

In every alarm panel up until now, the syntax has always been /v_XX_n.nnn-R/. I recently just added support for another xGen device and even it had the syntax: v_XG_04.01-B (see here).

Anyway, it shouldn’t be an issue, we’ll just have to handle your Alarm Panel a bit differently. I’ll need to learn more about it though. It’s an xGen v8 you say? Is it a relatively new device or an old model? Do you know much about it? These questions here are more for me so when I code around the xGen __ Secure Network_files reference, i can better identify it (for future reference purposes).

Nice work Chris. Thanks for making possible to integrate NX-595E to HASS through HACS.

Everything runs great on the latest HASS version on a pi4. I have 2 questions.

  1. Is it possible to change the username/pin that was stored during the install? If we have to change the pin used on installation we have to delete the integration and then reinstall it. This messes up the names of the partitions/zones etc.

  2. Everything works great but I cannot figure out how to use the ultrasync.sensor.update event. I have made a very simple automation just to check it but I cannot make it trigger.

alias: light_event
description: ''
trigger:
  - platform: event
    event_type: ultrasync_sensor_update
action:
  - type: turn_on
    device_id: 1ae1f4ab48f65a7b1fa71543e0140a84
    entity_id: light.office_light
    domain: light
mode: single