Pikud Ha'oref Alarm Tracking
Polls the unofficial API endpoint every second for incoming alarms. Prints active alarms as they occur. Prints routine messages once every 5 minutes by default.
The easiest way to install is from PyPI with
$ pip install alarmpy
You can then run the
alarmpy executable directly:
$ alarmpy --help
For development usage it's recommended to clone the git repo and use
$ git clone https://github.com/yuvadm/alarmpy $ cd alarmpy $ pipenv sync -d $ pipenv run alarmpy
For the default usage after installation, just run:
- Set the output language using
--language [en|he|ar|ru], this uses the official city and area name translations for Hebrew, Arabic, English and Russian.
- In case of RTL issues in the terminal use
--reverseto output all names in reverse.
--highlight abcin order to highlight any alarm which contains the string
The unofficial API is limited for use for Israeli-originating IPs only. In order to use alarmpy from outside Israel, users must route traffic through an Israeli exit point. The
HTTPS_PROXY environment variable is supported for this use case.
Advanced flags can be set as described in the usage:
$ pipenv run alarmpy --help Usage: alarmpy.py [OPTIONS] Options: --language [en|he|ar|ru] Alert language --highlight TEXT String to search for and highlight in case of alarm --reverse Reverse Hebrew/Arabic output for terminals with RTL bugs --polling-delay INTEGER Polling delay in seconds --routine-delay INTEGER Routine message delay in seconds --alarm-id Print alarm IDs --repeat-alarms Do not suppress ongoing alarms --quiet Print only active alarms --desktop-notifications Create push notifications on your desktop notification center (currently only in Mac OS) --mqtt-server TEXT Hostname / IP of MQTT server (optional) --mqtt-client-id TEXT MQTT client identifier --mqtt-port INTEGER Port for MQTT server --mqtt-topic TEXT Topic on which to send MQTT messages --mqtt-filter TEXT Payload value to filter before sending as a message (semicolon separated) --output-test Print a debug output and exit --help Show this message and exit.
Integration with an MQTT server provides the ability to send custom MQTT messages for all or some of the alerts that are received. MQTT requires
paho-mqtt to be installed separately as an optional dependency.
To enable, specify at least the following parameters via the command line:
mqtt-server- The MQTT Server hostname or IP, e.g.
mqtt-topic- The MQTT topic to which the MQTT message will be sent, e.g.
Additional optional parameters for MQTT integration are:
mqtt-client-id- The ID of the MQTT client used by alarmpy. This will be used to connect to the MQTT server. Default:
alarmPyClient. This only needs to be change in case you plan to have more than one instance of alarmpy running
mqtt-port- The port on which the MQTT server is listening to. Default:
When MQTT is enabled, all alerts are sent as separate messages on the specified topic. In case there is a desire to include only specific alert, use the
mqtt-filter parameter to provide a semicolon separated list of substrings enclosed in double quotes. Each alert city and area will be checked against all filters, and only when a match is found, will an MQTT message be sent. For example: