Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

A powerful and easy-to-use Python library for seamless integration with the Diagral alarm system.

license last-commit repo-top-language repo-language-count CodeCov

Last Release Last Release Date Python Lint Action Release & Doc Action



pydiagral

Welcome to the documentation for pydiagral, a Python library for interacting with the Diagral API.

📍 About pydiagral

pydiagral is an asynchronous Python interface for the Diagral alarm system. This library allows users to control and monitor their Diagral alarm system through the official API.

✅ Requirement

To use this library, which leverages the Diagral APIs, you must have a Diagral box (DIAG56AAX or DIAG59AAX). This box connects your Diagral alarm system to the internet, enabling interaction with the alarm system via the API. DIAG56AAX is End of Sales but you can find more information about the DIAG59AAX available inside the DIAG99AGX.

📦 Key Features

The DiagralAPI class offers the following functionalities:

  • Authentication:

    • Connect to the Diagral API with username and password
    • Log in to obtain an access token
    • Create, validate, and delete API keys
  • System Configuration:

    • Retrieve alarm configuration
  • System Information:

    • Obtain system details
    • Retrieve the current system status
    • Manage webhooks
    • Manage anomalies
  • System Interraction:

    • Activate or Desactivate system (partially or globally)
    • List automatism rules (running their actions is not implemented yet)

🚀 Quick Start

To get started with pydiagral, follow these steps:

  1. Installation:

    pip install pydiagral
    
  2. Example

A modular and easy-to-use test script is available example_code.py to help you get started with the library.

Simply create a .env file with the following content:

USERNAME=your_email@example.com
PASSWORD=your_password
SERIAL_ID=your_serial_id
PIN_CODE=your_pin_code
LOG_LEVEL=DEBUG

And run the example_code.py.

  1. Request timeout

Each request to the Diagral cloud may take up to 30 seconds. To allow more, set request_timeout (in seconds) when creating the client:

async with DiagralAPI(
    username=username,
    password=password,
    serial_id=serial_id,
    request_timeout=60,
) as diagral:
    ...

To give a single call a shorter deadline, wrap it in asyncio.timeout(). That deadline cannot exceed request_timeout.

  1. Shared session

To send requests through an aiohttp.ClientSession you already manage, pass it as session. The client uses it as is and never closes it:

async with aiohttp.ClientSession() as session:
    async with DiagralAPI(
        username=username,
        password=password,
        serial_id=serial_id,
        session=session,
    ) as diagral:
        ...

Without session, the client opens its own on async with and closes it on exit.

📖 Documentations

Package Documentation

Library documentation is available here.

Package Structure

For detailed library documentation, please refer to the following sections:

  • API Reference: Comprehensive documentation of the DiagralAPI class and its methods
  • Data Models: Description of the data structures used
  • Exceptions: List of package exceptions

Diagral API Official documentation

Official Diagral API is available here.

🙋 FAQ

How to find Serial on DIAG56AAX

The serial number can only be found with physical access to the box. You need to open it, and you will find a label with a QR Code.

On this label, there is a 14-character code that represents the serial number of the box.

How to find your Diagral Serial

🤝 Contribution

Contributions are welcome! Here are several ways you can contribute:

  • Submit Pull Requests: Review open PRs, and submit your own PRs.
  • Report Issues: Submit bugs found or log feature requests.
Contributing Guidelines
  1. Fork the Repository: Start by forking the project repository to your GitHub account.
  2. Clone Locally: Clone the forked repository to your local machine using a Git client.
    git clone https://github.com/mguyard/pydiagral
    
  3. Create a New Branch: Always work on a new branch, giving it a descriptive name.
    git checkout -b new-feature-x
    
  4. Make Your Changes: Develop and test your changes locally.
  5. Commit Your Changes: Commit your changes with a clear and concise message that follows the Conventional Commits guidelines.
    git commit -m 'feat: Implemented new feature x.'
    
  6. Push to GitHub: Push the changes to your forked repository.
    git push origin new-feature-x
    
  7. Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.

Open your PR against the dev branch. Once it is reviewed and approved, it is merged there, then promoted to beta for a prerelease and to main for a stable release.

📄 License

pydiagral is distributed under the GPL-v3 License. See the LICENSE file for more details.

Metadata

Release files for pydiagral 2.0.0b2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pydiagral 2.0.0b2
File Size Uploaded Provenance
pydiagral-2.0.0b2.tar.gz 64.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for pydiagral 2.0.0b2
File Interpreter ABI Platform
pydiagral-2.0.0b2-py3-none-any.whl Python 3 none any Details

Total release size: 105.3 kB

Release files / pydiagral-2.0.0b2.tar.gz

Download URL pydiagral-2.0.0b2.tar.gz
Size 64.1 kB
Tags Source
SHA-256 checksum
How to use checksums
16a0669213d1a3b7a41083f6634b8152ce3b4fbaa56264c16ccca7e733357945
BLAKE2b-256 checksum
How to use checksums
974219ab54e3a3538ba5d0b0536bdda7c5a89fee2d427127acb550210a5cfaf7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Release files / pydiagral-2.0.0b2-py3-none-any.whl

Download URL pydiagral-2.0.0b2-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1ba311aa0dabbb7517dcddfa44a1a102af2a0d3724079735dcd640d7b8bfa67c
BLAKE2b-256 checksum
How to use checksums
27a2c7937e9b38c02742f6c75122e84be98046aa137e47ddc9cec13e5c85ed6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

Security for pydiagral 2.0.0b2

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pydiagral-2.0.0b2.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 25, 2026.

Transparency log

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