10.8. [DKSF 5440] Как управлять устройством при помощи SMS-команд
Устройство имеет возможность удаленного управления с помощью SMS-команд.
Работа с SMS-сообщениями и встроенным GSM-модемом доступна только для устройств NetPing 4/PWR-220 v8.1/GSM, NetPing 4/PWR-220 v8.2/GSM.
Синтаксис SMS-команд
Общий формат текста SMS-команды
NETPING fff community_w kkkkk
где:
fff — код команды, например, Р1+ (см. ниже).
community_w — пароль, соответствует SNMP community для записи. Задается на странице «НАСТРОЙКИ» web-интерфейса устройства. Можно применять латинские буквы, цифры, символ «_» без кавычек и пробелов.
kkkkk — идентификатор запроса (произвольное число). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе.
Текст команды нечувствителен к регистру, можно применять строчные и прописные буквы. Элементы команды разделяются пробелами. Недопустимо использование символов: ‘ (апостроф), “ (кавычка), @. Включение этих символов может вызвать сбой прошивки. Выполнение команды подтверждается ответным сообщением (см. ниже).
Коды команд
SMS команды | |||
Код команды | Команда | Ответ | Примечания |
Общие команды | |||
RB20 | Выполнить перезагрузку устройства | Перезагрузка выполняется через 20с после получения команды. | |
Реле | |||
Pn? | Запросить состояние реле n, где n - номер реле | NP REPLY Pnb kkkkk | n – номер реле. b – состояние реле, возможные состояние реле кодируется символами: «+» (включено), «-» (выключено). kkkkk – идентификатор запроса (произвольное число). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе. |
Pn+ Pn- | Включить/выключить реле n, где n - номер реле | NP DONE Pn+ kkkkk NP DONE Pn- kkkkk | |
PnR | Перезагрузить реле n, где n - номер реле | NP DONE PnR kkkkk | Полярность (направление) переключения реле при выполнении сброса должна соответствовать полярности, заданной в настройках модуля «Сторож» (режим сброса). Если реле уже находится в состоянии сброса, команда сброса не имеет эффекта, хотя ответное уведомление об успешном выполнении «NP DONE PnR» будет приходить отправителю. |
P? | Запросить состояние всех реле в краткой форме | NP REPLY P1b P2b P3b P4b kkkkk | b – состояние реле, возможные состояние реле кодируется символами: «+» (включено), «-» (выключено). kkkkk – идентификатор запроса (произвольное число). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе. |
Пингер | |||
N? | Запросить состояние пингера | NP REPLY N=status kkkkk | status - состояние пингера (1 - адрес отвечает, 0 - адрес молчит). kkkkk – идентификатор запроса (произвольное число). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе. |
Датчики температуры | |||
Tb? | Запросить показания датчика температуры b, где b - номер термодатчика | NP REPLY Tb=? SENSOR FAILED kkkkk NP REPLY Tb=tC BELOW SAFE RANGE (t1..t2C) kkkkk NP REPLY Tb=tC IN SAFE RANGE (t1..t2C) kkkkk NP REPLY Tb=tC ABOVE SAFE RANGE (t1..t2C) kkkkk | b – номер термодатчика. t – текущее показание температуры, в °C. t1, t2 – границы диапазона «нормы» температуры, в °C. kkkkk – идентификатор запроса (произвольное число). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе. |
T? | Запросить состояние всех подключённых датчиков температуры в краткой форме | NP REPLY T2=21C SAFE (10..30C) T5=? T6=39C ABOVE (10..30C) kkkkk | BELOW / SAFE / ABOVE – статус датчика температуры. ? – отказавшие или отключённые (но с вписанным адресом) датчики отображаются как T5=? без статуса и указания границ диапазона «нормы» температуры, в °C. kkkkk – идентификатор запроса (произвольное число). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе. Незадействованные датчики с пустыми 1W адресами пропускаются. |
Датчики влажности | |||
Hb? | Запросить показания датчика влажности x, где x - номер датчика влажности | NP REPLY Hx=? SENSOR FAILED kkkkk NP REPLY Hx=h% BELOW SAFE RANGE (h1..h2%) T= tC kkkkk NP REPLY Hx=h% IN SAFE RANGE (h1..h2%) T= tC kkkkk NP REPLY Hx=h% ABOVE SAFE RANGE (h1..h2%) T= tC kkkkk | h – текущее показание относительной влажности, в %. h1, h2 – границы диапазона «нормы» относительной влажности, в %. t – текущее показание температуры, в °C. kkkkk – идентификатор запроса (произвольное число). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе. |
1-wire датчики качества электропитания | |||
Vn? | Команда запроса параметров отслеживания датчика | NP REPLY Vn=220V OK/WARN/BAD/OFF 50Hz OK/WARN/BAD/OFF kkkkk NP REPLY Vn=? SENSOR FAILED kkkkk | n – номер датчика. 220V – текущее значение напряжения, В. 50Hz – текущее значение частоты, Гц. OK/WARN/BAD/OFF – статус сетевого напряжения и частоты. kkkkk – идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе. |
Линии ввода-вывода | |||
Ln+ | Перевести линию n в состояние лог.1, где n — номер линии ввода-вывода. Линия должна быть в режиме «выход». | NP DONE Ln+ kkkkk | |
Ln- | Перевести линию n в состояние лог.0, где n — номер линии ввода-вывода. Линия должна быть в режиме «выход». | NP DONE Ln+ kkkkk | |
LnP | Выдать импульс на линию n, где n — номер линии ввода-вывода. Линия должна быть в режиме «выход». | NP DONE LnP kkkkk | |
Ln? | Запросить состояние линии n, где n — номер линии ввода-вывода. | NP REPLY Ln=l(mode) kkkkk | l — логический уровень линии ввода-вывода, возможные значения: 0 (логический нуль), 1 (логическая единица). mode — режим работы линии ввода-вывода, возможные значения: IN (вход), OUT (выход). |
L? | Запросить состояние всех линий ввода-вывода в краткой форме | NP REPLY Ln=l(mode) Ln=l(mode) Ln=l(mode) Ln=l(mode) Ln=l(mode) Ln=l(mode) Ln=l(mode) Ln=l(mode) kkkkk | l — логический уровень линии ввода-вывода, возможные значения: 0 (логический нуль), 1 (логическая единица). mode — режим работы линии ввода-вывода, возможные значения: IN (вход), OUT (выход). |
Пример SMS-команды
Команда включения реле 1 устройства:
NETPING P1+ SWITCH
Ответные сообщения на SMS-команды
Подтверждение исполнения команды, такой как переключение реле или изменение состояния линии ввода-вывода,
NP DONE fff kkkkkk
NP DONE fff
где:
fff — код исходной команды, выполнение которой подтверждается данным сообщением; например, Р1+.
kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе (вторая команда).
Ошибка при разборе команды устройством. Наиболее вероятен неправильный текст исходной команды
NP WRONG CMD: «исходная команда»
где:
Исходная команда — текст исходной команды, полностью заключенный в кавычки.
3. Неправильный пароль (Community) в исходной команде
NP WRONG PASSWD IN kkkkkk
NP WRONG PASSWD
где:
kkkkk — идентификатор запроса (произвольное число от 3 до 9 цифр). Повторяется в ответе для установления соответствия между запросом и ответом. Необязательный элемент команды. Если идентификатор отсутствует в команде, также отсутствует в ответе (вторая команда).
Ответные сообщения на SMS-команды запроса статуса/состояния
Ответ на запрос Pn? о состоянии реле:
NP REPLY Pnstatus
где:
status — состояние реле: «+» (включено), «-» (выключено).
n — номер реле.
Ответ на запрос P? о состоянии всех реле:
NP REPLY P1b P2b P3b P4b
где:
b — состояние реле: «+» (включено), «-» (выключено).
Ответ на запрос N?
NP REPLY N=status (address)
где:
status — состояние пингера, 0 — молчит, 1 — отвечает.
address — IP или доменное имя опрашиваемого узла.
Ответ на запрос Tb?
NP REPLY Tb=? SENSOR FAILED — вышел из строя или не подключен.
NP REPLY Tb=tC status SAFE RANGE (t1...t2C) — ответ о показания датчика с указанием статуса.
где:
b — номер термодатчика.
tC — текущее показание температуры, °C.
status — статус термодатчика: «BELOW», «IN» или «ABOVE».
(t1..t2C) — диапазон нормы.
Ответ на запрос Hb?
NP REPLY Hb=? SENSOR FAILED — вышел из строя или не подключен.
NP REPLY Hb=h%status SAFE RANGE (h1..h2) T=tCstatus SAFE RANGE (t1...t2) — ответ о показаниях датчика с указанием статуса.
где:
h% — текущее показание относительной влажности, в %.
tC — текущее показание температуры, в °C.
status — статус показаний датчика: «BELOW», «IN» или «ABOVE».
h1..h2 — диапазон нормальной влажности.
t1..t2 — диапазон нормальной температуры.