TGViewer
Обновления Wiren Board Обновления Wiren Board @wirenboard_testing · 2.23K subscribers
Post #436 2.28K
Бета-тест обновления wb-rules

Оказалось, что очень просто поменять наш древний движок Duktape на другой движок такого же класса (маленький и встраиваемый) - QuickJS.

Это сразу открывает все новые модные фичи JS, которые там появились за последние 15 лет, в т.ч. async/await. Потом мы туда ещё и typescript прикрутили, чтобы два раза не вставать.

Главное
✅ вместо (или вместе) с defineRule можно пользоваться стандартными async/await идиомами:
defineRule('follow', {
whenChanged: 'ui/follow',
then: async () => {
const val = await changed('relay/channel1');
log(`канал переключился в ${val}`);
},
});


✅ можно писать линейный код вместо адских колбеков:
for (;;)
dev["buzzer/enabled"] = true;
await sleep(10);
dev["buzzer/enabled"] = false;
await sleep(1000);
}

причём это работает даже на верхнем уровне, так что если вы не любите колбеки и асинхронность, то можете писать супер-циклы, как в старых добрых ПЛК.

✅ новые модные возможности языка: стрелочные функции, классы, форматирование строк и так далее. Поддерживается почти весь ES2026 и TypeScript 7.

Заодно есть
✅ красивые ошибки и раскраска в редакторе;
✅ полноценная проверка типов в том числе для dev["dev/ctrl"] - т.е. для каждого канала оно знает и проверяет тип;
✅ проверка типов работает в "старом" JS - как ворнинги;
✅ читаемые ошибки в логах и консоли;
✅ всякие вкусности, типа детектирования бесконечных циклов, зависания правил и прочее.

Попробовать:
echo "deb https://deb.wirenboard.com/all experimental.quickjs2 main" >  /etc/apt/sources.list.d/quickjs2-testing.list

apt update
apt install wb-rules/experimental.quickjs2 wb-mqtt-homeui/experimental.quickjs2

документация - в PR

Откатить:
rm /etc/apt/sources.list.d/quickjs2-testing.list
apt update
apt install wb-tsgo- wb-rules/testing wb-mqtt-homeui/testing # или stable


Дисклеймер: это бета-тест, что-то может работать плохо, не рекомендуем использовать в продакшне.

Обсуждение в специальной группе.
  • 🔥 40
  • 👍 8
  • ❤ 6
More from @wirenboard_testing
  1. Sep 21, 2026Улучшили работу WB-DALI3 в мультимастер-сетях 🐞 Раньше шлюз отправлял данные без проверки…
  2. Sep 9, 2026Не обновляются контроллеры на Debian 11: что случилось и что делать ⚠️ 31 августа закончил…
  3. Sep 7, 2026Пользовательские шрифты для SVG-панелей ✅ Теперь в веб-интерфейсе контроллера можно загруж…
  4. Aug 31, 2026Wiren Board Cloud On-premise 2.0 🏠 On-premise — это Wiren Board Cloud, развёрнутый на ваш…
  5. Aug 31, 2026⚡️Обновили версии пакетов Node-RED и Docker в репозиториях Wiren Board! 🚀Ранее пакеты при…
  6. Aug 25, 2026Исправили пересчёт тока в физическую величину в WB-MAI2-mini/CC 🐞 Модуль пересчитывал ток…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →