Про режимы MajorDomo

Average Rating
0 out of 5 stars. 0 votes.

В MajorDomo есть класс “OperationalModes”, который отвечает за логику режимов. В нём по умолчанию есть почти полный набор режимов, который понадобится любому пользователю.

  • DarknessMode – Режим тёмного времени суток
  • EconomMode – Эконом режим
  • GuestsMode – Гостевой режим
  • NightMode – Ночной режим
  • NobodyHomeMode – Режим “никого дома”
  • SecurityArmedMode – Режим безопасности

Если вы используете индикаторы режимов на сценах, то могли заметить что некоторые режимы можно включить\выключить по клику на сцене, а некоторые нет. Я до конца не понял в чём причина, но грешу на инклуды “простых устройств” в методах активации и деактивации режимов. Проблему решил принудительным выставлением свойства active. Например для неработающего выключателя индикатора для режима “никого дома” я дописал в метод deactivate:

/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/nobodyhomemode_deactivate.php');
/* end injection of {SDevices} */
sg("NobodyHomeMode.active","0");

После этого индикатор стал корректно выключаться.

А вот метод активации activate по какой-то причине у меня нормально активировался и дополнительно включать его не требовалось. Но для режима DarknessMode это пришлось сделать вручную. Как для включения так и для выключения.

С чем связана такая выборочная работа я так и не понял. Если у вас есть предположения, то я буду рад выслушать любые соображения. А пока все могут пользоваться моим предложенным решением.

Режимы в Мажордомо

Как режимы могут влиять на статусы можно прочитать в одном из моих предыдущих постов.

Практическое применение режима безопасности я демонстрирую во в этом видео:

Average Rating
0 out of 5 stars. 0 votes.

Как убрать фразу “Неизвестная команда”?

Average Rating
0 out of 5 stars. 0 votes.

Постоянно получаю вопрос: как убрать фразу “Неизвестная команда”? Обычно такая необходимость появляется после того как вы начинаете использовать модуль API.AI. К сожалению если в шаблонах поведения такая команда не найдена, но она найдена в API.AI, то фраза “Неизвестная команда” всё равно будет выполнена, что не есть хорошо. Самый простой выход, это закомментировать эту строчку. Делается это вот где:

Объекты -> класс "Computer" -> метод "commandReceived", листай в самый низ и комментируем строчку.

Average Rating
0 out of 5 stars. 0 votes.

Голосовое управление радио на Xiaomi Gateway

Average Rating
0 out of 5 stars. 0 votes.

Что бы реализовать голосовое управление радио, вам необходимо установить модуль Xiaomi miIO, в настройках для Xiaomi Gateway указать ваш токен. Как получить токен вы можете прочитать вот тут. Далее в разделе “Объекты” создать все свойства, которые перечислены в модуле Xiaomi miIO для устройства Xiaomi Gateway на вкладке “Радио”. После чего в модуле выбрать из выпадающих списков только что созданные свойства, тем самым вы привяжите их.
Уже сейчас можно начать переключать каналы, но нам нужны наши радио станции, а не китайские. Самый просто способ на мой взгляд, это добавить DNS сервер что обеспечит нам наш набор радио в приложении Mi Home. Как это настроить можно прочитать вот тут. После этого, открываете приложение Mi Home,выбираете любимое радио, обновляете страницу модуля Xiaomi miIO и в свойство current_program попадёт номер радио станции. Записываем его. Повторяем процедуру с выбором другого радио и так пока не соберём номера всех нужных нам радио станций. Имея эти номера уже можно писать сценарии и добавлять кнопочки на сцену.

Average Rating
0 out of 5 stars. 0 votes.

Новый модуль Yeelight

Average Rating
0 out of 5 stars. 0 votes.

Написал новый модуль для счастливых владельцев лампочек от компании Yeelight. Опытный пользователь скажет что уже есть замечательный модуль Xiaomi miio, с помощью которого уже можно управлять этими лампочками. Но основная проблема для начинающих заключается в том что необходимо узнать токен для управления этой лампочкой. Но если вы будете использовать модуль Yeelight, то вам не нужно будет узнавать никаких токенов. Вам достаточно будет через официальное приложение добавить лампочку, выставить настройку “управление по локальной сети”.

После этого все лампочки появятся в интерфейсе автоматически и сразу доступны для управления. Модуль даже сам создаст все объекты, поддерживаемые свойства и методы. Но вот многие модули, включая Xiaomi miio, Xiaomi home, реализованы так что, нужно либо с помощью “простых устройств” либо самому ручками создать класс, объект, свойство, метод, а уже потом привязывать их в модулях. Но мой модуль не перекладывает это на пользователя, как и предыдущие мои модули, он делает это за пользователя сам, что бы максимально сузить телодвижения и скрыть процесс настройки. В конечном итоге пользователь получает готовый код, с помощью которого он уже может управлять устройством, создавать контролы на сцене либо нужные ему сценарии.
На скриншоте ниже продемонстрирован вывод красным шрифтом готовых команд для управления в качестве примера.

Если вам понравился модуль, не забудьте кликнуть “спасибо”, вот в этом посте на форуме.

Видео урок, в котором я использовал свой модуль:
Свои сложные сценарии работы для Yeelight ленты и лампочки в Majordomo

Average Rating
0 out of 5 stars. 0 votes.

Сообщения “Никого нет дома” и “Кто-то есть”

Average Rating
0 out of 5 stars. 0 votes.

С текстом “Никого нет дома” и “Кто-то есть” у пользователей Мажордомо возникает часто вопрос, наподобие такого: “Почему Мажордомо пишет что “Никого нет дома”, но на самом деле я дома?”. Давайте разбираться. Для начала необходимо понять какое свойство у вас используется для отображения этого состояния. Для этого необходимо зайти в раздел “Меню управления”, далее выбрать “State”. В разделе “Данные” необходимо найти отвечающую за отображение нашего текста переменную. Это может быть либо %ThisComputer.somebodyHomeText% либо %ThisComputer.HomeStatus%. Оба эти свойства инициализируются похожими состояниями. Что заметил лично я? Например если добавить датчик движения через “Простые устройства”, привязать его к определённому помещению, например Гостиная, то при срабатывания датчика в свойство ThisComputer.somebodyHomeText будет дописано значение “Активность: 15:39 (Гостиная)”. Такое же поведение будет для датчика открытия, если он добавлен через простые устройства и в настройке “Изменение означает активность в помещении” выставлено значение “Да”. Подозреваю что такое же поведение будет для реле, но у меня нет ни одного. Если вы знаете другие способы инициализации этих свойств, то поделитесь знаниями в комментариях.

Average Rating
0 out of 5 stars. 0 votes.