Skip to main content

Apple HomeKit integration for Diagral alarm systems

Project description

DiagralHomekit

PyPI version

Allow to control your Diagral alarm systems through Apple Homekit.

First, you need to create a configuration file ~/.diagralhomekit/config.ini with connection details for all Diagral systems.

[diagral:Home]
name=[an explicit name for this system]
login=[email address of the Diagral account]
password=[password for the Diagral account]
imap_login=[IMAP login for the email address receiving alarm alerts]
imap_password=[IMAP password]
imap_hostname=[IMAP server]
imap_port=[IMAP port]
imap_use_tls=[true/1/on if you use SSL for the IMAP connection]
master_code=[a Diagral master code, able to arm or disarm the alarm]
system_id=[system id — see below]
transmitter_id=[transmitter id — see below]
central_id=[central id — see below]

system_id, transmitter_id and central_id can be retrieved with the following command, that prepares a configuration file:

python3 -m diagralhomekit --config-dir ~/.diagralhomekit --create-config 'diagral@account.com:password'

Then you can run the script:

python3 -m diagralhomekit --port 6666 --config-dir ~/.diagralhomekit -v 2

On the first launch, a QR code is displayed and can be scanned in Homekit, like any Homekit-compatible device.

You can send logs to Loki with --loki-url=https://username:password@my.loki.server/loki/api/v1/push. You can also send alerts to Sentry with --sentry-dsn=my_sentry_dsn.

Everything can be configured by environment variables instead of arguments:

DIAGRAL_PORT=6666
DIAGRAL_CONFIG=/etc/diagralhomekit
DIAGRAL_SENTRY_DSN=https://sentry_dsn@sentry.io/42
DIAGRAL_LOKI_URL=https://username:password@my.loki.server/loki/api/v1/push
DIAGRAL_VERBOSITY=1

As many sensitive data must be stored in this configuration file, so you should create a dedicated email address and Diagral account.

Plex sensor

A presence can be detected when a specified Plex player is playing something:

[plex:appletv_web]
server_token=[authentication token]
server_url=[url of your Plex server]
player_name=[Displayed name for the player]
player_device=None,
player_product=[Product name of the targeted player]
player_title=[Title of the targeted player]
player_address=[IP address of the targeted player]

Only one of the last four properties is required to match with the targeted player. To get actual property values, you can use curl:

curl -H Accept:application/json -H X-Plex-Token:[authentication token] [url of your Plex server]/status/sessions

HTTP monitoring

You can monitor some websites, as air purifier sensors (no Homekit sensor is available for HTTP monitoring…):

[internet:website]
url=[url to check]
name=[Displayed name]

Weather monitoring

You can monitor weather, and emulate a presence when it will rain in the next 10 minutes:

[meteofrance:paris]
name=Paris
latitude=48.866667
longitude=2.333333
country=FR
region=Île-de-France

UPS monitoring

UPS can also be monitoring, as soon as NUT is locally installed (standard UPS monitoring server on Linux.

[ups:home]
name=eaton650

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

diagralhomekit-0.9.16.tar.gz (25.9 kB view details)

Uploaded Source

Built Distribution

diagralhomekit-0.9.16-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

Details for the file diagralhomekit-0.9.16.tar.gz.

File metadata

  • Download URL: diagralhomekit-0.9.16.tar.gz
  • Upload date:
  • Size: 25.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.2 Darwin/24.3.0

File hashes

Hashes for diagralhomekit-0.9.16.tar.gz
Algorithm Hash digest
SHA256 3310f472e81e40980941b5d01c326a5bfcd4b1e2add68be3124c602dc36d15b4
MD5 49fe8764596119c764533a75d0a7c9a7
BLAKE2b-256 48f63ce615c969e5012023a31bee731a29da05996cf60a37a42b8f4d1e25ca45

See more details on using hashes here.

File details

Details for the file diagralhomekit-0.9.16-py3-none-any.whl.

File metadata

  • Download URL: diagralhomekit-0.9.16-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.1 CPython/3.13.2 Darwin/24.3.0

File hashes

Hashes for diagralhomekit-0.9.16-py3-none-any.whl
Algorithm Hash digest
SHA256 3cb80481e45466b94e83d7838c7027cce1c3da119bc91036d79fa6a86543decd
MD5 ecdd49d8038324e4937a7af12eaacef6
BLAKE2b-256 4c0a6583865dd372ee4e465c3157aab4c6899a168698c786d74b258c26142e0c

See more details on using hashes here.

Supported by

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