Есть проблема, захотел подружить Алису и 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” строку с десятичными значениями.
Решение по преобразованию - тут: