SMPP

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

Интеграция

Перейдите в раздел Настройки проекта → Интеграции и создайте интеграцию SMPP.
При заполнении настроек укажите:
  • Название — произвольное название интеграции
  • Описание — внутреннее описание
  • Хост — адрес SMPP-сервера SMS-центра
  • Порт — порт подключения к SMPP-серверу
  • Логин — логин учетной записи в SMS-центре
  • Пароль — пароль для SMPP-протокола
  • Отправитель — имя отправителя, если оно используется SMS-центром
  • Настройка параметров SMPP — данные для интеграции от SMS-центра
После сохранения интеграции воспользуйтесь блоком тестирования, чтобы убедиться, что интеграция настроена корректно:
  1. укажите номер получателя;
  2. введите текст сообщения;
  3. выполните тестовую отправку 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.