{"id":36027588,"url":"https://github.com/kollokollo/MQTT-Hyperdash","last_synced_at":"2026-01-17T02:00:49.306Z","repository":{"id":55422416,"uuid":"229084017","full_name":"kollokollo/MQTT-Hyperdash","owner":"kollokollo","description":"A fast MQTT dashboard application and rule engine framework written in C for Linux, Raspberry Pi and WINDOWS.","archived":false,"fork":false,"pushed_at":"2022-02-09T07:14:55.000Z","size":6195,"stargazers_count":8,"open_issues_count":4,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2023-02-27T16:28:24.479Z","etag":null,"topics":["cockpit","control-systems","dashboard","dashgen-naming-conventions","internet-of-things","iot","linux","monitoring","mqtt","mqtt-hyperdash","raspberry-pi","rule-engines","smarthome"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kollokollo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-12-19T15:29:55.000Z","updated_at":"2022-05-01T03:20:53.000Z","dependencies_parsed_at":"2022-08-15T00:00:44.175Z","dependency_job_id":null,"html_url":"https://github.com/kollokollo/MQTT-Hyperdash","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/kollokollo/MQTT-Hyperdash","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kollokollo%2FMQTT-Hyperdash","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kollokollo%2FMQTT-Hyperdash/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kollokollo%2FMQTT-Hyperdash/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kollokollo%2FMQTT-Hyperdash/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kollokollo","download_url":"https://codeload.github.com/kollokollo/MQTT-Hyperdash/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kollokollo%2FMQTT-Hyperdash/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28492047,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"online","status_checked_at":"2026-01-17T02:00:07.808Z","response_time":85,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["cockpit","control-systems","dashboard","dashgen-naming-conventions","internet-of-things","iot","linux","monitoring","mqtt","mqtt-hyperdash","raspberry-pi","rule-engines","smarthome"],"created_at":"2026-01-10T15:00:40.727Z","updated_at":"2026-01-17T02:00:49.231Z","avatar_url":"https://github.com/kollokollo.png","language":"C","funding_links":[],"categories":["Visualization, Dashboards"],"sub_categories":["Misc"],"readme":"\u003cimg alt=\"MQTT-Hyperdash\" src=\"icons/MQTT-Hyperdash-logo.png\" width=\"120\" /\u003e\n\n## MQTT-Hyperdash\n\n(C) 2019-2021 by Markus Hoffmann\n\nA universal MQTT dashboard and rule engine framework.\n\n\u003cpre\u003e\nVersion     : 1.03\nLicense     : GPLv2\nDescription :\n\u003c/pre\u003e\n\nMQTT-Hyperdash is a fast and efficient dashboard (GUI) for the MQTT framework. \nIt uses the SDL library for graphics rendering, the paho.mqtt.c library for \ncommunication and the gtk2 framework for user input. \nThe dashboard runs on Linux, but a port to other operating systems is possible. \n\n\u003cpre\u003e\nSpecial features:\n\n* Very simple and basic set of base elements. \n* animated analog input elements, potentiometers.\n* Fast update rates of 20 Hz are possible.\n* Easy to use: Each panel/dashboard is configured in a single .dash file.\n\u003c/pre\u003e\n\nThis repository contains following set of applications: \n\n#### hyperdash \n\nhyperdash runs a panel/dashboard, which has been defined in a dash file. It\nopens a window, draws all elements, updates with each new topic message and \ntakes user input with the mouse to manipulate topics contents. \n\n![Smart Home Dashboard](screenshots/Haussteuerung.png)\n\nA description of the [dash file format](doc/MQTT-Hyperdash-file-format.md) can\nbe found in the doc/ section.\n\n#### dashdesign (HyperDash Dashboard Designer)\n\nDashdesign is a graphical tool to create and edit the .dash files. \n\nA brief explanation how to use dashdesign is in its man-page \n[dashdesign man-page](src/dashdesign.1).\n\nThe usage with the graphical interface should be more or less self-explanatory. \nBut maybe you want to have a look at its \n[user manual](doc/MQTT-dashdesign-user-manual.md).\n\n\n#### hddashgen (HyperDash Dashboard-Generator)\n\nMaking dashboard files by hand with a text editor can be a lot of annoying \nmanual work. To help this, there is the tool hddashgen to automatically create\ndash files from topic lists, so one has a good starting point to work with.\nhddashgen will do this job in combination with mqtt-list-topics (see below).\n\nThe default appearance is derived from the topics names, if they follow a\nnaming convention. The naming convention used is explained in \n[Dashgen Naming Conventions](doc/MQTT-dashgen-naming-conventions.md).\n\nA brief explanation how to use hddashgen is in its man-page \n[hddashgen man-page](src/hddashgen.1).\n\n\n#### mqtt-list-topics\n\nA tool to connect to a mqtt broker and list all topics available there to \nstdout. \n\nmqtt-list-topics also performs a brief analysis on the topics content to \nclassify the topic into binary, string, number, and integer. This \nclassification is not perfect, since it is based on a single payload value only, \nbut it can help making automatic dashboards for MQTT-Hyperdash. \n\nA good starting point for the usage of mqtt-list-topics is its man-page \n[mqtt-list-topics man-page](src/mqtt-list-topics.1).\n\n#### rule-engine sysmeasure and syslogger\n\nRule engines are meant to be applications running completely in the background. \nThey do not interact directly with user. Their function is to subscribe to a \nset of topics, watch their updates and trigger a routine, which calculates \nsomething based on the input topics and finally publish the result to output\ntopics, which then can trigger other rules or rule engines. They also can\nperform actions on the machine they are running, like executing shell scripts\nwhen a topic content matches a certain pattern, or perform measurements by\naccessing local hardware components and publish the results to the mqtt network.\n\nWith multiple rule engines running even on different computers using the same\nbroker, one can implement a full automation control, which would create the\nInternet of Things. \n\nThe concept of rule engines is not new and can be found in other automation\nconcepts as well. This  implementation is focused on high performance quick\nreaction, and reliability. And the realization is not very complicated. Please\nread the the [rule engine howto](doc/MQTT-rule-engine-howto.md) in\nthe doc/ section.\n\n#### mqtt2serial\n\nmqtt2serial connects to a mqtt broker and a serial (tty) device. This is\na generic application (similar to the rule engine framework) to asynchronoulsy \npass mqtt content to a serial line, and also accept asynchronously content from \nthat line.\n\nThis way, an arduino could be easily hooked to the serial line and pass its\nvalues and accept commands from it.\n\nA good starting point for the usage of mqtt2serial is its man-page \n[mqtt2serial man-page](src/mqtt2serial.1).\n\n## Remarks\n\nThe project is not complete. Please see the file \n[CONTRIBUTING.md](CONTRIBUTING.md) how you can help to improve the project. \n\nI had the impression, an application like this was still missing in 2019. \nSo I started this project. Please let me know, if I am right....\n\nAlso I am thinking of a\n[MQTT payload convention](doc/MQTT-Hyperdash-payload-conventions.md)\n. This could be a field for discussions. Please feel free to join.\n\n\n## Installation\n\n### Preparation\n\nFirst you should make sure, that all necessary packages are installed. \nIn doubt, do a \n\n\u003cpre\u003e\n sudo apt-get install libsdl-gfx1.2-dev libsdl1.2-dev libsdl-ttf2.0-dev\n sudo apt-get install libgtk2.0-dev \n\u003c/pre\u003e\n\nAlso, it is essential, that the eclipse paho library \n(for the MQTT communication) is installed. \nHere is their homepage: https://www.eclipse.org/paho/\n\nYou will need the \"C client library\". Eclipse provides a download link\nand installation instructions. However, if you do not want to install\nbinary packages, it is totally fine to start from the git repository:\nhttps://github.com/eclipse/paho.mqtt.c\n\nThe \"Build instructions for GNU Make\" worked for me. Especially you should \ninstall the package libssl-dev.\n\n\u003cpre\u003e\n sudo apt-get install libssl-dev\n\u003c/pre\u003e\n \nAnd finally, you may want to install the core set of true type fonts:\n\n\u003cpre\u003e\nsudo apt-get install ttf-mscorefonts-installer\n\u003c/pre\u003e\n\n(If you do not have this package installed, you can still use MQTT Hyperdash, \nbut it would be necessary to specify an alternative font path.)\n\n### Compilation\n\nWhen this is prepared, to make MQTT-Hyperdash, \nyou can simply do a \n\n\u003cpre\u003e\n cd src/\n make\n sudo make install\n\u003c/pre\u003e\n\n### Test run\n\nOpen a terminal and do a \n\n\u003cpre\u003e\nhyperdash main.dash \u0026\n\u003c/pre\u003e\n\nhave fun....\n\n\n## Download\n\nThere is an (inofficial) binary distribution of MQTT-Hyperdash and the paho c\nlibrary (.deb files) for 32bit linux, 64bit linux, Raspberry Pi and an alpha\nversion for MS WINDOWS on codeberg in the releases section.  But it is highly\nrecommended  to compile the most recent version from sources (see above). \n\n\u003ca href=\"https://codeberg.org/kollo/MQTT-Hyperdash/\"\u003e\n    \u003cimg alt=\"Get it on Codeberg\" src=\"https://get-it-on.codeberg.org/get-it-on-blue-on-white.png\" height=\"60\"\u003e\n\u003c/a\u003e\n\n\n## Screenshots\n\n\u003cdiv style=\"display:flex;\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/sysmeasure.png\" width=\"30%\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/plottest.png\" width=\"30%\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/metertest.png\" width=\"30%\"\u003e\n\u003c/div\u003e\n\u003cdiv style=\"display:flex;\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/main.png\" width=\"30%\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/input.png\" width=\"30%\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/hddashgen.png\" width=\"30%\"\u003e\n\u003c/div\u003e\n\u003cdiv style=\"display:flex;\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/feinstaub.png\" width=\"30%\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/dashdesign.png\" width=\"30%\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/buttontest.png\" width=\"30%\"\u003e\n\u003c/div\u003e\n\u003cdiv style=\"display:flex;\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/Solar.png\" width=\"30%\"\u003e\n\u003cimg alt=\"App image\" src=\"screenshots/Haussteuerung.png\" width=\"30%\"\u003e\n\u003c/div\u003e\n\n### Important Note:\n\n    This program is free software; you can redistribute it and/or modify\n    it under the terms of the GNU General Public License as published by\n    the Free Software Foundation; either version 2 of the License, or\n    (at your option) any later version.\n\n    This program is distributed in the hope that it will be useful,\n    but WITHOUT ANY WARRANTY; without even the implied warranty of\n    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n    GNU General Public License for more details.\n\n    You should have received a copy of the GNU General Public License\n    along with this program; if not, write to the Free Software\n    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.\n\n\n\nAcknowledgements\n================\n\nThanks to all people, who helped me to realize this package.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkollokollo%2FMQTT-Hyperdash","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkollokollo%2FMQTT-Hyperdash","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkollokollo%2FMQTT-Hyperdash/lists"}