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