В репозитории https://github.com/p1ne/openwrt-scripts выложены мои скрипты для OpenWRT на роутере TP-Link MR3020/модеме Huawei E353 для использования в автомобиле для следующих задач
1. Отсылка сообщения с примерным местоположением машины, которое определяется по данным текущей сотовой вышки, если к роутеру подключен 3G-модем
2. Автоматическое переключение раздачи интернета между модемом, подключенным к роутеру и мобильным телефоном в режиме hotspot
3. Автоматическая активация бесплатного режима Yota в случае, если к роутеру подключен Yota-модем
Предполагается следующее:
Для работы с HTTP-запросами в репозитории представлены разные скрипты в зависимости от того, какие утилиты есть в системе - curl, wget или netcat (nc)
Для корректной работы скриптов необходимо задать переменные окружения в файле /root/variables.sh
При помощи переменных задаются параметры точек доступа, ключи для провайдеров координат и сервисов нотификации, а также выбираются скрипты для получения координат и нотификаций.
Провайдеры координат по данным сотовых вышек (можно использовать только один):
OPENCELLID_KEY - opencellid.org, требует регулярной отсылки данных вышек, поэтому может быть не очень удобен ( получить ключ )
YANDEX_KEY - Yandex Location API ( получить ключ )
Сервисы нотификации (можно использовать только один)
NMA_KEY - Notify My Android для телефонов на Android ( приложение )
QPUSH_CODE, QPUSH_NAME - qpush.me для iPhone ( приложение )
Точки доступа
ROUTER_AP_NAME, ROUTER_AP_PASSWORD - имя и пароль точки доступа когда доступ в сеть раздается через модем
PHONE_AP_NAME, PHONE_AP_MAC, PHONE_AP_PASSWORD - имя, MAC-адрес и пароль телефона, раздающего доступ в сеть
Конфигурацию точек доступа можно посмотреть в /root/wireless.Modem и /root/wireless.Phone
Скрипты
NOTIFY_SCRIPT - скрипт нотификации. В названии скрипта указан сервис нотификации и используемая утилита для работы с HTTP-запросами
COORDINATES_SCRIPT - скрипт получения координат. В названии скрипта указано название провайдера координат
YOTA_SCRIPT - скрипт активации бесплатного режима работы Yota. В названии скрипта указана используемая утилита для работы с HTTP-запросами
Скрипт отсылки координат запускается один раз при загрузке роутера через /etc/rc.local
Скрипт переключения на телефон, раздающий доступ в сеть, и обратно - раз в минуту через /etc/crontabs/root
1. Отсылка сообщения с примерным местоположением машины, которое определяется по данным текущей сотовой вышки, если к роутеру подключен 3G-модем
2. Автоматическое переключение раздачи интернета между модемом, подключенным к роутеру и мобильным телефоном в режиме hotspot
3. Автоматическая активация бесплатного режима Yota в случае, если к роутеру подключен Yota-модем
Предполагается следующее:
- на роутере установлена прошивка Peppy Snowdrop и на нем при помощи патча 4gmodem-fix.patch исправлена строка 352 скрипта /usr/bin/4gmodem
- используется модем Huawei (проверялась работа на E353)
- Название интерфейса модема не содержит пробелов
Для работы с HTTP-запросами в репозитории представлены разные скрипты в зависимости от того, какие утилиты есть в системе - curl, wget или netcat (nc)
- curl самый нормальный и надежный способ, но для установки curl на MR3020 требуется дополнительное место на корневом разделе, которое можно организовать при помощи extroot. Но для этого потребуется или вставить флешку в модем Huawei и сконфигурировать его или воспользоваться хабом
- wget не работает с POST и https, но есть в составе busybox
- netcat самый ненадежный способ, но не требует ничего кроме busybox
При помощи переменных задаются параметры точек доступа, ключи для провайдеров координат и сервисов нотификации, а также выбираются скрипты для получения координат и нотификаций.
Провайдеры координат по данным сотовых вышек (можно использовать только один):
OPENCELLID_KEY - opencellid.org, требует регулярной отсылки данных вышек, поэтому может быть не очень удобен ( получить ключ )
YANDEX_KEY - Yandex Location API ( получить ключ )
Сервисы нотификации (можно использовать только один)
NMA_KEY - Notify My Android для телефонов на Android ( приложение )
QPUSH_CODE, QPUSH_NAME - qpush.me для iPhone ( приложение )
Точки доступа
ROUTER_AP_NAME, ROUTER_AP_PASSWORD - имя и пароль точки доступа когда доступ в сеть раздается через модем
PHONE_AP_NAME, PHONE_AP_MAC, PHONE_AP_PASSWORD - имя, MAC-адрес и пароль телефона, раздающего доступ в сеть
Конфигурацию точек доступа можно посмотреть в /root/wireless.Modem и /root/wireless.Phone
Скрипты
NOTIFY_SCRIPT - скрипт нотификации. В названии скрипта указан сервис нотификации и используемая утилита для работы с HTTP-запросами
COORDINATES_SCRIPT - скрипт получения координат. В названии скрипта указано название провайдера координат
YOTA_SCRIPT - скрипт активации бесплатного режима работы Yota. В названии скрипта указана используемая утилита для работы с HTTP-запросами
Скрипт отсылки координат запускается один раз при загрузке роутера через /etc/rc.local
Скрипт переключения на телефон, раздающий доступ в сеть, и обратно - раз в минуту через /etc/crontabs/root