Так как Homekit поддерживает показ уведомлений с камеры только если в комнате с этой камерой присутствует датчик движения, а хотелось бы увидеть картинку с камеры в момент сработки датчика движения решил обойти этот недостаток простым созданием виртуального датчика движения и привязки его к реальному датчику дыма. Сделал это я в IoBroker, но по аналогии думаю можно будет сделать в любой другой системе, где можно создавать виртуальные объекты и писать элементарные правила реагирования этих объектов.
Шаг 1. Создать виртуальный объект.
Чем мне нравится IoBroker (дальше по тексту ИОБ), так это тем, что можно создать любой объект как вручную, так и с помощью скрипта. Мне как-то больше зашел способ ручного добавления. Поэтому тупо создаем объект с параметрами тип - "Состояние", State type - "Строка", жмем ДОБАВИТЬ. После создания объекта попадаем в настройки этого объекта, тут можно нажать ОТМЕНА.
Шаг 2. Привязываем данный датчик к датчику дыма.
Теперь, когда у нас есть виртуальный объект, нужно привязать его к реальному. В ИОБ это делается с помощью элементарного скрипта, на blockly. Идем в Скрипты, жмем "+", выбираем Blockly. Составляем логику, при которой виртуальный объект будет реагировать на реальный. В блокли это выглядит так:
Smoke Detected - значение у реального датчика, которое возвращает true при обнаружении дыма.
Smok_kitchen - созданный нами виртуальный объект.
Для любителей JavaScript:
on(, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("ham.0.Smoke-Sensor.Smoke-Sensor.Smoke-Detected").val) { setState("mqtt.0.homebridge.virtual.Smok_kitchen"/*Smok_kitchen*/, 1); } else { setState("mqtt.0.homebridge.virtual.Smok_kitchen"/*Smok_kitchen*/, 0); }});
Шаг 3. Делаем из виртуального объекта реальный датчик движения.
Теперь нужно что бы этот виртуальный объект стал для HomeKit реальным датчиком движения. Для этого воспользуемся отличным драйвером Yahka. В драйвере жмем добавить устройство, называем его "Датчик дыма" (или как вам больше нравится), выбираем категорию Sensor. Далее добавить сервис, тип обслуживания: MotionSensor. Ставим галочку в поле MotionDetected в 1: InOut Функция ставим IoBroker.State в 1: InOut Параметры указываем созданный нами ранее виртуальный объект. Все! Нажимаем СОХРАНИТЬ И ВЫЙТИ
Теперь просто открываем программу Дом идем в "Комнату по умолчанию" находим там наш "Датчик дыма" и перемещаем его в ту комнату, где у вас есть камера и датчик дыма. Не забываем в настройках "датчика" включить допуск уведомлений. Теперь если сработает датчик дыма то на Iphone прилетит уведомление с картинкой с камеры. И можно быстро понять, готовят вам что-то вкусненькое, и можно не беспокоиться, или пора бежать и выключать забытую на плите сковородку.