Свежие комментарии
    Благодарности: денежное общество и мойка авто

    Умный дом. Клацкаем светом.

    В предидущих статьях описаны части системы умного дома, как отдельные устройства подключить и настроить, в этой статье я выделю только управление освещением в системе MajorDoMo с использованием различных устройств.

    Описание настроек пойдет от пустой системы после установки например по этой инструкции.

    Для начала подготовим наши выключатели в системе умного дома, поскольку выключатели могут быть совершенно разные ( у меня выключатели в сценах, в меню управления, пульты 315 МГц, пульт на ESP, силовые блоки на iMatic и на ESP), если перечислить всё оборудование которое может быть использовано для включения/выключения света, то получится достаточно внушительный список.

    Хочу сказать, что есть множиство способов реализации функции включения/выключения света, но на мой взгляд описанный тут самый правильный, именно такую концепцию пологаю закладывал разработчик системы MajorDoMo (далее по тексту МД)

    Подготовка выключателей в MajorDoMo.

    Клацкаем светом в сценах.

    Клацкаем светом в меню управления.

    Включаем свет с пультов 315 МГц

    Включаем свет выключателем ESP8266 с прошивкой wifi-iot

    Подготовка выключателей в MajorDoMo.

    В принципе в дефолтной системе уже есть один выключатель, заходим в меню Объекты, класс Relays объект Switch, для добавления выключателей просто клонируем данный выключатель. Если нет выключателя, то добавьте класс Relays

    У класса Relays должны быть (синим добавленные свойства и методы, их нет в дефолтной настройке МД):

    свойства класса Relaysstatus и esp_status

    методы класса Relaysrefresh switch turnOff turnOn esp_switch

    метод код
    turnOn $this->setProperty(«status»,1);
    turnOf $this->setProperty(«status»,0);
    switch $status=$this->getProperty(«status»);
    if ($status) {
    $this->callMethod(‘turnOff’);
    } else {
    $this->callMethod(‘turnOn’);
    }
    refresh $status=$this->getProperty(«status»);
    if ($status) {
    $this->callMethod(‘turnOn’);
    } else {
    $this->callMethod(‘turnOff’);
    }
    esp_switch $status2=$this->getProperty(«esp_status»);
    $status=$this->getProperty(«status»);
    if ($status2) {
    if ($status) {
    $this->callMethod(‘turnOff’);
    } else {
    $this->callMethod(‘turnOn’);
    }
    }$this->setProperty(«esp_status»,0);

    Добавляем наш выключатель, назовем его Switch1, Switch2 и т.д.

    Далее можно включение сделать двумя способами, либо в одном сценарии, либо в методах turnOff turnOn каждого объекта Switch*, у меня сделано в методах каждого объекта, но скорее всего я переделаю в отдельном сценарии.

    Вариант 1. Включение/выключение в методах объекта.

    заходим в методы объекта Switch1

    у меня методы turnOff и turnOn отличаются от аналогичных методов класса по этому напротив этих метолов стоит красная звездочка (символ астериск)

    Нажимаем кнопку «Настроить» напротив методоd turnOff и turnOn и пишем код для этих методов. в таблице коды методов для управления разными силовыми блоками.

    Силовой блок turnOff  turnOn примечание
    На базе ESP8266 с прошивкой wifi-iot getURL («http://192.168.1.21/gpio&st=0&pin=13»,0); getURL («http://192.168.1.21/gpio&st=1&pin=13»,0); включение/выключене GPIO13 ESP8266
    iMatic exec («python /var/www/imatic.py 16 0»); exec («python /var/www/imatic.py 16 1»); включение/выключене GPIO16 iMatic, скрипт и настройка iMatic тут.

     

    Вариант 2. Включение/выключение в сценарии.

    создадим сценарий, например с названием scene_switch

    методы класса Relays turnOff turnOn приведем к следующему виду.

    метод код
    turnOn $this->setProperty(«status»,1);

    runScript(‘scene_switch’);

    turnOf $this->setProperty(«status»,0);

    runScript(‘scene_switch’);

    теперь все включения/выключения делаем в этом сценарии, пишем код в сценарии scene_switch.

     

    теперь для добавления необходимо просто добавить объект Switch и дописать код путем копирования/вставки в скрипт scene_switch.

    После этих настроек можно использовать любой способ включения/выключения и не будет зависить добавили Вы кнопку к сцену или нет и любой способ не будет зависит от другого способа включения.

    Клацкаем светом в сценах.

    Пример включения/выключения имеется в стандартном наборе, Вам необходимо лишь склонировать выключатель и выбрать нужный объект Switch. я выкладываю скриншоты настроек, при чем у выключателя есть 2 статуса On и Оff, отличаются кроме названия какой метод вызывать (подчеркнуто красным).

    далее останется просто склонировать и выбрать в состояниях On и Off нужный выключатель Switch1, Switch2, Switch3 и т.д.

    Клацкаем светом с меню управления.

    Добавляем в меню управления выключатель. В выключатель всего лишь правим 3 параметра:
    Связанный объект: Switch1
    Свойство: status
    Метод: refresh

    на этом добавление выключателя закончено. Он будет работать одновременно с другими способами включения.

    Включаем свет с пультов 315 МГц

    Код с пульта управления мы будем посылать через ESP8266 с прошивкой wifi-iot, в качестве приемника используется приемник на 315 МГц, в комплекте идет и передатчик, но нам нужен только приемник MX-05V.

    и пульты на 315 МГц

    подключаем DATA приемника к ESP8266 на любой свободный вывод GPIO, я использовал GPIO2, питание приемника к 3.3 вольтам,

    Прописываем адрес нашего мозга системы — айпи сервера MajorDoMo.

    включаем на GPIO2 модуль и отправку кода на сервер МД

    коды можно посмотреть на вкладке /debug модуля нажимая на кнопки пульта.

    далее я создал сценарий RCSwitch или данный сценарий там уже был и я его только поправил

    далее я создал в Объектах класс ESP_rcdata в нем объект rcdata в объекте метод rccode и свойство rcswitch
    в методе  rccode делаем выполнить сценарий RCSwitch

    Ну и в заключении надо привязать код, передаваемый с ESP8266, для этого необходимо установить модуль esp8266_wifiot, появиться в устроуствах меню, зайти в редактирование нашего ESP к которому подключен приемник

    Вкладка данные, свойство rcdata связанный объект rcdata, связанное свойствоrcswitch метод rccode

    на этом настройка пультов закончена.

    Включаем свет выключателем ESP8266 с прошивкой wifi-iot

    В качестве кнопок можно использовать любое устройство, которое позволяет подать напряжение на GPIO ESP8266, например простой выключатель без фиксации, или сенсор TTP223, я не буду подробно останавливаться на механике и схемотехнике выключателей, в этой статье есть описание того, как сделать сенсорный выключатель.

    Нам надо настроить на ESP кнопки, заходим во вкладку GPIO и настраиваем как показано на рисунке (доступно только в версии Pro).

    не забываем указать айпиадрес сервера МД в настройках модуля ESP.

    у меня заданы 4 вывода, к контактам 4,5,13,14 ESP, на этом настройки модуля закончены, настраиваем привязку кнопок к выключателям

    связанные объекты это наши объекты в switch в relays ну и задаем связанные свойства и метод в соответстви с рисунком выше.

    На этом настройка закончена.

    Поделиться в соц. сетях

    Опубликовать в Facebook
    Опубликовать в Google Buzz
    Опубликовать в Google Plus
    Опубликовать в LiveJournal
    Опубликовать в Мой Мир
    Опубликовать в Одноклассники
    Опубликовать в Яндекс

    Комментарии закрыты.