Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.

+7 495 204-27-80

Всегда интересно взглянуть на привычные вещи с новой, необычной стороны. Знаете ли вы, что обычный роутер может сообщать вам о присутствии конкретных людей в доме? Да, именно так, без приобретения каких-либо дополнительных устройств и установки сложных систем он может отправлять вам сообщения следующего вида:

DD-WRT Log - XXX ушла в 13:05:22, 2015.04.XX

DD-WRT Log - XXX пришла в 16:55:03, 2015.04.XX

DD-WRT Log - XXX ушел в 19:15:24, 2015.04.XX

Теперь вы легко сможете узнать во сколько ваша жена ушла на работу и когда сын вернулся из школы.

Метод, приведенный в статье является достаточно трудоемким. Получить аналогичный результат можно гораздо меньшими усилиями при наличии контроллера умного дома VeraLite или Vera3 (подробнее читайте в статье «Люди в доме – простые способы определения присутствия» *1).

Для реализации поставленной задачи можно использовать любой роутер, требуется лишь поставить на него альтернативную прошивку с открытым исходным кодом. Мной был остановлен выбор на DD-WRT (*2), как на самой популярной.

Внешний вид Wi-Fi точк и доступа Asus RT-N10U B1 Внешний вид Wi-Fi точк и доступа Asus RT-N10U B1

Рис. 1,2. Внешний вид Wi-Fi точк и доступа Asus RT-N10U B1

В качестве подопытного роутера выступил недорогой (около 1 500 рублей) и достаточно распространённый Asus RT-N10U (*3). Из дополнительного оборудования понадобится только USB флэш-накопитель минимального размера (стоимостью около 300 руб).

Важное предостережение! Неопытный пользователь рискует в процессе перепрошивки роутера, поскольку это может привести к полному выходу устройства из строя. При наличии сомнений, лучше не осуществляйте это самостоятельно.

1. Замена стандартной прошивки Asus RT-N10U B1 на альтернативную mini DD-WRT

Для начала найдем подходящую прошивку для роутера Asus. На сайте DD-WRT (*4) вводим в поисковой строке индекс модели, рис. 3.

Выбор прошивки для Asus RT-N10U

Рис. 3. Выбор прошивки для Asus RT-N10U

Необходимо скачать первоначальную прошивку для замены заводской с расширением .trx. И дополнительно любую, какая больше нравится, я выбрал K26 mini_usb_nas. Подробнее о различиях в версиях можно прочитать здесь (*5).

Первым шагом физически снимаем роутер с того места где он установлен и подключаем к компьютеру напрямую, подключив Ethernet кабель к одному из желтых LAN портов.

Далее заходим в панель управления роутера с вашим логином паролем. Адрес по умолчанию http://192.168.1.1, пользователь admin, пароль admin (если не был изменен), рис. 4.

Вход в панель управления роутером Asus RT-N10U

Рис. 4. Вход в панель управления роутером Asus RT-N10U

Затем необходимо сбросить все настройки на заводские. Предварительно перепишите настройки доступа в Интернет и Wi-Fi, чтобы снова восстановить их на другой прошивке.

Восстановление заводских настроек: Администрирование -> Управление настройками -> кнопка Восстановить, рис. 5,6,7.

Восстановление заводских настроек

Рис. 5. Восстановление заводских настроек

Восстановление заводских настроек

Рис. 6. Восстановление заводских настроек

Восстановление заводских настроек

Рис. 7. Процесс восстановления заводских настроек

После сброса настроек роутер загрузится и предложит настроить параметры заново, рис. 8.

Восстановление заводских настроек

Рис. 8. Загрузка на стандартной прошивке после восстановления заводских настроек

Установите новый пароль и то, что роутер потребует ввести, без особой настройки, для того, чтобы попасть на страницу обновления прошивки.

Пропуск шагов настройки на стандартной прошивке после восстановления заводских настроек

Рис. 9. Пропуск шагов настройки на стандартной прошивке после восстановления заводских настроек

На странице обновления прошивки, рис. 10, загрузите скаченный .trx файл через меню: Администрирование / Обновление микропрограммы и нажмите «Обновить».

Загрузка первоначального файла прошивки DD-WRT

Рис. 10. Загрузка первоначального файла прошивки DD-WRT

Ждите, пока маршрутизатор обновляет прошивку, ни в коем случае не выключайте питание во время этого процесса, рис. 11. По времени это занимает до 15 минут, так что наберитесь терпения.

Загрузка первоначального файла прошивки DD-WRT

Рис. 11. Загрузка первоначального файла прошивки DD-WRT

По истечении 15 минут, если ничего не изменилось переходите на http://192.168.1.1. После этого необходимо задать имя и пароль администратора, рис. 12.

Загрузка первоначального файла прошивки DD-WRT

Рис. 12. Первая загрузка DD-WRT v24-sp2 (03/25/13) mini

Первое окно, после установки пароля администратора, рис. 13. Затем обязательно надо снова сбросить все настройки на заводские.

Загрузка первоначального файла прошивки DD-WRT

Рис. 13. Первая загрузка DD-WRT v24-sp2 (03/25/13) mini

Переходим на вкладку Administration -> Factory Defaults -> Apply Setting.

Сброс DD-WRT v24-sp2 (03/25/13) mini на заводские настройки

Рис. 14. Сброс DD-WRT v24-sp2 (03/25/13) mini на заводские настройки

Соглашаемся со сбросом к заводским параметрам, рис. 15.

Сброс DD-WRT v24-sp2 (03/25/13) mini на заводские настройки

Рис. 15. Сброс DD-WRT v24-sp2 (03/25/13) mini на заводские настройки

Немного ждем, рис. 16.

Сброс DD-WRT v24-sp2 (03/25/13) mini на заводские настройки

Рис. 16. Процесс сброса DD-WRT v24-sp2 (03/25/13) mini на заводские настройки

Снова задаем пароль администратора, рис. 17.

Сброс DD-WRT v24-sp2 (03/25/13) mini на заводские настройки

Рис. 17. Сброс DD-WRT v24-sp2 (03/25/13) mini на заводские настройки

Только после этого можно считать, что вы стали обладатель прошивки DD-WRT на вашем роутере. Установленная версия показана в правом верхнем углу. В данном случае это версия DD-WRT v24-sp2 (03/25/13) mini.

2. Обновление с mini DD-WRT на версию с поддержкой USB

DD-WRT mini хороша, но она не поддерживает работу с USB, поэтому необходимо установить другую редакцию. Ранее я уже скачал mini_usb_nas, вы можете прошить любую версию с поддержкой USB. Дополнительно о различиях в версиях, как уже упоминалось, можно прочитать здесь (*5).

Для того, чтобы установить версию mini_usb_nas повторим часть предыдущих шагов:

1. Прошиваем нужную прошивку. Переходим на вкладку Administration -> Firmware Upgrade, где выберите файл с версией mini_usb_nas, в моем случае это «dd-wrt.v24-21061_NEWD-2_K2.6_mini_usb_nas.bin».

2. После окончания прошивки обязательно снова сбрасываем все настройки на заводские. На вкладке Administration -> Factory Defaults -> Apply Setting.

3. Задаем настоящий пароль администратора после перезагрузки.

Только сейчас можно считать, что ваш роутер имеет необходимую прошивку для дальнейшей работы по отслеживанию присутствия людей через домашний роутер.

Роутер можно физически вернуть на место первоначальной установки, вручную восстановить настройки, полученные от оператора связи и настроить Wi-Fi. Здесь мы не будет этого касаться, исходим из предположения что это не составит проблемы.

Дополнительно DD-WRT позволяет переключить интерфейс прошивки на русский язык. Для этого перейдите Administration -> Management -> Language Selection, где и выберите Russian. Для меня показался более дружелюбным иной стиль интерфейса, который задается через Administration -> Management -> Router GUI Style, стиль xirian.

Прошивка DD-WRT v24-sp2 (03/25/13) mini-usb-nas с русским языком, стиль xirian

Рис. 18. Прошивка DD-WRT v24-sp2 (03/25/13) mini-usb-nas с русским языком, стиль xirian

3. Подключение USB флэш накопителя к DD-WRT

Для установки дополнительных программ понадобится внешний USB флэш-накопитель минимального размера, как по объему памяти, так и по размеру. После прогулки до ближайшего магазина им оказался SanDisk Cruzer Fit, стоимость около 300 руб.

USB флэш-накопитель минимального размера SanDisk Cruzer Fit

Рис. 19. USB флэш-накопитель минимального размера SanDisk Cruzer Fit

Для смены файловой системы из-под Windows можно воспользоваться программой MiniTool Partition Wizard (*6), рис. 20,21.

MiniTool Partition Wizard для смены файловой системы из Windows

Рис. 20. MiniTool Partition Wizard для смены файловой системы из Windows

MiniTool Partition Wizard для смены файловой системы из Windows

Рис. 21. MiniTool Partition Wizard для смены файловой системы из Windows

После ряда проб USB накопитель был разбит на две части – меньшая с журналируемой файловой системой, используемой в операционных системах на ядре Linux, Ext3. Большая часть с FAT32.

Для отображения накопителя в прошивке вначале включаем поддержку USB-дисков. Для этого переходим Службы -> USB и включаем «Базовая поддержка USB», «Поддержка USB-дисков», «Automatic Drive Mount». После перезагрузки роутера «Тех.обслуживание -> Управление -> Перезагрузить маршрутизатор», можно увидеть информацию о подключенном USB накопителе, рис. 22.

Информация о подключенном USB накопителе

Рис. 22. Информация о подключенном USB накопителе

Далее обеспечим доступ по сети к подключенному накопителю, для того чтобы облегчить задачу себе в дальнейшем.

Перейдем Службы -> NAS и включим сетевую файловую систему «Samba», в разделе File Sharing, рис. 23.

Информация о подключенном USB накопителе

Рис. 23. Информация о подключенном USB накопителе

После перезагрузки роутера, при обращении по адресу роутера из проводника, в моем случае это \\192.167.0.200\, будут доступны фалы, содержащиеся на накопителе, рис. 24.

Файлы на накопителе, подключенном к роутеру

Рис. 24. Файлы на накопителе, подключенном к роутеру

4. Отправка писем с прошивки DD-WRT

DD-WRT имеет в своей стандартной комплектации агента передачи почты для отправки писем /usr/sbin/sendmail, но заставить его работать мне так и не удалось. Дальше ошибки «Segmentation fault», после соединения с несколькими почтовыми серверами, дело так и не продвинулось. Поэтому выбор был остановлен на msmtp — лёгком SMTP-клиенте.

4.1. Установка msmtp из Optware

Optware – это система управления пакетами, применяемая в основном для встраиваемых версий Linux Embedded, то есть для устройств небольшого размера и небольшой производительности. Прелесть данной системы в том, что она представляет собой репозиторий, содержащий в себе тысячи пакетов свободного программного обеспечения, исполняемые файлы которого скомпилированы для огромного числа разнообразных платформ.

Для удалённого доступа к роутеру будем использовать PuTTY – свободно распространяемый клиент для различных протоколов удалённого доступа, включая Telnet (*7). В настройках программы набираем адрес роутера и выбираем протокол, рис. 25.

Файлы на накопителе, подключенном к роутеру

Рис. 25. Окно PuTTY с настройками для соединения

Логин для подключения всегда root, пароль – ваш установленный пароль. После подключения наблюдаем следующую картину:

DD-WRTv24-sp2 mini(c)2013NewMedia-NETGmbH

Release:03/25/13(SVN revision:21061)

DD-WRT login: root

Password:

==========================================================

                       DD-WRT v24-sp2

                   http://www.dd-wrt.com

==========================================================

BusyBox v1.21.0 (2013-03-2502:20:44 CET) built-in shell (ash)

Enter 'help' for a list of built-in commands.

root@DD-WRT:~#

Проверяем, подключен ли USBнакопитель, командой df – выводим список всех файловых систем по именам устройств, а также их размер, занятое и свободное пространство и точки монтирования

root@DD-WRT:~# df

Filesystem           1K-blocks      Used Available Use% Mounted on

rootfs                    3456      3456         0100%/

/dev/root                 3456      3456         0100%/

/dev/discs/disc0/part5

                       2029971      8229   1916936   0%/jffs

root@DD-WRT:~#

Далее подготавливаем место для установки Optware. Создаем каталог командой mkdir /jffs/opt:

root@DD-WRT:~# mkdir /jffs/opt

root@DD-WRT:~#

Проверяем, подключен ли USBнакопитель, командой df – выводим список всех файловых систем по именам устройств, а также их размер, занятое и свободное пространство и точки монтирования

root@DD-WRT:~# df

Filesystem           1K-blocks      Used Available Use% Mounted on

rootfs                    3456      3456         0100%/

/dev/root                 3456      3456         0100%/

/dev/discs/disc0/part5

                       2029971      8229   1916936   0%/jffs

root@DD-WRT:~#

Далее подготавливаем место для установки Optware. Создаем каталог командой mkdir /jffs/opt:

root@DD-WRT:~# mkdir /jffs/opt

root@DD-WRT:~#

Далее подготавливаем место для установки Optware. Создаем каталог командой mkdir /jffs/opt:

root@DD-WRT:~# mkdir /jffs/opt

root@DD-WRT:~#

Монтируем устройство в каталог командой: mount -o bind /jffs/opt /opt

root@DD-WRT:~# mount -o bind /jffs/opt /opt

root@DD-WRT:~#

Скачиваем установочный скрипт: wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O - | tr -d "\r" > /tmp/optware-install.sh

root@DD-WRT:~# wget http://www.3iii.dk/linux/optware/optware-install-ddwrt.sh -O-|tr -d "\r">/tmp/optware-install.sh

Connecting to www.3iii.dk (46.30.212.129:80)

-                    100%|*******************************|  2895   0:00:00 ETA

root@DD-WRT:~#

и запускаем его: sh /tmp/optware-install.sh

root@DD-WRT:~# sh /tmp/optware-install.sh

Checking system config ...

Using 192.167.0.5 as default gateway.

Using the following nameserver(s):

nameserver 192.167.0.200

Installing package uclibc-opt_0.9.28-13_mipsel.ipk ...

   Some newer versions of DD-WRT does not show download progress bar,

   so just be patient - or check STATUS -> BANDWIDTH tab for download

   activity in your routers Web-GUI, and then still wait a minute or two.

Connecting to ipkg.nslu2-linux.org (140.211.169.161:80)

uclibc-opt_0.9.28-13 100%|*******************************|   8320:00:00 ETA

Updating /opt/etc/ld.so.cache

Installing package ipkg-opt_0.99.163-10_mipsel.ipk ...

   Some newer versions of DD-WRT does not show download progress bar,

   so just be patient - or check STATUS -> BANDWIDTH tab for download

   activity in your routers Web-GUI, and then still wait a minute or two.

Connecting to ipkg.nslu2-linux.org (140.211.169.161:80)

ipkg-opt_0.99.163-10 100%|*******************************|75850   0:00:00 ETA

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz

Connecting to ipkg.nslu2-linux.org (140.211.169.161:80)

Packages.gz          100%|*******************************|   1190:00:00 ETA

Inflating http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz

Updated list of available packages in /opt/lib/ipkg/lists/optware

Successfully terminated.

Installing uclibc-opt (0.9.28-13) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/uclibc-opt_0.9.28-13_mipsel.ipk

Connecting to ipkg.nslu2-linux.org (140.211.169.161:80)

uclibc-opt_0.9.28-13 100%|*******************************|   8320:00:00 ETA

package uclibc-opt suggests installing ipkg-opt

Configuring uclibc-opt

Updating /opt/etc/ld.so.cache

Successfully terminated.

Installing ipkg-opt (0.99.163-10) to /opt/...

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/ipkg-opt_0.99.163-10_mipsel.ipk

Connecting to ipkg.nslu2-linux.org (140.211.169.161:80)

ipkg-opt_0.99.163-10 100%|*******************************|75850   0:00:00 ETA

Configuring ipkg-opt

Successfully terminated.

root@DD-WRT:~

Полный список всех пакетов из Optware можно получить командой ipkg-opt list

root@DD-WRT:~# ipkg-opt list

abook -0.5.6-2- Abook is a text-based addressbook program designed to use with mutt mail client.

ack -1.96-1- grep-like text finder

...

zoo -2.10-1- zoo - File archiving utility with compression

zsh -4.3.17-1- Zsh is a shell designed for interactive use.

Successfully terminated.

root@DD-WRT:~

Для интереса вы можете познакомиться с его содержимым (более тысячи пакетов) в отдельном файле ipkg-opt list.html

root@DD-WRT:~# /opt/bin/ipkg-opt update

Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz

Inflating http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/Packages.gz

Updated list of available packages in /opt/lib/ipkg/lists/optware

Successfully terminated.

root@DD-WRT:~

Скачиваем необходимый пакет для отправки почты, устанавливаем и запускаем его командой: /opt/bin/ipkg-opt install msmtp

root@DD-WRT:~# /opt/bin/ipkg-opt install msmtp
Installing msmtp (1.4.28-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/msmtp_1.4.28-1_mipsel.ipk
Installing gnutls (2.6.5-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/gnutls_2.6.5-1_mipsel.ipk
Installing libtasn1 (2.13-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/libtasn1_2.13-1_mipsel.ipk
Installing libgcrypt (1.5.0-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/libgcrypt_1.5.0-1_mipsel.ipk
Installing libgpg-error (1.10-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/libgpg-error_1.10-1_mipsel.ipk
Installing zlib (1.2.5-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/zlib_1.2.5-1_mipsel.ipk
Installing libgsasl (1.6.1-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/libgsasl_1.6.1-1_mipsel.ipk
Installing libidn (1.25-1) to /opt/...
Downloading http://ipkg.nslu2-linux.org/feeds/optware/ddwrt/cross/stable/libidn_1.25-1_mipsel.ipk
Configuring gnutls
Configuring libgcrypt
Configuring libgpg-error
Configuring libgsasl
Configuring libidn
Configuring libtasn1
Configuring msmtp
Configuring zlib
Successfully terminated.
root@DD-WRT:~#

После этого пакет установлен и можно им пользоваться, но необходимо сделать записи в параметры запуска, чтобы не делать это вручную после каждой перезагрузки.

4.2. Восстановление работы msmtp после перезагрузки роутера

Чтобы приведенное монтирование сохранялось при перезагрузке, а также (как обнаружилось позднее), чтобы избежать нестыковок при работе планировщика, необходимо добавить записи:

mount -o bind /jffs/opt /opt &

stopservice cron && startservice cron

в параметры запуска (вкладка Тех. Обслуживание -> Команды), рис. 26.

Для того, чтобы подключенные к роутеру диски корректно отключались при его перезагрузке, добавляем Shutdown скрипт через веб-интерфейс:

umount /opt &

umount /jffs &

sleep 2

Задание параметров запуска и выключения

Рис. 26. Задание параметров запуска и выключения

После этого можно смело перезагружаться.

4.3. Отправка тестового письма при помощи msmtp

После перезагрузки проверим, что отправка писем работает. Снова подключимся через telnet к роутеру, используя программу PuTTY, и выполним нижеследующую команду (предварительно впишите имя и пароль от gmail ящика, откуда вы отправляете письмо, а также ваш почтовый ящик получателя recipient@):

root@DD-WRT:~# echo -e "From: DD-WRT <Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;\nContent-Type: text/plain;charset=utf-8\nContent-Transfer-Encoding: 8bit\nSubject: DD-WRT Log – тестовое сообщение\n" | /opt/bin/msmtp -d --host="smtp.gmail.com" --port=587 --protocol=smtp --auth=on --tls=on --tls-starttls=on --tls-certcheck=off --user="Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. "; --passwordeval="echo 'password-here'" --from="Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. "; Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

using account specified on command line
host = smtp.gmail.com
port = 587
timeout = off
protocol = smtp
domain = localhost
auth = choose
user = Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
password = *
passwordeval = echo 'password-here'
ntlmdomain = (not set)
tls = on
tls_starttls = on
tls_trust_file = (not set)
tls_crl_file = (not set)
tls_fingerprint = (not set)
tls_key_file = (not set)
tls_cert_file = (not set)
tls_certcheck = off
tls_force_sslv3 = off
tls_min_dh_prime_bits = (not set)
tls_priorities = (not set)
auto_from = off
maildomain = (not set)
from = Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
dsn_notify = (not set)
dsn_return = (not set)
keepbcc = off
logfile = (not set)
syslog = (not set)
aliases = (not set)
reading recipients from the command line
<-- 220 mx.google.com ESMTP lv10sm372526lac.24 - gsmtp
--> EHLO localhost
<-- 250-mx.google.com at your service, [178.161.155.55]
<-- 250-SIZE 35882577
<-- 250-8BITMIME
<-- 250-STARTTLS
<-- 250-ENHANCEDSTATUSCODES
<-- 250-PIPELINING
<-- 250-CHUNKING
<-- 250 SMTPUTF8
--> STARTTLS
<-- 220 2.0.0 Ready to start TLS
TLS certificate information:
Owner:
Common Name: smtp.gmail.com
Organization: Google Inc
Locality: Mountain View
State or Province: California
Country: US
Issuer:
Common Name: Google Internet Authority G2
Organization: Google Inc
Country: US
Validity:
Activation time: Wed Feb 18 10:19:56 2015
Expiration time: Thu Dec 31 00:00:00 2015
Fingerprints:
SHA1: D3:7C:82:FC:D0:5F:8F:XX:DA:A2:59:8C:42:D7:XX:9F:C1:9F:7E:60
MD5: 5A:01:9E:79:12:XX:BF:B1:68:XX:ED:FA:9E:CD:C0:F5
--> EHLO localhost
<-- 250-mx.google.com at your service, [178.161.155.55]
<-- 250-SIZE 35882577
<-- 250-8BITMIME
<-- 250-AUTH LOGIN PLAIN XOAUTH XOAUTH2 PLAIN-CLIENTTOKEN
<-- 250-ENHANCEDSTATUSCODES
<-- 250-PIPELINING
<-- 250-CHUNKING
<-- 250 SMTPUTF8
--> AUTH PLAIN AHJvYm90QU1XXXXXXXWlsLmNvbQBXXXXXdGd1VWJua145OWZu
<-- 235 2.7.0 Accepted
--> MAIL FROM:<Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;
--> RCPT TO:<Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;
--> DATA
<-- 250 2.1.0 OK lv10sm372526lac.24 - gsmtp
<-- 250 2.1.5 OK lv10sm372526lac.24 - gsmtp
<-- 354 Go ahead lv10sm372526lac.24 - gsmtp
--> From: DD-WRT <Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;
--> Content-Type: text/plain;charset=utf-8
--> Content-Transfer-Encoding: 8bit
--> Subject: DD-WRT Log - тестовое сообщение
-->
--> .
<-- 250 2.0.0 OK 1428246750 lv10sm372526lac.24 - gsmtp
--> QUIT
<-- 221 2.0.0 closing connection lv10sm372526lac.24 - gsmtp
root@DD-WRT:~#

5. Отслеживание присутствия людей через домашний роутер

Осталось совсем немного до начала получения уведомления о присутствии людей.

Первоначально установим правильное время на роутере – задаем свой часовой пояс в разделе Установка -> Основные установки -> Настройки времени. Дополнительно можете задать «IP/Имя сервера»: time.nist.gov.

Далее определитесь – уведомления об активности каких устройств вы хотите получать – только телефоны? Телевизор? Планшет? Ноутбук? В данной статье мы рассмотрим только определение человека по телефону.

За телефоном надо закрепить статический IP адрес в настройках DHCP в разделе Службы -> Службы, рис. 27. Опытные люди могут заметить, что также можно работать с MAC-адресом, но на получаемый результат это не повлияет, к тому же скрипт можно легко модифицировать.

Закрепление статического IP адреса за телефоном

Рис. 27. Закрепление статического IP адреса за телефоном

После этого переходим в «Тех. Обслуживание -> Команды», вставляем нижеприведенный скрипт в поле и нажимаем «Сохр.скрипт». В скрипте измените адрес телефона 192.167.0.151 на свой и измените параметры отправки почты на те, которыми пользовались при отправке тестового письма.

#!/bin/bash

# z-wave.ru, Mikhail Shardin

# смена текущего каталога перед записью лога
cd /jffs/log
# инициализация переменной результата
LOGFILE="/jffs/log/z-wave-ru-phone"
read result < $LOGFILE
# пинг с последующей проверкой на ошибки
errorscount="$(ping -c 3 192.167.0.151 2<&1| grep -icE 'unknown|expired|unreachable|time out|100% packet loss')"
# если предыдущий пинг был удачен, а текущий нет, т.е. вывод ping содержит ошибки, то
if [ "$result" = 1 -a "$errorscount" != 0 ]; then
# запоминаем результат текущего пинга
echo 0 > $LOGFILE
result=0
# и пишем время разрыва соединения с устройством
echo 'DD-WRT Log - XXX ушел в '`date +%H:%M:%S`', '`date +%Y.%m.%d`
echo -e "From: DD-WRT <Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;\nContent-Type: text/plain;charset=utf-8\nContent-Transfer-Encoding: 8bit\nSubject: DD-WRT Log - XXX ушел в "`date +%H:%M:%S`", "`date +%Y.%m.%d` | /opt/bin/msmtp -d --host="smtp.gmail.com" --port=587 --protocol=smtp --auth=on --tls=on --tls-starttls=on --tls-certcheck=off --user="Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. "; --passwordeval="echo 'password-here'" --from="Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. "; Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.
fi
# если предыдущий пинг был неудачен, а текущий успешен, то
if [ "$result" = 0 -a "$errorscount" = 0 ]; then
# запоминаем результат текущего пинга
result=1
echo 1 > $LOGFILE
# и пишем в лог время установки соединения
echo 'DD-WRT Log - XXX пришел в '`date +%H:%M:%S`', '`date +%Y.%m.%d`
echo -e "From: DD-WRT <Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. >;\nContent-Type: text/plain;charset=utf-8\nContent-Transfer-Encoding: 8bit\nSubject: DD-WRT Log - XXX пришел в "`date +%H:%M:%S`", "`date +%Y.%m.%d` | /opt/bin/msmtp -d --host="smtp.gmail.com" --port=587 --protocol=smtp --auth=on --tls=on --tls-starttls=on --tls-certcheck=off --user="Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. "; --passwordeval="echo 'password-here'" --from="Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. "; Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.

fi

После вставки русские буквы отображаются некорректно, рис. 28, но на работоспособность это не повлияет, письма приходят с читаемыми символами.

Скрипт отслеживания присутствия людей через домашний роутер

Рис. 28. Скрипт отслеживания присутствия людей через домашний роутер

Скрипт сохранен, но, для получения уведомлений, необходимо задать его автоматическое исполнение на роутере один раз в определенное количество минут. Например, один раз в 5 минут. Воспользовавшись демоном-планировщиком cron, рис. 28, вставим команду:

*/5 * * * * root /bin/sh /tmp/custom.sh &

Скрипт отслеживания присутствия людей через домашний роутер

Рис. 29. Скрипт отслеживания присутствия людей через домашний роутер

После этого выключите Wi-Fi на телефоне, подождите минут 10 для проверки, затем включите.

Уведомления должны прийти. Поскольку уведомлений может быть довольно много, предлагаю провести некоторую оптимизацию в почтовом ящике, которая описана в разделе «Настройки почтового ящика Gmail», статьи *8.

Важное замечание – если вы отслеживаете iOS устройство, то разумнее определять присутствие человека не через пинг, а через таблицу cat /proc/net/arp:

root@DD-WRT:~# cat /proc/net/arp

IP address       HW type     Flags       HW address            Mask     Device

192.167.0.151    0x1         0x2         8C:3A:XX:XX:D5:3B     *        br0

192.167.0.150    0x1         0x2         00:21:XX:XX:A1:B0     *        br0

root@DD-WRT:~#

Дополнительно, для поддержания работоспособности устройства и работоспособности скрипта, рекомендую установить выполнение плановой перезагрузки роутера, в разделе Тех.обслуживание -> Поддержание жизни -> Плановая перезагрузка. Можно задать или конкретное время выполнения, например, раз в неделю или интервал, например, один раз в три дня.

Выводы

В результате применения статьи мы получаем систему понятных оповещений о присутствии людей в доме, работу которой обеспечивает ваш домашний роутер. При этом полностью сохраняется основной функционал устройства. Расширьте границы возможного без дополнительных затрат ;)

Ссылки, упоминаемые в статье:

*1. http://www.z-wave.ru/obzory/262-lyudi-v-dome-prostye-sposoby-opredeleniya-prisutstviya.html

*2. http://www.dd-wrt.com/site/index

*3. http://market.yandex.ru/product/9366696/

*4. http://www.dd-wrt.com/site/support/router-database

*5. http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F#K2.6_Build_Features

*6. http://www.partitionwizard.com/free-partition-manager.html

*7. http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

*8. http://z-wave.ru/obzory/259-sozdanie-prostykh-i-ponyatnykh-uvedomlenij-v-ui5-vera.html

Информация актуальна на дату написания статьи: апрель 2015 года.

Автор: Михаил Шардин

Способы доставки

Самовывоз

Место и время самовывоза с вами согласует по телефону наш менеджер.

Доставка по Москве

Стоимость доставки по Москве в пределах МКАД составляет 350 руб.

Доставка по России

В другие города мы отправляем товар курьерскими службами «Интеграл», EMS после поступления оплаты заказа.

Подробнее о способах доставки...

 

 

 

Контакты

  • +7 495 204-27-80
  • Пн.-Пт.: с 900 до 1900
  • Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра.