{"id":15290615,"url":"https://github.com/zadammac/piminder","last_synced_at":"2026-01-06T04:06:38.403Z","repository":{"id":49212760,"uuid":"257112256","full_name":"ZAdamMac/piminder","owner":"ZAdamMac","description":"A simple manager utility for the Raspberry Pi 3A+ as a docker host, premised on having access to a Pimoroni GFX hat","archived":false,"fork":false,"pushed_at":"2021-06-24T11:04:20.000Z","size":118,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-16T15:55:16.818Z","etag":null,"topics":["flask","gfx-hat","monitor","piminder-api","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://www.arcanalabs.ca/hardware/piminder.html","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ZAdamMac.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null},"funding":{"GITHUB":"zadammac","ko_fi":"ArcLabs"}},"created_at":"2020-04-19T22:07:55.000Z","updated_at":"2024-08-25T18:59:19.000Z","dependencies_parsed_at":"2022-08-28T16:03:02.603Z","dependency_job_id":null,"html_url":"https://github.com/ZAdamMac/piminder","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZAdamMac%2Fpiminder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZAdamMac%2Fpiminder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZAdamMac%2Fpiminder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ZAdamMac%2Fpiminder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ZAdamMac","download_url":"https://codeload.github.com/ZAdamMac/piminder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245232913,"owners_count":20581703,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flask","gfx-hat","monitor","piminder-api","raspberry-pi"],"created_at":"2024-09-30T16:08:47.511Z","updated_at":"2026-01-06T04:06:38.398Z","avatar_url":"https://github.com/ZAdamMac.png","language":"Python","funding_links":["zadammac","https://ko-fi.com/ArcLabs"],"categories":[],"sub_categories":[],"readme":"# Piminder\nA minimal-functionality heads-up-display/dashboard utility for the Raspberry Pi, premised on the [Pimoroni GFX Hat](https://shop.pimoroni.com/products/gfx-hat). This utility operates a small Flask-based RESTful API and provides two helper modules, `monitor` and `helpers`, allowing local scripts and cron jobs to display messages on the HAT in a structured way. Initial development is by [Arcana Labs](https://www.arcanalabs.ca). Development is very casually ongoing, with minor incremental improvements as they become desired within the lab.\n\n## Fitness for Risk\nPiminder is intended for use as a small-scale monitoring utility in a lab/private subnet capacity only. It is not hardened for or intended to for use with a WAN or direct exposure to the internet, and should be protected by a reverse proxy and other traffic shaping rules at all times if present on such a network. The release version, 1.0 and later, includes TLS capabilities. It is strongly recommended you read the documentation fully before configuring and using this product.\n\n## System Requirements\nIt is supposed that the local versions of Raspbian and Python 3 are up to date. The test article also used an up-to-date version of Mariadb. Naturally, the GFX hat is also a requirement as the monitor will not work with any other display.\n\n## Recommended Usage Instructions\nNote: Apart from `SECURITY.md`, all referenced documentation is in the `documentation` folder.\n1. Read the SECURITY.md and NETWORKING.md documentation thoroughly.\n2. Follow the instructions in SERVICE_SETUP.md to install and configure Piminder's service on its target device and create your first auth credentials\n3. `pip install Piminder` on any system where you wish to use `Piminder_helpers` or `Piminder_monitor`.\n4. Configure the monitor and establish it as a service on the host pi based on the instructions in `MONITOR_Setup.md`\n\n## Using Helpers\nThe helpers module exposes a class constructor and several convenience functions to allow scripts to more easily work with the Piminder API. \n\nTo use:\n1. instantiate a PiminderService object using the necessary configuration details:\n   \n```python3\nsomehandler = Piminder_helpers.PiminderService(username, password, hostname, hostport, job_identifier)\n```\n2. use the `.minor()`, `.major()`, and `.info()` methods of that object to post messages directly to the API, with the message as a string of arbitrary length.\n  - Versions 1.1.0 and later: the flags `unique` and `update_timestamp` can now be passed to all alert levels to prevent flooding with frequently-run monitors.\n\n## Using the APIs Directly.\nThe Piminder API is a REST-like API exposed via flask, at `$servicehost/api/messages/` and `$servicehost/api/users`. The API expects basic authentication.\n\n## Interacting with Piminder\nCareful observation of the GFXHat will note that each of the six buttons is individually marked. When Piminder is in operation, these buttons perform the following functions:\n- \"^\" will scroll the current message upward.\n- \"v\" will scroll the current message downward.\n- \"\u003c\" will mark the message as read.\n- \"-\" will switch to the previous message.\n- \"+\" will switch to the next message\n- \"Circle-Dot\" will delete the currently displayed message.\n\nEach of these buttons also has a corresponding LED:\n- \"^\" indicates that there is more to this message if you scroll up.\n- \"v\" indicates that there is more to this message if you scroll down\n- \"\u003c\" indicates this message is unread\n- \"-\" indicates there is a message before this one.\n- \"+\" indicates there is a message after this one.\n\nThe LCD is backlit, and the colour is used to indicate message severity. By default, this is green for `info`, yellow for `minor`, and red for `major`. These values can be changed in `/src/monitor/monitor.conf` by providing a hex colour code in the HTML-standard format, eg `#123456`.\n\n## Special Font Characters\nThe font is a UTF-8 font, though the full keyspace is not defined. Characters 32-126 (the normal printing range) is defined. In addition, 12 special characters are defined:\n\n|Python Escaped String Literal|Character Description|\n|-----------------------------|---------------------|\n|`\\u0082`|Envelope Icon|\n|`\\u0081`|Progress Bar, Left End, Empty|\n|`\\u0082`|Progress Bar, Left End, Filled|\n|`\\u0083`|Progress Bar, Middle, Empty|\n|`\\u0084`|Progress Bar, Middle, Full|\n|`\\u0085`|Progress Bar, Right End, Empty|\n|`\\u0086`|Progress Bar, Right End, Full|\n|`\\u0087`|Major Severity Icon (! in Triangle)|\n|`\\u0088`|Minor Severity Icon (? in Square)|\n|`\\u0089`|Info Severity Icon (i in Circle)|\n|`\\u00BA`|Elipsis (...)|\n|`\\u008B`|Clock Icon|","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzadammac%2Fpiminder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzadammac%2Fpiminder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzadammac%2Fpiminder/lists"}