Передача параметров RGB с Яндекса

Есть проблема, захотел подружить Алису и WIrenboard. Все получилось через плагин yandex2mqtt.
Кроме одного, не понимаю как передать параметры RGB устройству WB-RGB. Вот пример, помогите
/devices/light_RGB/controls/РЕЛЕ1 - включение БП ленты
/devices/light_RGB/controls/WB-RGB - управление RGB
{
name: ‘Подсветка тест’,
room: ‘Гостиная’,
type: ‘devices.types.light’,
mqtt: [
{
type: ‘on’,
set: ‘/devices/light_RGB/controls/РЕЛЕ1/on’,
stat: ‘/devices/light_RGB/controls/РЕЛЕ1’
},
{
type: ‘rgb’,
set: ‘/devices/light_RGB/controls/WB-RGB/on’,
stat: ‘/devices/light_RGB/controls/WB-RGB’
},
],
capabilities: [
{
type: ‘devices.capabilities.on_off’,
retrievable: true,
state: {
instance: ‘on’,
value: true
}
},
{
type: ‘devices.capabilities.color_setting’,
retrievable: true,
parameters: {
color_model: ‘rgb’,
},
state: {
instance: ‘rgb’,
value: 0
},
},
]
},

Яндекс работает с двумя параметрами управления цвета.


Какой мне использовать?( hsv или rgb)

Возможно кто то сталкивался помогите пожалуйста.

Подпишитесь на топик - и посмотрите, что происходит от яндекса

mosquitto_sub -v -t "/devices/light_RGB/controls/WB-RGB/#"

Вот, что пришло с Яндекса

root@wirenboard-AYKBQYRG:~# mosquitto_sub -v -t “/devices/wb-mrgb_110/controls/RGB/#”
/devices/wb-mrgb_110/controls/RGB/meta/type rgb
/devices/wb-mrgb_110/controls/RGB/meta/order 1
/devices/wb-mrgb_110/controls/RGB/meta/readonly 0
/devices/wb-mrgb_110/controls/RGB 0;0;0
/devices/wb-mrgb_110/controls/RGB/on 710399
/devices/wb-mrgb_110/controls/RGB 710399
/devices/wb-mrgb_110/controls/RGB/on 710399
/devices/wb-mrgb_110/controls/RGB 710399

А это другой цвет

/devices/wb-mrgb_110/controls/RGB/on 13303562
/devices/wb-mrgb_110/controls/RGB 13303562
/devices/wb-mrgb_110/controls/RGB/on 13303562
/devices/wb-mrgb_110/controls/RGB 13303562

Логично. То есть яндекса - приходит число.
А контроллер - ожидает строку R;G;B где
То есть надо:

  • Сделать правило, в котором: виртуальное устройство, в контрол которого записывать из яндекса. И само правило, которое преобразует прислонное число в цвета.
    Подозреваю что присылается 0xRrGgBb
    То есть 13303562 == 0xCAFF0A, надо для диммера передать как 202;255;10
  • Для проверки в яндексе сделайте только красный, потом только зеленый и потом - только синий. Если соответственно придет 16711680, 65280, 255 - то так и есть.

UPD: поправил, диммер ждет в топике “on” строку с десятичными значениями.

1 лайк

Решение по преобразованию - тут: