Get alarm status and informations from the IMA Protect API.
Project description
pyimaprotect - Python IMA Protect Alarm UNOFFICIAL
This work is originally developed for use with Home Assistant and the custom component imaprotect.
Free software: MIT license
Documentation: https://pyimaprotect.readthedocs.io.
Features
Since the last update of IMAProtect “API” (05/2021), this plugin allows you to:
get the status of your alarm:
from pyimaprotect import IMAProtect, STATUS_NUM_TO_TEXT
ima = IMAProtect('myusername','mysuperpassword')
# Use contract_number if you have multiple contracts, headless if you want to run in headless mode, timeout if you want to set a custom timeout and remote_webdriver if you use a remote webdriver for selenium, see https://hub.docker.com/r/selenium/standalone-firefox
# ima = IMAProtect(username='myusername', password='mysuperpassword', contract_number='contractid', headless=True, timeout=30, remote_webdriver='http://localhost:4444')
print("# Get Status")
imastatus = ima.status
print("Current Alarm Status: %d (%s)" % (imastatus,STATUS_NUM_TO_TEXT[imastatus]))
set the status of your alarm:
from pyimaprotect import IMAProtect
ima = IMAProtect('myusername','mysuperpassword')
print("# Set Status")
ima.status = 0 # 0 to OFF, 1 to PARTIAL and 2 to On
get the list and information of your registered contacts:
from pyimaprotect import IMAProtect
ima = IMAProtect('myusername','mysuperpassword')
print("# Get Contact List")
contact_list = ima.get_contact_list()
for contact in contact_list:
print(contact)
download the images/photos taken with your connected elements:
from pyimaprotect import IMAProtect
ima = IMAProtect('myusername','mysuperpassword')
print("# Download Images")
ima.download_images() # Download images to 'Images/' folder. One subfolder per camera.
ima.download_images("MyImages/") # Download images to a defined directory 'MyImages/' folder.
Parameters
username: Username used to connect to https://www.imaprotect.com/
password: Password used to connect to https://www.imaprotect.com/
contract_number (optional): Contract number if you have multiple contracts.
remote_webdriver (optional): URL of the remote webdriver server if you use one (e.g. http://localhost:4444).
Using the remote_webdriver parameter
Using the remote_webdriver parameter is useful if you are using a selenium server like the selenium/standalone-firefox docker image. .. note:: Example docker-compose to run a Selenium standalone-firefox server (use as remote_webdriver)
services:
firefox:
image: selenium/standalone-firefox:130.0-20251025
shm_size: 2g
ports:
- "4444:4444"
- "7900:7900"
# Usage: - 1. Save this as docker-compose.yml in the project folder. - 2. Start with: docker-compose up -d - 3. Use remote_webdriver=’http://localhost:4444’ when creating IMAProtect.
Methods
login(): open a session with the IMA Protect Alarm website
logout(): close the session with the IMA Protect Alarm website
status: property to get or set the status of your IMA Protect Alarm. See the next table to understand the values.
get_contact_list(): get a JSON with the list and information about your registered contacts.
download_images(): download the images/photos taken with your connected elements.
Alarm Value |
State |
|---|---|
-1 |
UNKNOWN |
0 |
OFF |
1 |
PARTIAL |
2 |
ON |
Credits
History
3.2.5 (2025-10-30)
Add support for multiple user agents in IMAProtect.
Improve error handling and logging.
Add simulate_typing_to_element method to IMAProtect to simulate human-like typing in input fields thanks to @falconslag
3.2.3 (2025-10-29)
Add timeout parameter to IMAProtect to set a custom timeout for selenium webdriver waits.
Add headless parameter to IMAProtect to run selenium in headless mode.
3.2.2 (2025-10-28)
Update login procedure since IMA Protect login page changed again…, thanks to @falconslag
3.1.6 (2024-03-31)
Update RE_ALARM_TOKEN since IMA Protect login page changed again…, thanks to @Chrilk
3.1.5 (2023-02-18)
Update login procedure according to new IMAProtect “API”, thanks to @Thesola10
3.1.2 (2021-11-05)
Update login procedure according to new IMAProtect “API”
Update download images procedure according to new IMAProtect “API”
3.1.0 (2021-05-22)
Add cookie expire usage to reduce the number of login
Add a logout function
3.0.0 (2021-05-22)
Add option to change the alarm (set/get)
Add function to get the list of contacts
Add function to download the images
get_status has been removed, status is now a property to get/set the alarm.
2.0.0 (2021-05-09)
Update using new IMAProtect “API”
No more other info (name, contract, etc.), only alarm status but faster result.
1.0.0 (2021-04-11)
First release on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pyimaprotect-3.2.5.tar.gz.
File metadata
- Download URL: pyimaprotect-3.2.5.tar.gz
- Upload date:
- Size: 18.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.24
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
326860050693547d8a789c3dcc67405b52af1578965cac50ce0d0f0ab6c6a75f
|
|
| MD5 |
5f33225f7a20b810e3d20014740194f0
|
|
| BLAKE2b-256 |
5376e9d9f79e29018d5698e1440bf3d8dd47b74f14e90f715e29098c517d2983
|
File details
Details for the file pyimaprotect-3.2.5-py3-none-any.whl.
File metadata
- Download URL: pyimaprotect-3.2.5-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.24
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
efeaf644f4fccd93f0f3dffa4ce1586929398c0eb80ba5f7fdc5f3cd3f836108
|
|
| MD5 |
c7b70108c2680541206e7fb1fee7e898
|
|
| BLAKE2b-256 |
379dcfb89b2ff5acd90b7e9bacf5348274bf510dac7fefc73c8d7df3c51c2e16
|