Про режимы 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.

Голосовое управление радио на 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.

Голосовое управление телевизором Samsung, LG или любого другого

Average Rating
0 out of 5 stars. 0 votes.

Устройство Xiaomi 360 IR (аналог Broadlink) даёт возможность управлять с мобильного приложения телевизором, кондиционером, вентилятором, словом любым устройством, которое управляется инфракрасными сигналами. Да, именно такие сигналы используются в вашем пульте от телевизора. Итак, для начала вам необходимо добавить Xiaomi 360 IR в стандартное Mi Home приложение, выбрать из обширной базы устройств свой телевизор и уже сейчас вы сможете управлять им используя виртуальный пульт на телефоне. В редких случаях телека не будет, но ничего страшного, используя режим обучения вы можете обучить своё устройство новым кнопкам используя оригинальный пульт. Устройство запомнить все коды кнопок и сохранит в телефоне. После этого вам необходимо вытащить из телефона коды этих кнопок. Сделать это можно двумя способами:

    - если у вас есть рут, то просто открыть файл из файловой системы
    - если нет рута, но через USB кабель сделать бекап всего приложения, в нём и будет файл с кодами.

Второй способ предпочтительнее т.к. с его помощью вы сразу сможете получить токен, который понадобится нам позже. Как сделать бекап и получить токен можно прочитать вот тут. Далее устанавливаем модуль Xiaomi miIO и вводим токен устройства. После этого плагин уже должен отобразить список доступных команд. Далее используем коды кнопок для написание ваших сценариев. Как это делать я подробно показал на этом видео.

Average Rating
0 out of 5 stars. 0 votes.

Привязываем датчик движения HC-SR501 к Majordomo

Average Rating
0 out of 5 stars. 0 votes.

Я уже писал про говорящие датчики дыма, а в этой статье я хотел бы описать похожую реализацию, но уже с датчиком движения. На алиекспрес я купил датчик SR501 HC-SR501 вот тут всего за $2.22. Это самая дешёвая цена, которую я смог найти на момент покупки. Так же для реализации своего проекта говорящего датчика движения вам необходимо купить микроконтроллер Arduino Nano, купил я его вот тут за $2.80. Что удобно, продавец за эту цену прилагает и USB кабель для подключения к компьютеру для заливки прошивки и питания одновременно. И Ethernet шилд для передачи данных с самого датчика в сеть. Я его купил вот тут за $3.84. Итого выходит $8.86. Вы скажите, что зачем мне городить весь этот конструктор если я могу купить за теже $10 датчик движения Xiaomi. Я купил и собрал оба варианта и вот вам моя сравнительная характеристка плюсов и минусов.

Кастомный датчик своими руками.
датчик температуры и влажности

Плюсы:
– работоспособность не зависит от китайского сервера
– нет жёсткой привязки по софту к экосистеме от Xiaomi
– не требует дополнительный шлюз (+$28) и полностью автономен
– данные передаются не по воздуху, а по кабелю
– возможность разобрать комплектующие и применять в других проектах
– возможность переписывать прошивку под новые проекты
– прокачка в сборке умных вещей и создание прошивок :)

Минусы:
– стоимость соизмерима с готовым коммерческим решением
– нет красивого дизайна и коробки
– занимает больше места
– сложность в сборке для новичка

Датчик от Xiaomi
датчик движения Xiaomi

Плюсы:
– красивый дизайн
– соизмеримая стоимость с кастомной реализацией
– возможность быстро добавить в сценарии экосистемы Xiaomi
– лёгкость в настройке и подключение

Минусы:
– работа зависит от китайского сервера
– для работы необходим шлюз (+$28)
– если не заставили работать плагин Majordomo то датчик можно использовать исключительно в экосистеме Xiaomi (как у меня :)

Если несмотря на все трудности вы всё таки решили собрать свой датчик, то читаем дальше.
Как подключать сами провода к микроконтроллеру я описывать не буду, в сети множество статей и видео на эту тему. Я же просто предложу использовать мою версию прошивки. Как она работает? Когда датчик зафиксирует движение, то значение 1 будет передано по протоколу MQTT в брокер. В своём примере я использую бесплатный сервис cloudmqtt.com, но вам настоятельно рекомендую использовать свой сервер. Например Mosquitto. В скетче, вот в этой строке

if (client.connect("Client", "login", "password"))

вам нужно будет указать свой логин и пароль к брокеру. В Majordomo у вас должен быть установлен модуль MQTT.

Его так же нужно настроить на ваш брокер указав все настройки. После этого в Majordomo будет приходит значение 1 всякий раз когда ваш датчик зафиксирует движение. В настройках модуля MQTT Majordomo, нужно приязать значение в какому-нибуть свойству, после чего вы сможете использовать его в своих сценариях. Либо вы можете сразу указать что бысрабатывал метод, как только значение измениться. А в самом методе написатьчто-то в роде:

if(gg("Kitchen.HCSR501")=='1'){
say("Зафиксировано движение",2);}
sg("Kitchen.HCSR501","0");

где Kitchen.HCSR501 имя свойства указанное в модуле MQTT куда приходит значение с датчика.
Вот и всё, если у вас возникли какие-нибуть вопросы, то задавайте в коментариях,я постараюсь ответить. Так же рекомендую посмотреть видео, ссылку на которое я оставил в самом начале поста. В нём я детально показываю всё тоже самое, но с датчиками дыма.

Average Rating
0 out of 5 stars. 0 votes.