Типы устройств Яндекс Умного Дома Свет Тип Описание devices.types.light Лампочка, люстра, светильник, LED-лента Розетки и выключатели Тип Описание devices.types.socket Умная розетка devices.types.switch Умный выключатель Климат Тип Описание devices.types.thermostat Термостат, управление температурой devices.types.thermostat.ac Кондиционер devices.types.humidifier Увлажнитель воздуха devices.types.purifier Очиститель воздуха devices.types.fan Вентилятор Бытовая техника Тип Описание devices.types.vacuum_cleaner Робот-пылесос devices.types.washing_machine Стиральная машина devices.types.dishwasher Посудомоечная машина devices.types.iron Утюг devices.types.multicooker Мультиварка devices.types.kettle Чайник devices.types.coffee_maker Кофеварка Мультимедиа Тип Описание devices.types.media_device Медиаустройство (общее) devices.types.media_device.tv Телевизор devices.types.media_device.tv_box ТВ-приставка devices.types.media_device.receiver Ресивер Шторы и жалюзи Тип Описание devices.types.openable Открываемое устройство (общее) devices.types.openable.curtain Шторы, жалюзи Камеры и безопасность Тип Описание devices.types.camera Камера видеонаблюдения Датчики Тип Описание devices.types.sensor Датчик (температура, влажность, движение и т.д.) devices.types.sensor.motion Датчик движения devices.types.sensor.open Датчик открытия двери/окна devices.types.sensor.button Кнопка/пульт devices.types.sensor.vibration Датчик вибрации devices.types.sensor.smoke Датчик дыма devices.types.sensor.gas Датчик газа devices.types.sensor.water_leak Датчик протечки воды Прочее Тип Описание devices.types.pet_drinking_fountain Поилка для животных devices.types.pet_feeder Кормушка для животных devices.types.cooking.range Плита devices.types.cooking.oven Духовка devices.types.other Другое (если ничего не подходит) Самые полезные для DIY / Blynk Тип Для чего обычно используют devices.types.light Управление реле с лампой devices.types.socket Управление реле с розеткой devices.types.switch Просто вкл/выкл чего угодно devices.types.fan Вентиляция, вытяжка devices.types.thermostat Управление отоплением devices.types.sensor Показания датчиков (DHT22, DS18B20) devices.types.openable.curtain Серво/мотор для штор devices.types.other Всё что не подходит под остальное Самые частые capabilities Capability Что делает Пример on_off Вкл/выкл Свет, розетка range Диапазон значений Яркость, температура, громкость mode Выбор режима Скорость вентилятора, программа стирки toggle Переключатель Ионизация, подсветка, пауза color_setting Цвет / температура цвета Лампочка с RGB Самые частые properties (для датчиков) Property Что показывает float / temperature Температура float / humidity Влажность float / co2_level Уровень CO₂ float / power Потребляемая мощность float / voltage Напряжение float / amperage Ток float / battery_level Заряд батареи float / water_level Уровень воды event / motion Событие движения event / open Событие открытия event / smoke Событие дыма ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Примеры devices.json для разных типов Свет (с RGB) JSON { "id": "light_rgb_1", "name": "RGB Лента", "room": "Гостиная", "type": "devices.types.light", "action": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_rgb_onoff"}, {"type": "devices.capabilities.range", "option": "brightness", "myfun": "do_rgb_brightness"}, {"type": "devices.capabilities.color_setting", "option": "rgb", "myfun": "do_rgb_color"}, {"type": "devices.capabilities.color_setting", "option": "temperature_k", "myfun": "do_rgb_temp"} ], "query": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_rgb_onoff"}, {"type": "devices.capabilities.range", "option": "brightness", "myfun": "do_rgb_brightness"}, {"type": "devices.capabilities.color_setting", "option": "rgb", "myfun": "do_rgb_color"}, {"type": "devices.capabilities.color_setting", "option": "temperature_k", "myfun": "do_rgb_temp"} ] } Шторы JSON { "id": "curtain_1", "name": "Шторы", "room": "Спальня", "type": "devices.types.openable.curtain", "action": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_curtain_onoff"}, {"type": "devices.capabilities.range", "option": "open", "myfun": "do_curtain_position"} ], "query": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_curtain_onoff"}, {"type": "devices.capabilities.range", "option": "open", "myfun": "do_curtain_position"} ] } Телевизор JSON { "id": "tv_living", "name": "Телевизор", "room": "Гостиная", "type": "devices.types.media_device.tv", "action": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_tv_onoff"}, {"type": "devices.capabilities.range", "option": "volume", "myfun": "do_tv_volume"}, {"type": "devices.capabilities.range", "option": "channel", "myfun": "do_tv_channel"}, {"type": "devices.capabilities.toggle", "option": "mute", "myfun": "do_tv_mute"}, {"type": "devices.capabilities.toggle", "option": "pause", "myfun": "do_tv_pause"} ], "query": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_tv_onoff"}, {"type": "devices.capabilities.range", "option": "volume", "myfun": "do_tv_volume"}, {"type": "devices.capabilities.range", "option": "channel", "myfun": "do_tv_channel"}, {"type": "devices.capabilities.toggle", "option": "mute", "myfun": "do_tv_mute"}, {"type": "devices.capabilities.toggle", "option": "pause", "myfun": "do_tv_pause"} ] } Датчик JSON { "id": "sensor_room_1", "name": "Датчик в комнате", "room": "Спальня", "type": "devices.types.sensor", "action": [], "query": [ {"type": "devices.properties.float", "option": "temperature", "myfun": "do_sensor_room"}, {"type": "devices.properties.float", "option": "humidity", "myfun": "do_sensor_room"}, {"type": "devices.properties.float", "option": "battery_level", "myfun": "do_sensor_battery"} ] } Робот-пылесос JSON { "id": "vacuum_1", "name": "Пылесос", "room": "Коридор", "type": "devices.types.vacuum_cleaner", "action": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_vacuum_onoff"}, {"type": "devices.capabilities.mode", "option": "work_speed", "myfun": "do_vacuum_speed"}, {"type": "devices.capabilities.toggle", "option": "pause", "myfun": "do_vacuum_pause"} ], "query": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_vacuum_onoff"}, {"type": "devices.capabilities.mode", "option": "work_speed", "myfun": "do_vacuum_speed"}, {"type": "devices.capabilities.toggle", "option": "pause", "myfun": "do_vacuum_pause"}, {"type": "devices.properties.float", "option": "battery_level", "myfun": "do_vacuum_battery"} ] } Чайник JSON { "id": "kettle_1", "name": "Чайник", "room": "Кухня", "type": "devices.types.kettle", "action": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_kettle_onoff"}, {"type": "devices.capabilities.range", "option": "temperature", "myfun": "do_kettle_temp"}, {"type": "devices.capabilities.toggle", "option": "keep_warm", "myfun": "do_kettle_warm"} ], "query": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_kettle_onoff"}, {"type": "devices.capabilities.range", "option": "temperature", "myfun": "do_kettle_temp"}, {"type": "devices.capabilities.toggle", "option": "keep_warm", "myfun": "do_kettle_warm"}, {"type": "devices.properties.float", "option": "temperature", "myfun": "do_kettle_current_temp"} ] } Кондиционер JSON { "id": "ac_1", "name": "Кондиционер", "room": "Спальня", "type": "devices.types.thermostat.ac", "action": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_ac_onoff"}, {"type": "devices.capabilities.range", "option": "temperature", "myfun": "do_ac_temp"}, {"type": "devices.capabilities.mode", "option": "thermostat", "myfun": "do_ac_mode"}, {"type": "devices.capabilities.mode", "option": "fan_speed", "myfun": "do_ac_fan"}, {"type": "devices.capabilities.toggle", "option": "oscillation", "myfun": "do_ac_swing"} ], "query": [ {"type": "devices.capabilities.on_off", "option": "", "myfun": "do_ac_onoff"}, {"type": "devices.capabilities.range", "option": "temperature", "myfun": "do_ac_temp"}, {"type": "devices.capabilities.mode", "option": "thermostat", "myfun": "do_ac_mode"}, {"type": "devices.capabilities.mode", "option": "fan_speed", "myfun": "do_ac_fan"}, {"type": "devices.capabilities.toggle", "option": "oscillation", "myfun": "do_ac_swing"}, {"type": "devices.properties.float", "option": "temperature", "myfun": "do_ac_current_temp"} ] } ///////////////////////////////////////////////////////////////////////////////////////////// Как работает датчик движения Датчик движения использует event property, а не float: text devices.properties.event instance: motion Возможные значения события: Значение Описание detected Движение обнаружено not_detected Движения нет Создаём датчик движения 1) devices/devices.types.sensor.motion/definition.php PHP [ [ 'type' => 'devices.properties.event', 'retrievable' => true, 'reportable' => false, 'parameters' => [ 'instance' => 'motion', 'events' => [ ['value' => 'detected'], ['value' => 'not_detected'] ] ] ] ] ]; 2) devices/devices.types.sensor.motion/state.php PHP [ 'motion' => 'not_detected' ] ]; 3) devices/devices.types.sensor.motion/action.php Скопировать универсальный action.php. 4) devices/devices.types.sensor.motion/query.php Скопировать универсальный query.php. Добавить в devices.json JSON { "id": "motion_hallway", "name": "Датчик движения коридор", "room": "Коридор", "type": "devices.types.sensor", "device_dir": "devices.types.sensor.motion", "action": [], "query": [ {"type": "devices.properties.event", "option": "motion", "myfun": "do_motion_hallway"} ] } Добавить в functionsmy.php PHP function do_motion_hallway(string $mode, string $option, $value) { if ($mode === 'query') { // Пример: чтение с Blynk // $val = (int) blynk_read('V50'); // return $val === 1 ? 'detected' : 'not_detected'; return 'not_detected'; } return null; } Комбо: датчик движения + температура + освещённость definition.php PHP [ [ 'type' => 'devices.properties.event', 'retrievable' => true, 'reportable' => false, 'parameters' => [ 'instance' => 'motion', 'events' => [ ['value' => 'detected'], ['value' => 'not_detected'] ] ] ], [ 'type' => 'devices.properties.float', 'retrievable' => true, 'reportable' => false, 'parameters' => [ 'instance' => 'temperature', 'unit' => 'unit.temperature.celsius' ] ], [ 'type' => 'devices.properties.float', 'retrievable' => true, 'reportable' => false, 'parameters' => [ 'instance' => 'illumination', 'unit' => 'unit.illumination.lux' ] ] ] ]; devices.json JSON { "id": "multisensor_1", "name": "Мультидатчик", "room": "Коридор", "type": "devices.types.sensor", "device_dir": "devices.types.sensor.multi", "action": [], "query": [ {"type": "devices.properties.event", "option": "motion", "myfun": "do_multi_sensor"}, {"type": "devices.properties.float", "option": "temperature", "myfun": "do_multi_sensor"}, {"type": "devices.properties.float", "option": "illumination", "myfun": "do_multi_sensor"} ] } functionsmy.php PHP function do_multi_sensor(string $mode, string $option, $value) { if ($mode === 'query') { if ($option === 'motion') { // return blynk_read('V50') == 1 ? 'detected' : 'not_detected'; return 'not_detected'; } if ($option === 'temperature') { // return (float) blynk_read('V51'); return 22.5; } if ($option === 'illumination') { // return (float) blynk_read('V52'); return 350; } } return null; } Все доступные event-датчики instance Тип Значения motion Движение detected, not_detected open Открытие opened, closed button Кнопка click, double_click, long_press smoke Дым detected, not_detected, high gas Газ detected, not_detected, high water_leak Протечка dry, leak vibration Вибрация tilt, fall, vibration battery_level Батарея low, normal Пример: датчик открытия двери definition.php PHP [ [ 'type' => 'devices.properties.event', 'retrievable' => true, 'reportable' => false, 'parameters' => [ 'instance' => 'open', 'events' => [ ['value' => 'opened'], ['value' => 'closed'] ] ] ] ] ]; devices.json JSON { "id": "door_sensor_1", "name": "Датчик двери", "room": "Прихожая", "type": "devices.types.sensor.open", "device_dir": "devices.types.sensor.open", "action": [], "query": [ {"type": "devices.properties.event", "option": "open", "myfun": "do_door_sensor"} ] } functionsmy.php PHP function do_door_sensor(string $mode, string $option, $value) { if ($mode === 'query') { // return blynk_read('V60') == 1 ? 'opened' : 'closed'; return 'closed'; } return null; }