Фильтр
Правила wb-rules и Мирта: деплой на контроллер умного дома
Вы создали отличный код, но как передать его на контроллер? Автоматизация этого процесса является одной из задач фреймворка. В актуальной версии Мирты применяется специальная утилита командной строки mirta deploy, входящая в состав пакета @mirta/cli. В отличие от прежнего способа с настроенной в package.json командой rsync, этот вариант реализации работает одинаково на всех платформах — будь то Windows (через WSL2), Linux или macOS. Особое внимание уделено безопасности. Параметры подключения, такие как адрес контроллера, имя пользователя и способ аутентификации больше не нужно хранить в публичных файлах. Теперь они по умолчанию вынесены в .env.local — файл локальных переменных, который добавлен в .gitignore. Это предотвращает случайное раскрытие инфраструктурной информации при работе с публичными репозиториями. Первичная настройка утилиты выполняется при создании проекта. Вам нужно лишь ответить на несколько сопутствующих вопросов мастера и он сформирует необходимые файлы: Сейчас для п
Правила wb-rules и Мирта: деплой на контроллер умного дома
Показать еще
  • Класс
Wirenboard по SSH: защита соединения с помощью Рутокен MFA
Всё больше сервисов переходят на аутентификацию с помощью аппаратных ключей по стандарту FIDO2 (Fast Identity Online), обеспечивая защиту от фишинга и компрометации учётных данных. Одним из таких решений является Рутокен MFA. В этой статье рассмотрим его использование для защиты SSH-подключений к контроллеру Wiren Board — устройству, применяемому в системах умного дома и автоматизации. Ранее мы уже исследовали применение Рутокен ЭЦП в аналогичном сценарии, подробности в предыдущей публикации: Перед продолжением предполагается, что вы уже ознакомились с официальным руководством Wiren Board по настройке SSH. В этой статье фокус сделан на аутентификации с использованием Рутокен MFA, а не на базовой настройке доступа. Устройство не требует установки драйверов и доступно сразу после подключения. В терминале Windows 11 можно вызвать ssh-keygen и сгенерировать ключевую пару ECDSA для работы с контроллером. Если вы впервые работаете с передачей USB-устройств в WSL, ознакомьтесь с базовым принц
Wirenboard по SSH: защита соединения с помощью Рутокен MFA
Показать еще
  • Класс
Программируем умный дом на JS и TS: фреймворк Мирта
Профессиональные инструменты позволяют разработчику сосредоточиться на творчестве, а не на технических деталях. Цель Мирты — открыть мир Wiren Board для каждого, кто увлечён программированием. О том, как начать работу с Миртой, было рассказано в предыдущей статье: Сегодня мы рассмотрим ключевые улучшения, которые произошли за последние полгода активной разработки. Утилита за секунды создаёт готовую к работе среду разработки, беря на себя всю рутину: от инициализации репозитория и настройки TypeScript до установки всех необходимых зависимостей и конфигурации процесса сборки. Запуск мастера создания проектов, как и прежде, осуществляется консольной командой pnpm create mirta Интерфейс стал компактнее и теперь поддерживает многоуровневые меню. В будущем планируется добавление различных шаблонов, которые станут наглядными «живыми» примерами автоматизаций — готовым кодом, который можно протестировать, отладить или сразу задеплоить на контроллер в пару кликов, чтобы увидеть его в работе. Шаб
Программируем умный дом на JS и TS: фреймворк Мирта
Показать еще
  • Класс

Фреймворк Мирта

Инструмент для программирования умных домов на языках JavaScript и TypeScript. Используется с контроллерами компании Wiren Board.
Этот проект стал воплощением моего искреннего увлечения программированием и адресован всем, кто разделяет мою страсть к этому ремеслу.
Несмотря на то, что создавать простые сценарии можно прямо в веб-интерфейсе контроллера, разработка на локальном компьютере в редакторе кода Visual Studio Code имеет ряд значительных преимуществ.
Здесь и поддержка современных версий ECMAScript - можно использовать let и const, стрелочные функции. И переменные окружения, и условная сборка в режиме production / development, и пакетная структура проекта, и поддержка
  • Класс
Правила wb-rules и Мирта: мастер настройки проекта
Пройдя от самых основ и вникая в каждую строчку конфигураций, по материалам прошлых статей мы получили шаблон для комфортной разработки правил wb-rules на TypeScript: Очевидно, что подобный процесс хорош с позиции обучения. Тем не менее, сейчас в проекте много вспомогательного кода, который используется только на этапе разработки. Да и вместо программирования правил приходится интенсивно разбираться с многочисленными настройками. Можно ли это упростить? Безусловно. Если Node.js у вас ещё не установлен, понадобится зайти на его официальный сайт и скачать актуальную версию LTS (24.12.0): В процессе установки будет предложен выбор компонентов - отметьте опции «Node.js runtime», «corepack manager» и «Add to PATH». Остальное не понадобится. На следующем экране будет предложено автоматически установить «необходимые» инструменты - мы обойдёмся без них, пропускаем. Открыв терминал (PowerShell) в режиме администратора, выполним в нём команду corepack enable pnpm После чего проверим статус менед
Правила wb-rules и Мирта: мастер настройки проекта
Показать еще
  • Класс
Правила wb-rules и Мирта: хранилище состояний
Дальнейшее развитие проекта на TypeScript привело к появлению фреймворка под названием «Мирта» - постепенно добавляются различные модули, расширяющие стандартные возможности wb-rules. Здесь и симулятор запуска на контроллере для юнит-тестов, и расширение устройств готовыми плагинами, и вспомогательные механизмы вроде debounce и throttle для предотвращения избыточных вызовов функций. Использование проверенных паттернов и подходов улучшает качество кода и облегчает сопровождение. Поскольку базовая функциональность уже реализована, можно быстрее создавать новые проекты. Сегодня рассмотрим один из таких элементов фреймворка - хранилище состояний. В целях обучения, базовая реализация модуля встроена в шаблон проекта (в Мирте хранилище представлено отдельным NPM-пакетом). Источником вдохновения послужила Vue Pinia, с той лишь разницей, что воспроизвести на wb-rules 2.0 реактивность не представляется возможным в компактных объёмах кода и с сохранением высокой производительности - требуется по
Правила wb-rules и Мирта: хранилище состояний
Показать еще
  • Класс
Правила wb-rules и парадигма EDP: пользовательские события
Создавать правила можно разными способами. Поначалу кажется, что самое простое решение — поместить всё в один файл внутри папки wb-rules. Код перед глазами, всё чётко и последовательно. Казалось бы, что может пойти не так? Сложности возникают по мере добавления функционала. Сначала это defineRule, затем объявления виртуальных устройств и подписка на топики MQTT, а позже появляется объёмная логика сценарного взаимодействия. Код становится трудным для восприятия, ведь чтобы сложить полную картину происходящего, требуется вникнуть в каждую деталь. Распутать клубок кода позволяет деление на модули. Нет смысла каждый раз «изобретать» работу с устройством заново, будь то многоканальный счётчик электроэнергии, термостат или же обычный сценарный пульт Zigbee на четыре кнопки. Мы ведь не пытаемся создать с нуля микроволновку перед тем, как разогреть себе еду? Это справедливо и по отношению к модулями правил wb-rules. Один раз настроили, покрыли юнит-тестами для уверенности в отсутствии ошибок и
Правила wb-rules и парадигма EDP: пользовательские события
Показать еще
  • Класс
Показать ещё