Skip to main content

Get alarm status and informations from the IMA Protect API.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyimaprotect-3.2.5.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyimaprotect-3.2.5-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

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

Hashes for pyimaprotect-3.2.5.tar.gz
Algorithm Hash digest
SHA256 326860050693547d8a789c3dcc67405b52af1578965cac50ce0d0f0ab6c6a75f
MD5 5f33225f7a20b810e3d20014740194f0
BLAKE2b-256 5376e9d9f79e29018d5698e1440bf3d8dd47b74f14e90f715e29098c517d2983

See more details on using hashes here.

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

Hashes for pyimaprotect-3.2.5-py3-none-any.whl
Algorithm Hash digest
SHA256 efeaf644f4fccd93f0f3dffa4ce1586929398c0eb80ba5f7fdc5f3cd3f836108
MD5 c7b70108c2680541206e7fb1fee7e898
BLAKE2b-256 379dcfb89b2ff5acd90b7e9bacf5348274bf510dac7fefc73c8d7df3c51c2e16

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page