11.8. [DKSF 70/71.7 IU] Как управлять устройством при помощи SMS-команд?

Информация в разделе относится к устройствам UniPing server solution v4/SMS и UniPing server solution v3/SMS со встроенным GSM-модемом.

Устройство имеет возможность удаленного управления с помощью SMS-команд.

В прошивке устройства реализована возможность задания белых списков — номеров, которым разрешено управление устройством. Подробней о белых списках можно прочитать в разделе «[Draft]11.2. [DKSF 70/71.7 IU] Мне нужно прописать номер для отправки SMS-уведомлений. Как это сделать?».

Синтаксис SMS-команд

Общий формат текста SMS-команды:

NETPING fff community_w kkkkk

где:

fff — код команды, например, Р1+ (см. ниже).

community_w — пароль, соответствует SNMP community для записи. Задается на странице «НАСТРОЙКА» web-интерфейса устройства. Можно применять латинские буквы, цифры и некоторые спец. символы.

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.

Текст команды нечувствителен к регистру, можно применять строчные и прописные буквы. Элементы команды разделяются пробелами. Недопустимо использование символов ‘ (апостроф), “ (кавычка), @. Включение этих символов может вызвать сбой прошивки. Выполнение команды подтверждается ответным сообщением (см. ниже).

Коды команд

Код команды указывается слитно, без пробелов.

Код команды Описание
Pn+ Включить реле n, где n — номер реле
Pn- Выключить реле n, где n — номер реле
PnR

Перезагрузить реле n, где n — номер реле. Направление (режим) сброса соответствует настроенному в модуле «Сторож».

Pn? Запросить состояние реле n, где n — номер реле
P? Запросить состояние всех реле в краткой форме. Так как устройство оснащено одним реле, ответ идентичен команде "Pn?".
Lm+ Перевести линию m в состояние лог.1, где m — номер IO-линии. Линия должна быть в режиме «выход».
Lm- Перевести линию m в состояние лог.0, где m — номер IO-линии. Линия должно быть в режиме «выход».
LmP Выдать импульс на линию m, где m — номер IO-линии. Линия должно быть в режиме «выход».
Lm? Запросить состояние линии m, где m — номер IO-линии.
L? Запросить состояние всех IO линий в краткой форме
Qn? Запросить состояние датчика качества электропитания
AINn? Запросить состояние адаптера аналоговых датчиков
N? Запросить состояние пингера на странице «SMS»
Ka Передать ИК-команду через модуль IRC-TR v2, где a — номер команды
Tb? Запросить показания датчика температуры b, где b — номер термодатчика
Hx? Запросить показания датчика влажности x, где x — номер датчика влажности
T? Запросить показания всех датчиков температуры. Выводятся показания только подключенных датчиков. Признаком подключенности является заданный 1W-адрес.
H? Запросить показания всех датчиков влажности. Выводятся показания только подключенных датчиков. Признаком подключенности является заданный 1W-адрес.
RB20 Перезагрузить устройство. Перезагрузка произойдет через 20 секунд после получения им команды. 

Примеры SMS-команд

Команда включения реле 1 устройства:

NETPING P1+ SWITCH

Команда выключения реле 1 устройства:

NETPING P1- SWITCH

Ответные сообщения на SMS-команды управления

Подтверждение исполнения команды, такой как переключение реле или изменение состояния дискретной линии вывода:

NP DONE fff kkkkk

где:

ff— код исходной команды, выполнение которой подтверждается данным сообщением. Например, Р1+

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.


Ошибка при разборе команды устройством. Наиболее вероятно, неправильный текст исходной команды:

NP WRONG CMD: "исходная команда kkkkk"

где:

Исходная команда — текст исходной команды, полностью заключенный в кавычки.

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.

 

Неправильный пароль (Community) в исходной команде:

NP WRONG PASSWD IN kkkkk

NP WRONG PASSWD

где:

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе (вторая команда).

Ответные сообщения на SMS-команды запроса статуса/состояния

Ответ на запрос (NETPING Qn? community_w kkkkk) о состоянии датчика качества электропитания:

NP REPLY Vn=v v_status Hz Hz_status

Где:

n — номер датчика, 1...3;

v — напряжение;

v_status — статус напряжения;

Hz — частота;

Hz_status — статус частоты.

Ответ на запрос (NETPING AINn? community_w kkkkk) о состоянии адаптера аналоговых датчиков:

NP REPLY AINn=status

Где:

n — номер адаптера, 1...4;

status — статус адаптера: Ниже нормы / В норме / Выше нормы / Вне раб. диапазона / Отказ;

Если в уведомлениях для конкретного адаптера настроена подмена текста уведомлений (9.4. [DKSF 70/71.7 IU] Как настроить отправку уведомлений?) для событий Выше нормы / В норме / Ниже нормы, в тексте сообщения будет пользовательский текст.

Ответ на запрос (NETPING Pn? community_w kkkkk) о состоянии реле:

NP REPLY Pn+ kkkkk

где:

n — номер реле

— состояние реле, возможные состояния реле кодируются символами «+» (включено), «-» (выключено).

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.


Ответ на запрос (NETPING Lm? community_w kkkkk) состояния IO-линии:

NP REPLY Lm=l(mode) kkkkk

где:

— номер IO-линии

l — логический уровень IO-линии, возможные значения: 0 (логический нуль), 1 (логическая единица).

mode — режим работы IO-линии, возможные значения: IN (вход), OUT (выход).

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.


Ответ на запрос (NETPING L? community_w kkkkk) состояния всех IO-линий:

NP REPLY Lm=l(mode) Lm=l(mode) Lm=l(mode) Lm=l(mode) Lm=l(mode) Lm=l(mode) Lm=l(mode) Lm=l(mode) kkkkk

где:

– номер IO-линии

l — логический уровень IO-линии, возможные значения: 0 (логический нуль), 1 (логическая единица).

mode — режим работы IO линии, возможные значения: IN (вход), OUT (выход).

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.


Ответ на запрос (NETPING N? community_w kkkkk) о состоянии пингера, встроенного в модуль SMS:

NP REPLY N=0|1 kkkkk

где:

N=0 — заданный IP-адрес/DNS-имя молчит.

N=1 — заданный IP-адрес/DNS-имя отвечает.

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.

 

Ответ на запрос (NETPING Tb? community_w kkkkk) показаний термодатчика. Датчик с номером b вышел из строя либо не подключен:

NP REPLY Tb=? SENSOR FAILED kkkkk

где:

b — номер термодатчика;

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.


Ответ на запрос (NETPING Tb? community_w kkkkk) показаний термодатчика:

NP REPLY Tb=tC BELOW|IN|ABOVE SAFE RANGE (t1..t2C) kkkkk

где:

b — номер термодатчика.

t — текущее показание температуры, °C.

t1, t2 — границы диапазона нормальной температуры, °C.

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.


Ответ на запрос (NETPING Hx? community_w kkkkk) показаний датчика влажности. Датчик вышел из строя либо не подключен:

NP REPLY Hx=? SENSOR FAILED kkkkk

где:

x — номер датчика влажности;

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.


Ответ на запрос (NETPING Hx? community_w kkkkk) показаний датчика влажности:

NP REPLY Hx=h% BELOW|IN|ABOVE SAFE RANGE (h1..h2%) T= tC BELOW|IN|ABOVE SAFE RANGE (t1..t2C) kkkkk

где:

— номер датчика влажности.

h — текущее показание относительной влажности, в %.

h1, h2 — границы диапазона нормальной относительной влажности, %.

t — текущее показание температуры, в °C.

t1, t2 — границы диапазона нормальной температуры, в °C.

kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.