A fast MQTT dashboard application and rule engine framework written in C for Linux, Raspberry Pi and WINDOWS.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

123 lines
5.2 KiB

+#. *# +###. #####+#####+ +* .# ++ ++
+#+ *# .#+.+#. *. *. +* .# ++ ++
+*# .*# ++ *+ *. *. +* .# *. *.+*##..*#*.+*#.##*+.###..##* +*##.
++*.*.# *+ +* *. *. +##### +* #.+*.*+++.*++*.++.*+ .*+**. +*.*+
++++#.# ++ ..*+ *. *. *#*+* .# .#.* ++ .**###*++ *. ++.*##+.##*.++ ++
++.#* # .#++##. *. *. +* .# **. +*.*+++. ++ ++.*+**.*+ .#.++ ++
++ #+ # +####+ *. *. +* .# .# +*#*..*##.++ .*#*++##+*+##* ++ ++
.. .++ ++
+#. ++
VERSION 1.03
(C) 2019-2021 by Markus Hoffmann
Name : MQTT-Hyperdash
Version : 1.03 Vendor: Markus Hoffmann
Group : Development/Languages License: GPL
Packager : Markus Hoffmann <kollo@users.sourceforge.net>
URL : https://codeberg.org/kollo/MQTT-Hyperdash
Summary : A universal MQTT dashboard and rule engine framework.
Description :
MQTT-Hyperdash is a fast and efficient dashboard (GUI) for the MQTT framework.
It uses the SDL library for graphics rendering, the paho.mqtt.c library for
communication and the gtk2 framework for user input. The dashboard runs on
Linux, but a port to other operating systems is possible.
Special features:
* Very simple and basic set of base elements.
* animated analog input elements, potentiometers.
* Fast update rates of 20 Hz are possible.
* Easy to use: Each panel/dashboard is configured in a single .dash file.
This repository contains following set of applications:
hyperdash
=========
hyperdash runs a panel/dashboard, which has been defined in a dash file. It
opens a window, draws all elements, updates with each new topic message and
takes user input with the mouse to manipulate topics contents.
dashdesign (HyperDash Dashboard Designer)
==========
Dashdesign is a graphical tool to create and edit the .dash files.
hddashgen (HyperDash Dashboard-Generator)
=========
Making dashboard files by hand with a text editor can be a lot of annoying
manual work. To help this, there is the tool hddashgen to automatically create
dash files from topic lists, so one has a good starting point to work with.
hddashgen will do this job in combination with mqtt-list-topics (see below).
The default appearance is derived from the topics names, if they follow a naming
convention.
mqtt-list-topics
================
A tool to connect to a mqtt broker and list all topics available there to
stdout.
mqtt-list-topics also performs a brief analysis on the topics content to
classify the topic into binary, string, number, and integer. This classification
is not perfect, since it is based on a single payload value only, but it can
help making automatic dashboards for MQTT-Hyperdash.
rule-engine sysmeasure and syslogger
====================================
Rule engines are meant to be applications running completely in the background.
They do not interact directly with user. Their function is to subscribe to a set
of topics, watch their updates and trigger a routine, which calculates something
based on the input topics and finally publish the result to output topics, which
then can trigger other rules or rule engines. They also can perform actions on
the machine they are running, like executing shell scripts when a topic content
matches a certain pattern, or perform measurements by accessing local hardware
components and publish the results to the mqtt network.
With multiple rule engines running even on different computers using the same
broker, one can implement a full automation control, which would create the
Internet of Things.
The concept of rule engines is not new and can be found in other automation
concepts as well. This implementation is focused on high performance quick
reaction, and reliability. And the realization is not very complicated.
mqtt2serial
===========
mqtt2serial connects to a mqtt broker and a serial (tty) device. This is a
generic application (similar to the rule engine framework) to asynchronoulsy
pass mqtt content to a serial line, and also accept asynchronously content from
that line.
This way, an arduino could be easily hooked to the serial line and pass its
values and accept commands from it.
Important Note:
===============
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.