Архив по меткам :

QR-code

ССЫЛКИ

Свежие комментарии

Окт 23

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

В предидущих статьях описаны части системы умного дома, как отдельные устройства подключить и настроить, в этой статье я выделю только управление освещением в системе 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
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Синдикация

Понравилась статья? Подпишитесь на RSS .

комментарии отключены, по вопросам в почту или вконтакте http://vk.com/kusheev