SMPP
Протокол SMPP позволяет обмениваться данными между устройством и платформой через
SMS: устройство может передавать данные на платформу, а платформа — отправлять
устройству команды.
❓
Задача: Предположим, у вас есть датчик, который передает данные
о температуре и срабатывании движения по SMS в виде текста: move:0 temp:23.
Интеграция
Перейдите в раздел Настройки проекта → Интеграции и создайте интеграцию SMPP.

При заполнении настроек укажите:
- Название — произвольное название интеграции
- Описание — внутреннее описание
- Хост — адрес SMPP-сервера SMS-центра
- Порт — порт подключения к SMPP-серверу
- Логин — логин учетной записи в SMS-центре
- Пароль — пароль для SMPP-протокола
- Отправитель — имя отправителя, если оно используется SMS-центром
- Настройка параметров SMPP — данные для интеграции от SMS-центра
После сохранения интеграции воспользуйтесь блоком тестирования, чтобы убедиться,
что интеграция настроена корректно:
- укажите номер получателя;
- введите текст сообщения;
- выполните тестовую отправку SMS.
⚠️
В рамках одного проекта нельзя использовать несколько SMPP-интеграций с
одинаковым логином. Если создать несколько интеграций с одним и тем же логином,
корректно будет работать только первая из них. Перед созданием новой интеграции
проверьте, не существует ли уже интеграция с данным логином. Если существует, то
используйте ее повторно или создайте новый личный кабинет в SMS-центре.
Модель
Платформа поддерживает два варианта использования SMPP.
Вариант 1. Устройство работает только по SMPP
При создании модели выберите протокол SMPP в списке доступных протоколов.
Такая модель предназначена исключительно для обмена данными через SMS.

Особенность этой модели в том, что в объектах автоматически создаётся параметр
Сообщение (
message_data).
Все входящие SMS будут записываться в текстовом
формате именно в этот параметр.

Вариант 2. Добавление SMS-канала к модели другого протокола
Если устройство уже работает по другому протоколу, можно добавить поддержку SMPP
без создания новой модели. Для этого откройте модель и в разделе Расширения
включите расширение SMS-канал (SMPP).

После этого устройство сможет:
- продолжать работать по основному протоколу;
- дополнительно получать команды через SMS.
В этом варианте параметр для хранения текста входящего сообщения автоматически
не создаётся — его нужно настроить самостоятельно.
Чтобы команда отправлялась по SMPP, создайте команду и в её настройках укажите
способ выполнения Команда к устройству через SMS-канал, а в поле Текст —
сообщение, которое будет распознавать устройство.

Обработчик
Все данные, полученные от устройства по SMPP, приходят в текстовом формате SMS.
Чтобы автоматически распределить их по параметрам объекта, используйте обработчик.
Обработчик позволяет:
- разобрать текст входящего сообщения;
- выделить нужные значения;
- записать каждое значение в соответствующий параметр объекта.
Например, для сообщения
move:0 temp:23 обработчик может выглядеть так:function process(message_data) {
var raw = String(message_data || '').trim();
var result = {};
var re = /(\w+):(-?\d+(?:\.\d+)?)/g;
var match;
while ((match = re.exec(raw)) !== null) {
result[match[1]] = Number(match[2]);
}
return {
move: result.move !== undefined ? result.move : null,
temp: result.temp !== undefined ? result.temp : null,
};
}Объект
Создайте объект и выберите модель, которую только что настроили. После создания
объекта в разделе Редактирование объекта появится вкладка SMS-канал (SMPP).
В ней заполните два поля:
- Интеграция — выберите созданную ранее SMPP-интеграцию из списка;
- Номер SIM-карты — укажите номер SIM-карты, установленной в устройстве.

Нажмите кнопку Сохранить.
Убедитесь, что данные от устройства присылаются и отображаются в интерфейсе, а
команды, отправленные через платформу, доставляются устройству по SMS.