Найти в Дзене
Поддержите автораПеревод на любую сумму
Закреплено автором
Умный дом с проводами
Правила wb-rules и Мирта: мастер настройки проекта
168 · 7 месяцев назад
Умный дом с проводами
Программируем умный дом на JS и TS: фреймворк Мирта
3 недели назад
Правила wb-rules и Мирта: деплой на контроллер умного дома
Вы создали отличный код, но как передать его на контроллер? Автоматизация этого процесса является одной из задач фреймворка. В актуальной версии Мирты применяется специальная утилита командной строки mirta deploy, входящая в состав пакета @mirta/cli...
1 неделю назад
Wirenboard по SSH: защита соединения с помощью Рутокен MFA
Всё больше сервисов переходят на аутентификацию с помощью аппаратных ключей по стандарту FIDO2 (Fast Identity Online), обеспечивая защиту от фишинга и компрометации учётных данных. Одним из таких решений является Рутокен MFA. В этой статье рассмотрим его использование для защиты SSH-подключений к контроллеру Wiren Board — устройству, применяемому в системах умного дома и автоматизации. Ранее мы уже исследовали применение Рутокен ЭЦП в аналогичном сценарии, подробности в предыдущей публикации: Перед...
2 недели назад
Программируем умный дом на JS и TS: фреймворк Мирта
Профессиональные инструменты позволяют разработчику сосредоточиться на творчестве, а не на технических деталях. Цель Мирты — открыть мир Wiren Board для каждого, кто увлечён программированием. О том, как начать работу с Миртой, было рассказано в предыдущей статье: Сегодня мы рассмотрим ключевые улучшения, которые произошли за последние полгода активной разработки. Утилита за секунды создаёт готовую к работе среду разработки, беря на себя всю рутину: от инициализации репозитория и настройки TypeScript до установки всех необходимых зависимостей и конфигурации процесса сборки...
3 недели назад
Обновление Mirta 0.4.11 «Что не случилось у разработчика, обязательно случится у пользователя» Даже 800+ юнит-тестов не поймают всё. Иногда за кадром остаются важные нюансы — и вот какие исправления в этом релизе: - Некорректная структура сборки при отсутствии импортов из src/wb-rules-modules: Если скрипты в src/wb-rules не импортировали модули, сборка формировалась с ошибкой. Например, src/wb-rules/boot.ts попадал в dist/es5/boot, хотя должен был — в dist/es5/wb-rules/boot.js. Теперь структура сохраняется корректно. - Утилита деплоя падала при отсутствии одного из исходных каталогов Раньше ошибка возникала, если не было одной из отслеживаемых папок, например wb-rules-modules. Теперь утилита корректно пропускает отсутствующие источники и продолжает работу. Эти баги могли мешать созданию новых проектов, ориентированных исключительно на скрипты. ⚠️ Важно: резервное копирование перед деплоем Если на контроллере уже есть скрипты — обязательно сделайте резервную копию или перенесите их в проект до деплоя. По умолчанию система очищает папки wb-rules и wb-rules-modules при публикации. Это сделано, чтобы избежать конфликтов. Например: вы создали скрипт, опубликовали. Позже переименовали его или разбили на части — и снова опубликовали. Старый файл остался на контроллере → возникает коллизия, которую сложно диагностировать. Чистая публикация = предсказуемое поведение. Но будьте осторожны с существующими данными
3 недели назад
Обновление Mirta 0.4.4 Долгожданный релиз фреймворка наконец-то выпущен. Из-за значительных изменений в архитектуре и подходах миграция с предыдущих версий требует создания нового проекта с обновлённой структурой. Для этого воспользуйтесь мастером инициализации, выполнив в консоли команду: pnpm create mirta Скопируйте содержимое папки src из вашего прежнего проекта в новую структуру.
1 месяц назад
Почему статьи появляются редко? 🚀 Сейчас основное внимание уделено развитию фреймворка «Мирта» - средству для комфортной разработки сценариев управления умными домами на основе оборудования Wiren Board. Используется современный синтаксис JavaScript и TypeScript (стандарта ESNext), ESLint и Vitest, различные интеграции с ИИ-ассистентами. Этот инструмент создан для всех, кто испытывает интерес к программированию и стремится эффективно реализовывать свои проекты. Цель текущей работы: - Сделать разработку максимально простой и интуитивной. - Реализовать новые функциональные возможности. - Подготовить детальную документацию и оказывать поддержку начинающим разработчикам. Новые статьи выйдут позже, но они обязательно будут насыщенными и интересными, поскольку основаны на реальных практиках и проверенных технологиях. Если вы хотите следить за динамичным процессом и первыми узнавать новости, заглядывайте на страницу Boosty - подписчикам доступен отдельный телеграм-чат, где можно обсудить применение фреймворка и получить совет по разработке скриптов автоматизации. Спасибо за понимание и желание развиваться вместе с нами!
4 месяца назад
Правила wb-rules и Мирта: мастер настройки проекта
Пройдя от самых основ и вникая в каждую строчку конфигураций, по материалам прошлых статей мы получили шаблон для комфортной разработки правил wb-rules на TypeScript: Очевидно, что подобный процесс хорош с позиции обучения. Тем не менее, сейчас в проекте много вспомогательного кода, который используется только на этапе разработки. Да и вместо программирования правил приходится интенсивно разбираться с многочисленными настройками. Можно ли это упростить? Безусловно. Если Node.js у вас ещё не установлен, понадобится зайти на его официальный сайт и скачать актуальную версию LTS (24...
168 читали · 7 месяцев назад
Правила wb-rules и Мирта: хранилище состояний
Дальнейшее развитие проекта на TypeScript привело к появлению фреймворка под названием «Мирта» - постепенно добавляются различные модули, расширяющие стандартные возможности wb-rules. Здесь и симулятор запуска на контроллере для юнит-тестов, и расширение устройств готовыми плагинами, и вспомогательные механизмы вроде debounce и throttle для предотвращения избыточных вызовов функций. Использование проверенных паттернов и подходов улучшает качество кода и облегчает сопровождение. Поскольку базовая функциональность уже реализована, можно быстрее создавать новые проекты...
7 месяцев назад
Правила wb-rules и парадигма EDP: пользовательские события
Создавать правила можно разными способами. Поначалу кажется, что самое простое решение — поместить всё в один файл внутри папки wb-rules. Код перед глазами, всё чётко и последовательно. Казалось бы, что может пойти не так? Сложности возникают по мере добавления функционала. Сначала это defineRule, затем объявления виртуальных устройств и подписка на топики MQTT, а позже появляется объёмная логика сценарного взаимодействия. Код становится трудным для восприятия, ведь чтобы сложить полную картину происходящего, требуется вникнуть в каждую деталь...
8 месяцев назад
Правила wb-rules и ESLint Stylistic: дальше без Prettier
Однажды познакомившись с программированием, требуется постоянно следить за изменениями, чтобы оставаться в теме происходящего - множество людей по всему миру без устали вносят корректировки в общедоступные инструменты. Меняются конфигурации, устаревают руководства, обновляются подходы к разработке. При подготовке статьи с примерами правил wb-rules, пришлось бороться с Prettier - он упрямо переносил тело инструкций if, else, while и for в одну линию: if (index !== -1) callbacks.splice(index, 1) Разработчикам, не привыкшим к такой записи, будет сложно воспринимать коды...
8 месяцев назад
Правила wb-rules: дальше без Babel
Первое улучшение, предложенное и внедрённое участником сообщества Github. Ваш вклад в этот открытый проект помогает другим разработчикам создавать удивительные вещи, спасибо за это! Хитрость заключается в более тонкой настройке тандема TypeScrtipt и Rollup, приводящего итоговый код к формату, который понимает движок правил wb-rules на контроллере Wirenboard. Если вы пропустили прошлый выпуск, в нём подробно рассказывалось об использовании переменных окружения dotenv: Новые установки открывают возможность...
8 месяцев назад
Правила wb-rules и dotenv: переменные окружения
Переменные окружения - это все те строковые константы, которые раньше были зашиты прямо в код. Сегодня мы вынесем их в отдельный текстовый файл и оформим построчно в виде пар «ключ-значение». Чтобы стало ещё интереснее, научимся собирать проект в вариантах development и production. Первый используется для отладки и экспериментов, а второй - серьёзный, компактный и максимально эффективный. Разумеется, разные варианты сборки потребуют переключения между разными наборами строковых значений. И обновлённая система умеет делать это буквально по щелчку пальцев...
8 месяцев назад