Чиним автоматизацию HomeKit в iOS15 / tvOS 15 когда не работает условие Если (if)

Последняя версия iOS 15 и tvOS 15 (на момент написания этого поста) поломала использование условных выражений (if-операторов условия "Если") в автоматизациях HomeKit при помощи Быстрых команд (shortcuts), при использовании трех разных сценариев:

- Уровень яркости света

- % открытия штор или окна

- Уровень освещенности, измеренный датчиком освещенности

- Состояние контактного датчика (датчик двери или окна)

Если вы используете уровень яркости света, значение люкс/Освещенность датчика освещенности, % открытия штор/окон или состояние контактного датчика непосредственно в операторе if, тест сценария фактически сработает, когда вы запустите его, нажав кнопку воспроизведения в правом нижнем углу сценария автоматизации на iPhone или iPad.

Однако, когда автоматизация запускается по времени или условию, оператор if (Если) всегда будет иметь результат False (Ложь). Почему стало так - не понятно. Скорее всего баг.

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

Простой пример автоматизации через Быстрый команды, которая учитывает значение датчика освещенности.

Слева сценарий который уже не работает в iOS 15 /tvOS 15. Справа - исправленная версия:

Чиним автоматизацию HomeKit в iOS15 / tvOS 15 когда не работает условие Если (if) Homekit, Шорткат, Умный дом, Автоматизация, Баг

Т.е. мы должны использовать функцию «Получить числа из входных данных», где «Освещенность» датчика света является входными данными. Т.е. в данном случае, мы используем волшебную переменную в операторе Если, указывающем на это число.


С помощью этого метода все ваши автоматизации, которые поломались при обновлении на iOS 15 / tvOS 15 будут работать как и прежде.

Умный дом

134 поста2.2K подписчиков

Добавить пост