SmartLiving.ru

Обсуждение проекта
 
Текущее время: Вс фев 19, 2017 5:17 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу 1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Чт дек 04, 2014 12:35 pm 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 3666
Откуда: Минск, Беларусь
Благодарил (а): 58 раз.
Поблагодарили: 838 раз.
Приветствую,

На днях удалось выбрать время и поиграться с системой управления освещением Mi-Light от наших китайских друзей.

Система представляет собой свето-диодные лампочки со встроенным приёмником (белые с регулировкой теплоты света и RGBW), пульты и Wi-Fi контроллер. Всё работает на частоте 2.7GHz (если правильно помню)

Выглядит оно примерно вот так:

Изображение

"Традиционная" схема использования: лампочка привязывается либо к пульту напрямую либо к WiFi-контроллеру с помощью мобильного приложения (им же и управляется). Есть странная особенность -- пульты от белых ламп и от RGBW ламп не совместимы, т.е. указанным на фото пультом белой лампочкой управлять нельзя. Wi-Fi контроллер поддерживает все виды ламп. Кстати, кроме ламп ещё в ассортименте имеется контроллер RGB-лент, который так же управляется либо пультом либо через WiFi-контроллер.

WiFi-контроллер (и пульт) может управлять 4-мя лампочками либо 4-мя группами ламп (т.е. есть 4 независимых канала).

По цене, если брать усреднённо, то около $20 за отдельную единицу (пульт, лампочка, wifi-контроллер) - это уже у нас в Минске, думаю на каком aliexpress дешевле будет.

Самое интересное -- после включения WiFi-контроллера в домашнюю сеть, он может легко управляться из MajorDoMo.

Ниже простой пример использования. Я не использовал все возможности контроллера, т.к. пока было время только на проверку базовых команд -- включение и выключение лампочки, но желающие по аналогии могут дополнить другими возможностями.

Итак, в классе Relays я создал новый под-класс MiLight и объект MiLamp1

Изображение

В самом классе прописал следующие дополнительные свойства:

Изображение

В методах добавил метод sendCommand и переписал методы turnOn и turnOff:

Изображение

Коды методов:

[Показать] Скрытый текст: Коды методов
Код метода turnOn
Код:
$this->callMethod('sendCommand',array('command'=>'on')); 


Код метода turnOff
Код:
$this->callMethod('sendCommand',array('command'=>'off')); 


Код метода sendCommand (в комментариях оставил все возможные коды команд для дальнейшего расширения)
Код:
$command=$params['command'];

$host=$this->getProperty('Host');
$type=(int)$this->getProperty('LampType');
$zone=(int)$this->getProperty('Zone');
$port=8899;

$commands='';
if (
$type==&& $command=='on' && $zone==1) {
 
//&H38
 
$commands=chr(0x38);
}
if (
$type==&& $command=='off' && $zone==1) {
 
//{&H3B
 
$commands=chr(0x3B);
}

if (
$commands) {
 
$commands.=chr(0).chr(0x55);
 
$fp pfsockopen"udp://".$host$port$errno$errstr );
 if (
$fp) {
  
socket_set_timeout ($fp10);
  
$write fwrite$fp$commands);
  
fclose($fp);
 } else {
  
debmes("error opening socket for milight at $host");
 }
} else {
 
debmes("command '$command' not set for $host / $type / $zone");
}

/*
    Friend LimitlessLED_Command_WHITE_ALLOFF As Byte() = New Byte() {&H39, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_ALLON As Byte() = New Byte() {&H35, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_BRIGHTNESS_UP As Byte() = New Byte() {&H3C, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_BRIGHTNESS_DOWN As Byte() = New Byte() {&H34, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_WARM_WHITE_INCREASE As Byte() = New Byte() {&H3E, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_COOL_WHITE_INCREASE As Byte() = New Byte() {&H3F, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_GROUP_1_ALL_ON As Byte() = New Byte() {&H38, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_GROUP_1_ALL_OFF As Byte() = New Byte() {&H3B, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_GROUP_2_ALL_ON As Byte() = New Byte() {&H3D, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_GROUP_2_ALL_OFF As Byte() = New Byte() {&H33, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_GROUP_3_ALL_ON As Byte() = New Byte() {&H37, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_GROUP_3_ALL_OFF As Byte() = New Byte() {&H3A, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_GROUP_4_ALL_ON As Byte() = New Byte() {&H32, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_GROUP_4_ALL_OFF As Byte() = New Byte() {&H36, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_NIGHT_MODE_ALL As Byte() = New Byte() {&H39, &H0, &H55} '100ms followed by: 0xB9
    Friend LimitlessLED_Command_WHITE_NIGHT_MODE_ALL_PRESSAndHOLD As Byte() = New Byte() {&HBB, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_NIGHT_SAVER_MODE_GROUP_1 As Byte() = New Byte() {&H3B, &H0, &H55} '100ms followed by: 0xBB
    Friend LimitlessLED_Command_WHITE_NIGHT_SAVER_MODE_GROUP_1_PRESSAndHOLD As Byte() = New Byte() {&HBB, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_NIGHT_SAVER_MODE_GROUP_2 As Byte() = New Byte() {&H33, &H0, &H55} '100ms followed by: 0xB3
    Friend LimitlessLED_Command_WHITE_NIGHT_SAVER_MODE_GROUP_2_PRESSAndHOLD As Byte() = New Byte() {&HB3, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_NIGHT_SAVER_MODE_GROUP_3 As Byte() = New Byte() {&H3A, &H0, &H55} '100ms followed by: 0xBA
    Friend LimitlessLED_Command_WHITE_NIGHT_SAVER_MODE_GROUP_3_PRESSAndHOLD As Byte() = New Byte() {&HBA, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_NIGHT_SAVER_MODE_GROUP_4 As Byte() = New Byte() {&H36, &H0, &H55} '100ms followed by: 0xB6
    Friend LimitlessLED_Command_WHITE_NIGHT_SAVER_MODE_GROUP_4_PRESSAndHOLD As Byte() = New Byte() {&HB6, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_ALL As Byte() = New Byte() {&H35, &H0, &H55} '100ms followed by: 0xB5
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_ALL_PRESSAndHOLD As Byte() = New Byte() {&HB5, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_GROUP_1 As Byte() = New Byte() {&H38, &H0, &H55} '100ms followed by: 0xB8
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_GROUP_1_PRESSAndHOLD As Byte() = New Byte() {&HB8, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_GROUP_2 As Byte() = New Byte() {&H3D, &H0, &H55} '100ms followed by: 0xBD
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_GROUP_2_PRESSAndHOLD As Byte() = New Byte() {&HBD, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_GROUP_3 As Byte() = New Byte() {&H37, &H0, &H55} '100ms followed by: 0xB7
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_GROUP_3_PRESSAndHOLD As Byte() = New Byte() {&HB7, &H0, &H55}
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_GROUP_4 As Byte() = New Byte() {&H32, &H0, &H55} '100ms followed by: 0xB2
    Friend LimitlessLED_Command_WHITE_FULL_BRIGHTNESS_GROUP_4_PRESSAndHOLD As Byte() = New Byte() {&HB2, &H0, &H55}

    Friend LimitlessLED_Command_RGB_ALLOFF As Byte() = New Byte() {&H21, &H0, &H55}
    Friend LimitlessLED_Command_RGB_ALLON As Byte() = New Byte() {&H22, &H0, &H55}
    Friend LimitlessLED_Command_RGB_BRIGHTNESS_UP As Byte() = New Byte() {&H23, &H0, &H55}
    Friend LimitlessLED_Command_RGB_BRIGHTNESS_DOWN As Byte() = New Byte() {&H24, &H0, &H55}
    Friend LimitlessLED_Command_RGB_DISCO_SPEED_FASTER As Byte() = New Byte() {&H25, &H0, &H55}
    Friend LimitlessLED_Command_RGB_DISCO_SPEED_SLOWER As Byte() = New Byte() {&H26, &H0, &H55}
    Friend LimitlessLED_Command_RGB_DISCO_MODE_NEXT As Byte() = New Byte() {&H27, &H0, &H55}
    Friend LimitlessLED_Command_RGB_DISCO_MODE_PREVIOUS As Byte() = New Byte() {&H28, &H0, &H55}
    Friend LimitlessLED_Command_RGB_SET_COLOR As Byte() = New Byte() {&H20, &H0, &H55}

    Friend LimitlessLED_Command_RGBW_ALLOFF As Byte() = New Byte() {&H41, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_ALLON As Byte() = New Byte() {&H42, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_DISCO_SPEED_SLOWER As Byte() = New Byte() {&H43, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_DISCO_SPEED_FASTER As Byte() = New Byte() {&H44, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_GROUP_1_ALL_ON As Byte() = New Byte() {&H45, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_GROUP_1_ALL_OFF As Byte() = New Byte() {&H46, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_GROUP_2_ALL_ON As Byte() = New Byte() {&H47, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_GROUP_2_ALL_OFF As Byte() = New Byte() {&H48, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_GROUP_3_ALL_ON As Byte() = New Byte() {&H49, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_GROUP_3_ALL_OFF As Byte() = New Byte() {&H4A, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_GROUP_4_ALL_ON As Byte() = New Byte() {&H4B, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_GROUP_4_ALL_OFF As Byte() = New Byte() {&H4C, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_DISCO_MODE_NEXT As Byte() = New Byte() {&H4D, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_WHITE_ALL As Byte() = New Byte() {&H42, &H0, &H55} '100ms followed by: 0xC2
    Friend LimitlessLED_Command_RGBW_WHITE_ALL_PRESSAndHOLD As Byte() = New Byte() {&HC2, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_WHITE_GROUP_1 As Byte() = New Byte() {&H45, &H0, &H55} '100ms followed by: 0xC5
    Friend LimitlessLED_Command_RGBW_WHITE_GROUP_1_PRESSAndHOLD As Byte() = New Byte() {&HC5, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_WHITE_GROUP_2 As Byte() = New Byte() {&H47, &H0, &H55} '100ms followed by: 0xC7
    Friend LimitlessLED_Command_RGBW_WHITE_GROUP_2_PRESSAndHOLD As Byte() = New Byte() {&HC7, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_WHITE_GROUP_3 As Byte() = New Byte() {&H49, &H0, &H55} '100ms followed by: 0xC9
    Friend LimitlessLED_Command_RGBW_WHITE_GROUP_3_PRESSAndHOLD As Byte() = New Byte() {&HC9, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_WHITE_GROUP_4 As Byte() = New Byte() {&H4B, &H0, &H55} '100ms followed by: 0xCB
    Friend LimitlessLED_Command_RGBW_WHITE_GROUP_4_PRESSAndHOLD As Byte() = New Byte() {&HCB, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_SET_BRIGHTNESS As Byte() = New Byte() {&H4E, &H0, &H55}
    Friend LimitlessLED_Command_RGBW_SET_COLOR As Byte() = New Byte() {&H40, &H0, &H55}

    Friend RGBW_Violet As Integer = &H0
    Friend RGBW_RoyalBlue As Integer = &H10
    Friend RGBW_LightSkyBlue As Integer = &H20
    Friend RGBW_Aqua As Integer = &H30
    Friend RGBW_AquaMarine As Integer = &H40
    Friend RGBW_SeaGreen As Integer = &H50
    Friend RGBW_Green As Integer = &H60
    Friend RGBW_LimeGreen As Integer = &H70
    Friend RGBW_Yellow As Integer = &H80
    Friend RGBW_Goldenrod As Integer = &H90
    Friend RGBW_Orange As Integer = &HA0
    Friend RGBW_Red As Integer = &HB0
    Friend RGBW_Pink As Integer = &HC0
    Friend RGBW_Fuchsia As Integer = &HD0
    Friend RGBW_Orchid As Integer = &HE0
    Friend RGBW_Lavender As Integer = &HF0
*/ 


Далее в объекте MiLamp1 установил данные лампочки, предварительно с помощью приложения привязанной к зоне 1 WiFi-контроллера:
Изображение

Собственно, практически всё. Напоследок добавил пункт в меню для управления:
Изображение

Который успешно заработал в интерфейсе:
Изображение

Работает очень быстро и достаточно надёжно. Расстояние не замерял, но при нахождении контроллера и лампочек в одной комнате, всё работает отлично и без сбоев. С пультом уходил довольно далеко (около 10 метров + 1 кирпичная стена) и всё ещё работало без сбоев.

Предварительные выводы: вполне себе недорогая и достаточно удобная в монтаже система для управления светом. Явный минус -- отсутствие простого способа управления через стандартный выключатель.

Спасибо за внимание :)

_________________

Сергей Джейгало, разработчик MajorDoMo
Обо мне | Сотрудничество | Профиль Connect


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Пн дек 15, 2014 5:43 pm 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 3666
Откуда: Минск, Беларусь
Благодарил (а): 58 раз.
Поблагодарили: 838 раз.
Обновил класс MiLight, выкладываю файлом для импорта.

* Поддерживаются 4-ре независимые зоны
* Работает как с "белыми" лампами, так и с RGBW
* Методы класса: включение (turnOn), выключение (turnOff), установка яркости (setLevel), установка цвета (setColor)


Вложения:
MiLight.zip [5.35 КБ]
Скачиваний: 303

_________________

Сергей Джейгало, разработчик MajorDoMo
Обо мне | Сотрудничество | Профиль Connect
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Вт янв 27, 2015 6:05 pm 
Не в сети

Зарегистрирован: Сб авг 18, 2012 10:21 am
Сообщения: 507
Благодарил (а): 17 раз.
Поблагодарили: 106 раз.
sergejey писал(а):
Обновил класс MiLight

Сергей, вроде со всем разобрался кроме того как реализовать выбор цвета в меню.
Подскажите. Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Сб янв 31, 2015 10:27 am 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 3666
Откуда: Минск, Беларусь
Благодарил (а): 58 раз.
Поблагодарили: 838 раз.
Я немного подправил код для метода setColor класса MiLight:
Код:
$this->setProperty('status',1);
$this->setProperty('Mode','C');
if (
$params['color']) {
 
$this->setProperty('Color',$params['color']);
} else {
 
$params['color']=$this->getProperty('Color');
}
$this->callMethod('sendCommand',array('command'=>'color','value'=>$params['color'])); 


Теперь можно чере то же поле выбора устанавливать значение свойства Color , а затем поставить вызов метода setColor, чтобы он установился.
Да, и цвет должен быть всё же формата #0f26d0 , т.е. с "#" в начале. Хотя, честно говоря, можно попробовать и без.

_________________

Сергей Джейгало, разработчик MajorDoMo
Обо мне | Сотрудничество | Профиль Connect


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Сб янв 31, 2015 12:05 pm 
Не в сети

Зарегистрирован: Сб авг 18, 2012 10:21 am
Сообщения: 507
Благодарил (а): 17 раз.
Поблагодарили: 106 раз.
sergejey писал(а):
Я немного подправил код для метода setColor класса MiLight
Да, и цвет должен быть всё же формата #0f26d0 , т.е. с "#" в начале. Хотя, честно говоря, можно попробовать и без.

Спасибо. Все работает и без #.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Вт фев 03, 2015 9:27 pm 
Не в сети

Зарегистрирован: Чт фев 21, 2013 11:35 pm
Сообщения: 82
Благодарил (а): 4 раз.
Поблагодарили: 2 раз.
Тоже приобрёл себе комплект mi-light http://www.aliexpress.com/store/product/WiFi-led-controller-hub-RGBW-RF-remote-4pcs-group-control-2-4G-Wireless-Controller-for-rgbw/606957_2052543463.html ,подключил ленту rgbw с белым светом разобралсья как включать,покажите пример как реализовать управление цветом,было бы хорошо наглядным примером.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Вт фев 17, 2015 8:47 pm 
Не в сети

Зарегистрирован: Вт фев 17, 2015 8:40 pm
Сообщения: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте Единомышленники!
Я как понял контроллер RGB лент МиЛайт не работает без wifi контроллера?
Если так то для каждой группы ламп необходимо лампы милайт + wifi контроллер если сих лампами или контроллер rgb milight и wifi контроллер
если так то как wifi контоллер подключается к мажердомо???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Вт фев 17, 2015 9:38 pm 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 3666
Откуда: Минск, Беларусь
Благодарил (а): 58 раз.
Поблагодарили: 838 раз.
timurufa86 писал(а):
Здравствуйте Единомышленники!
Я как понял контроллер RGB лент МиЛайт не работает без wifi контроллера?
Если так то для каждой группы ламп необходимо лампы милайт + wifi контроллер если сих лампами или контроллер rgb milight и wifi контроллер


Да, именно так. Один контроллер на четыре группы ламп.

timurufa86 писал(а):
если так то как wifi контоллер подключается к мажердомо???


Нужно знать IP-адрес контроллера в wifi сети и обращаться к нему используя функции, обсуждаемые в этом топике.

_________________

Сергей Джейгало, разработчик MajorDoMo
Обо мне | Сотрудничество | Профиль Connect


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Вт ноя 03, 2015 9:27 am 
Не в сети

Зарегистрирован: Пн ноя 02, 2015 12:22 pm
Сообщения: 3
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Всем привет!
Хотел заставить MiLight работать как искусственный рассвет (очень актуально осенью-зимой). НО возникла проблема:
если в одном сценарии использовать вызов метода для лампочки несколько раз, после первого раза вылетает ошибка, что невозможно пере-объявить класс
(Fatal error: Cannot redeclare class Milight in C:\_majordomo\htdocs\modules\objects\objects.class.php(536) : eval()'d code on line 133)
То есть, первый вызов срабатывает, а на втором уже вываливается ошибка. Грешу на sendCommand, т.к. для всех команд используется он, и в нём прописано $milight = new Milight($host);
То есть, как я понял, это, создание нового экземпляра класса. Есть ли смысл внедрить рассвет в метод sendCommand или может, есть способ убивать этот экземпляр перед выполнением следующей итерации?

На всякий случай, мой крайний вариант кода (их было уже много).
Код:
// Каждые 5 секунд увеличиваем яркость с шагом 10 процентов до 50%
for ($i = 1; $i <= 5; $i++) 
{
     $name='MiLamp2';
     $obj=getObject($name);
     
    $obj
->setProperty('Level',$i*10);
    $obj->callMethod('sendCommand',array('command'=>'level','value'=>$i*10));
    sleep(5);
}
 


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Освещение Mi-Light (MiLight)
СообщениеДобавлено: Вт ноя 03, 2015 10:38 am 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 3666
Откуда: Минск, Беларусь
Благодарил (а): 58 раз.
Поблагодарили: 838 раз.
Rostov-na-Donu писал(а):
Всем привет!
Хотел заставить MiLight работать как искусственный рассвет (очень актуально осенью-зимой). НО возникла проблема:
если в одном сценарии использовать вызов метода для лампочки несколько раз, после первого раза вылетает ошибка, что невозможно пере-объявить класс
(Fatal error: Cannot redeclare class Milight in C:\_majordomo\htdocs\modules\objects\objects.class.php(536) : eval()'d code on line 133)
То есть, первый вызов срабатывает, а на втором уже вываливается ошибка. Грешу на sendCommand, т.к. для всех команд используется он, и в нём прописано $milight = new Milight($host);
То есть, как я понял, это, создание нового экземпляра класса. Есть ли смысл внедрить рассвет в метод sendCommand или может, есть способ убивать этот экземпляр перед выполнением следующей итерации?



Я немного переделал sendCommand, создав файл ./lib/hardware/milight.php следующего содержания: http://c2n.me/3pLnKyT.php

и сам метод sendcommand переделал:
[Показать] Скрытый текст: sendcommand
Код:
$this->setProperty('updated',time());
$this->setProperty('updatedTime',date('H:i'));

include_once(
ROOT.'lib/hardware/milight.php');

if (is_array($params)) {
 $command=$params['command'];
 $value=$params['value'];
}
 else {
 $command=$params;
}

$host=$this->getProperty('Host');
$type=(int)$this->getProperty('LampType');
$zone=(int)$this->getProperty('Zone');


$milight = new Milight($host);

$commands='';

if ($type==0) {
 $milight->setWhiteActiveGroup($zone);
 if ($command=='leveldown') {
  $milight->command('whiteBrightnessDown');
 }
 if ($command=='levelup') {
  $milight->command('whiteBrightnessUp');
 }
 if ($command=='level' && $value>=90) {
  $command='levelmax';
 } 
  if 
($command=='level' && $value<=90) {
  $command='levelmin';
 } 
 if 
($command=='levelmax') {
  $milight->command('whiteGroup'.$zone.'BrightnessMax');
 } 
if 
($command=='levelmin') {
  $milight->command('whiteGroup'.$zone.'BrightnessMin');
 }  
 if 
($command=='nightmode') {
  $milight->command('whiteGroup'.$zone.'NightMode');
 }  

 if 
($zone==1) {
  if ($command=='on') {
   $milight->whiteGroup1On();
  }
  if ($command=='off') {
   $milight->whiteGroup1Off(); 
  
}
 }
 if ($zone==2) {
  if ($command=='on') {
   $milight->whiteGroup2On();
  }
  if ($command=='off') {
   $milight->whiteGroup2Off(); 
  
}
 } 
 if 
($zone==3) {
  if ($command=='on') {
   $milight->whiteGroup3On();
  }
  if ($command=='off') {
   $milight->whiteGroup3Off(); 
  
}
 } 
 if 
($zone==4) {
  if ($command=='on') {
   $milight->whiteGroup4On();
  }
  if ($command=='off') {
   $milight->whiteGroup4Off(); 
  
}
 } 

}

if ($type==1) {
 if ($command=='disco') {
   $milight->setRgbwActiveGroup($zone);  
   $milight
->rgbwSendOnToActiveGroup();
   $milight->command('rgbwDiscoMode');
 }
 if ($command=='discofaster') {
   $milight->setRgbwActiveGroup($zone);  
   $milight
->rgbwSendOnToActiveGroup();
   $milight->command('rgbwDiscoFaster');
 } 
 if 
($command=='discoslower') {
   $milight->setRgbwActiveGroup($zone);  
   $milight
->rgbwSendOnToActiveGroup();
   $milight->command('rgbwDiscoSlower');
 } 
 
 if 
($command=='level') {
  $milight->setRgbwActiveGroup($zone);
  $milight->rgbwBrightnessPercent($value);
 }
 if ($command=='color') {
  $milight->setRgbwActiveGroup($zone);
  $milight->rgbwSetColorHexString($value);
 } 
 
 if 
($zone==1) {
  if ($command=='on') {
   $milight->rgbwGroup1On();
  }
  if ($command=='off') {
   $milight->rgbwGroup1Off();
  }
  if ($command=='white') {
   $milight->rgbwGroup1SetToWhite();
  }  
 
}
 if ($zone==2) {
  if ($command=='on') {
   $milight->rgbwGroup2On();
  }
  if ($command=='off') {
   $milight->rgbwGroup2Off();
  }
  if ($command=='white') {
   $milight->rgbwGroup2SetToWhite();
  }    
 
}
 if ($zone==3) {
  if ($command=='on') {
   $milight->rgbwGroup3On();
  }
  if ($command=='off') {
   $milight->rgbwGroup3Off();
  }
  if ($command=='white') {
   $milight->rgbwGroup3SetToWhite();
  }    
 
} 
 if 
($zone==4) {
  if ($command=='on') {
   $milight->rgbwGroup4On();
  }
  if ($command=='off') {
   $milight->rgbwGroup4Off();
  }
  if ($command=='white') {
   $milight->rgbwGroup4SetToWhite();
  }    
 
}  
}
sleep(1); 

_________________

Сергей Джейгало, разработчик MajorDoMo
Обо мне | Сотрудничество | Профиль Connect


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 47 ]  На страницу 1, 2, 3, 4, 5  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB