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.
Metadata
Release files for pyimaprotect 3.2.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyimaprotect-3.2.5.tar.gz | 18.6 kB | Without provenance | Details for pyimaprotect-3.2.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pyimaprotect-3.2.5-py3-none-any.whl | Python 3 | none | any | Details for pyimaprotect-3.2.5-py3-none-any.whl |
Total release size: 28.8 kB
Release files / pyimaprotect-3.2.5.tar.gz
| Download URL | pyimaprotect-3.2.5.tar.gz |
|---|---|
| Size | 18.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
326860050693547d8a789c3dcc67405b52af1578965cac50ce0d0f0ab6c6a75f
|
|
BLAKE2b-256 checksum How to use checksums |
5376e9d9f79e29018d5698e1440bf3d8dd47b74f14e90f715e29098c517d2983
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.24
|
Release files / pyimaprotect-3.2.5-py3-none-any.whl
| Download URL | pyimaprotect-3.2.5-py3-none-any.whl |
|---|---|
| Size | 10.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
efeaf644f4fccd93f0f3dffa4ce1586929398c0eb80ba5f7fdc5f3cd3f836108
|
|
BLAKE2b-256 checksum How to use checksums |
379dcfb89b2ff5acd90b7e9bacf5348274bf510dac7fefc73c8d7df3c51c2e16
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.9.24
|
Security for pyimaprotect 3.2.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.