Отправка уведомлений по СМС

Никак не могу отправить уведомления с контроллера из правил. Помогите пожалуйста разобраться.

        Notify.sendSMS(phoneNumber, messageText);
        Notify.sendEmail(mail, "subject", "text");
        Notify.sendTelegramMessage(token, chatID, "text");
        sms.send(phoneNumber, messageText);

Ни в Телеграм, ни на почту, ни по СМС. Причем СМС пытаюсь отправить двумя способами. Никуда сообщения не уходят. Больше всего интересует отправка СМС.

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


Судя по коду, вы используете движок wb-rules и объект Notify/sms. Нужно проверить несколько вещей по шагам.

1. Убедиться, что вообще есть транспорт для СМС

Для отправки SMS контроллер должен работать с GSM‑модемом (встроенным или внешним) и быть настроен smsd:

  1. Проверьте, видит ли система модем и есть ли сервис SMS:
systemctl status smsd
mmcli -L
mmcli -m 0
  1. Убедитесь, что SMS с контроллера в принципе отправляются вручную[1]:
sms send PHONE_NUMBER "test from shell"

Если это не работает — сначала нужно настроить модем/SMS по инструкции[1:1], пока CLI не начнёт отправлять SMS, правила тоже работать не будут.

2. Проверка интеграций Notify (Telegram, email, SMS)

Методы:

Notify.sendSMS(phoneNumber, messageText);
Notify.sendEmail(mail, "subject", "text");
Notify.sendTelegramMessage(token, chatID, "text");

работают только если соответствующие интеграции настроены в системе:

  1. E-mail:

    • Должен быть настроен exim4/ssmtp или другой MTA, либо отдельный скрипт/транспорт, который использует Notify[2].
    • Проверьте отправку письма из консоли (например, sendmail, mail, msmtp — в зависимости от того, что установлено).
  2. Telegram:

    • Должен быть настроен сервис/скрипт отправки (bot token, chat id, конфиг).
    • Часто используется связка через wb-mqtt-telebot или самописный скрипт, на который завязан Notify[2:1].
  3. Notify.sendSMS:

    • В типовой конфигурации Wiren Board Notify.sendSMS либо:
      • вообще не определён (если соответствующего модуля нет),
      • либо завязан на smsd/скрипт отправки.
    • Проверьте логи:
journalctl -u wb-rules -f

и перезапустите правило/сгенерируйте событие, чтобы увидеть ошибки.

Если в логах wb-rules есть ошибки вида Notify is undefined или Notify.sendSMS is not a function — значит, объект/метод не определён в вашей версии/конфигурации.

3. Объект sms и метод sms.send(...)

В стандартной поставке Wiren Board объект sms в wb-rules по умолчанию не документирован. Это либо:

  • Ваш локальный объект (определён в другом правиле/JS‑файле), либо
  • Пользовательский модуль/обёртка, который должен быть загружен отдельно.

Нужно проверить:

  1. Есть ли где‑то в ваших правилах/файлах строки вида:
var sms = require("...");
// или явное создание объекта sms
  1. Есть ли ошибки в логах wb-rules при запуске:
journalctl -u wb-rules -b

Если sms не определён или модуль не найден — этот вызов будет тихо падать или давать ошибку.

4. Что прислать инженерам для разбора

Чтобы точнее понять, что не так, пожалуйста, ответьте и приложите:

  1. Модель контроллера (например, WB8.5, WB7 и т.п.).
  2. Есть ли у вас GSM‑модем и как он подключён (встроенный/USB)?
  3. Результат команд:
systemctl status smsd
sms list
sms send <ВАШ_НОМЕР> "test"
journalctl -u smsd -n 50
journalctl -u wb-rules -n 50
  1. Полный текст правила (JS), где вызываются Notify.sendSMS и sms.send.
  2. Снимок экрана/вывод ошибок из логов wb-rules в момент срабатывания правила.

После этого можно будет предметно сказать:

  • видит ли контроллер модем,
  • настроен ли сервис SMS,
  • корректно ли подключены функции Notify/sms в wb-rules.

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.


  1. https://wirenboard.com/wiki/Modem_SMS ↩︎ ↩︎

  2. Движок правил wb-rules — Wiren Board ↩︎ ↩︎

Контроллер 7.4.3.

Релиз wb-2507.

systemctl status sms
Unit sms.service could not be found.

sms list
-bash: sms: command not found

mmcli -m any

General | path: /org/freedesktop/ModemManager1/Modem/0

| device id: c4aefccc871b05edb8933c31f2db334832e568a7

Hardware | manufacturer: INCORPORATED

| model: A7602E-H
| firmware revision: A50C4B08A7600M7
| supported: gsm-umts
| current: gsm-umts
| equipment id: 860803061023814

System | device: wbc

| drivers: option, rndis_host
| plugin: simtech
| primary port: ttyUSB1
| ports: ttyUSB0 (ignored), ttyUSB1 (at), ttyUSB2 (at),
| ttyUSB3 (ignored), usb0 (net)

Status | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)

| state: enabled
| power state: on
| access tech: lte
| signal quality: 58% (recent)

Modes | supported: allowed: any; preferred: none

| current: allowed: any; preferred: none

IP | supported: ipv4, ipv6, ipv4v6

3GPP | imei: 860803061023814

| registration: denied
| packet service state: detached

3GPP EPS | ue mode of operation: csps-1

SIM | primary sim path: /org/freedesktop/ModemManager1/SIM/0
| sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
| slot 2: none

Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение


Вы указали, что контроллер Wiren Board 7.4.3. На WB7 есть встроенный модем (в зависимости от конкретной комплектации), и для SMS используется стандартный стек modemmanager + smsd[1].

Чтобы двигаться дальше именно по СМС, нужно проверить следующее.

1. Проверить, что модем и smsd реально работают

Подключитесь по SSH к контроллеру и выполните:

systemctl status smsd
mmcli -L
mmcli -m 0

Если smsd не в состоянии active (running) или mmcli -L не показывает модем — нужно сначала привести в порядок модем по инструкции[1:1].

Затем проверьте отправку SMS вручную:

sms send <ВАШ_НОМЕР> "test from WB7"

Если это не работает, правила тоже не смогут отправлять СМС — сначала нужно добиться рабочей отправки из консоли.

2. Проверить, что правило вообще вызывается и что есть ошибки

  1. Откройте лог движка правил:
journalctl -u wb-rules -f
  1. Вызовите условие, при котором должны отправляться уведомления (сработать правило).

Посмотрите, появляются ли ошибки вида:

  • ReferenceError: Notify is not defined
  • TypeError: Notify.sendSMS is not a function
  • ReferenceError: sms is not defined
  • любые stack trace из wb-rules.

Если такое есть — пришлите сюда текст ошибок.

Также просьба приложить полный текст правила (целиком файл .js), а не только строки с Notify.sendSMS(...), чтобы было понятно:

  • когда и как вызываются эти функции (внутри defineRule или нет),
  • не попадает ли код в недостижимую ветку.

Описание движка правил[2]: там есть примеры, как должны выглядеть рабочие правила.

3. Про Notify и sms конкретно на WB7

На WB7 по умолчанию нет стандартного, документированного объекта Notify в wb-rules, как, например, dev, log, defineRule и т.п. То есть:

Notify.sendSMS(...)
Notify.sendEmail(...)
Notify.sendTelegramMessage(...)

будут работать только если:

  • где‑то в других файлах/модулях вы определяли объект Notify, либо
  • у вас установлены дополнительные пакеты/скрипты, которые экспортируют эти функции в wb-rules.

То же относится к объекту sms — в базовой поставке wb-rules его нет. Если вы не подключали модуль (через require или сторонний пакет), вызов:

sms.send(phoneNumber, messageText);

скорее всего вызовет ошибку ReferenceError: sms is not defined.

Поэтому сейчас инженерам нужно понять:

  • откуда взят пример с Notify/sms (документация, пример на форуме, внешний модуль?),
  • загружен ли этот модуль на контроллер.

Пожалуйста, пришлите в ответ:

  1. Результат команд:
systemctl status smsd
mmcli -L
sms send <ВАШ_НОМЕР> "test from WB7"
journalctl -u smsd -n 50
journalctl -u wb-rules -n 50
  1. Полный текст вашего файла правила (/etc/wb-rules/имя_файла.js).
  2. Откуда именно взяты вызовы Notify.sendSMS и sms.send (ссылка на страницу/пример, если есть).

После этого можно будет предложить либо рабочий пример правила с отправкой SMS именно для WB7, либо подсказать, как корректно подключить ваш модуль Notify/sms.

Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.


  1. https://wirenboard.com/wiki/Modem_SMS ↩︎ ↩︎

  2. Движок правил wb-rules — Wiren Board ↩︎

Добрый день.

Для начала убедитесь что выполнили предварительную настройку для отправки SMS:

Убедитесь, что вы настроили модем вставили SIM-карту и подключили GSM антенну.

Перед настройкой в веб-интерфейсе можете протестировать отправку SMS из консоли.

Для устаревших модемов, не поддерживаемых ModemManager - потребуется его отключение и использование gammu.