getControl().setDescription()

Попытался переименовать “К2” в “Вытяжка”:

getControl("wb-mr6c_73/K2").setDescription("Вытяжка");

В логе получаю:

17-08-2025 16:19:00.012 [wb-rules]	ERROR: control wb-mr6c_73/K2 SetMeta(description=Вытяжка) error: This control is external

Это ожидаемое поведение?
Есть способ переименовать имя канала? MQTT топик можно оставить прежним. Просто в “устройстве” переименовать? Только визуальное отображение. А то начинаю путаться где что.
p.s. setTitle то же самое

Добрый день!

Не совсем понимаю, что именно вы делаете. Прошу описать подробнее, какие действия выполняете и какой результат ожидаете.

Если я верно понимаю задачу, то в виджете это настраивается следующим образом:


Я это хотел не в виджетах и дашбоардах, а в “Устройствах”. Не плодя виртуальные. Переименовать каналы не меняя их топики для наглядности.

Добрый день.

Это работает только для созданных из wb-rules виртуальных устройств.
Если isVirtual() возвращает ложь, то есть устройсчтво создано другим серввисом - то и установить его свойства не выйдет.

Я так и понял. Т.е. это ожидаемое поведение. Спасибо.

1 лайк

Ну, уже давно витает (и даже было описано несколько раз) про переделать конвенцию mqtt. То есть сделать дополнительное свойство по которому строить “логическое” дерево устройств.
Сейчас дерево всего двухуровновое “устройство/контрол” и соответстует “физическому” подключению.
А в идеале - чтобы можно было привязать сам контрол, произвольный, из устройства к другой гибкой иерархии.
Как пример - это “пространства” HA. То есть взять K1 из одного реле и укказать его как “дом1/кухня/свет основной”
Взять канал из диммера и - “дом1/кухня/свет контур” например.

Но оно постоянно откладывается к сожалению, сильно объемная разработка.

Ну как “костыль” можно разрешить менять meta title. Даже в таком виде в правилах можно сгенерировать руками таблицу соответствий контрола и его отображаемого имени.
В идеале то конечно в интерфейсе, в настройке устройства.
Но согласен, не архиважная задача.

1 лайк