Опрос map3ev

Приветствую.

Есть три однотипных скрипта (железка одна - wb-map3ev, отличаются только Device/Control и сообщением в тг):

var sended = false; 
defineRule("alarm_event", {
  whenChanged: "wb-map3ev_235/Urms L3",
  then: function (newValue, devName, cellName) {
    if (newValue < 200) {
      if (!sended) { 
        sended = true; 
          var command = 'curl -s -X "POST" "https://tg1.*******.ru/tg.php" -d "bot=*******&chat_id=*********&text=Нет напряжения на фазе №3"';
        runShellCommand(command);
      }
    } else {
      sended = false;
    }
  }
});

Вольтметр MAP3EV, Device/Control: wb-map3ev_235/Urms L1, wb-map3ev_235/Urms L2, wb-map3ev_235/Urms L3, все видны в MQTT Channels.

После restart wb-rules скрипты отрабатывают нормально (приходят сообщения если напряжение менее 200В), кроме последнего (код выше), от него сообщения нет, причем если в скрипте меняю “wb-map3ev_235/Urms L3” на “wb-map3ev_235/Urms L2” то все мгновенно срабатывает. Что я делаю не так?

Добрый день. Благодарю за ожидание.

Прошу проверить, что значения wb-map3ev_235/Urms L3 действительно падают ниже триггерного значения (200 В).

MAP3EV до монтажа на объекте подключен по однофазной схеме (N+L1), соот-но Urms L2 и Urms L3 отдают ~0, на что при перезагрузке правил срабатывает скрипт (при выключении Urms L1 тоже все ок), но упорно не видит состояние Urms L3. Такое ощущение что топик Urms L3 не виден в системе, хотя он присутствует:

root@wirenboard-**********:~# mosquitto_sub -t '/devices/wb-map3ev_235/controls/Urms L1' -v
/devices/wb-map3ev_235/controls/Urms L1 229.95
/devices/wb-map3ev_235/controls/Urms L1 229.903
/devices/wb-map3ev_235/controls/Urms L1 229.745
/devices/wb-map3ev_235/controls/Urms L1 229.892
/devices/wb-map3ev_235/controls/Urms L1 229.948
/devices/wb-map3ev_235/controls/Urms L1 229.882
/devices/wb-map3ev_235/controls/Urms L1 229.733
/devices/wb-map3ev_235/controls/Urms L1 229.818
/devices/wb-map3ev_235/controls/Urms L1 229.709
/devices/wb-map3ev_235/controls/Urms L1 229.751
/devices/wb-map3ev_235/controls/Urms L1 229.868
/devices/wb-map3ev_235/controls/Urms L1 229.915
/devices/wb-map3ev_235/controls/Urms L1 229.832
/devices/wb-map3ev_235/controls/Urms L1 229.902
/devices/wb-map3ev_235/controls/Urms L1 229.964
/devices/wb-map3ev_235/controls/Urms L1 230.059
/devices/wb-map3ev_235/controls/Urms L1 230.212
^Croot@wirenboard-**********:~# mosquitto_sub -t '/devices/wb-map3ev_235/controls/Urms L2' -v
/devices/wb-map3ev_235/controls/Urms L2 0.172
/devices/wb-map3ev_235/controls/Urms L2 0.173
/devices/wb-map3ev_235/controls/Urms L2 0.172
/devices/wb-map3ev_235/controls/Urms L2 0.171
/devices/wb-map3ev_235/controls/Urms L2 0.172
/devices/wb-map3ev_235/controls/Urms L2 0.173
/devices/wb-map3ev_235/controls/Urms L2 0.174
/devices/wb-map3ev_235/controls/Urms L2 0.172
^Croot@wirenboard-**********:~# mosquitto_sub -t '/devices/wb-map3ev_235/controls/Urms L3' -v
/devices/wb-map3ev_235/controls/Urms L3 0

// тут висит, опроса нет

Вы можете посмотреть историю значений Urms L3 например в веб-интерфейсе контроллера во вкладке «История».
Также попробуйте для проверки подключить на данный канал фазный провод.

Естественно подключал - все ок (кроме параметров, ну это и понятно). Что мне непонятно так это почему без подключения фазы нет данных, пусть 0, но опрос же должен идти. И да, при подключении пустого провода 20см данные идут, даже без подачи напряжения и N, пусть милливольты, но идут. Вот не пойму, баг это или фича)

Вот как при подключении на L2 и L3 никуда не подключенного проводника 20см:

root@wirenboard-********:~# mosquitto_sub -t '/devices/wb-map3ev_235/controls/Urms L1' -v
/devices/wb-map3ev_235/controls/Urms L1 225.615
/devices/wb-map3ev_235/controls/Urms L1 225.691
/devices/wb-map3ev_235/controls/Urms L1 225.43
/devices/wb-map3ev_235/controls/Urms L1 225.564
/devices/wb-map3ev_235/controls/Urms L1 225.74
/devices/wb-map3ev_235/controls/Urms L1 225.678
/devices/wb-map3ev_235/controls/Urms L1 225.528
/devices/wb-map3ev_235/controls/Urms L1 225.702
root@wirenboard-********:~# mosquitto_sub -t '/devices/wb-map3ev_235/controls/Urms L2' -v
/devices/wb-map3ev_235/controls/Urms L2 0.775
/devices/wb-map3ev_235/controls/Urms L2 0.777
/devices/wb-map3ev_235/controls/Urms L2 0.776
/devices/wb-map3ev_235/controls/Urms L2 0.777
/devices/wb-map3ev_235/controls/Urms L2 0.775
/devices/wb-map3ev_235/controls/Urms L2 0.776
/devices/wb-map3ev_235/controls/Urms L2 0.775
/devices/wb-map3ev_235/controls/Urms L2 0.778
^Croot@wirenboard-********:~# mosquitto_sub -t '/devices/wb-map3ev_235/controls/Urms L3' -v
/devices/wb-map3ev_235/controls/Urms L3 0.617
/devices/wb-map3ev_235/controls/Urms L3 0.615
/devices/wb-map3ev_235/controls/Urms L3 0.616
/devices/wb-map3ev_235/controls/Urms L3 0.615
/devices/wb-map3ev_235/controls/Urms L3 0.616
/devices/wb-map3ev_235/controls/Urms L3 0.615
/devices/wb-map3ev_235/controls/Urms L3 0.617
/devices/wb-map3ev_235/controls/Urms L3 0.616
^Croot@wirenboard-********:~#

В таком случае все нормально, и при перезагрузке правил приходит уведомление об отсутствии фаз L2/L3. Посему видимо вопрос закрыт, на объекте все равно провода какие-то подключены будут, на уровне наводок хватит для работы. Просто не понятно почему без проводов (наводок размахом в мВ) нет ответов от wb-map3ev_235/controls/Urms Х.

Все логично.
В правилах описано условие запуска скрипта:

whenChanged: "wb-map3ev_235/Urms L3"

Соответственно, если Urms L3 равен нулю и не меняется, то условие не выполняется и выполнение скрипта прекращается.

У вас остались еще какие-либо вопросы?

Со скриптом понятно, но почему mosquitto_sub -t '/devices/wb-map3ev_235/controls/Urms L3' -v без подключения даже пустого провода ничего не отдает. Но в общем да, вопрос решен.