[fli4l] Skript: Abfrage + ?==?utf-8?Q?Verarbeitung des Zustands m?==?utf-8?Q?ehrerer Geräte - generisch g?==?utf-8?Q?ehalten

K. Dreier usenetforum at gmx.net
So Mär 12 09:24:54 CET 2017


Hallo,

wie ich in meiner Zusammenfassung über mein Setup zum geofencing
dargestellt habe, frage ich - aktuell - den Zustand von zwei
WLAN-Geräten ab via Ping und arping.stat-Datei. Dieser Zustand wird in
eine Variable _pro_ Gerät gesetzt, also aktuell 2 Variablen
dahingehend. Im weiteren Verlauf des Skripts werden diese 2 Variablen
dann "vearbeitet".
Problem: das ist nicht einfach skalierbar. Denn in dem Moment wo ich ein
drittes Gerät dazunehme, müssen die Verarbeitungs-Prozesse um die
Variable des dritten Geräts ergänzt werden. Das ist natürlich etwas
unschön, da man das ganze Skript erweitern muss, an mehrere Stellen.

Aktuell sieht es so aus (nur die relevanten Teile):
device1="GERAETENAME1" # wie im fli4l-HOST-Eintrag definiert
device2="GERAETENAME2"
[...]
exists_device1="$(check_device1)" # Funktion zum checken erfolgte
vorher, hier nicht dargestellt
exists_device2="$(check_device2)"
[...]
if [ ${exists_device1} -gt 0 ] && [ -f
/var/run/arping.stat/${device1}.online ] ; then
device1_online="true"
else
device1_online="false"
fi
if [ ${exists_device2} -gt 0 ] && [ -f
/var/run/arping.stat/${device2}.online ] ; then
device2_online="true"
else
device2_online="false"
fi
[...]
if [ ${device1_online} = "true" ] || [ ${device2_online} = "true" ] ;
then
[...]
usw.

Wie gesagt, gäbe es ein drittes (viertes, fünftes...) Gerät, wäre
das zwar leicht mit "device3="GERAETENAME3" usw zu definieren, jedoch
gibt es dann den umfangreichen Ergänzgunsbedarf in der Folge.

Deswegen: wie kann man denn die if-Abfrage "generisch" halten, also
unabhängig von der Anzahl der definierten Geräte? Ich stelle mir etwas
im Stile von "merge die Existenz aller definierten Geräte in eine
Variable und frage nur diese Variable ab". Aber: es muss ja flexibel
sein, wie man oben sieht. Egal welches der definierten Geräte online
ist, das würde für das Skript als Aktions-Auslöser langen. Irgendwie
ist mir unklar, wie das funktionieren könnte.

Hat jemand Ideen? Bin gespannt.

Danke und Gruß
Klaus


Mehr Informationen über die Mailingliste Fli4L