packages/fff: Add some mqtt packages #24
No reviewers
Labels
No Label
RFC
RFT
WIP
blocked
bsp
bug
build/scripts/tools
duplicate
feature
fixed
layer3
mantis
more details required
needs changes
node
packages/fff
rejected
security
trivial
upstream
No Milestone
No Assignees
4 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: freifunk-franken/firmware#24
Loading…
Reference in New Issue
No description provided.
Delete Branch "ChristianD/firmware:mqtt"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This patchset added first mqtt packages. We can use mqtt for many other decentralized things.
With this set, we use mqtt only for monitoring data, next steps we can use it for automatic router configuration or some other things.
mqttto Add some mqtt packages@ -0,0 +2,4 @@
fetch_id="64"
if [ -n "$(uci -q get fff.mqtt.server)" ] ; then
mosquitto_pub -h "$(uci get fff.mqtt.server)" -p 1883 -t /monitoring -m "$(/bin/alfred-json -r "$fetch_id")"
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.
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.
@ -0,0 +12,4 @@
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken mqtt configuration
URL:=https://www.freifunk-franken.de
DEPENDS:=
fehlt \
@ -0,0 +12,4 @@
CATEGORY:=Freifunk
TITLE:=Freifunk-Franken mqtt configuration
URL:=https://www.freifunk-franken.de
DEPENDS:=+alfred-json \
Absatz
@ -0,0 +1 @@
*/5 * * * * /usr/sbin/alfred-mqtt-proxy
Zeitverzögerung
87bc0f7ea8
to0359124076
Diverse Kleinigkeiten und Fehler überarbeitet
@ -0,0 +31,4 @@
# nothing
endef
define Build/Compile
Prepare und Configure können weg.
@ -0,0 +1,6 @@
#!/bin/ash
reicht /bin/sh?
getestet und reicht ;)
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).
@ -0,0 +29,4 @@
define Build/Configure
# nothing
endef
Prepare und Configure weg.
@ -0,0 +1,5 @@
uci batch <<EOF
set fff.mqtt=mqtt
EOF
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.
@ -0,0 +27,4 @@
define Build/Configure
# nothing
endef
Prepare und Configure weg.
@ -0,0 +38,4 @@
endef
$(eval $(call BuildPackage,fff-web-mqtt))
Leerzeile am Ende weg.
@ -0,0 +12,4 @@
fi
%>
Eine Leerzeile reicht.
@ -0,0 +23,4 @@
<fieldset style="min-height: 7em;" class="smallinput">
<legend>MQTT</legend>
<table>
<tr><th>Server:</th><td><input type="text" name="server" value="<%= ${server} %>" /></td></tr>
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.
@ -0,0 +29,4 @@
<input type="submit" style="margin-top: 5px; margin-left: 3px;" />
</form>
<%in /www/include/footer %>
Leerzeile am Ende weg, ggf. lieber eine vor dem footer include.
Generell wird hier öfters die Formattierung mehrmals in verschiedenen Commits geändert, vor allem bei den Dependencies. Dies könnte man noch aufräumen, sodass die DEPENDS gleich im ursprünglichen Commit richtig formattiert sind/werden, und dann jeweils nur noch eine Zeile hinzugefügt wird.
@ -0,0 +3,4 @@
PKG_NAME:=fff-mqtt-monitoring
PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/fff-mqtt-monitoring
Auch hier kann PKG_BUILD_DIR bei allen drei Packages weg, siehe #25
0359124076
to98ba40752a
98ba40752a
to7cc93f7016
Ohwe ist da ein Chaos entstanden. Ich glaube ich hab das nun ordentlich aufgeräumt und ich hoffe das bleibt jetzt auch so ;)
Ich hab in diesem Atemzug auch ettliche Anmerkungen ausgebessert und ein paar Fehler die ich selbst gefunden habe (z.b. br-mesh durch br-client ersetzt) ausgebessert. Den Rest werde ich später noch überarbeiten
7cc93f7016
to42035a11f7
42035a11f7
to1ada03cbbf
1ada03cbbf
toa991486f46
a991486f46
to7af400a29b
Add some mqtt packagesto packages/fff: Add some mqtt packages7af400a29b
to42e6dfdf5e
src/packages/fff/fff-web-mqtt/files/www/ssl/cgi-bin/mqtt.html
hat noch ein 0755 bekommen
42e6dfdf5e
to8f58f0c052
Die Zeit vom Cronjob angepasst. Die hat sich vorher mit dem Nodewatcher überschnitten und daher gab es manchmal falsche Daten, je nachdem was zuerst lief.
8f58f0c052
tofe06eae15c
reviewed-by McUles
Acked-by: Fabian Bläse <fabian@blaese.de>
Ich würde beim applien noch die Grammatikfehler in der Commit-Message und ein paar trailing spaces anpassen.
Applied.
Würde mosquitto ohne TLS auch genügen?
libmosquitto-ssl
zieht libopenssl als Abhängigkeit in die Firmware, was ziemlich viel Platz verbraucht.Als Alternative gäbe es
mosquitto-client-nossl
, das spart fast ein ganzes MB (komprimiert!) und die wären für einige Geräte mit 8 MiB Flash, mit bird für so gut wie alle Geräte mit 8 MiB Flash nötig.Bisher ist nichts mit tls angedacht oder in Verwendung. Ich würde daher mal vorsichtig aus dem Bauch raus sagen, ja würde reichen.
Pull request closed