Скрипт для ash сценарію в OpenWRT.
Пошук активних WiFi пристроїв за їх MAC адресою, і якщо такий є то надсилання повідомлення до MQTT брокера зі станом пристрою при зміні стану. А інший скрипт надсилає стан вже до Телеграм каналу..
#!/bin/sh
uUser1='00:13:33:44:11:77'
uUser2='00:3D:33:5D:11:39'
users="User1 User2"
next=
function publish()
{
mosquitto_pub -t "$1" -m "$2" -r
}
#MAIN
sleep 120
for m in $users; do
eval p${m}=0
done
while true; do
for m in $users; do
um=$(eval "echo \${u${m}}")
us=$(iwinfo wlan0 assoclist | grep -m 1 -c $um )
ps=$(eval "echo \${p${m}}")
if [ "$us" -ne $ps ];then
eval p${m}=$us
if [ -n "$next" ];then
publish "tele/wifi_$m/LWT" "$us"
fi
fi
done
next=1
sleep 90
done
Так як масивів в ash не має, то приходиться використовувати eval для симуляції віртуального масиву.
Створив версію для LUA: Перший код в LUA. Скрипт для роутера з OpenWRT. MQTT та Telegram статус підключених WiFi clients.

Немає коментарів:
Дописати коментар