This is a Raspberry PI Zero based Jira Service Tickets Monitor written in Python.
A Flask web server for monitoring the APIM Jira Service Tickets board and display the number of open tickets on a neopixel led stripe.
The project supports three different LED display modes:
- Hardware LEDs (Raspberry Pi): Uses real NeoPixel LED strips via
rpi_ws281xoradafruit-circuitpython-neopixel - Qt GUI (Development): Graphical display using PySide6 - automatically used on Mac/PC when PySide6 is installed
- LEDs are arranged vertically with LED 0 at the bottom
- Windows are positioned side-by-side for multiple strips
- Console (Fallback): Text-based console output - used when Qt is not available
The appropriate display mode is automatically selected based on the platform and available libraries.
There are multiple test scripts to verify the Qt display functionality:
-
Vertical Layout Test - Verifies LED 0 is at bottom:
python demo/test_vertical_layout.py
-
Simple Test - Basic QtPixel functionality:
python demo/test_qtpixel_simple.py
-
NeoPixelController Test - Tests integration with controller:
python demo/test_neopixel_controller.py
-
APIMON Simulation - Full simulation without Flask/Jira:
python demo/simulate_apimon.py
-
Animated Demo - Shows animated LED strips:
python demo/demo_qtpixel.py
For detailed debugging information, see QTPIXEL_DEBUGGING.md, QTPIXEL_VERTICAL.md, and QTPIXEL_FIX.md
in folder doc/QtPixel.
- install the needed python modules
make install - create an initial git commit (if you start from scratch)
- create the first version tag like
git tag 0.1.0 - start server be invoke
make start
git clone <https-projekt-url>
Setup .env file with OAuth client-id and secret. Copy .env-example to .env and fill in valid data.
Copy the service config file into place:
sudo cp etc/apimon.service /etc/systemd/system/
Edit the file to change the path to the apimon directory.
Setup and start the service:
sudo systemctl daemon-reload
sudo systemctl enable apimon
sudo systemctl start apimon
sudo systemctl stop apimon
sudo systemctl status apimon
sudo systemctl restart apimon
Read the logs:
journalctl -fu apimon
Configure a cronjob to execute the script ./bin/update_and_restart.sh
For example like this:
*/5 * * * * /path/to/update_and_restart.sh >> /path/to/update_and_restart.log 2>&1
See this link: https://wiki.debian.org/UnattendedUpgrades