translator, wb_editors
4251
правка
Matveevrj (обсуждение | вклад) |
Matveevrj (обсуждение | вклад) |
||
Строка 48: | Строка 48: | ||
</gallery> | </gallery> | ||
== Управление цветом RGB ленты с помощью MQTT Dash == | |||
[[Image: MQTTDash_panel1.jpg |170px|thumb|right| Настройка метрики типа '''Цвет''' ]] | |||
Для управления цветом RGB ленты в MQTT Dash есть специальная метрика '''Цвет'''. Но чтобы использовать эту метрику с Wiren Board нужно преобразовать код цвета полученный из MQTT Dash из формата HEX в формат RGB. | |||
Для этого можно воспользоваться следующим правилом (скриптом): | |||
<syntaxhighlight lang="ecmascript"> | |||
defineVirtualDevice("colorButton", | |||
{ | |||
title: "Color Buttons", //Имя виртуального устройства | |||
cells: { | |||
"Dimmer 1": { | |||
type: "text", | |||
readonly: false, | |||
//forceDefault: true, | |||
value: "", | |||
}, | |||
} | |||
}); | |||
defineRule("color_convert", { | |||
whenChanged: "colorButton/Dimmer 1", | |||
then: function (newValue){ | |||
if(newValue.substring(0,1) == "#") { | |||
newValue = newValue.substring(1); | |||
} | |||
r = parseInt("0x"+newValue.slice(0, 2)); | |||
g = parseInt("0x"+newValue.slice(2, 4)); | |||
b = parseInt("0x"+newValue.slice(4, 6)); | |||
log.info("R;G;B",r+";"+g+";"+b) | |||
dev["wb-mrgbw-d-fw3_129"]["RGB Palette"] = r+";"+g+";"+b // R;G;B, строка передаваемая в топик диммера LED-лент | |||
} | |||
}); | |||
</syntaxhighlight> | |||
Скрипт создает новый MQTT-топик, который получает HEX-код цвета из MQTT Dash. Затем этот код преобразуется в формат RGB и записывается в соответствующий топик диммера RGB-ленты. | |||
== Полезные ссылки == | == Полезные ссылки == | ||
*[[MQTT | MQTT в Wiren Board]] | *[[MQTT | MQTT в Wiren Board]] |