Все типы устройств HomeKit в приложении Home

21 мая 2019, 08:51

На днях мне стало интересно какие типы устройств поддерживает HomeKit и как они выглядят в приложении Apple Home.

Я вооружился самой популярной библиотекой для python, поддерживающей HomeKit Accessory Protocol - HAP-python версии 2.5.0. Именно эта библиотека используется в проекте Home Assistant.

Немного почитал мануалы и исходники библиотеки и накидал следующий код:

import logging
import sys

from pyhap.accessory import Accessory, Bridge
from pyhap.accessory_driver import AccessoryDriver

logging.basicConfig(level=logging.DEBUG)

driver = AccessoryDriver(pincode=bytearray(b'111-11-111'))
bridge = Bridge(driver, 'Bridge')

for k, v in driver.loader.serv_types.items():
    if k == 'AccessoryInformation':
        continue
    acc = Accessory(driver, k)
    acc.add_preload_service(k, chars=v['OptionalCharacteristics'])
    bridge.add_accessory(acc)

driver.add_accessory(bridge)

if sys.platform == 'win32':
    driver.add_job(driver._do_start)
    driver.loop.run_forever()
else:
    driver.start()

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

Код запускался на Python 3.7 под Windows 7. Предварительно необходимо установить вышеупомянутую библиотеку:

pip install HAP-python

Вот что получилось:

Я сравнивал перечень устройств с тем, что поддерживает популярная библиотека HAP-NodeJS, на которой основан проект Homebridge, и на данный момент python-версия выигрывает на пару устройств.

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

Там же видно, что хоть HomeKit и поддерживает отдельно окна, отдельно шторы - на этапе интеграции подобные устройства заносятся как WindowCovering (штора).


Все новости мира умных домов - t.me/SprutAI_News

Остались вопросы? Мы в Telegram - t.me/soprut

  1. Дмитрий Батюшин (ReD)
    Дмитрий Батюшин (ReD) месяц назад

    Когда то бы мне это много времени сэкономило. Лайк.

  2. Григорий Абрамов (grishmanCH)

    Отлично! Теперь становиться понятно что ограничение не в библиотеке, а в имплементации ХА. Соответсвенно наверняка найдутся умельцы и прокинут девайсы кастом компонентами, а потом и добавят в основной код. Нам с вами нужно просто делать feature request и процесс пойдёт. Именно так и было с телевизором, который добавили в 0.93

  3. (sbelanov)
    (sbelanov) отредактировано месяц назад

    осваиваю потихоньку NODE-RED, может кому пригодится информация по его интеграции в HomeKit:

    в плагине node-red-contrib-homekit-bridged сейчас доступны следующие типы, плюс-мунус то-же самое:

    • Air Quality Sensor
    • Battery Service
    • Camera Control
    • Camera RTP Stream Management
    • Carbon Dioxide Sensor
    • Carbon Monoxide Sensor
    • Contact Sensor
    • Door
    • Doorbell
    • Fan
    • Garage Door Opener
    • Humidity Sensor
    • Leak Sensor
    • Light Sensor
    • Lightbulb
    • Lock Management
    • Lock Mechanism
    • Microphone
    • Motion Sensor
    • Occupancy Sensor
    • Outlet
    • Relay
    • Security System
    • Smoke Sensor
    • Speaker
    • Stateful Programmable Switch
    • Stateless Programmable Switch
    • Switch
    • Temperature Sensor
    • Thermostat
    • Time Information
    • Window
    • Window Coverin


    кое-что из того, что пробовал, в родном HomeKit пишет как неподдерживаемое, а в той-же Eve например BatteryService отрабатывает нормально, с выдачей предупреждений о необходимости заменить батарейку

    риторический вопрос, вот когда же они Pressure Sensor сделают? не то давление до сих пор в люксах приходится показывать :)

  4. Антон Киселёв (Whilser)
    Антон Киселёв (Whilser) месяц назад
    Спасибо за идею 👍 Можно разных плагинов написать чтобы малинка прикидывалась разными устройствами из HomeKit. 

К списку блогов

Скидки для сообщества

Интернет-магазин yourhomekit.ru

+7 914 550-51-11
Промокод:
SPRUT-BLG
Размер скидки:
8%
Cамый большой ассортимент в России аксессуаров Apple HomeKit

Похожие записи

25 марта 2019, 05:02
Нативный Homekit на ESP8266 Relay_8CH
20 января 2019, 17:39
Создание очень бюджетной автоматизации рулонных штор
13 февраля 2019, 22:00
Подключение радио на Xiaomi Gateway к Home Assistant c дальнейшим использованием в автоматизациях
31 марта 2019, 11:37
Нативный HomeKit датчик температуры и влажности своими руками самый бюджетный вариант.
20 мая 2019, 20:54
Добавляем Телевизор в Homekit c помощью новых возможностей Home Assistant версии 0.93 и кастом компонента SmartIR MediaPlayer.
05 марта 2019, 14:09
Neptun PROW+ в Apple Homekit через Athom Homey
26 марта 2019, 01:43
DIY для самых новеньких
28 ноября 2018, 21:58
Подключение через Homebridge
26 июня 2019, 21:29
Добавляем телевизор в Homekit через Home Assistant. Комбинируем различные способы управления с помощью платформы Universal.