packages/fff: Add some mqtt packages #24

Closed
ChristianD wants to merge 3 commits from ChristianD/firmware:mqtt into master
9 changed files with 142 additions and 0 deletions

View File

@ -17,8 +17,10 @@ define Package/fff-layer3
+fff-boardname \
+fff-dhcp \
+fff-layer3-config \
+fff-mqtt-monitoring \
+fff-network \
+fff-ra \
+fff-web-mqtt \
+fff-wireguard \
+arptables \
+bmon \

View File

@ -0,0 +1,35 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=fff-mqtt-monitoring
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-mqtt-monitoring
ChristianD marked this conversation as resolved Outdated

Auch hier kann PKG_BUILD_DIR bei allen drei Packages weg, siehe #25

Auch hier kann PKG_BUILD_DIR bei allen drei Packages weg, siehe #25
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:= \
ChristianD marked this conversation as resolved Outdated

Absatz

Absatz
+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
ChristianD marked this conversation as resolved Outdated

Prepare und Configure können weg.

Prepare und Configure können weg.
$(eval $(call BuildPackage,fff-mqtt-monitoring))

View File

@ -0,0 +1 @@
*/5 * * * * sleep $(/usr/bin/random 70 85); /usr/sbin/alfred-mqtt-proxy
ChristianD marked this conversation as resolved Outdated

Zeitverzögerung

Zeitverzögerung

View File

@ -0,0 +1,8 @@
#!/bin/sh
ChristianD marked this conversation as resolved Outdated

reicht /bin/sh?

reicht /bin/sh?

getestet und reicht ;)

getestet und reicht ;)
Outdated
Review

Testen hilft hier nicht, da sowohl /bin/sh, als auch /bin/ash auf die busybox symlinkt, und die sich für sh und ash identisch verhält (afaik).

Testen hilft hier nicht, da sowohl /bin/sh, als auch /bin/ash auf die busybox symlinkt, und die sich für sh und ash identisch verhält (afaik).
MACADDR=$(cat /sys/class/net/br-client/address | /bin/sed 's/://g')
fetch_id="64"
if [ -n "$(uci -q get fff.mqtt.server)" ] ; then

Publish an /monitoring/alfred/{MAC-ADRESS} schicken lassen.

Publish an /monitoring/alfred/{MAC-ADRESS} schicken lassen.

Ich finde Alfred beschreibt nicht den Aufbau des Datensatzes. Ich bin, wie im IRC bereits angemerkt, für durchversionieren:

/monitoring/v1/{MAC-ADRESS}

und wenn jemand eine bessere Struktur erfindet und einbaut, nutzt er einfach v2, wenns dann mal wieder was gibt v3 usw...

Die MAC sollten wir auf jeden Fall mit ins Topic nehmen, dann kann man danach gut filtern beim lesen der Daten wenn man nach bestimmte Router sucht.

Ich finde Alfred beschreibt nicht den Aufbau des Datensatzes. Ich bin, wie im IRC bereits angemerkt, für durchversionieren: /monitoring/v1/{MAC-ADRESS} und wenn jemand eine bessere Struktur erfindet und einbaut, nutzt er einfach v2, wenns dann mal wieder was gibt v3 usw... Die MAC sollten wir auf jeden Fall mit ins Topic nehmen, dann kann man danach gut filtern beim lesen der Daten wenn man nach bestimmte Router sucht.

Irgendwann hat dann aber keiner mehr den Durchblick welche Version für welches Format genutzt wird. Würde da schon sprechende Namen dafür nutzen wollen.

Irgendwann hat dann aber keiner mehr den Durchblick welche Version für welches Format genutzt wird. Würde da schon sprechende Namen dafür nutzen wollen.

Ich hab jetzt mal "v1" gemacht, wenn jemand noch einen besseren Vorschlag bringt der auch sinnvoll ist, hab ich kein Problem das nochmal zu ändern. "Alfred" halte ich aber generell für falsch und will ich nicht haben.

Ich hab jetzt mal "v1" gemacht, wenn jemand noch einen besseren Vorschlag bringt der auch sinnvoll ist, hab ich kein Problem das nochmal zu ändern. "Alfred" halte ich aber generell für falsch und will ich nicht haben.
mosquitto_pub -h "$(uci get fff.mqtt.server)" -p 1883 -t /monitoring/v1/$MACADDR -m "$(/bin/alfred-json -r "$fetch_id")"
fi

View File

@ -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:= \
ChristianD marked this conversation as resolved Outdated

fehlt \

fehlt \
+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
ChristianD marked this conversation as resolved Outdated

Prepare und Configure weg.

Prepare und Configure weg.
$(eval $(call BuildPackage,fff-mqtt))

View File

@ -0,0 +1,3 @@
uci set fff.mqtt=mqtt
exit 0
ChristianD marked this conversation as resolved Outdated

uci batch wegen einer Zeile ist irgendwie komisch, ich würde hier einfach

uci set fff.mqtt=mqtt

machen. Außer du hast vor, dass später noch zu erweitern.

uci batch wegen einer Zeile ist irgendwie komisch, ich würde hier einfach `uci set fff.mqtt=mqtt` machen. Außer du hast vor, dass später noch zu erweitern.

View File

@ -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
ChristianD marked this conversation as resolved Outdated

Prepare und Configure weg.

Prepare und Configure weg.
$(eval $(call BuildPackage,fff-web-mqtt))

View File

@ -0,0 +1 @@
mqtt,MQTT-Einstellungen

View File

@ -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
%>
<form method="post">
ChristianD marked this conversation as resolved Outdated

Eine Leerzeile reicht.

Eine Leerzeile reicht.
<fieldset style="min-height: 7em;" class="smallinput">
<legend>MQTT</legend>
<table>
<tr><th>Server:</th><td><input type="text" name="server" value="<%= $(uci -q get fff.mqtt.server) %>" /></td></tr>
</table>
</fieldset>
<input type="submit" style="margin-top: 5px; margin-left: 3px;" />
</form>
<%in /www/include/footer %>
ChristianD marked this conversation as resolved Outdated

Hier könnte man überlegen, den uci get hier direkt reinzuschreiben, wenn man die Variable eh nur einmal braucht. Hängt von den Plänen für die Zukunft ab.

Hier könnte man überlegen, den uci get hier direkt reinzuschreiben, wenn man die Variable eh nur einmal braucht. Hängt von den Plänen für die Zukunft ab.

Ich denke ich mach es wie du sagst und wenn man es später dennoch mehrfach braucht, kann man das immer noch in diese Richtung wieder umbauen. Ganz sicher bin ich mir nicht ob und wann da noch was kommt wo man diese Variable vllt. nochmal benötigt.

Ich denke ich mach es wie du sagst und wenn man es später dennoch mehrfach braucht, kann man das immer noch in diese Richtung wieder umbauen. Ganz sicher bin ich mir nicht ob und wann da noch was kommt wo man diese Variable vllt. nochmal benötigt.