Содержание
- Что такое SMS AT RUN и зачем он нужен
- Что нужно до начала настройки
- Быстрая настройка за 4 команды
- Шаг 1. Включение службы
- Шаг 2. Параметры выполнения
- Шаг 3. Белый список номеров
- Шаг 4. Сохранение настроек
- Как отправлять команды и читать ответы
- Безопасность: пароли и маски
- Ограничения и опасные команды
- Не работает: что проверить
- Частые вопросы
- Документация
1. Что такое SMS AT RUN и зачем он нужен
Модем управляется AT-командами. Обычно их подаёт контроллер или компьютер, подключённый к модему кабелем. Но оборудование часто стоит там, куда не приедешь за пять минут: шкаф на подстанции, счётчик в подвале, метеопост, банкомат в другом городе.
SMS AT RUN - встроенная служба модулей Telit, которая решает эту проблему. Модем начинает проверять входящие SMS: если сообщение пришло с разрешённого номера и его текст начинается с AT, модем выполняет этот текст как обычную AT-команду и отправляет ответ обратно тем же SMS.
Что это даёт на практике:
- Диагностика без выезда. Уровень сигнала, оператор, состояние регистрации - одним сообщением.
- Перезагрузка зависшего устройства. Когда GPRS/LTE-канал уже не отвечает, SMS чаще всего ещё проходит.
- Изменение настроек. Смена APN, режима сети, управление выводами GPIO.
- Работа без интернета. Служба не требует активного пакетного соединения, только регистрацию в сети и SMS.
Важно. Служба работает на самом модеме. Она не зависит от вашего контроллера, ПО и его прошивки - поэтому и остаётся доступной, когда основная логика устройства «легла».
Полное описание службы приведено в фирменной документации Telit - SMS AT RUN & TCP AT RUN Application Note. Синтаксис всех упомянутых ниже команд - в AT Commands Reference Guide. Обе книги приложены к статье, см. раздел «Документация».
2. Что нужно до начала настройки
- Локальный доступ к модему по COM-порту (терминал: PuTTY, Tera Term, Telit AT Controller и т. п.). Первичная настройка выполняется только локально - по SMS её сделать нельзя, служба ещё выключена.
- Установленная SIM-карта с активной услугой SMS и известным номером.
- Номер телефона (или SIM-модема), с которого вы будете отправлять команды.
- Положительный баланс на SIM в модеме - исходящие ответные SMS платные.
Учтите. Каждый ответ модема - это отдельное платное SMS, а длинный ответ разбивается на несколько сообщений. На тарифах с дорогими SMS активная диагностика может заметно расходовать баланс.
3. Быстрая настройка за 4 команды
Если нужен рабочий результат прямо сейчас, введите в терминале по порядку:
AT#SMSATRUNCFG=3,1,5 // параметры выполнения (значения по умолчанию) AT#SMSATWL=0,1,0,"+79999999999" // разрешить свой номер AT#SMSATRUN=1 // включить службу AT&W // сохранить в энергонезависимую память
После каждой команды модем должен ответить OK. Ниже - что именно делает каждая из них.
4. Шаг 1. Включение службы
AT#SMSATRUN=1
| Значение | Описание |
|---|---|
0
|
Служба выключена (состояние по умолчанию) |
1
|
Служба включена: все входящие SMS проверяются как потенциальные AT-команды |
Проверить текущее состояние можно запросом AT#SMSATRUN?.
Настройка хранится в энергонезависимой памяти модуля. После перезагрузки или отключения питания служба поднимается автоматически - включать её заново не нужно.
5. Шаг 2. Параметры выполнения
AT#SMSATRUNCFG=<instance>[,<urcmod>[,<timeout>]]
Значение по умолчанию, которое подходит подавляющему большинству применений:
AT#SMSATRUNCFG=3,1,5
| Параметр | Что задаёт | Рекомендация |
|---|---|---|
<instance>
|
Номер внутреннего AT-интерфейса модема, который резервируется под выполнение команд из SMS | 3 - оставьте как есть |
<urcmod>
|
Показывать ли в локальном терминале уведомление #SMSATRUN: <команда> в момент получения команды
|
1 - удобно при отладке |
<timeout>
|
Тайм-аут выполнения команды в минутах. Если команда не завершилась, служба разблокируется по его истечении | 5 минут |
Не делайте так. Не ставьте <instance>=1. Первый интерфейс - это обычно тот самый порт, через который вы работаете с модемом. Зарезервировав его под SMS AT RUN, вы потеряете локальное управление, и вернуть его можно будет только через мультиплексор CMUX или второй физический порт.
Точный диапазон допустимых значений <instance> зависит от модели модуля - сверьтесь с описанием команды #SMSATRUNCFG в AT Commands Reference Guide.
6. Шаг 3. Белый список номеров
Это ключевой шаг с точки зрения безопасности. Модем выполнит команду только если отправитель есть в белом списке. Пока список пуст, служба фактически не работает - все команды будут игнорироваться.
AT#SMSATWL=<action>,<index>[,<entryType>[,<string>]]
Добавить номер +79999999999 в первый слот:
AT#SMSATWL=0,1,0,"+79999999999"
| Параметр | Значения |
|---|---|
<action>
|
0 - добавить; 1 - удалить; 2 - показать содержимое списка
|
<index>
|
Номер слота, от 1 до 8 |
<entryType>
|
0 - телефонный номер; 1 - пароль (не более 2 паролей на модуль)
|
<string>
|
Номер в кавычках, в международном формате. Допускается маска *
|
Маски номеров
Символ * заменяет любое окончание номера - удобно, когда команды могут приходить с нескольких SIM-карт службы эксплуатации.
| Запись | Кому разрешён доступ |
|---|---|
"+79999999999"
|
Только этому конкретному номеру |
"+7916*"
|
Всем номерам с кодом 916 |
"+7*"
|
Любому российскому номеру |
Осторожно с масками. Запись "+7*" открывает управление модемом с любого российского номера. Для оборудования в поле указывайте конкретные номера или максимально узкие маски, иначе достаточно случайного «AT»-сообщения или подмены номера, чтобы вмешаться в работу устройства.
Просмотр списка
AT#SMSATWL=2
Модем выведет занятые слоты - полезно, чтобы не затереть чужую запись.
7. Шаг 4. Сохранение настроек
AT&W
Записывает текущий профиль в энергонезависимую память. Выполняйте эту команду в самом конце, после всех изменений.
Проверка. Перезагрузите модем командой AT#REBOOT и убедитесь, что AT#SMSATRUN? по-прежнему возвращает 1, а AT#SMSATWL=2 показывает ваши номера.
8. Как отправлять команды и читать ответы
Правила формата сообщения
- Текст SMS должен начинаться с
AT- никаких приветствий, пробелов и переносов перед командой. - Отправитель должен быть в белом списке.
- Сообщение не должно быть склеенным (concatenated) - одна команда = одно SMS. Ответ модема, наоборот, при необходимости разбивается на несколько сообщений.
- Несколько команд подряд разделяются точкой с запятой:
AT+CSQ;+COPS?
Пример
Отправляем на номер SIM-карты модема сообщение с текстом:
AT+CSQ
Через несколько секунд приходит ответное SMS:
+CSQ: 9,0 OK
Первое число - уровень сигнала (RSSI) в условных единицах от 0 до 31, второе - качество канала. Значение 99 означает, что сигнал не определён.
Команда без ответа
Если ответное SMS не нужно (например, вы просто перезагружаете устройство и хотите сэкономить на трафике), начните текст с HAT вместо AT:
HAT#REBOOT
Полезные команды для диагностики
| Команда | Что показывает / делает |
|---|---|
AT+CSQ
|
Уровень и качество сигнала |
AT+COPS?
|
Текущий оператор сети |
AT+CREG?
|
Состояние регистрации в сети |
AT+CGMR
|
Версия прошивки модуля |
AT+CGSN
|
IMEI устройства |
AT#MONI
|
Подробная информация о соте |
AT#REBOOT
|
Перезагрузка модема |
Это лишь малая часть - полный перечень команд с описанием параметров и форматов ответа смотрите в AT Commands Reference Guide.
9. Безопасность: пароли и маски
Проверка по номеру отправителя защищает от случайных сообщений, но номер в SMS технически можно подменить. Для ответственных объектов Telit предусматривает второй режим - Digest ATRUN, в котором сообщение подписывается паролем (MD5-дайджест), а номер отправителя не проверяется вовсе.
AT#SMSATWL=0,2,1,"1234567890123456" // пароль в слот 2
- Пароль должен быть длиной 16 символов.
- В модуле можно хранить не более двух паролей.
- Такие сообщения формируются в двоичном (8-битном) виде - с обычного телефона их не отправить, нужна программа или SMS-шлюз, умеющий собирать дайджест.
- Плюс режима: SIM-карту отправителя можно менять свободно, доступ привязан к паролю, а не к номеру.
Структура такого сообщения (заголовок, дайджест, кодирование) подробно расписана с примерами в SMS AT RUN & TCP AT RUN Application Note.
Практические правила. Не оставляйте широких масок вроде "+7*" на действующем оборудовании. Не публикуйте номер SIM-карты модема. Периодически проверяйте содержимое белого списка командой AT#SMSATWL=2 - особенно на устройствах, которые проходили сервис или меняли владельца.
10. Ограничения и опасные команды
Команды, которые не работают через SMS
Не выполняются команды, требующие ввода данных после приглашения >: AT+CMGS, AT+CMGW, AT#SSEND, AT#SEMAIL, AT#WSCRIPT и подобные - приглашение в SMS не передаётся.
Ответы очень длинных команд (семейство AT#CSURV) обрезаются: в цепочку помещается не более 15 SMS.
Команды, после которых связь с модемом теряется
Не отправляйте по SMS. Следующие команды необратимо блокируют механизм обмена SMS, и восстановить управление получится только физически на объекте:
AT+CFUN=2,AT+CFUN=4- перевод модуля в неактивные режимыAT+CMUX=0,AT#BND=3AT+CGCLASS="CG",AT+CGSMS=0,AT+COPS=2AT#SIMDET=0,ATQ1,ATQ2- Включение телефонной книги FDN, если ваш номер в неё не внесён
Команды AT#REBOOT и AT#SHDN работают, но ответное SMS до выключения модуля отправить не успевают - отсутствие ответа здесь нормально.
Задержка перед выполнением
Часть команд конфликтует с работающей SMS-службой и может завершиться ошибкой. Помогает принудительная пауза перед выполнением:
AT#ATRUNDELAY=1,5 // задержка 5 секунд для команд из SMS
Рекомендуемые значения: 10 секунд для AT+COPS=?, AT+CFUN, AT#SIMDET, AT#CSURV; 5 секунд для AT#SGACT, AT+CGACT, AT+CGATT.
Полные таблицы задержек и перечень ограничений приведены в разделе Delays and Notes документа SMS AT RUN & TCP AT RUN Application Note.
11. Не работает: что проверить
| Симптом | Вероятная причина и решение |
|---|---|
| Ответ не приходит вообще |
Проверьте баланс SIM в модеме и наличие регистрации в сети (AT+CREG?). Убедитесь, что служба включена: AT#SMSATRUN? должно вернуть 1.
|
| SMS доходит, но остаётся во «Входящих» модема как обычное сообщение |
Отправитель не в белом списке, либо номер записан в другом формате. Всегда используйте международный формат с +: "+79999999999", а не "89999999999".
|
| Настройки сбрасываются после перезагрузки |
Не выполнена AT&W.
|
| Модем перестал отвечать на локальный порт после включения службы |
В AT#SMSATRUNCFG задан <instance>=1. Верните значение 3 через другой порт или CMUX.
|
| Команда выполняется, но ответ пустой или обрезан | Ответ длиннее допустимой цепочки SMS. Разбейте запрос на несколько коротких команд. |
| Одна конкретная команда стабильно даёт ошибку |
Конфликт с SMS-службой - задайте задержку через AT#ATRUNDELAY.
|
Команды с символами \ или ^ не проходят
|
Этих символов нет в 7-битном алфавите GSM. Нужен 8-битный режим: AT#SMSMODE=1 и текст в шестнадцатеричном виде.
|
12. Частые вопросы
Нужен ли интернет или активный GPRS-канал?
Нет. Достаточно регистрации в сети и работающей услуги SMS. Именно поэтому SMS AT RUN остаётся рабочим инструментом, когда передача данных недоступна.
Сколько номеров можно добавить в белый список?
До 8 записей, из которых не более 2 могут быть паролями. Одна запись с маской покрывает целую группу номеров.
Останется ли служба включённой после отключения питания?
Да, если вы выполнили AT&W. Состояние службы и номер интерфейса хранятся в энергонезависимой памяти и восстанавливаются при старте.
Что происходит с командными SMS после выполнения?
Модем распознаёт их, выполняет и молча удаляет - память SMS не забивается.
Как полностью отключить службу?
Локально в терминале: AT#SMSATRUN=0, затем AT&W. По SMS отключать не рекомендуется - после этого удалённое управление станет недоступно.
Я отправил команду, но модем не ответил. Он завис?
Не обязательно. Сначала проверьте, нет ли команды в списке тех, что не возвращают ответ (AT#REBOOT, AT#SHDN) или требуют приглашения ввода. Затем отправьте заведомо безопасный запрос AT+CSQ. Если и он молчит - вероятно, проблема со связью, балансом или питанием устройства.
13. Документация
- Telit AT Commands Reference Guide (r24) - полный справочник AT-команд: синтаксис, параметры, форматы ответов.
- Telit SMS AT RUN & TCP AT RUN Application Note (r1) - описание самой службы, формат сообщений, режим с паролем, задержки и ограничения.
Набор поддерживаемых команд может отличаться в зависимости от модели модуля и версии прошивки - уточняйте в документации на вашу модель.
Если после проверки по разделу 11 проблема сохраняется, обратитесь в техническую поддержку - support@teleofis.ru - и приложите модель устройства, версию прошивки (AT+CGMR) и текст отправленной команды.