MI HOME: Выполнение сценария локально или через сервер Xiaomi

4 min read
В ряде случаев сценарии умного дома выполняются почти мгновенно, даже при отсутствии Интернета, а в других случаях - с заметной задержкой. От чего это зависит?

Когда сценарий умного дома в Mi Home выполняется локально, а когда через "облако"?

Возможно, вы обращали внимание, что некоторые сценарии в вашем умном доме всегда отрабатывают быстро и четко, а другие - с секундной и более задержкой, а иногда и вовсе не отрабатывают. В чём же дело? От чего это зависит? Давайте откроем на редактирование один из сценариев в приложении Mi Home, и нажмём на многоточие в правом верхнем углу (для сценариев 1.0):

Режим выполнения сценария

Мы увидим неизменяемую настройку: Running mode: LAN или Running mode: Cloud (режим выполнения: локальная сеть или режим выполнения: облако):

Локальный режим выполнения

Сценарий выше выполняется в режиме "локальная сеть". Это означает, в данном конкретном случае: если датчик движения зафиксировал движение, он передаст сигнал шлюзу (Mi Home Gateway в данном случае), а шлюз через Bluetooth подаст сигнал включения лампочки номер 6 в прихожей. Это сработает практически мгновенно. И ничего не изменится, если у шлюза отсутствует соединение с Интернетом, сценарий точно так же будет работать.

Дополнение: Для новых сценариев ("Версия 2"), вы можете найти информацию о режиме работы, кликнув по кнопке "More" в нижней части сценария, заново открыв его после сохранения:

Режим LAN

На открывшемся экране вы увидите текущий режим работы ("Running mode" на английском):

Local operation mode

Как этот же сценарий будет работать в режиме Cloud?

  • Датчик движения передаст сигнал шлюзу.
  • Шлюз через Интернет передаст сигнал на сервер Xiaomi.
  • Сервер Xiaomi (в моём случае, находящийся в Китае), в соответствии со сценарием подаст команду на включение лампочки, и через Интернет отправит её шлюзу
  • Шлюз, приняв команду, по Bluetooth отправит её лампочке

Думаю, вы уже понимаете откуда в этом случае появится задержка выполнения, и почему такой сценарий не будет работать при отсутствии соединения с Интернетом

Значит, нужно все сценарии по возможности переключить в режим LAN (локальная сеть)! Хорошо, но как это сделать? Переключатель неактивен, т.е. приложение Mi Home само выбирает, когда включать LAN, а когда Cloud. Хуже того, вы можете сохранить сценарий, убедиться что выбрался режим LAN, а через несколько дней заметить, что сценарий "тормозит", заходите в приложение, а там LAN сменился на Cloud. Как же этим управлять?

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

  • В сценарии участвуют устройства, подключенные к разным шлюзам. Например, датчик движения подключен к шлюзу 1, а лампа - к шлюзу 2. В этом случае, следует просто изменить привязку устройств, сбросив одно из них, и добавив заново, указав другой шлюз (настройки сохранятся)

Иногда сценарии, в которых задействованы устройства, подключенные к разным шлюзам, продолжают работать в локальном режиме, иногда при следующем сохранении сценария переходят в режим Cloud. Zigbee устройства привязываются к тому шлюзу, к которому они были изначально присоединены, в то время как Bluetooth Mesh устройства могут самопроизвольно "дрейфовать" между шлюзами.

  • В сценарии используется WIFI-устройство. В современных версиях умного дома это уже не так критично, очень часто устройства, подключенные по wifi, могут управляться локальными сценариями. Тем не менее, WiFi сеть 2.4Ггц обычно и так перегружена, так что лучше использовать другие беспроводные протоколы. Кроме того, устройства, имеющие "на борту" полный стек для работы в Интернете, менее безопасны. Однажды, если пренебрегать безопасностью, вы можете обнаружить, что ваша wifi камера наблюдения занимается подбором паролей к какому-то сайту Wordpress (это из реальных случаев).

  • Сценарий включается или выключается из другого сценария. Это - самый коварный случай. Очень удобно, когда в зависимости от определенных условый можно запретить или разрешить выполнение другого сценария. Но, после первого же такого "внешнего управления" сценарий перейдёт в режим Cloud, даже если изначально он сохранился как LAN.

По мере возможностей, если не удаётся избежать выполнения сценария в режиме "Cloud", старайтесь дублировать его функционал в дополнительном сценарии, который сможет работать в режиме "LAN" (например, чтобы свет в помещении загорелся в любом случае, даже если в данный момент соединение с внешним сервером отсутствует или оно слишком медленное)

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


Комментарии:

Alex, 2023-03-12:
Спасибо. Не знал, что умный дом может работать даже без интернета