From 706736eeca000389ef5b7fec7123b93469cac17b Mon Sep 17 00:00:00 2001 From: Christian Dresel Date: Sat, 19 Dec 2020 10:55:48 +0100 Subject: [PATCH 1/3] packages/fff: Add package fff-mqtt This package provides mosquitto and set default settings mosquitto is used for mqtt communication. With mqtt we can use a distributed mqtt broker for decentralized communication We can use this for monitoring data or router configuration Signed-off-by: Christian Dresel --- src/packages/fff/fff-mqtt/Makefile | 34 +++++++++++++++++++ .../files/etc/uci-defaults/35-fff-mqtt | 3 ++ 2 files changed, 37 insertions(+) create mode 100644 src/packages/fff/fff-mqtt/Makefile create mode 100644 src/packages/fff/fff-mqtt/files/etc/uci-defaults/35-fff-mqtt diff --git a/src/packages/fff/fff-mqtt/Makefile b/src/packages/fff/fff-mqtt/Makefile new file mode 100644 index 00000000..07f7edd6 --- /dev/null +++ b/src/packages/fff/fff-mqtt/Makefile @@ -0,0 +1,34 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=fff-mqtt +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/fff-mqtt + +include $(INCLUDE_DIR)/package.mk + +define Package/fff-mqtt + SECTION:=base + CATEGORY:=Freifunk + TITLE:=Freifunk-Franken mqtt configuration + URL:=https://www.freifunk-franken.de + DEPENDS:= \ + +fff-config \ + +libmosquitto-ssl \ + +mosquitto-client-ssl \ + +mosquitto-ssl +endef + +define Package/fff-mqtt/description + This package provides mosquitto and settings +endef + +define Build/Compile + # nothing +endef + +define Package/fff-mqtt/install + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,fff-mqtt)) diff --git a/src/packages/fff/fff-mqtt/files/etc/uci-defaults/35-fff-mqtt b/src/packages/fff/fff-mqtt/files/etc/uci-defaults/35-fff-mqtt new file mode 100644 index 00000000..5913e046 --- /dev/null +++ b/src/packages/fff/fff-mqtt/files/etc/uci-defaults/35-fff-mqtt @@ -0,0 +1,3 @@ +uci set fff.mqtt=mqtt + +exit 0 -- 2.39.2 From ab5c00fb5169242a423f375240fbf6be6b693476 Mon Sep 17 00:00:00 2001 From: Christian Dresel Date: Sat, 19 Dec 2020 11:01:56 +0100 Subject: [PATCH 2/3] packages/fff: Add package fff-mqtt-monitoring This package send Alfred data to the mqtt broker Anyone can access this data and can build its own monitoring Signed-off-by: Christian Dresel --- src/packages/fff/fff-layer3/Makefile | 1 + src/packages/fff/fff-mqtt-monitoring/Makefile | 35 +++++++++++++++++++ .../usr/lib/micron.d/fff-alfred-mqtt-proxy | 1 + .../files/usr/sbin/alfred-mqtt-proxy | 8 +++++ 4 files changed, 45 insertions(+) create mode 100644 src/packages/fff/fff-mqtt-monitoring/Makefile create mode 100644 src/packages/fff/fff-mqtt-monitoring/files/usr/lib/micron.d/fff-alfred-mqtt-proxy create mode 100755 src/packages/fff/fff-mqtt-monitoring/files/usr/sbin/alfred-mqtt-proxy diff --git a/src/packages/fff/fff-layer3/Makefile b/src/packages/fff/fff-layer3/Makefile index 9dd76ab5..c7a4f7a9 100644 --- a/src/packages/fff/fff-layer3/Makefile +++ b/src/packages/fff/fff-layer3/Makefile @@ -17,6 +17,7 @@ define Package/fff-layer3 +fff-boardname \ +fff-dhcp \ +fff-layer3-config \ + +fff-mqtt-monitoring \ +fff-network \ +fff-ra \ +fff-wireguard \ diff --git a/src/packages/fff/fff-mqtt-monitoring/Makefile b/src/packages/fff/fff-mqtt-monitoring/Makefile new file mode 100644 index 00000000..7ef991e5 --- /dev/null +++ b/src/packages/fff/fff-mqtt-monitoring/Makefile @@ -0,0 +1,35 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=fff-mqtt-monitoring +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/fff-mqtt-monitoring + +include $(INCLUDE_DIR)/package.mk + +define Package/fff-mqtt-monitoring + SECTION:=base + CATEGORY:=Freifunk + TITLE:=Freifunk-Franken mqtt configuration + URL:=https://www.freifunk-franken.de + DEPENDS:= \ + +alfred-json \ + +fff-mqtt \ + +micrond \ + +fff-alfred +endef + +define Package/fff-mqtt-monitoring/description + This package send monitoring informations to + the mqtt broker +endef + +define Build/Compile + # nothing +endef + +define Package/fff-mqtt-monitoring/install + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,fff-mqtt-monitoring)) diff --git a/src/packages/fff/fff-mqtt-monitoring/files/usr/lib/micron.d/fff-alfred-mqtt-proxy b/src/packages/fff/fff-mqtt-monitoring/files/usr/lib/micron.d/fff-alfred-mqtt-proxy new file mode 100644 index 00000000..5c39a835 --- /dev/null +++ b/src/packages/fff/fff-mqtt-monitoring/files/usr/lib/micron.d/fff-alfred-mqtt-proxy @@ -0,0 +1 @@ +*/5 * * * * sleep $(/usr/bin/random 70 85); /usr/sbin/alfred-mqtt-proxy diff --git a/src/packages/fff/fff-mqtt-monitoring/files/usr/sbin/alfred-mqtt-proxy b/src/packages/fff/fff-mqtt-monitoring/files/usr/sbin/alfred-mqtt-proxy new file mode 100755 index 00000000..4f81b4ad --- /dev/null +++ b/src/packages/fff/fff-mqtt-monitoring/files/usr/sbin/alfred-mqtt-proxy @@ -0,0 +1,8 @@ +#!/bin/sh +MACADDR=$(cat /sys/class/net/br-client/address | /bin/sed 's/://g') + +fetch_id="64" +if [ -n "$(uci -q get fff.mqtt.server)" ] ; then + mosquitto_pub -h "$(uci get fff.mqtt.server)" -p 1883 -t /monitoring/v1/$MACADDR -m "$(/bin/alfred-json -r "$fetch_id")" +fi + -- 2.39.2 From fe06eae15c4118ec618a02fd039f734df6f5972c Mon Sep 17 00:00:00 2001 From: Christian Dresel Date: Mon, 28 Dec 2020 19:16:14 +0100 Subject: [PATCH 3/3] packages/fff: Add package fff-web-mqtt With this package the mqtt settings can configure over the webui Each user kann use its own mqtt broker or a broker from a other user This means that the user has a free choice of where to send or get data Signed-off-by: Christian Dresel --- src/packages/fff/fff-layer3/Makefile | 1 + src/packages/fff/fff-web-mqtt/Makefile | 32 +++++++++++++++++++ .../fff-web-mqtt/files/www/menu/ssl/17-mqtt | 1 + .../files/www/ssl/cgi-bin/mqtt.html | 26 +++++++++++++++ 4 files changed, 60 insertions(+) create mode 100644 src/packages/fff/fff-web-mqtt/Makefile create mode 100644 src/packages/fff/fff-web-mqtt/files/www/menu/ssl/17-mqtt create mode 100755 src/packages/fff/fff-web-mqtt/files/www/ssl/cgi-bin/mqtt.html diff --git a/src/packages/fff/fff-layer3/Makefile b/src/packages/fff/fff-layer3/Makefile index c7a4f7a9..e1d8ca6c 100644 --- a/src/packages/fff/fff-layer3/Makefile +++ b/src/packages/fff/fff-layer3/Makefile @@ -20,6 +20,7 @@ define Package/fff-layer3 +fff-mqtt-monitoring \ +fff-network \ +fff-ra \ + +fff-web-mqtt \ +fff-wireguard \ +arptables \ +bmon \ diff --git a/src/packages/fff/fff-web-mqtt/Makefile b/src/packages/fff/fff-web-mqtt/Makefile new file mode 100644 index 00000000..f6a2246a --- /dev/null +++ b/src/packages/fff/fff-web-mqtt/Makefile @@ -0,0 +1,32 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=fff-web-mqtt +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/fff-web-mqtt + SECTION:=base + CATEGORY:=Freifunk + TITLE:=Freifunk-Franken mqtt config webui + URL:=http://www.freifunk-franken.de + DEPENDS:= \ + +fff-mqtt \ + +fff-web-ui +endef + +define Package/fff-web-mqtt/description + Configure mqtt via a web UI +endef + +define Build/Compile + # nothing +endef + +define Package/fff-web-mqtt/install + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,fff-web-mqtt)) diff --git a/src/packages/fff/fff-web-mqtt/files/www/menu/ssl/17-mqtt b/src/packages/fff/fff-web-mqtt/files/www/menu/ssl/17-mqtt new file mode 100644 index 00000000..e5b5dbc4 --- /dev/null +++ b/src/packages/fff/fff-web-mqtt/files/www/menu/ssl/17-mqtt @@ -0,0 +1 @@ +mqtt,MQTT-Einstellungen diff --git a/src/packages/fff/fff-web-mqtt/files/www/ssl/cgi-bin/mqtt.html b/src/packages/fff/fff-web-mqtt/files/www/ssl/cgi-bin/mqtt.html new file mode 100755 index 00000000..a67be338 --- /dev/null +++ b/src/packages/fff/fff-web-mqtt/files/www/ssl/cgi-bin/mqtt.html @@ -0,0 +1,26 @@ +#!/usr/bin/haserl + +<%in /www/include/header %> +<%in /www/include/helpers %> +<% show_msg %> + +<% +# write +if [ "$REQUEST_METHOD" = "POST" ] ; then + uci -q set "fff.mqtt.server=${POST_server}" + uci commit fff +fi +%> + +
+ +
+ MQTT + + +
Server:
+
+ +
+ +<%in /www/include/footer %> -- 2.39.2