Перейти к содержанию
KolHive KolWrite Скачать

KolHive

Приложения, которые управляют устройствами

В KolHive вы можете создавать приложения, которые подключаются к гаджетам по Bluetooth Low Energy, устройствам в локальной сети, датчикам телефона и инфракрасным приемникам.

Схема подключения: приложение запрашивает доступ к оборудованию через мост KolHive, который спрашивает ваше разрешение перед обращением к Bluetooth, локальной сети, датчикам движения или ИК-порту.Ваше приложениеМост KolHiveЗапрос разрешенияBluetooth LEЛокальная сетьДатчики движенияИК-портТолько Android с ИК
Каждый запрос к оборудованию проходит через KolHive и требует вашего подтверждения перед подключением.

Какими устройствами может управлять приложение KolHive

Когда вы создаете приложение в KolHive, оно может взаимодействовать с физическими устройствами вокруг вас. Приложение умеет подключаться к гаджетам по Bluetooth Low Energy, обращаться к технике в домашней или офисной сети и считывать показания датчиков движения телефона. На поддерживаемых телефонах Android оно также может отправлять сигналы инфракрасного пульта.

Например, Анна из Санкт-Петербурга может собрать трекер, который считывает пульс с нагрудного датчика Bluetooth или проверяет датчик влажности в цветочном горшке. Дмитрий в Алматы может включить умную розетку в офисной сети или разбудить рабочий компьютер с помощью Wake-on-LAN. А Ольга из Риги, у которой телефон на Android оснащен ИК-портом, может сделать пульт управления для телевизора в гостиной.

Приложения никогда не обращаются к оборудованию напрямую. Каждый запрос проходит через KolHive: система проверяет заявленные приложением права и сначала запрашивает ваше разрешение.

Bluetooth Low Energy

Созданное приложение может работать с Bluetooth Low Energy (BLE) в роли центрального устройства. Оно может искать гаджеты поблизости, подключаться к ним, читать и записывать данные объемом до 512 байт, а также подписываться на уведомления. Классический Bluetooth, аудиопрофили и последовательные соединения RFCOMM не поддерживаются.

Приложение никогда не получает скрытый список устройств вокруг. Когда оно запрашивает поиск, KolHive открывает на экране собственное окно выбора. Приложение видит только то устройство, которое вы выбрали, и только те службы Bluetooth, которые оно заранее указало.

Bluetooth работает в приложении KolHive на Mac, Windows, iPhone, iPad и Android. Устройства Apple запрашивают разрешение при первом использовании, а Android 12 и новее просит доступ к устройствам поблизости. В веб-браузере Bluetooth работает только в Chrome и Edge, но не в Safari или Firefox.

Устройства в локальной сети

Ваше приложение может находить устройства в локальной сети и общаться с ними по протоколам HTTP, WebSocket, TCP и UDP. Оно способно обнаруживать технику через SSDP или mDNS и отправлять пакеты Wake-on-LAN. Доступны только частные сетевые адреса. KolHive отклоняет подключения к публичным узлам в интернете, петлевым интерфейсам (loopback) и собственному адресу вашего устройства.

Каждое окно приложения может одновременно держать открытыми до 16 сокетов и выполнять до четырех запросов поиска устройств в минуту. Размер ответов HTTP ограничен 5 МБ. Самоподписанные сертификаты принимаются только для локальных устройств и только по явному запросу приложения.

Полное управление локальной сетью работает на Mac, Windows и Android. На Mac система покажет стандартный запрос на доступ к локальной сети. На iPhone и iPad работают HTTP, WebSocket, TCP и имена в зоне .local, но многоадресный поиск (SSDP), широковещательные запросы и Wake-on-LAN недоступны. Поэтому Илья в Новосибирске может включить телевизор по Wake-on-LAN с Mac, компьютера на Windows или телефона Android, но не с iPhone или iPad.

В веб-браузере запросы к локальной сети передаются через одно из ваших устройств, на котором выполнен вход в KolHive, по прямому зашифрованному соединению. При первом обращении на этом устройстве появится запрос на подтверждение. Трафик идет напрямую между устройствами без ретранслятора TURN, а наши серверы передают только короткие сигнальные сообщения для установки связи. Если ни одно из ваших устройств не в сети, приложение получит ответ, что доступного устройства-посредника нет.

Датчики движения, ИК-порт и геолокация

Датчики движения работают только в приложениях для телефонов и планшетов. На iPhone, iPad и Android приложение может считывать данные гироскопа, акселерометра, пользовательского акселерометра, магнитометра и барометра с частотой до 200 Гц. На компьютерах с Mac, Windows и Linux эти датчики отмечаются как неподдерживаемые.

В веб-браузере приложения используют стандартный Generic Sensor API или события движения устройства, если браузер их поддерживает. Замены для магнитометра или барометра в веб-версии нет. Браузер Safari на iPhone и iPad запрашивает разрешение перед передачей данных с датчиков.

Отправлять инфракрасные команды пульта приложение может только на телефонах Android со встроенным бытовым ИК-передатчиком (IR blaster). Каждый сигнал ограничен 1024 импульсами и длительностью в 2 секунды. На iPhone, iPad, Mac, Windows, Linux и в браузере инфракрасный порт недоступен.

Приложения также могут определять местоположение устройства с помощью GPS и геолокации на Android или службы Core Location на устройствах Apple. Это работает только в том случае, если приложение заявило использование геолокации и вы дали на это согласие.

Поддержка по платформам

Доступ к оборудованию зависит от вашего устройства и от того, используете ли вы установленное приложение KolHive или веб-браузер.

Поддержка оборудования в приложениях KolHive и веб-браузерах.
ФункцияMacWindowsiPhone/iPadAndroidБраузер
Bluetooth LEДаДаДаДаChrome и Edge
Локальная сетьДаДаДаДаЧерез ваше устройство
Поиск и Wake-on-LANДаДаНетДаЧерез ваше устройство
Датчики движенияНетНетДаДаЕсли поддерживает браузер
ИК-портНетНетНетДаНет

Как KolHive контролирует доступ к оборудованию

Приложения обращаются к оборудованию через интерфейсы kolhive.lan, kolhive.bluetooth, kolhive.sensors и kolhive.infrared. Каждая возможность должна быть заявлена в манифесте приложения с указанием конкретной цели и способа использования данных. Любой незаявленный вызов блокируется на трех уровнях: при проверке во время установки, внутри страницы и на уровне хоста. Подробнее о проверке разрешений читайте в статье Обзор безопасности для ИТ-специалистов.

KolHive предлагает выбрать нужное устройство в собственном окне, не позволяя приложению сканировать эфир или подключаться в фоновом режиме. Когда вы закрываете или перезагружаете окно приложения, KolHive закрывает все открытые сокеты, соединения Bluetooth и потоки данных с датчиков. Пока окно приложения скрыто, передача данных с датчиков автоматически приостанавливается, а соединения Bluetooth продолжают работать.

Перед использованием любой аппаратной функции приложение вызывает метод available(), чтобы проверить поддержку на вашем устройстве. Эта проверка не вызывает окон запроса разрешений и возвращает точную причину, если функция недоступна. Так приложение может честно сообщить вам, что конкретная возможность на этом устройстве не поддерживается.

Чего эта функция не делает

  • Подключения по USB, последовательному порту (serial), HID и NFC для созданных приложений не поддерживаются.
  • Классический Bluetooth, аудиопрофили Bluetooth и последовательные соединения RFCOMM не поддерживаются.
  • На Linux нет моста к локальной сети для созданных приложений, так как они открываются в системном браузере.
  • Технология Wake-on-LAN и многоадресный поиск (SSDP) не работают на iPhone и iPad.
  • Инфракрасное управление работает только на телефонах Android со встроенным ИК-передатчиком.
  • Датчики движения не работают на настольных компьютерах и ноутбуках с Mac, Windows и Linux.
  • Для инфракрасного управления нужно приложение KolHive для Android, которого пока нет в Google Play.

Частые вопросы

Может ли приложение в KolHive управлять устройствами умного дома?

Да, если ваши устройства умного дома общаются по локальной сети через HTTP, WebSocket, TCP или UDP либо используют Bluetooth Low Energy. На Mac, Windows и Android приложения также могут находить локальные устройства по протоколам SSDP или mDNS и отправлять пакеты Wake-on-LAN. На iPhone и iPad прямые подключения и имена .local работают, но многоадресный поиск и Wake-on-LAN недоступны.

Можно ли использовать датчики телефона в приложении, открытом на компьютере?

Нет, датчики движения, такие как гироскоп и акселерометр, работают только при запуске приложения на телефоне или планшете. Компьютеры на Mac, Windows и Linux сообщают, что датчики движения не поддерживаются. Хотя браузер на компьютере может передавать запросы к локальной сети через авторизованный телефон, потоки данных с датчиков он не пересылает.

Работает ли Bluetooth в браузерной версии?

Да, если вы используете Google Chrome или Microsoft Edge. Эти браузеры позволяют KolHive показать окно выбора устройств и подключиться к гаджетам по Bluetooth Low Energy. Браузеры Safari и Firefox подключения по Bluetooth не поддерживают.

Может ли приложение искать устройства без моего ведома?

Нет, приложение не может скрытно сканировать устройства Bluetooth или обращаться к незаявленному оборудованию. При работе с Bluetooth система KolHive показывает собственное окно выбора и открывает приложению доступ только к одному выбранному вами устройству. При обращении к локальной сети операционная система или ваше устройство-посредник запросит подтверждение перед подключением.

Бесплатно для Mac, Windows и Linux — или откройте в браузере.

Скачать KolHive