Ajax alarm system

Did someone managed to connect SIA Ajax Alarm to mqtt broker?
Want to add external status read / control…
Would apreciate for example

Here is what I did to get it integrated with Domoticz. If I recall well, this was my first work with HA, I can tell you that I sweat a lot :wink:
There are four zones as you can see. Mosquitto MQTT broker is installed on a specific RasPI gear.

  - id: '1642926428231'
    alias: Alarm integration with dz
    description: Intégration des zones d'alarme
    variables:
      device_type: '{{trigger.entity_id.split("_") | last}}'
    trigger:
    - platform: state
      entity_id: alarm_control_panel.5656_ccc_zone_4_alarm
    - platform: state
      entity_id: alarm_control_panel.5656_ccc_zone_3_alarm
    - platform: state
      entity_id: alarm_control_panel.5656_ccc_zone_2_alarm
    - platform: state
      entity_id: alarm_control_panel.5656_ccc_zone_1_alarm
    condition:
    - condition: template
      value_template: '{{ (state_attr(trigger.entity_id,''last_zone'')) | int != 0 }}'
    - condition: or
      conditions:
      - condition: template
        value_template: '{{ (state_attr(trigger.entity_id,''last_code'')) == "OG" }}'
      - condition: template
        value_template: '{{ (state_attr(trigger.entity_id,''last_code'')) == "CG" }}'
      - condition: template
        value_template: '{{ (state_attr(trigger.entity_id,''last_code'')) == "NL" }}'
      - condition: template
        value_template: '{{ (state_attr(trigger.entity_id,''last_code'')) == "NP" }}'
        enabled: true
    action:
    - service: rest_command.ajax2dz_event
      data:
        state: '{{states(trigger.entity_id)}}'
        zone: '{{state_attr(trigger.entity_id,''last_zone'')}}'
        deviceClass: '{{device_type}}'
        lastMessage: '{{state_attr(trigger.entity_id,''last_message'')}}'
        previousState: '{{trigger.from_state.state}}'
    max: 10
    mode: queued

in configuration.yaml I have:

rest_command:
  ajax2dz_event:
    url: !secret dzCustomEventAlarm
    method: get

in secrets.yaml I have:

dzCustomEventAlarm:
  'http://ip:port/json.htm?username=xxxxxxx&password=xxxxxxxxx
  &type=command&param=customevent&event=haAlarm&data={"state": "{{state}}", "zone": "{{zone}}", "deviceClass": "{{deviceClass}}",
    "lastMessage": "{{lastMessage}}", "previousState": "{{previousState}}"}'

So smth. like this wouldn’t work? and i need to use automations to publush state?

alarm_control_panel:
  - platform: manual
    name: "Ajax Alarm"
    state_topic: "home/alarm"
    command_topic: "home/alarm/set"
    availability_topic: "home/alarm/availability"
    payload_arm_home: "ARM_HOME"
    payload_arm_away: "ARM_AWAY"
    payload_disarm: "DISARM"
    state_arm_home: "armed_home"
    state_arm_away: "armed_away"
    state_disarm: "disarmed"

You have to bear in mind that you cannot drive Ajax alarm system with SIA. This integration is read only. So the code that I posted is for the sole purpose to let Domoticz know what is the status of each zone. If you wan’t to arm away/dismarm/armed night, as of now you have to tinkere a bit. Please see this post.
The basic idea is to use three controllable relays of your flavor, mine are IP controllable and mimic space control button press.

Yeah, I know that.
I’m already using it via Node-Red SIA for status + separate ESPHome for control with soldering )

ok. So maybe this alarm MQTT configuration will help you? Again this is made for Domoticz integration, you’ll have to adapt the code to fit your setup?

alarm_control_panel:
  - name: "Alarme"
    unique_id: 610
    object_id: 610
    code_arm_required: false
    code_disarm_required: false
    code_trigger_required: false
    state_topic: "domoticz/out/610"
    value_template: > 
      {% set value_map = {
        "0": "disarmed",
        "10": "armed_away",
        "20": "armed_night",
        "30": "triggered"
        }
      %}
      {{ value_map[value_json.svalue1] }}
    payload_arm_night: "20"
    payload_disarm: "0"
    payload_arm_away: "10"
    command_topic: "domoticz/in"
    command_template: >
      {"command": "switchlight", "idx": 610, "switchcmd": "Set Level", "level": "{{action}}"}
    retain: true
    qos: 0

This code sits in mqtts/alarm_mqtt.yaml file and in configuration file there is:

mqtt: !include_dir_merge_named mqtts/
1 Like

Has anyone got the SIA integration to work with any other than Ajax? I have a Dahua alarm system that supports SIA-DC09 but not get any joy getting it to work with this integration. Any tips on troubleshooting?

Here are some screenshots


I’m actually getting so annoyed with Ajax for their lack of basic features on their devices and system. Example: you cannot switch the open/closed status on a door/window contact. When you reach out to them to ask for anything they shut you down saying that it takes months and months to make changes and add new features. Yet lately they seem more interested in releasing new products and the development that goes with it. We have been asking for a public API for years and they don’t want to assist. Yet somehow jeedom got integration through a paid add-on. Even look on their website at the wishlist there are items that have been on there for more than 8 years yet no progress. They also refuse to give you an update on what they are looking at on the wishlist or what items they have already incorporated.
I work for a bank that deals with peoples money and we have serious security systems in place, however we regularly update our systems to compete with our competitors because if you don’t keep up and you become complacent then you loose customers and it’s extremely difficult to get them back.
Rant over. It’s still a good system.

3 Likes

Actually the Jeedom integration requires jeedom to be publicly exposed to internet… and guess what?
Since I removed Jeedom (months ago), Ajax still sends requests via jeedom cloud to my public IP. I blocked them on my firewall.

I’ve contacted jeedom and looks like they have no way to remove me from there. Ajax didn’t provide the capability… it is up to them to remove me some day…

1 Like

There are so many basic features missing that it’s just painful to continue trying to working around them.
I honestly thought that Ajax Systems was a different type of company, but they are not. They might be even worse that other similar companies that operate in the same industry.
Feature requests are completely ignored and the most basic things like checking if a door sensor is opened or not, via SIA, for example, is something so obvious that reading things like “they never heard this request before” is just another nail in the coffin.
I’ve stopped recommending Ajax Systems long time ago.

2 Likes

Does anybody know how to force a Triggered state of alarm zone (Ajax) in HA to go back to Alarmed state (as it was before triggered)? When alarm fires, the zone sticks in Triggered state and my automation works wrong.

The only solution I’ve found so far is to disarm and arm again, may be twice I don’t recall exactly.

Bad news guys.
This is what an Ajax support team replies to mine email regarding integration with HomeKit.

First and foremost, Ajax is a security system. This is our priority.
We think about compliance with safety standards. Integrations into other systems, such as HomeKit or Alexa, can create potential risks, which we cannot allow.

At the moment, we do not have this integration in our plans and we do not know if there will be.

Best regards,
Technical Support Department

So I think that it official now that integration with third party manufactures is not gonna happen neither for HA :frowning:

I got pretty much the same answer about a year ago. It´s obvious that they want to want to push their own “smart” stuff instead of making their products compatible with existing platforms, potentially reaching more customers.
Their loss.

I will move away from Ajax just because of this fact and i´m pretty sure (hopefully) more people will do the same.

Can we use jeedom as a bridge between Ajax and HA?
Ia there are guide or instructions regarding MQTT commands between those 2 platforms (HA & Jeedom) :frowning:

There are several posts in this thread related to this subject. Just search for jeedom. It is certainly feasible, as for me this is not a solution I will experiment because I do not want to add complexity to an already complex system. I can arm away, disarm or arm night the system using HA which I think is good enough.

Thanks for your reply.
Is there any way for getting the status of doorprotect sensors? I need them to trigger automations based on if window is open or closed

Thanks

to my knowledge this not reported by the SIA protocol. So, unfortunately no

Hi folks!

I think that now i have the experience to create a working python library for managing the ajax system… i will keep you updated… if there’s some python programmer here i’ll be happy to work together

I think the main problem you’re going to hit up against, is unwillingness from Ajax themselves around allowing access to their API from Home Assistant - the existing SIA integration does an adequate job with the limited access that it has, but I doubt you’d be able to improve upon that experience, given the lack of support from Ajax.

1 Like