Оглавление
- Введение
- Что нужно до начала настройки
- Быстрая настройка
- Шаг 1. Параметры выполнения
- Шаг 2. Белый список номеров
- Шаг 3. Включение службы
- Шаг 4. Проверка после перезагрузки
- Как отправлять команды и читать ответы
- Настройки порта и отдельный AT-интерфейс
- Безопасность: пароли и маски
- Ограничения и опасные команды
- Не работает: что проверить
- Частые вопросы
- Документация
Введение
Модем управляется AT-командами. Обычно их подаёт контроллер или компьютер, подключённый к модему кабелем. Но оборудование часто стоит там, куда не приедешь за пять минут: шкаф на подстанции, счётчик в подвале, метеопост, банкомат в другом городе.
SMS AT RUN — встроенная служба модулей Telit, на которых построены GSM-модемы TELEOFIS. Она позволяет удалённо управлять модемом по SMS: модем проверяет входящие сообщения, и если SMS пришло с разрешённого номера, а его текст начинается с AT, выполняет этот текст как обычную AT-команду и отправляет ответ обратно тем же SMS.
Что это даёт на практике:
- Диагностика без выезда. Уровень сигнала, оператор, состояние регистрации — одним сообщением.
- Перезагрузка зависшего устройства. Когда GPRS/LTE-канал уже не отвечает, SMS чаще всего ещё проходит.
- Изменение настроек. Смена APN, режима сети, управление выводами GPIO.
- Работа без интернета. Служба не требует активного пакетного соединения, только регистрацию в сети и SMS.
Далее по шагам: задаём параметры службы, заносим номера в белый список, включаем службу и проверяем, что настройки сохраняются после перезагрузки. Затем разбираем формат SMS-команд, защиту и ограничения.
Что нужно до начала настройки
- Локальный доступ к модему по COM-порту (терминал: PuTTY, Tera Term, Telit AT Controller и т. п.). Первичная настройка выполняется только локально — по SMS её сделать нельзя, служба ещё выключена.
- Установленная SIM-карта с активной услугой SMS и известным номером.
- Номер телефона (или SIM-модема), с которого вы будете отправлять команды.
- Положительный баланс на SIM-карте модема — исходящие ответные SMS платные.
Быстрая настройка
Если нужен рабочий результат прямо сейчас, введите в терминале по порядку (номер замените на свой):
AT#SMSATRUNCFG=3,1,5 AT#SMSATWL=0,1,0,"+79999999999" AT#SMSATRUN=1
Первая команда задаёт параметры выполнения (значения по умолчанию), вторая разрешает ваш номер, третья включает службу. После каждой команды модем должен ответить OK.
Порядок важен: AT#SMSATRUNCFG возвращает ERROR, если служба уже включена. Отдельная команда сохранения (AT&W) не нужна — параметры службы записываются в энергонезависимую память автоматически. Ниже — что именно делает каждая команда.
Шаг 1. Параметры выполнения
AT#SMSATRUNCFG=<instance>[,<urcmod>[,<timeout>]]
Значение по умолчанию, которое подходит подавляющему большинству применений:
AT#SMSATRUNCFG=3,1,5
| Параметр | Что задаёт | Рекомендация |
|---|---|---|
<instance> |
Номер внутреннего AT-интерфейса модема, который резервируется под выполнение команд из SMS. Допустимые значения — от 2 до 5 |
3 (по умолчанию) — оставьте как есть |
<urcmod> |
Показывать ли в локальном терминале уведомление #SMSATRUN: <команда> в момент получения команды: 0 — нет, 1 — да |
1 (по умолчанию) — удобно при отладке |
<timeout> |
Максимальное время выполнения команды в минутах, от 1 до 60. Если команда не завершилась за это время, модуль перезагружается |
5 минут (по умолчанию) |
Интерфейс №1 для службы недоступен — это тот порт, через который вы работаете с модемом локально, поэтому локальное управление при настройке службы не теряется. Тот же интерфейс, что и SMS AT RUN, использует служба Event Monitor: изменение <instance> в AT#SMSATRUNCFG автоматически меняет его и в AT#ENAEVMONICFG, и наоборот.
AT#SMSATRUNCFG отвечает ERROR. Чтобы изменить параметры на работающем модеме, сначала выполните AT#SMSATRUN=0, задайте параметры и снова включите службу.
Текущие параметры можно посмотреть запросом AT#SMSATRUNCFG?.
Шаг 2. Белый список номеров
Это ключевой шаг с точки зрения безопасности. Модем выполнит команду только если отправитель есть в белом списке. Пока список пуст, служба фактически не работает — все команды будут игнорироваться.
AT#SMSATWL=<action>,<index>[,<entryType>[,<string>]]
Добавить номер +79999999999 в первый слот:
AT#SMSATWL=0,1,0,"+79999999999"
| Параметр | Значения |
|---|---|
<action> |
0 — добавить запись; 1 — удалить запись; 2 — показать запись в указанном слоте |
<index> |
Номер слота, от 1 до 8 |
<entryType> |
0 — телефонный номер; 1 — пароль (не более двух паролей одновременно) |
<string> |
Номер в кавычках, в международном формате: только цифры, + в начале и маска * в конце. Пароль — ровно 16 символов |
Маски номеров
Символ * ставится только в конце номера и заменяет любое окончание — удобно, когда команды могут приходить с нескольких SIM-карт службы эксплуатации.
| Запись | Кому разрешён доступ |
|---|---|
"+79999999999" |
Только этому конкретному номеру |
"+7916*" |
Всем номерам с кодом 916 |
"+7*" |
Любому российскому номеру |
"+7*" открывает управление модемом с любого российского номера. Для оборудования в поле указывайте конкретные номера или максимально узкие маски, иначе достаточно случайного «AT»-сообщения или подмены номера, чтобы вмешаться в работу устройства.
Просмотр списка
Весь список целиком:
AT#SMSATWL?
Одна запись, например в слоте 1:
AT#SMSATWL=2,1
Просматривайте список перед добавлением записей, чтобы не затереть занятый слот.
Шаг 3. Включение службы
AT#SMSATRUN=1
| Значение | Описание |
|---|---|
0 |
Служба выключена (состояние по умолчанию) |
1 |
Служба включена: входящие SMS проверяются как потенциальные AT-команды |
Проверьте состояние запросом AT#SMSATRUN?. Ответ приходит в формате #SMSATRUN: <mod>,<stat>, где первое число — настройка (включена/выключена), второе — фактическое состояние службы (1 — активна). Для работающей службы ответ должен быть #SMSATRUN: 1,1.
Настройка хранится в энергонезависимой памяти модуля. После перезагрузки или отключения питания служба поднимается автоматически — включать её заново не нужно.
Шаг 4. Проверка после перезагрузки
Перезагрузите модем командой AT#REBOOT и после старта выполните:
AT#SMSATRUN? AT#SMSATRUNCFG? AT#SMSATWL?
Служба должна быть включена (#SMSATRUN: 1,1), параметры — совпадать с заданными, а в белом списке — быть ваши номера. После этого отправьте с разрешённого номера пробную команду AT+CSQ (см. следующий раздел).
Как отправлять команды и читать ответы
Правила формата сообщения
- Текст SMS должен начинаться с
AT— никаких приветствий, пробелов и переносов перед командой. - Отправитель должен быть в белом списке.
- Сообщение не должно быть склеенным (concatenated) — одна команда = одно SMS. Ответ модема, наоборот, при необходимости разбивается на несколько сообщений.
- Несколько команд подряд разделяются точкой с запятой:
AT+CSQ;+COPS?
Пример
Отправьте на номер SIM-карты модема сообщение с текстом:
AT+CSQ
Через несколько секунд придёт ответное SMS:
+CSQ: 9,0 OK
Первое число — уровень сигнала (RSSI) в условных единицах от 0 до 31, второе — коэффициент битовых ошибок (BER) от 0 до 7. Значение 99 в любом из полей означает, что величина не определена.
Команда без ответа
Если ответное SMS не нужно (например, вы просто перезагружаете устройство и хотите сэкономить на SMS), начните текст с HAT вместо AT:
HAT#REBOOT
Полезные команды для диагностики
| Команда | Что показывает / делает |
|---|---|
AT+CSQ |
Уровень и качество сигнала |
AT+COPS? |
Текущий оператор сети |
AT+CREG? |
Состояние регистрации в сети |
AT+CGMR |
Версия прошивки модуля |
AT+CGSN |
IMEI устройства |
AT#MONI |
Подробная информация о соте |
AT#REBOOT |
Перезагрузка модема |
Это лишь малая часть — полный перечень команд с описанием параметров и форматов ответа смотрите в AT Commands Reference Guide.
Настройки порта и отдельный AT-интерфейс
Команды из SMS выполняются не на том порту, к которому подключено ваше оборудование, а на отдельном внутреннем AT-интерфейсе — том, что задан в <instance> (по умолчанию №3). У каждого интерфейса собственный набор настроек, поэтому команды, которые настраивают «свой» порт, по SMS меняют параметры интерфейса службы, а не физического порта.
Например, если отправить по SMS AT+ICF=2,1 (8 бит, чётность Even, 1 стоп-бит), модем ответит OK, но чётность на физическом UART, к которому подключён контроллер, не изменится. То же относится к командам:
- параметры порта —
AT+IPR(скорость),AT+ICF(формат кадра и чётность),AT+IFCиAT&K(управление потоком),AT&D,AT&S; - формат ответов —
ATE,ATV,ATQ,ATX,AT+CMEE; - режим SMS и уведомлений —
AT+CMGF,AT+CNMI,AT+CREG=<n>,AT+CGREG=<n>.
Такие параметры меняйте локально, через тот порт, к которому они относятся. По SMS имеет смысл отправлять команды, которые действуют на модуль целиком: запросы состояния, настройки сети и APN, управление GPIO, перезагрузку.
ATQ1 и ATQ2 — они отключают ответы на интерфейсе службы, и модем перестаёт отвечать на SMS-команды (см. раздел «Ограничения и опасные команды»).
Безопасность: пароли и маски
Проверка по номеру отправителя защищает от случайных сообщений, но номер в SMS технически можно подменить. Для ответственных объектов Telit предусматривает второй режим — Digest SMS AT RUN, в котором сообщение подписывается паролем (дайджестом), и доступ привязан к паролю, а не к номеру.
AT#SMSATWL=0,2,1,"1234567890123456"
Эта команда записывает пароль в слот 2.
- Пароль должен быть длиной ровно 16 символов.
- Одновременно в белом списке может быть не более двух паролей.
- Такие сообщения формируются в двоичном (8-битном) виде — с обычного телефона их не отправить, нужна программа или SMS-шлюз, умеющий собирать дайджест.
Структура такого сообщения (заголовок, дайджест, кодирование) описана в документе Telit Running AT Commands Remotely Application Note.
"+7*" на действующем оборудовании. Не публикуйте номер SIM-карты модема. Периодически проверяйте содержимое белого списка командой AT#SMSATWL? — особенно на устройствах, которые проходили сервис или меняли владельца.
Ограничения и опасные команды
Команды, которые не работают через SMS
Не выполняются команды, требующие ввода данных после приглашения >: AT+CMGS, AT+CMGW, AT#SSEND, AT#SEMAIL, AT#WSCRIPT, AT#I2CWR и подобные — приглашение в SMS не передаётся.
Ответы очень длинных команд (семейство AT#CSURV) обрезаются: в цепочку помещается не более 15 SMS.
Команды, после которых связь с модемом теряется
AT+CFUN=2,AT+CFUN=4— перевод модуля в неактивные режимы;AT+CMUX=0,AT#BND=3;AT+CGCLASS="CG",AT+CGSMS=0,AT+COPS=2;AT#SIMDET=0,ATQ1,ATQ2;- включение телефонной книги FDN, если ваш номер в неё не внесён.
Команды AT#REBOOT и AT#SHDN работают, но ответное SMS до выключения модуля отправить не успевают — отсутствие ответа здесь нормально.
Задержка перед выполнением
Часть команд, которые обращаются к сети или переключают режимы GSM/GPRS, конфликтует с работающей SMS-службой и может завершиться ошибкой. Помогает пауза перед выполнением команды из SMS:
AT#ATRUNDELAY=1,5
Первый параметр — служба (1 — SMS AT RUN, 0 — TCP AT RUN), второй — задержка в секундах, от 0 до 30 (по умолчанию 0). Задержка действует только на команды, пришедшие через службу, и сохраняется до следующей команды AT#ATRUNDELAY.
Рекомендуемые значения: 10 секунд для AT+COPS=?, AT+CFUN, AT#SIMDET, AT#CSURV; 5 секунд для AT#SGACT, AT+CGACT, AT+CGATT.
Полные таблицы задержек и перечень ограничений приведены в документе Telit Running AT Commands Remotely Application Note.
Не работает: что проверить
| Симптом | Вероятная причина и решение |
|---|---|
| Ответ не приходит вообще | Проверьте баланс SIM-карты модема и регистрацию в сети (AT+CREG?). Убедитесь, что служба включена и активна: AT#SMSATRUN? должно вернуть #SMSATRUN: 1,1. |
| SMS доходит, но остаётся во «Входящих» модема как обычное сообщение | Отправитель не в белом списке, либо номер записан в другом формате. Всегда используйте международный формат с +: "+79999999999", а не "89999999999". |
AT#SMSATRUNCFG отвечает ERROR |
Служба SMS AT RUN или Event Monitor включена, либо задан недопустимый <instance> (допустимо 2–5). Выполните AT#SMSATRUN=0, задайте параметры и включите службу снова. |
| Модем неожиданно перезагрузился после SMS-команды | Команда не уложилась в <timeout> из AT#SMSATRUNCFG — по его истечении модуль перезагружается. Увеличьте тайм-аут или разбейте запрос на более короткие команды. |
Команда настройки порта (AT+ICF, AT+IPR и т. п.) ответила OK, но ничего не изменилось |
Команда применилась к внутреннему интерфейсу службы, а не к физическому порту. Выполните её локально (см. раздел «Настройки порта и отдельный AT-интерфейс»). |
| Команда выполняется, но ответ пустой или обрезан | Ответ длиннее допустимой цепочки SMS. Разбейте запрос на несколько коротких команд. |
| Одна конкретная команда стабильно даёт ошибку | Конфликт с SMS-службой — задайте задержку через AT#ATRUNDELAY. |
Команды с символами \, ^, {, }, [, ], ~, | не проходят |
Эти символы есть только в расширенной таблице 7-битного алфавита GSM, и часть телефонов и SMS-шлюзов передаёт их некорректно. Попробуйте отправить команду с другого устройства или через шлюз, поддерживающий 8-битные SMS. |
Частые вопросы
1. Нужен ли интернет или активный GPRS-канал?
Нет. Достаточно регистрации в сети и работающей услуги SMS. Именно поэтому SMS AT RUN остаётся рабочим инструментом, когда передача данных недоступна.
2. Сколько номеров можно добавить в белый список?
До 8 записей, из которых не более 2 могут быть паролями. Одна запись с маской покрывает целую группу номеров.
3. Останется ли служба включённой после отключения питания?
Да. Состояние службы и её параметры хранятся в энергонезависимой памяти и восстанавливаются при старте, команда AT&W для этого не нужна. Проверить можно по шагу 4.
4. Можно ли по SMS поменять скорость или чётность порта?
Нет. Команды из SMS выполняются на отдельном внутреннем AT-интерфейсе, и настройки порта, заданные по SMS, применяются к нему, а не к физическому UART. Скорость (AT+IPR), чётность (AT+ICF) и управление потоком меняйте локально.
5. Что происходит с командными SMS после выполнения?
Модем распознаёт их, выполняет и удаляет — память SMS не забивается.
6. Как полностью отключить службу?
Локально в терминале: AT#SMSATRUN=0. По SMS отключать не рекомендуется — после этого удалённое управление станет недоступно.
7. Я отправил команду, но модем не ответил. Он завис?
Не обязательно. Сначала проверьте, нет ли команды в списке тех, что не возвращают ответ (AT#REBOOT, AT#SHDN, всё, что начинается с HAT) или требуют приглашения ввода. Затем отправьте заведомо безопасный запрос AT+CSQ. Если и он молчит — вероятно, проблема со связью, балансом или питанием устройства.
Документация
- Telit AT Commands Reference Guide (r24) — полный справочник AT-команд: синтаксис, параметры, форматы ответов. Команды службы — в разделе AT Run Commands.
- Telit SMS AT RUN & TCP AT RUN Application Note (r1) — пример применения службы: настройка удалённого модуля и обмен SMS-командами пошагово.
- Telit Running AT Commands Remotely Application Note (r9) — подробное описание службы: формат сообщений, режим с паролем (Digest), задержки и ограничения.