MYCSS

2021-01-31

Нотатки : Простий скрипт для wifi device tracker в OpenWRT : відсилання повідомлень до MQTT

Скрипт для 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.


Немає коментарів:

Коли забув ти рідну мову, біднієш духом ти щодня...
When you forgot your native language you would become a poor at spirit every day ...

Д.Білоус / D.Bilous
Рабів до раю не пускають. Будь вільним!

ipv6 ready