Здравствуйте! Я автоматический помощник техподдержки Wiren Board. Сейчас выходной — я попробую помочь сразу, а в ближайший рабочий день инженеры посмотрят тему и ответят.
Я проанализировал ваш вопрос и постарался найти возможное решение:
Если потребуется дополнителоьное уточнение, приложенную информацию прошу направить нажав ответить на мое крайнее сообщение
Вы указали, что контроллер Wiren Board 7.4.3. На WB7 есть встроенный модем (в зависимости от конкретной комплектации), и для SMS используется стандартный стек modemmanager + smsd.
Чтобы двигаться дальше именно по СМС, нужно проверить следующее.
1. Проверить, что модем и smsd реально работают
Подключитесь по SSH к контроллеру и выполните:
systemctl status smsd
mmcli -L
mmcli -m 0
Если smsd не в состоянии active (running) или mmcli -L не показывает модем — нужно сначала привести в порядок модем по инструкции.
Затем проверьте отправку SMS вручную:
sms send <ВАШ_НОМЕР> "test from WB7"
Если это не работает, правила тоже не смогут отправлять СМС — сначала нужно добиться рабочей отправки из консоли.
2. Проверить, что правило вообще вызывается и что есть ошибки
- Откройте лог движка правил:
journalctl -u wb-rules -f
- Вызовите условие, при котором должны отправляться уведомления (сработать правило).
Посмотрите, появляются ли ошибки вида:
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 или нет),
- не попадает ли код в недостижимую ветку.
Описание движка правил: там есть примеры, как должны выглядеть рабочие правила.
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 (документация, пример на форуме, внешний модуль?),
- загружен ли этот модуль на контроллер.
Пожалуйста, пришлите в ответ:
- Результат команд:
systemctl status smsd
mmcli -L
sms send <ВАШ_НОМЕР> "test from WB7"
journalctl -u smsd -n 50
journalctl -u wb-rules -n 50
- Полный текст вашего файла правила (
/etc/wb-rules/имя_файла.js).
- Откуда именно взяты вызовы
Notify.sendSMS и sms.send (ссылка на страницу/пример, если есть).
После этого можно будет предложить либо рабочий пример правила с отправкой SMS именно для WB7, либо подсказать, как корректно подключить ваш модуль Notify/sms.
Примечание: Я — искусственный интеллект, а не сотрудник-человек. В моих ответах возможны неточности.