wihome

wihome 

Автоматизации на основе оборудования Wiren Board

9subscribers

14posts

goals2
4 of 10 paid subscribers
Чтобы реализовать режим template discovery - Мирта извлекает шаблоны устройств из подключенных пакетов и деплоит их вместе с кодом.
$0 of $1 421 raised
На развитие и покупку устройств для проработки интеграций

About

Инженер-программист по профессии, ведущий специалист в разработке ПО. Умные дома — моё любимое увлечение, которое переросло в отдельный проект.
Занимаясь основной работой над крупными ИТ-проектами, я параллельно развиваю фреймворк Мирта, который облегчает другим разработчикам создание и отладку сценариев управления умным домом на оборудовании Wiren Board.
Со мной вы сможете быстро освоить эффективные методы разработки, применить оптимальные решения и значительно повысить удобство сопровождения своих проектов умного дома.
Хотите превратить дом в пространство мечты? Тогда присоединяйтесь — будем строить будущее вместе!
P.S.: платные подписки и донаты дают мне возможность сосредоточиться на развитии проекта, уделяя ему максимум времени, закупать оборудование для проработки интеграций. Сам же фреймворк полностью открыт, бесплатен и ничем не ограничен.

Мирта — ваш фреймворк умного дома

Выбрав в качестве центра управления домашними устройствами контроллер компании Wiren Board, многие начинают интересоваться программированием. А всё потому, что эта система имеет на борту специальный движок, позволяющий создавать автоматизации при помощи скриптов на языке JavaScript.
И здесь возникает выбор: воспользоваться встроенным редактором правил или прибегнуть к внешним инструментам вроде фреймворка «Мирта». Давайте сравним оба варианта и посмотрим, какой из них подходит именно вам.

Встроенный редактор контроллера

Преимущества
  • Простота и доступность: встроенный редактор доступен прямо из браузера, не требует отдельной установки и удобен для новичков.
  • Легкость начала работы: сразу можно приступить к созданию простых сценариев без предварительной подготовки среды.
🔧 Ограничения
  • Устаревший стандарт JavaScript (ECMAScript 5), отсутствие современных конструкций и поддержки TypeScript.
  • Нет полноценной системы проверки типов и удобных механизмов автозаполнения, приходится пользоваться сторонней документацией и руководствами.
  • Ограниченность функционала: подходит для несложных задач и быстрых исправлений.
Этот инструмент идеально подойдёт новичкам и тем, кто предпочитает лёгкий старт без глубокого изучения технологии.

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

➡️ Мастер создания проекта
  • Запустили проект впервые? Мирта спросит, какую среду разработки используете, и самостоятельно подберёт все необходимые конфигурации. Никаких долгих настроек вручную — начните писать сценарии мгновенно!
Современные стандарты
  • Поддержка TypeScript и последних версий JavaScript (ES6+), обеспечивающих чистоту и безопасность кода.
  • Автоматическое дополнение, подсказки на русском языке, удобная интеграция с популярными IDE (например, Visual Studio Code).
💥 Продвинутые инструменты
  • Система статического анализа кода с использованием ESLint помогает выявлять проблемы ещё до запуска программы.
  • Возможность автоматического тестирования с библиотекой Vitest обеспечивает стабильность и предсказуемость поведения даже сложных решений.
  • Интеграция с AI-помощниками ускоряет разработку и устраняет рутинные операции (тестировалось на GigaCode).
🚀 Эффективность и масштабируемость
Подходит для крупных проектов, требующих сложных сценариев автоматизации и четкого разделения обязанностей.

Расскажите о вашем опыте

Если вы используете Мирту для программирования контроллеров Wiren Board — поделитесь своим кейсом!
💬 Обсудим:
  • Какие задачи вы решаете?
  • Что нравится, а что можно улучшить?
  • Ваши идеи и предложения
👉 Присоединяйтесь к обсуждению: GitHub Discussions
Ваш опыт помогает делать фреймворк лучше!

Обновление 0.5.1

Исправляет сборку командой build:dev — было замечено, что в режиме development конструкция process.env.NODE_ENV попадает в код ES5 для контроллера.
Также выпуск включает свежие версии зависимостей, проверенные CI/CD. Спасибо Renovate за порядок!
Хотите перейти на 0.5.1? Просто поменяйте версию пакетов Мирты в package.json на 0.5.1 и запустите pnpm install в терминале VS Code — готово!
Группа Mirta Guild в мессенджере Макс
В связи с блокировкой мессенджера Telegram в РФ, создана группа Mirta Guild в мессенджере Макс. Ссылка для вступления доступна подписчикам
Level required:
Экспериментатор
3 days free, then $3.6 per month

Приобретён модуль Sprut.stick ZigBee

Спасибо, что поддерживаете Мирту на Boosty 💚
Меня часто спрашивают, будет ли у системы GUI для управления устройствами с помощью готовых блоков?
Вместо создания очередного визуального редактора я выбрал путь интеграции с существующими решениями. Мирта станет надёжным ядром для тех, кто пишет код, а пользовательские сценарии — пусть живут там, где им удобно: в привычных интерфейсах, таких как Sprut.hub.
Покупка модуля Sprut.stick позволит эффективно проработать это направление и сформировать типовые рекомендации по совместному использованию.

Обновление 0.5.0

Тесты на основе Vitest (@mirta/testing):
  • По запросу от подписчика обновлён API симулятора в интеграционных тестах — добавлена связь между контролами в объекте dev, подписками trackMqtt и defineRule (whenChanged), а также getControl().setValue(), что позволяет более точно имитировать поведение контроллера.
  • Добавлены интеграционные тесты, проверяющие новое поведение симулятора.
Генератор проектов (create-mirta):
  • В шаблон проекта типа моно-пакет добавлен workflow-файл release.yml, завершающий процесс релиза на стороне GitHub и публикующий пакеты в реестр NPM. Требуется первичная настройка: заглушка-пакет в NPM и Trusted Publisher. Позже выйдет статья о подготовке к распространению готовых решений.
  • Для проектов типа моно-пакет скорректирована генерация workflow-файла build.yml - теперь добавляет этап Continuous Release при сборке в CI. Этот этап позволяет подключать предварительные версии пакетов в целевые проекты до их публикации в NPM.
Прочие оптимизации (mirta-rollup):
  • В конфигурации сборки под контроллер убрано экранирование кириллицы при работе с шаблонными строками вида log(`Значение: ${value}`).
  • Удалены устаревшие зависимости.
Ранний доступ: шаблоны датчика Creatrol 24G
Получите шаблоны для работы с датчиками присутствия до
публичного релиза. Настройте автоматизацию быстрее — без лишнего кода.
Level required:
Экспериментатор
3 days free, then $3.6 per month

Политики авторизации для чат-бота Мирты

В скором времени пакет @mirta/chatbot станет доступен для подключения в любые проекты на базе фреймворка.
Сформулировал красивый DSL для начальной настройки доступа пользователей к управлению контроллером Wiren Board из популярных мессенджеров.
В основу заложено несколько хитрых оптимизаций. Например, вот это полотно кода выполняется лишь в первом из скриптов wb-rules, который вызвал бота.
Повторные вызовы в любом другом месте будут получать конфигурацию из кэша на основе Mirta Store.
Можно развить идею, добавив динамическую авторизацию (управление списком разрешений, доступ с ограничением по времени).

Continuous Integration в ваших проектах

Начиная с версии 0.4.4, при создании проекта Мирта предлагает опцию настройки на работу с GitHub.
«Из коробки» доступны сборка и тестирование (если отметили опцию Vitest) на стороне GitHub.
Каждое изменение в коде, будь то коммит или pull request, автоматически проверяется на стабильность:
  • Собирается ли проект
  • Проходят ли тесты
Это особенно полезно при:
  • Открытии PR — можно быть уверенным, что изменения не сломают рабочий код
  • Совместной разработке — все видят статус
  • Обновлении проекта через время — видно, сломалось ли что-то
Теперь ваш проект — не просто набор файлов. Это живая система с обратной связью: вы видите, что код не только написан, но и работоспособен.
Примечание: кролик автоматом не появится, его отдельно нужно настраивать :) Это ИИ-ревьювер. Подписывайтесь, обсудим в чатах Mirta Guild

Имитация деплоя

Передача файлов на контроллер умного дома - задача крайне ответственная. Чтобы проверить, что Мирта собирается сделать на целевом устройстве, при выполнении команды wb:deploy (также известна как mirta deploy) добавьте аргумент командной строки --dry-run
Система отобразит намерения, однако все файлы останутся на своих местах.
Примечание: деплоить можно не только коды, но и любые другие файлы - для этого понадобится расширить конфигурацию проекта, расположенную в файле mirta.config.json (генерируется, если создавали проект с опцией примеров использования).
Subscription levels2

Экспериментатор

$3.6 per month
Для тех, кто только пробует Mirta.
Доступ к чату Mirta Guild: Base (основной)
Ранние уведомления о новых версиях и изменениях
Возможность голосовать за приоритеты в дорожной карте
🔐 Чаты Mirta Guild:
🟢 Base | 🔴 Core | 🔴Inner Circle
+ chat

Архитектор умного кода

$7.2 per month
Для тех, кто уже пишет свои скрипты.
Помощь с wb-rules, объяснение принципов, рекомендации по организации кода
🔐 Чаты Mirta Guild:
🟢 Base | 🔴 Core | 🔴Inner Circle
+ chat
Go up