Связи между виртуальными и реальными устройствами (Линки)

Материал из Sprut.hub Wiki

Между реальными и виртуальными устройствами, можно настраивать связи, которые будут управлять:

  • из виртуального устройства - реальным (для виртуального тип связи "входящая", для реального "исходящая")
  • из реального устройства - виртуальным (для реального тип связи "входящая", для виртуального "исходящая")

Обычно подобные связи, используются для объединения нескольких реальных лампочек в одно виртуальное устройство.

На примере виртуальной лампочки, которую можно создать аналогично выключателю из этой инструкции, мы объединим несколько реальных лампочек в одну виртуальную.

В настройках виртуальной лампочки заходим в линки характеристики Включен

Нажимаем кнопку добавления связей

Выбираем нужное устройство

Выбираем соответствующую характеристику

Повторяем для остальных лампочек

и делаем то же самое для характеристики Яркость

В итоге мы получаем одну виртуальную лампочку, которая управляет тремя реальными лампочками. При этом три реальных лампочки можно спокойно скрыть из интерфейса и показывать в веб-интерфейсе и в мостах только виртуальную лампочку

Способы обработки связей

Есть несколько вариантов обработки связей между устройствами

Среднее значение - вычисляет среднее значение между всеми подключенными устройствами и присваивает его виртуальному

Минимальное значение - выбирает минимальное значение из всех связанных и присваивает его виртуальному

Максимальное значение - выбирает максимальное значение из всех связанных и присваивает его виртуальному

Последнее значение - лучше пояснить на примере. Возьмем три реальные лампочки и свяжем их в одну виртуальную. выключим все. При данном типе связей, если включить одну из реальных лампочек и установить ей яркость 10%, то включится только эта реальная лампочка на 10% и такое же значение примет виртуальная лампочка и сменит свою яркость на 10%. Остальные две реальные лампочки останутся выключенными. Это основной вариант связей для реальных и виртуальных лампочек.


Синхронизация - опять же лучше пояснить на примере трех реальных лампочек, связанных с одной виртуальной. При данном типе связей, если вы включите одну из реальных лампочек и установите ей яркость 10%, то все остальные реальные и виртуальная лампочка, постараются включиться и выставить яркость 10%. Но ввиду того, что реальные лампочки обладают обратной связью, если они в процессе изменения яркости, будут отдавать хабу свое текущее состояние, оно будет применяться для всех остальных лампочек, как реальных, так и виртуальной. В итоге мы получим непредсказуемый результат, так как все лампочки будут стремиться синхронизировать свое состояние. Именно поэтому, подобный тип связей - для устройств с обратной связью не подходит, если их больше одного.