pru469 писал(а): ↑Сб ноя 07, 2020 5:38 am
Напиши пожалуйста.
Заходим в Устройства, mqtt. Нажимаем "+Добавить". Пишем название, например "Ночник SLS-шлюза". Указываем местоположение. В поле "Путь" указываем ваш_топик_SLS_шлюза/led (у меня zigbeeSLS/led). Нажимаем Устройство - Добавить. В открывшемся окне пишем название, можно такое же, "Тип" выбираем - Освещение (RGB), снова выбираем местоположение и жмем "Добавить". В открывшимся окне делаем настройки по желанию и нажимаем сохранить.
Далее идем в Объекты, в классе SDevices в подклассе SRGB находим наш объект "Ночник SLS-шлюза", заходим в него. Во вкладке "Свойства" создаем новое свойство, я его назвал "JSON", но можно как угодно называть, главное без знаков препинания.
Идем снова в mqtt, находим на наш топик (у меня zigbeeSLS/led), он будет уже с названием, которое вы ему присвоили в начале. Заходим, и привязываем топик к созданному объекту "Ночник SLS-шлюза", и его свойству "JSON", нажимаем сохранить, и еще раз сохранить.
Идем в Панель управления>Объекты>Меню управления. Жмем "+Добавить новый раздел". В открывшемся окне пишем название (у меня "Цвет ночника SLS-шлюза"), в поле "Тип" выбираем "Выбор цвета", нажимаем сохранить, появляются новые поля выбора. В "Связанный объект:" выбираем наш "Ночник SLS-шлюза", в поле "Свойство:" выбираем "color - Current color". Нажимаем "Сохранить"
Вверху нажимаем "Начало", снова жмем "+Добавить новый раздел", пишем название (я назвал "Ночник SLS-шлюза"), в поле "Тип" выбираем "Выключатель", нажимаем сохранить, появляются новые поля выбора. В "Связанный объект:" выбираем наш "Ночник SLS-шлюза", в поле "Свойство:" выбираем "status - Статус". Нажимаем "Сохранить". Позже вы их сможете перенести в другие пункты своего меню.
Идем в Панель управления>Объекты>Объекты>SDevices>SRGB, нажимаем на наш "Ночник SLS-шлюза", идем во вкладку "Методы". Нажимаем настроить метод "colorUpdated", галочку в двух местах "Код" и копируем тут и вставляем в поле кода следующий код:
$set;
$color;
$vcl;
$color = gg('mqttRgb03.color');
if (gg('mqttRgb03.status') == 0) {
$vcl = 'off';
} elseif (gg('mqttRgb03.status') == 1) {
$vcl = 'manual';
}
$set = <<<EOT
{"mode":"$vcl","hex":"$color"}
EOT;
setGlobal('mqttRgb03.JSON',$set);
Естественно mqttRgb03 меняете на свое название объекта, которое MajorDomo присвоил "Ночнику SLS-шлюза", оно написано над верхним словом "Код". После исправления копируете весь текст кода, нажимаете сохранить. Жмете сверху открытую вкладку "Методы", заходите в настройку метода "statusUpdated", и нажав 2 галки "Код", вставляете скопированный код в поле кода. Сохраняем.
Снова жмем открытую вкладку "Методы". Открываем настройку метода "turnOn", опять жмем "Код-Код", вставляем:
setGlobal('mqttRgb03.status',1);
Исправляем mqttRgb03 на свое название, сохраняем. Жмем вкладку "Методы", аналогично правим метод "turnOff", вставляем
setGlobal('mqttRgb03.status',0);
Исправляем название объекта, сохраняем.
Все, можете зайти в свое меню, поклацать цвет и выключатель. Настройки яркости тут не предусмотрено, поэтому яркость устанавливаем в поле выбора цвета путем установки точки пониже, в более темной зоне.
В дальнейшем, при написании сценария используем для включения либо методы "turnOn" и "turnOff", либо непосредственно меняем свойство объекта командой setGlobal('mqttRgb03.status',1) или 0. Оба способа работают.
Метода "switch" в подклассе SRGB нет, но если кому он понадобится, добавят его вручную. Мне не понадобился.