#!/bin/bash
#Überwachte Geräte
homeDevice[0]="00:11:22:33:44:5a"
homeDevice[1]="00:11:22:33:44:5b"
homeDevice[2]="00:11:22:33:44:5c"
countHomeDevices=${#homeDevices[*]}
#Statusmeldungen von hostapd_cli
connected="AP-STA-CONNECTED"
disconnected="AP-STA-DISCONNECTED"
echo $3 $(date) $2
for (( i=0; i<=$(( $countHomeDevices -1 )); i++ )); do
if [ $3 = "${homeDevices[$i]}" ]; then
echo "jetzt könnte ich was tun"
fi
done
Das Script mit chmod u+x ausführbar machen und dann hostapd_cli zum Testen starten
sudo hostapd_cli -p /var/run/hostapd -i wlan0 -a /home/user/scripte/hostapd_event.sh
Anschließend soll hoastapd_cli natürlich auch als Dienst im Hintergrund laufen und automatisch starten.
Dazu wird noch ein weiteres Script benötigt. Das stammt von folgender Seite: http://wiki.excito.org/wiki/index.php/Controling_Homeautomation_devices_using_wifi_presence
#!/bin/sh
### BEGIN INIT INFO
# Provides: hostapd_cli
# Required-Start: $remote_fs hostapd
# Required-Stop: $remote_fs
# Should-Start: $network
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Utility to trigger events based on connects/disconnects
# Description:
### END INIT INFO
PATH=/sbin:/bin:/usr/sbin:/usr/bin
DAEMON_SBIN=/usr/sbin/hostapd_cli
NAME=hostapd_cli
DESC="hostapd cli"
PIDFILE=/var/run/hostapd_cli.pid
[ -x "$DAEMON_SBIN" ] || exit 0
DAEMON_OPTS="-B -a /home/user/scripte/hostapd_event.sh"
. /lib/lsb/init-functions
case "$1" in
start)
log_daemon_msg "Starting $DESC" "$NAME"
start-stop-daemon --start --oknodo --quiet --exec "$DAEMON_SBIN" \
-- $DAEMON_OPTS >/dev/null
log_end_msg "$?"
;;
stop)
log_daemon_msg "Stopping $DESC" "$NAME"
start-stop-daemon --stop --oknodo --quiet --exec "$DAEMON_SBIN"
log_end_msg "$?"
;;
restart|force-reload)
$0 stop
sleep 8
$0 start
;;
status)
status_of_proc "$DAEMON_SBIN" "$NAME"
exit $?
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
exit 1
;;
esac
exit 0
Mit Hilfe dieses Scriptes können nur bestimmte Funktionen, Benachrichtigungen usw. ausgelöst werden, wenn sich ein (bestimmtes) Gerät im WLan An- oder Abmeldet. Zu Bedenken wäre noch, dass mobile Geräte sich meist nicht beim WLan abmelden sondern einfach irgendwann nicht mehr in der Reichweite sind. In diesem Fall erfolgt die Reaktion auch erst verzögert.