Ещё одна реализация пинга
Люблю я "забирать" что-то у Алисы и отдавать это операционке. Считаю, что некоторые задачи операционная система (в моем случае - linux) выполнит быстрее и/или лучше чем Majordomo. И вот, очередь дошла до проверки наличия в сети устройств. Да-да, ещё один ping. Теперь - с домино и театром.
Итак, приступаем:
Предполагаем, что мажордом установлен в /var/www. Создаём файл, который будет пинговать указанные нами устройства и сообщать нашей Алисе Мажордомовне об ответе устройства.
sudo nano /var/www/pingDevices.sh
Вписываем туда наш магический код:
#!/bin/bash
network="192.168.88." #адресное пространство сети (первые три числа в адресах наших устройств)
for number in 19 20 21 22 23 24 25 26 27 28 #какие устройства пинговать? пишем через пробел
do
ping $network$number -c 1 && mosquitto_pub -h localhost -t "device/"$network$number -m "1"
#если адрес "ответил" на пинг, то пишем 1 в MQTT топик
done
Делаем файл исполняемым:
sudo chmod +x /var/www/pingDevices.sh
Осталось этому волшебству назначить регулярность:
Открываем планировщик:
sudo crontab -e
Вписываем куда-нибудь вконец следующую строку:
*/10 * * * * /var/www/pingDevices.sh > /dev/null 2>&1
Нижняя Тура, Россия
На форуме: Amarok