homebridge-adt-pulseHomebridge security system platform for ADT Pulse
ADT Pulse for Homebridge
This is a verified Homebridge plugin for ADT Pulse users that allow homeowners to control their security system and view sensor status through HomeKit. The API relies on the ADT Pulse Web Portal (by Icontrol One).
To use this plugin, here are three simple steps you need to follow:
- Run
npm install homebridge-adt-pulse
- Configure the plugin using the configuration example
- Restart Homebridge
You can also search adt-pulse
using HOOBS or Onzu's Homebridge Config UI. Then proceed to configure the plugin using the included settings in the plugin page.
Configuration
When configuring this plugin, simply add the platform to your existing config.json
file. Mind that the platform
name must always be ADTPulse
.
{
"platforms": [
{
"platform": "ADTPulse",
"name": "ADT Pulse",
"username": "email@email.com",
"password": "1234567890",
"overrideSensors": [
{
"name": "Sample Sensor 1",
"type": "sensor,doorWindow"
},
{
"name": "...",
"type": "..."
}
],
"country": "us",
"logLevel": 30,
"logActivity": true,
"removeObsoleteZones": true,
"resetAll": false
},
{
"platform": "...",
"name": "..."
}
]
}
Plugin Limitations
Even though the plugin name is "ADT Pulse for Homebridge", this Homebridge plugin supports certain ADT hardware. In addition, this plugin is NOT a complete replacement to the official ADT Pulse app.
The hardware configurations supported by this plugin are:
- ADT Security Panel (
system
) - ADT Door/Window Sensors (
doorWindow
) - ADT Glass Break Detectors (
glass
) - ADT Motion Sensors (
motion
) - ADT Carbon Monoxide Detector (
co
) - ADT Fire (Smoke/Heat) Detector (
fire
)
If you have a sensor that is unsupported by this plugin, please submit an issue so I can add support for it.
Due to ADT Pulse limitations, accessories that are connected to the Z-Wave Platform cannot be supported. Consider using other Homebridge plugins.
Recently, ADT has added a multi-factor authentication requirement. If you have already opted-in, please consider creating an alternative account for use.
Force Arming (Arm Away/Stay/Night)
Due to the nature of how HomeKit and ADT Pulse processes setDeviceStatus
commands, this plugin will force arm when it detects active motion or open sensors.
Without force arm, arm away/stay/night may stall and reset to Disarm with no errors.
Before arming, please check the status of your Home (instructions below), as HomeKit will not check if your devices are in an active state.
- Open the Home app
- Tap the Status Details (listed in the Home tab below the title)
- View the ATTENTION area of your home
Arm Night Support
As for ADT Pulse systems, Arm Night is only available for use through the panel itself. Although it is not visible on the Web Portal or the mobile app, you can still place your system in Arm Night mode with this plugin.
Because of the force arming procedure (above), please make sure no devices are open or reporting motion as this may render the Arm Night mode less effective.
Manually Override Sensors
Due to ADT Pulse portal limitations, sensors may be inaccurately detected. Use this setting to manually override default detection features. Optional.
The default is []
. Configure overrideSensors[]
with the values below:
- Set
name
to the name that is displayed in the ADT Pulse portal - Set
type
tosensor,doorWindow
,sensor,glass
,sensor,motion
,sensor,co
, orsensor,fire
NOTE: Examples are noted above in the configuration section.
Set Country
ADT Pulse is available both in the United States and Canada. Use this setting to toggle which country you will be using the plugin in. Optional.
The default is us
. Configure country
with the values below:
- Set
country
tous
for United States - Set
country
toca
for Canada
NOTE: If the country
setting has been specified incorrectly, a warning will be shown then subsequently set to us
.
Log Level (Debugging)
Debugging is difficult without the proper information, in such, this plugin offers a way to filter out messages sent to the logs. Optional.
The default is 30
. Configure logLevel
with the values below:
- Set
logLevel
to10
for errors only - Set
logLevel
to20
for warnings (and the above) - Set
logLevel
to30
for info (and the above) - Set
logLevel
to40
for debugging (and the above) - Set
logLevel
to50
for verbose (and the above)
NOTE: If the logLevel
setting has been specified incorrectly, a warning will be shown then subsequently set to 30
.
NOTE 2: Don't forget to enable Homebridge Debug Mode when setting logLevel
to 40
or above or else debug messages won't be shown.
Log Activity
While the plugin is running, it has the ability to record alarm and sensor activity from the ADT Pulse portal to the Homebridge logs. Optional.
The default is true
. Configure logActivity
with the values below:
- Set
logActivity
totrue
for active mode - Set
logActivity
tofalse
for passive mode
NOTE: Logging alarm and sensor activity requires the logLevel
setting to be set to 30
or greater.
Remove Obsolete Zones
The plugin offers a way to automatically detect and remove obsolete zones. If you have recently experienced sensor reset issues, you may disable this setting. Optional.
The default is true
. Configure removeObsoleteZones
with the values below:
- Set
removeObsoleteZones
totrue
for removal mode - Set
removeObsoleteZones
tofalse
for notification mode
NOTE: If recently, you had sensors removed from ADT Pulse, the plugin will not remove these sensors unless removeObsoleteZones
is set to true
.
Resetting the Plugin
Managing many accessories in a Homebridge environment is already a seemingly hard task, and sometimes you might want to step back and do a reset. Optional.
The default is false
. Configure resetAll
with the values below:
- Set
resetAll
totrue
for reset mode - Set
resetAll
tofalse
for normal mode
NOTE: Once reset is complete, remember to set the resetAll
setting back to false
or else the plugin will just repeat reset mode again.
Developer Information
The script provides an active connection to the ADT Pulse portal. Here is a list of must-knows, just in case you might want to debug (or improve) the plugin:
- Device and zone statuses will be fetched every 3 seconds. If logins have failed more than 2 times, portal sync will pause for 10 minutes.
- Supported versions are
20.0.0-221
and20.0.0-244
. If this plugin does not support either version, a warning will appear in the logs. Please submit an issue to let me know!
Credits and Appreciation
If you would like to show your appreciation for its continued development, you can optionally become my supporter on GitHub Sponsors!
Also, thank you to @kevinmkickey for providing the ADT Pulse script.