Между реальными и виртуальными устройствами, можно настраивать связи, которые будут управлять или виртуальным устройством из реального, или наоборот из реального виртуальным.
Обычно подобные связи, используются для объединения нескольких реальных лампочек в одно виртуальное устройство.
На примере виртуальной лампочки, которую можно создать аналогично выключателю из этой инструкции, мы объединим несколько реальных лампочек в одну виртуальную.
В настройках виртуальной лампочки заходим в линки характеристики Включен
![](/images/a/ab/Virtual_010_%D0%BB%D0%B0%D0%BC%D0%BF%D0%BE%D1%87%D0%BA%D0%B0.png)
Нажимаем кнопку добавления связей
![](/images/5/5e/Virtual_011_%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5.png)
Выбираем нужное устройство
![](/images/6/66/Virtual_012_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2.png)
Выбираем соответствующую характеристику
![](/images/5/57/Virtual_013_%D0%B2%D1%8B%D0%B1%D0%BE%D1%80_%D1%85%D0%B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8.png)
Повторяем для остальных лампочек
![](/images/7/73/Virtual_014_%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE_%D1%83%D1%81%D1%82%D1%80%D0%BE%D0%B9%D1%81%D1%82%D0%B2.png)
и делаем то же самое для характеристики Яркость
![](/images/c/c0/Virtual_015_%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5_%D1%85%D0%B0%D1%80%D0%B0%D0%BA%D1%82%D0%B5%D1%80%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B8.png)
В итоге мы получаем одну виртуальную лампочку, которая управляет тремя реальными лампочками. При этом три реальных лампочки можно спокойно скрыть из интерфейса и показывать в веб-интерфейсе и в мостах только виртуальную лампочку
Способы обработки связей
Есть несколько вариантов обработки связей между устройствами
![](/images/4/46/%D0%9B%D0%B8%D0%BD%D0%BA%D0%B8_001_%D0%A1%D0%BF%D0%BE%D1%81%D0%BE%D0%B1_%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8_%D1%81%D0%B2%D1%8F%D0%B7%D0%B5%D0%B9.png)
Среднее значение - вычисляет среднее значение между всеми подключенными устройствами и присваивает его виртуальному
Минимальное значение - выбирает минимальное значение из всех связанных и присваивает его виртуальному
Максимальное значение - выбирает максимальное значение из всех связанных и присваивает его виртуальному
Последнее значение - лучше пояснить на примере. Возьмем три реальные лампочки и свяжем их в одну виртуальную. выключим все. При данном типе связей, если включить одну из реальных лампочек и установить ей яркость 10%, то включится только эта реальная лампочка на 10% и такое же значение примет виртуальная лампочка и сменит свою яркость на 10%. Остальные две реальные лампочки останутся выключенными. Это основной вариант связей для реальных и виртуальных лампочек.
Синхронизация - опять же лучше пояснить на примере трех реальных лампочек, связанных с одной виртуальной. При данном типе связей, если вы включите одну из реальных лампочек и установите ей яркость 10%, то все остальные реальные и виртуальная лампочка, постараются включиться и выставить яркость 10%. Но ввиду того, что реальные лампочки обладают обратной связью, если они в процессе изменения яркости, будут отдавать хабу свое текущее состояние, оно будет применяться для всех остальных лампочек, как реальных, так и виртуальной. В итоге мы получим непредсказуемый результат, так как все лампочки будут стремиться синхронизировать свое состояние. Именно поэтому, подобный тип связей - для устройств с обратной связью не подходит, если их больше одного.