Skip to main content

pyimaprotect - Python IMA Protect Alarm UNOFFICIAL

https://img.shields.io/pypi/v/pyimaprotect.svg https://img.shields.io/pypi/pyversions/pyimaprotect.svg https://img.shields.io/travis/pcourbin/pyimaprotect.svg Documentation Status Updates https://codecov.io/gh/pcourbin/pyimaprotect/branch/main/graph/badge.svg pre-commit Black Project Maintenance BuyMeCoffee
Get and set alarm status from your IMA Protect Alarm.
You can get and set the status, get the list of contacts and download your images.

This work is originally developed for use with Home Assistant and the custom component imaprotect.

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.

List of Alarm status values

Alarm Value

State

-1

UNKNOWN

0

OFF

1

PARTIAL

2

ON

Credits

This work was based on the work of lplancke and chris94440 for Jeedom.
This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

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)

Source distribution for pyimaprotect 3.2.5
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)

Table of built distributions (wheels) for pyimaprotect 3.2.5
File Interpreter ABI Platform Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page