JS скрипт выполняется 2 раза

Очень странно, конечно. Движок правил у вас какой версии? Посмотрите, пожалуйста:
dpkg -s wb-rules

~# dpkg -s wb-rules
Package: wb-rules
Status: install ok installed

Priority: optional

Section: misc

Installed-Size: 5794

Maintainer: Ivan Shvedunov <ivan4th@gmail.com>

Architecture: armhf

Version: 1.7.1

Depends: libc6 (>= 2.13)

Breaks: wb-mqtt-confed (<< 1.0.2)

Conffiles:
/etc/init.d/wb-rules f8002cf028f5e2d3331a99aa18b53aed
/etc/wb-configs.d/13wb-rules 1236e2e4343d949e0a21de865706c00b
/etc/wb-rules/alarms.conf 2051dd214a6232c5e778c50e52d5fb6a
/etc/wb-rules/rules.js 926c30d0fd63e272f6f9ad370dffb1b
Description: Wiren Board Rule Engine

Это плохо:

Но сначала надо разобраться со свободным местом.
потом пришлите, пожалуйста, вывод
apt-get update && apt-get -s upgrade

Кажется, надо много чего обновить из пакетов. Но сначала свободное место надо иметь в /mnt/data

~# apt-get update && apt-get -s upgrade
Пол:1 http://security.debian.org stretch/updates InRelease [94,3 kB]
Сущ:3 http://releases.contactless.ru/stable/stretch stretch InRelease          
Игн:4 http://mirror.yandex.ru/debian stretch InRelease                         
Пол:2 http://cdn-fastly.deb.debian.org/debian stretch-backports InRelease [91,8 kB]
Пол:5 http://mirror.yandex.ru/debian stretch-updates InRelease [91,0 kB]       
Сущ:6 http://mirror.yandex.ru/debian stretch Release                           
Пол:7 http://security.debian.org stretch/updates/main armhf Packages [485 kB]
Пол:8 http://security.debian.org stretch/updates/main Translation-en [223 kB]  
Пол:9 http://cdn-fastly.deb.debian.org/debian stretch-backports/main armhf Packages.diff/Index [27,8 kB]
Пол:10 http://cdn-fastly.deb.debian.org/debian stretch-backports/main Translation-en.diff/Index [27,8 kB]
Пол:11 http://cdn-fastly.deb.debian.org/debian stretch-backports/main armhf Packages 2019-07-10-2021.14.pdiff [1 378 B]
Пол:12 http://cdn-fastly.deb.debian.org/debian stretch-backports/main armhf Packages 2019-07-15-1418.25.pdiff [873 B]
Пол:13 http://cdn-fastly.deb.debian.org/debian stretch-backports/main armhf Packages 2019-07-15-2016.08.pdiff [713 B]
Пол:14 http://cdn-fastly.deb.debian.org/debian stretch-backports/main armhf Packages 2019-07-16-2016.21.pdiff [363 B]
Пол:15 http://cdn-fastly.deb.debian.org/debian stretch-backports/main Translation-en 2019-07-10-1415.27.pdiff [415 B]
Пол:16 http://cdn-fastly.deb.debian.org/debian stretch-backports/main Translation-en 2019-07-15-1418.25.pdiff [340 B]
Пол:14 http://cdn-fastly.deb.debian.org/debian stretch-backports/main armhf Packages 2019-07-16-2016.21.pdiff [363 B]
Пол:16 http://cdn-fastly.deb.debian.org/debian stretch-backports/main Translation-en 2019-07-15-1418.25.pdiff [340 B]
Получено 1 045 kБ за 10с (104 kБ/c)                                                                                                                  
Чтение списков пакетов… Готово
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Расчёт обновлений… Готово
Пакеты, которые будут обновлены:
  dbus debian-archive-keyring libdbus-1-3 libexpat1 libssl1.0-dev libssl1.0.2 libssl1.1 linux-libc-dev openssl vim vim-common vim-runtime wb-configs
  wb-configs-stretch wb-hwconf-manager wb-mqtt-serial xxd
обновлено 17, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Inst debian-archive-keyring [2017.5] (2017.5+deb9u1 Debian:oldstable-updates [all])
Conf debian-archive-keyring (2017.5+deb9u1 Debian:oldstable-updates [all])
Inst libssl1.0-dev [1.0.2r-1~deb9u1] (1.0.2s-1~deb9u1 Debian-Security:9/oldstable [armhf]) []
Inst libssl1.0.2 [1.0.2r-1~deb9u1] (1.0.2s-1~deb9u1 Debian-Security:9/oldstable [armhf])
Inst libssl1.1 [1.1.0j-1~deb9u1] (1.1.0k-1~deb9u1 Debian-Security:9/oldstable [armhf])
Inst xxd [2:8.0.0197-4+deb9u1] (2:8.0.0197-4+deb9u3 Debian-Security:9/oldstable [armhf])
Inst vim [2:8.0.0197-4+deb9u1] (2:8.0.0197-4+deb9u3 Debian-Security:9/oldstable [armhf]) []
Inst vim-runtime [2:8.0.0197-4+deb9u1] (2:8.0.0197-4+deb9u3 Debian-Security:9/oldstable [all]) []
Inst vim-common [2:8.0.0197-4+deb9u1] (2:8.0.0197-4+deb9u3 Debian-Security:9/oldstable [all])
Inst dbus [1.10.26-0+deb9u1] (1.10.28-0+deb9u1 Debian-Security:9/oldstable [armhf]) []
Inst libdbus-1-3 [1.10.26-0+deb9u1] (1.10.28-0+deb9u1 Debian-Security:9/oldstable [armhf])
Inst libexpat1 [2.2.0-2+deb9u1] (2.2.0-2+deb9u2 Debian-Security:9/oldstable [armhf])
Inst linux-libc-dev [4.9.168-1] (4.9.168-1+deb9u3 Debian-Security:9/oldstable [armhf])
Inst openssl [1.1.0j-1~deb9u1] (1.1.0k-1~deb9u1 Debian-Security:9/oldstable [armhf])
Inst wb-mqtt-serial [1.50.1] (1.53.0 stable/stretch stretch:stretch [armhf])
Inst wb-configs-stretch [1.79.5] (1.81.0 stable/stretch stretch:stretch [all])
Inst wb-configs [1.79.5] (1.81.0 stable/stretch stretch:stretch [all])
Inst wb-hwconf-manager [1.27.0] (1.28.0 stable/stretch stretch:stretch [all])
Conf libssl1.0-dev (1.0.2s-1~deb9u1 Debian-Security:9/oldstable [armhf])
Conf libssl1.0.2 (1.0.2s-1~deb9u1 Debian-Security:9/oldstable [armhf])
Conf libssl1.1 (1.1.0k-1~deb9u1 Debian-Security:9/oldstable [armhf])
Conf xxd (2:8.0.0197-4+deb9u3 Debian-Security:9/oldstable [armhf])
Conf vim (2:8.0.0197-4+deb9u3 Debian-Security:9/oldstable [armhf])
Conf vim-runtime (2:8.0.0197-4+deb9u3 Debian-Security:9/oldstable [all])
Conf vim-common (2:8.0.0197-4+deb9u3 Debian-Security:9/oldstable [all])
Conf dbus (1.10.28-0+deb9u1 Debian-Security:9/oldstable [armhf])
Conf libdbus-1-3 (1.10.28-0+deb9u1 Debian-Security:9/oldstable [armhf])
Conf libexpat1 (2.2.0-2+deb9u2 Debian-Security:9/oldstable [armhf])
Conf linux-libc-dev (4.9.168-1+deb9u3 Debian-Security:9/oldstable [armhf])
Conf openssl (1.1.0k-1~deb9u1 Debian-Security:9/oldstable [armhf])
Conf wb-mqtt-serial (1.53.0 stable/stretch stretch:stretch [armhf])
Conf wb-configs-stretch (1.81.0 stable/stretch stretch:stretch [all])
Conf wb-configs (1.81.0 stable/stretch stretch:stretch [all])
Conf wb-hwconf-manager (1.28.0 stable/stretch stretch:stretch [all])

Как почистить место? Я могу все удалить. У меня важного ничего нет, я в начале пути )

Все, место почистил!

df -h
Файловая система Размер Использовано  Дост Использовано% Cмонтировано в
/dev/root          980M         466M  448M           51% /
devtmpfs           241M            0  241M            0% /dev
tmpfs              249M            0  249M            0% /dev/shm
tmpfs              249M          17M  233M            7% /run
tmpfs              5,0M            0  5,0M            0% /run/lock
tmpfs              249M            0  249M            0% /sys/fs/cgroup
/dev/mmcblk0p6     1,3G         160M 1001M           14% /mnt/data
tmpfs               50M            0   50M            0% /run/user/0

Что теперь?

так, теперь давайте apt-get upgrade и перезагрузку.

17

Все сделал, опять после Counter 10 летят по два сообщения в лог

Последний выход – сбросить контроллер к заводским настройкам, но пока давайте попробуем вот что.
Оставьте по-прежнему один только скрипт с Counter и в консоли выполните:

service wb-rules stop
/usr/bin/wb-rules -debug -queue-len 2048 -editdir /etc/wb-rules /usr/share/wb-rules-system/rules/ /etc/wb-rules /usr/share/wb-rules/ 2>&1 | tee rules-test.txt | grep "log/info"

На экране будут появляться сообщения вида
DEBUG: 2019/07/18 14:14:33 PUB: /wbrules/log/info -> Counter: 11

Будут ли дублироваться Counter? Подождите какое-то время, нажмите Ctrl-С, а потом покажите получившийся файл rules-test.txt

-debug -queue-len 2048 -editdir /etc/wb-rules /usr/share/wb-rules-system/rules/ /etc/wb-rules /usr/share/wb-rules/ 2>&1 | tee rules-test.txt | grep "log/info"

DEBUG: 2019/07/18 11:26:02 PUB: /wbrules/log/info -> add your rules to /etc/wb-rules
DEBUG: 2019/07/18 11:26:13 PUB: /wbrules/log/info -> Counter: 0
DEBUG: 2019/07/18 11:26:23 PUB: /wbrules/log/info -> Counter: 1
DEBUG: 2019/07/18 11:26:33 PUB: /wbrules/log/info -> Counter: 2
DEBUG: 2019/07/18 11:26:43 PUB: /wbrules/log/info -> Counter: 3
DEBUG: 2019/07/18 11:26:53 PUB: /wbrules/log/info -> Counter: 4
DEBUG: 2019/07/18 11:27:03 PUB: /wbrules/log/info -> Counter: 5
DEBUG: 2019/07/18 11:27:13 PUB: /wbrules/log/info -> Counter: 6
DEBUG: 2019/07/18 11:27:23 PUB: /wbrules/log/info -> Counter: 7
DEBUG: 2019/07/18 11:27:33 PUB: /wbrules/log/info -> Counter: 8
DEBUG: 2019/07/18 11:27:43 PUB: /wbrules/log/info -> Counter: 9
DEBUG: 2019/07/18 11:27:53 PUB: /wbrules/log/info -> Counter: 10
DEBUG: 2019/07/18 11:28:03 PUB: /wbrules/log/info -> Counter: 11
DEBUG: 2019/07/18 11:28:13 PUB: /wbrules/log/info -> Counter: 12

Так, хорошо. Тут не дублируется. А сам файл rules-test.txt из директории, где вы команду выполняли, приложите, пожалуйста.

Следующий шаг – верните правила для KNX и запустите wb-rules так же, из командной строки:

service wb-rules stop 
/usr/bin/wb-rules -syslog -queue-len 2048 -editdir /etc/wb-rules /usr/share/wb-rules-system/rules/ /etc/wb-rules /usr/share/wb-rules/ 

Будут ли дублироваться KNX-команды в этом случае?

А как достать файл? Где он находится?

С KNX я решил через Nodered общаться, но для теста могу вернуть

Подозреваю, что это файл /root/rules-test.txt, если вы просто зашли в консоль и не меняли рабочую директорию при старте wb-rules из командной строки.

Если не сложно, давайте попробуем вернуть KNX-правила.

rules-test.txt (1.5 МБ)

/usr/bin/wb-rules -syslog -queue-len 2048 -editdir /etc/wb-rules /usr/share/wb-rules-system/rules/ /etc/wb-rules /usr/share/wb-rules/
Device "ppp0" does not exist.
sh: 4: /etc/wb_env.sh: source: not found
sh: echo: I/O error
Device "ppp0" does not exist.
Device "ppp0" does not exist.

Команды дублируются

Да, сложно все. Такое впечатление, что движок правил через какое-то время начинает получать две копии каждого mqtt-сообщения.
Хотел попросить вас запустить wb-rules вот так:
service wb-rules start && mosquitto_sub -v -t "/#" > mqtt_flow.txt
И когда сообщения начнут дублироваться, нажать Ctrl-С и приложить получившийся файл mqtt_flow.txt

mqtt_flow.txt (101.6 КБ)

Тут не вижу ничего подозрительного. Попрошу разработчиков посмотреть — пока, наверное, можно возвращаться на Node-Red.

Почитал ветку. Если дублируются сообщения MQTT, предлагаю попробовать настройку в mosquitto.conf:

allow_duplicate_messages false

Может поможет.