Aegis for Ajax — Full Ajax Security Systems integration (works with all co-branded apps)

Hi everyone!

I’ve built a custom integration for Ajax Security Systems that works with any co-branded Ajax app (Protegim, ADT, G4S, Elotec, and 20+ more).

:warning: This is NOT an official Ajax Systems product. It is an independent, community-driven integration with no affiliation to Ajax Systems. That said, the goal is to provide a fully-featured, production-quality integration that covers everything you need to manage your Ajax alarm from Home Assistant — from real-time sensors and alarm control to photo capture, security events, and network monitoring.

What it does

Aegis connects to the Ajax cloud using the same gRPC protocol as the official mobile app — no Enterprise API key needed, just your regular account credentials.

Supported features:

  • :locked_with_key: Alarm control panel — arm away, night mode, disarm, force arm (ignoring open sensors)
  • :door: Door/window sensors — real-time open/close with < 1 second latency
  • :person_running: Motion detection — instant alerts when armed
  • :camera: Photo on Demand — capture photos from MotionCam PhOD devices, stored locally with timestamp overlay
  • :thermometer: Temperature, battery, signal for all devices
  • :locked: Tamper, connectivity, problem diagnostics per device
  • :globe_with_meridians: Hub network — Ethernet/Wi-Fi/GSM status, IP addressing, cellular signal (via HTS protocol)
  • :light_bulb: Switches and lights — relays, wall switches, dimmers
  • :loudspeaker: Security events — alarm, arm/disarm, tamper, panic, fire, flood, motion, etc. with device name and room info
  • :camera_with_flash: Media browser — browse all captured photos per device
  • :counterclockwise_arrows_button: 8 automation blueprints included (intrusion capture, tamper alert, low battery, connectivity loss, and more)
  • :label: Auto-labeling — entities are automatically labeled for easy grouping in automations
  • :globe_showing_europe_africa: 14 languages supported
  • :key: 2FA (TOTP) supported

Installation

Available via HACS — click here to add the repository:

:backhand_index_pointing_right: Install via HACS

Or manually:

  1. Open HACS → Custom repositories
  2. Add https://github.com/bvis/aegis-hass with category Integration
  3. Search for “Aegis for Ajax” and install
  4. Restart Home Assistant

Then add the integration:

:backhand_index_pointing_right: Add Aegis for Ajax

GitHub: GitHub - bvis/aegis-hass: Aegis — Unofficial Home Assistant integration for Ajax Security Systems and co-branded apps · GitHub

How it works

The integration uses three protocols:

  • gRPC stream for real-time sensor updates (door, motion, battery, temperature…)
  • HTS binary protocol for hub network data (Ethernet, Wi-Fi, GSM, power)
  • FCM push for security events and photo URL retrieval

It works with any Ajax hub model (Hub, Hub 2, Hub 2 Plus, Hub 2 4G, Hub Hybrid, etc.) and supports 100+ device types.

Requirements

  • Home Assistant 2024.1.0+
  • An Ajax Security account
  • Your co-branded app’s application label (included in a dropdown during setup — 20+ known labels)

Would love feedback from other Ajax users! If you have a different co-branded app and it works (or doesn’t), please let me know.

12 Likes

Nice! I'll try it out right now!

Fantastic integration and great support from @basi .

The only issue I've struggled with is getting FCM notifications working as it involves extracting the credentials from the Ajax app. I did manage to get the credentials but the integration rejected them as it reported they didn't all come from the same package.

If anyone has any further guidance on getting FCM notifications working then please post your methods and how you did it.

Please do NOT post ANY credentials, just the method of extracting and any method you used when entering these into the integration.

I think it's a great integration, at least from my point of view. I've been trying to integrate Ajax with Home Assistant for a long time; in fact, we've always had a sort of love/hate relationship because of things like this (not being able to integrate my alarm with the rest of the home's logic), among other things. I really appreciate your work.

My experience is that the integration works well so far, but I'm missing the instant update when, for example, I arm the alarm from my phone, remote, or from anywhere other than the Home Assistant app. The delay is the 60 seconds that the integration allows to be configured. If I'm not mistaken, like @Andyh747, I need to configure the FCM credentials for the arm/disarm status update to be instant.

Could you help us with this issue? I've tried searching for those credentials in my installation without success.

Thanks

Trying add integration in Custom repositories and comes with 401 error. Any thoughts?

Hi @diabliya, in the project readme there's a section dedicated to the FCM configuration: GitHub - bvis/aegis-hass: Aegis — Unofficial Home Assistant integration for Ajax Security Systems and co-branded apps · GitHub

It's all I can do for not distribute sensible information or promote non-compliant actions that could affect your account or all the integration.

Did you follow the README install instructions?

I've now set it up, and I am already using it to automatically arm / disarm our garage when the garage door opens. (Garage also integrated in home assistant)

I've not found any need for FCM credentials for this integration's entities to update instantly. I choose to use Ajax's own SIA integration for home assistant that is instant and read only. The SIA entities i rely on for status changes, and Aegis I use to send the commands.

For privacy concerns I recommend creating a new Ajax account for the purposes of this integration, and inviting it to your Ajax home. For that account I've removed its permissions to view photos and video, and it is also a user and not admin account in the Ajax home.

This is a perfect use case! This way all the FCM "flow" goes in local through SIA! The recommendation of use a different user for the integration is what I already do and after review the README I saw I didn't suggest this explicitly, I'll do in a while.

Thanks for this, I could add your approach as an alternative use in the docs.

I think your work here is great, we are already using it multiple times a day.
Another case:
When both phones are plugged into charger and its after 21:00, then arm night mode. When one phone is unplugged after 06:00, then disarm night mode.

One problem. We have multiple zones, some that are always armed. Right now, I can only disarm all zones using aegis.

So my "disarm night mode" automation is: disarm, and re-arm specific zones.

In the app you can disarm night mode, and Ajax won't disarm the zones that are "regular" armed. It would be great if Aegis could do that same action.

@mikkelzzz3 could you create an issue in the project requesting this change/enhancement? It would be much easier for me for doing a follow-up :folded_hands:

1 Like

Thank you for your work. This is a very useful integration. Would it also be possible to fully integrate the LifeQuality sensors so they can be used in automations?

And once again, thank you for all the effort you've put into this project. :slightly_smiling_face:

Thanks for your words! And about your question: yes but, please, could you open an issue describing what you need in the repo? it helps me to do the right follow-up to every request or issue :folded_hands:

I used Claude to guide me and give me the exact commands to extract the keys. Took me 5 minutes

Hi,
Seems to be nice, and your integration interest me a lot!

In the readme you say "use a dedicated Ajax account, separate from the one on your phone". But if I want to create another account I need another phone number (mine is used for the admin account) but I don't have a second phone number... Is there a solution to avoid that? I don't want to use a phone number from my family or my friends....

Thanks in advance!

It's not mandatory to use a different user for the integration, but in case you reuse the same the FCM messages won't reach the integration as the same channel is used in the application. But you can live without them, the integration will work partially.

And the requirement of another mobile number is a requirement from AJAX, I don't know how to circumvent this, sorry. :sweat_smile:. I used my wife number for this.

I asked Ajax support, each account must have a phone number, and a phone number can be linked only to one account. They said it is a security reason.
I will deal with that.

1 Like

It works. Are you considering adding the following few devices: Ajax WaterStop, CombiProtect. I can help in any way I can.

Of course! Please, create an issue in the repo with all details as posible and I’ll tackle it as soon as posible.

Fabulous work and many thanks for this.

We’ve recently had a system installed and I’ve set this up with a distinct account for HA usage (I can’t use SIA option as my although my Hub is connected via Ethernet, I’ve put it in a fully isolated VLAN, meaning it can only communicate with the internet and nothing else).

The automation options in Ajax itself are very limited, for example scheduling night mode to arm/disarm at fixed times. I’ve already setup a couple of automations that do the following:

  1. Automatically arm night mode after a certain time, on the condition that the system is currently disarmed (you don’t want to downgrade away mode to night mode) and that chosen perimeter sensors have been closed/stable for a set period of time. It notifies the household via TTS,on screen alerts via our TVs and HA phone notifications as well.

It’s also smart enough that if a family member comes home whilst it’s engaged, if they don’t re-arm after entry/disarm, HA will re-engage night mode without intervention.

  1. Automatically disarm night mode when certain criteria are satisfied in the morning. Means the property remains protected even if the household is having a lie in.

Now I just need to get FCM up and running. :+1:

1 Like