Готовый шаблон по материалам статей на Дзене, настроенный на работу с TypeScript. Используется для программирования правил контроллера компании Wiren Board. Снимает ограничения на разработку, накладываемые ECMAScript 5.
Дальнейшее развитие идеи привело к появлению модулей правил, которые расширяют подходы к разработке:
- событийная модель - обеспечивает реакцию на изменения,
- хранилище состояний - надстройка над
module.static, - имитатор запуска на контроллере - для юнит-тестов,
- контролы устройств в виде плагинов - для передачи функционала без дублирования кода.
Чтобы не перегружать излагаемые в начальных статьях принципы, было решено создать отдельный репозиторий. Там вспомогательный код вынесен в npm-пакеты с поддержкой версионирования - больше не требуется вникать в абсолютно все правки, достаточно в package.json обновить номер версии соответствующего пакета. Имеется мастер начальной настройки, доступный к вызову из командной строки - задаёт ряд вопросов и настраивает проект по вашим предпочтениям. С версии 0.2.3 реализована полноценная работа с JavaScript. Доступен современный синтаксис, подсветка конструкций wb-rules, переменные окружения, tree-shaking и т.п.
Потребуется предварительно установить nodejs в варианте LTS и менеджер пакетов yarn.
Запустить сборку можно нажав сочетание клавиш Ctrl + Shift + B и выбрав из выпадающего меню опцию yarn: build.
Перед использованием команды deploy в файле package.json, потребуется настроить её на подключение к Вашему контроллеру Wirenboard.
Скачайте ZIP-архив и распакуйте его в целевую директорию, после чего откройте проект при помощи Visual Studio Code.
Примечание:
в статьях о разработке правил целевой директорией в системе Windows является D:\repos\wirenboard.
Ветка latest является экспериментальной и может опережать ход повествования.
Движок правил wb-rules 2.0:
https://github.com/wirenboard/wb-rules
Канал про автоматизации на основе оборудования Wirenboard на Дзене:
https://dzen.ru/wihome
О программировании контроллера Wirenboard с помощью Visual Studio Code:
- Перед началом
- Пишем на TypeScript без ограничений
- Статический анализ кода при помощи ESLint и Prettier
- Создаём юнит-тесты с применением Jest
- Удаляем лишний код при помощи Rollup и Tree-Shaking
- Переменные окружения
Вторая статья в подробностях рассказывает о структуре проекта, которая легла в основу данного шаблона.
Подборка статей о тонкостях настройки контроллера по SSH:
от терминала Windows до запрета root-доступа на контроллер.