Подключение устройств Bluetooth к домашнему помощнику

Обновлено: 10.05.2024

Интеграция Bluetooth Classic может определять местоположение любого устройства Bluetooth в доме. Он делает это, отправляя запросы на подключение на адреса устройств, которые вы настраиваете по очереди, а затем проверяя уровень сигнала ответа. Настроенные устройства Bluetooth не нужно связывать с компьютерами, на которых работает room-assistant.

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

Эта интеграция работает только в Linux, так как зависит от hcitool. В большинстве дистрибутивов Linux он уже должен быть предустановлен. Если это не номер-помощник предупредит вас при запуске. Затем вы можете установить его с помощью:

Если вы хотите запустить room-assistant без привилегий root (как это рекомендуется), вам также необходимо предоставить правильные разрешения:

Эта интеграция требует запуска room-assistant в хост-сети и возможности NET_ADMIN. В файле docker-compose вы можете установить эти параметры, как показано в следующем примере.

Эта интеграция предполагает, что вы загрузили и настроили ее одинаковым образом для всех экземпляров, которые хотите использовать для отслеживания. Каждые 6 секунд каждый экземпляр в кластере будет запрашивать уровень сигнала одного из настроенных устройств. Полученные значения RSSI передаются всем другим экземплярам, ​​один из которых отслеживает все состояния устройства.

Каждое настроенное устройство создаст датчик, в котором в качестве состояния используется имя ближайшего экземпляра помощника по комнате или not_home, если устройство не может быть найдено ни одним из них. Расстояние в атрибутах этих датчиков представляет собой инвертированное значение мощности сигнала и фактически не представляет никакого физического расстояния. Также могут отображаться отрицательные числа.

Каждый экземпляр, выполняющий эту интеграцию, также создает переключатель для включения или отключения запросов Bluetooth. Отключенный переключатель блокирует все запросы Bluetooth экземпляра, что по существу означает, что ваше устройство Bluetooth больше не будет обнаружено этим экземпляром. Однако он не выводит экземпляр из ротации, поэтому время обнаружения остается прежним.

Вы можете использовать это, чтобы уменьшить ресурсы, используемые помощником по комнате, когда вы уверены, что никого нет дома. Другим примером может быть отключение запросов, когда вы спите, чтобы сэкономить батареи ваших Bluetooth-устройств ночью.

Вы также можете использовать эту функцию, чтобы запускать сканирование только в том случае, если вы уверены, что произошло какое-то изменение, например. всякий раз, когда срабатывал датчик движения. В этом случае вам нужно будет включить параметр saveState, чтобы по-прежнему получать точные результаты после повторного выключения переключателя. Обратите внимание, что в этом случае room-assistant рассылает псевдообновления, поэтому временные метки будут обновляться в API, даже если сканирование не выполняется.

Это происходит, если в последнее время для устройства не собирались данные измерений. Чтобы сделать тайм-аут немного более мягким и избавиться от этих неправильных состояний, вы можете увеличить значение timeoutCycles. Обратите внимание, что это также приведет к задержке регистрации вашего устройства как not_home, когда оно действительно исчезнет.

Bluetooth использует полосу частот 2,4 ГГц, которая также может использоваться некоторыми другими вашими WiFi-устройствами. Это может вызвать помехи. Некоторые устройства Bluetooth также могут плохо справляться со слишком агрессивным интервалом обновления. Если вы заметили какие-либо проблемы (например, устройства WiFi отключаются от сети, беспорядочно отключаются наушники Bluetooth), попробуйте немного увеличить интервал. Обратите внимание, что это также немного замедлит обновление состояния.

На некоторых одноплатных компьютерах, таких как Raspberry Pi со встроенным Wi-Fi/BT, Bluetooth и WiFi находятся на общем чипе и антенне. Если соединение Bluetooth происходит, чип временно отключит пакеты WiFi, пока это не будет сделано, а затем переключится обратно. Одновременно активен только один протокол, что может привести к тайм-аутам запросов и задержкам в пакетах: если устройство пропинговано в неподходящее время, оно не примет соединение и, следовательно, истечет время ожидания. Это также иногда приводит к медленным сеансам SSH.

Почему? Команда, используемая для опроса, в целом занимает около 5,5 с, большую часть из которых составляет связь по Bluetooth. Если все разрешенные устройства отсутствуют, у SBC по сути есть только около 1 секунды из 6-секундного интервала, доступного для связи WiFi. Если устройства находятся рядом, эффекты менее заметны, так как опрос завершается быстро и разблокирует чип для связи по WiFi.

Если у вас больше ничего не работает на Pi, это не должно быть большой проблемой — room-assistant справится с суровыми условиями сети. Если вы хотите, чтобы Pis был более отзывчивым и/или запускал на них другие приложения, в настоящее время есть только одно решение, которое поможет: увеличить интервал. Имейте в виду, что это также немного замедляет обнаружение.

Сначала попробуйте подключить Apple Watch к устройству Bluetooth, например к наушникам или колонкам, а затем добавьте их в помощник по комнате для обнаружения. Вы можете отключить периферийное устройство после того, как помощник обнаружит часы.

< td>addresses
ИмяТипПо умолчаниюОписание
Array Список MAC-адресов Bluetooth, которые следует отслеживать. Обычно их можно найти в настройках устройства.
minRssi Число или подробная конфигурация Ограничивает RSSI, при котором устройство все еще регистрируется, если оно настроено. Помните, что RSSI обратно пропорционален расстоянию атрибута датчика, поэтому для порога 10 вы должны указать -10.
rssiFactor Число 1 Множитель для измеренных значений RSSI. Позволяет точно настроить измерения, если в кластере используются разные адаптеры Bluetooth.
hciDeviceId Number 0 ID устройства Bluetooth, которое будет использоваться для запросов, например 0 для использования hci0 .
interval Number 10 Интервал, с которым устройства Bluetooth запрашиваются в секундах.
scanTimeLimit Число 6 Максимальное время, разрешенное для завершения запрос устройства за секунды. Это значение должно быть меньше интервала.
timeoutCycles Число 2 Количество завершенные циклы запросов, после которых собранные измерения считаются устаревшими. Время ожидания в секундах рассчитывается как max(addresses, clusterDevices) * interval * timeoutCycles .
preserveState Boolean false< /td> Должно ли сохраняться последнее записанное расстояние, когда переключатель запросов выключен или нет.
inquireFromStart Boolean true Включен ли переключатель запросов при запуске room-assistant или нет.
entityOverrides Переопределение сущности Позволяет переопределить некоторые свойства созданных сущностей.
kalmanProcessNoise Number 1.4 Ковариация шума процесса, используемая для снижения шума измерения с помощью фильтра Калмана

minRssi можно указать как число, которое применяется ко всем устройствам, как показано в простом примере конфигурации, или как карту адресов и значений minRssi, как показано в расширенном примере конфигурации. Последнее позволяет настроить разные пороги для используемых вами устройств, так как они могут показывать разные уровни RSSI даже при размещении на одном и том же расстоянии. Параметр minRssi.default будет применяться ко всем адресам, которые не были настроены специально. Если он не установлен, все устройства, не имеющие определенного значения, всегда будут считаться находящимися в пределах досягаемости.

Объект переопределения объекта можно рассматривать как карту с MAC-адресом устройства в качестве ключа и объектом с некоторыми из следующих параметров в качестве значения.

Bluetooth с низким энергопотреблением (BLE) имеет те же свойства, что и Zigbee: он использует те же радиочастоты 2,4 ГГц и потребляет очень мало энергии. В этой статье я перечислю лучшие датчики температуры и влажности Bluetooth для Home Assistant. Одним из преимуществ является то, что многие хосты Home Assistant, такие как Raspberry Pi, способны читать Bluetooth и BLE без необходимости использования внешнего концентратора. Однако у него есть один недостаток, который делает его менее подходящим для периферийных устройств умного дома, — отсутствие сетки.

Отсутствие сетки означает, что ваши датчики Bluetooth с низким энергопотреблением должны быть размещены в пределах досягаемости хоста. И все же существует множество датчиков Bluetooth с низким энергопотреблением, которые можно интегрировать с Home Assistant. Устройства, представленные в этом списке лучших датчиков температуры и влажности Bluetooth для Home Assistant, не предназначены для использования таким образом. Они предназначены для использования с приложением для смартфона. Однако из-за особенностей Bluetooth с низким энергопотреблением данные также могут быть прочитаны Raspberry Pi, ESP32 или любым другим устройством с поддержкой Bluetooth.

Содержание

Как интегрировать лучшие Bluetooth-датчики температуры и влажности с Home Assistant

Существует несколько способов интеграции устройств Bluetooth Low Energy с Home Assistant. Самый прямой способ — использовать чип Bluetooth на хосте Home Assistant. Home Assistant изначально поддерживает датчик температуры и влажности Xiaomi BLE, однако пользовательский компонент Passive BLE Monitor обеспечит поддержку многих других. Это не самый простой пользовательский компонент для настройки, но как только вы это сделаете, вы сможете интегрировать устройства от Govee, iNode, Viomi, Xiaomi, Yeelight, Qingping и других.

Каким бы хорошим ни был этот компонент, есть одна проблема с использованием Home Assistant для сбора данных с датчиков температуры и влажности Bluetooth с низким энергопотреблением: диапазон.Интеграция вашего домашнего помощника не будет распространяться на несколько Raspberry Pi, стратегически распределенных по вашему дому. К счастью, есть две альтернативы.

Интеграция датчиков Bluetooth с низким энергопотреблением с помощью room-assistant

Второй вариант интеграции датчиков температуры и влажности Bluetooth Low Energy с Home Assistant идеально подходит для тех, у кого есть помощник Raspberry Pi. Выбор протестированных устройств не так велик, как пользовательский компонент Home Assistant, но он включает LYWSD02 (купить на AliExpress), LYWSDCGQ (купить на AliExpress) и LYWSD03MMC (купить на AliExpress) от Xiaomi.

Xiaomi LYWSDCGQBluetooth Low Датчик энергии, который можно подключить к помощнику по бегу на Raspberry Pi

Xiaomi LYWSDCGQ

Xiaomi LYWSD02 Датчик Bluetooth с низким энергопотреблением, который можно подключить к помощнику по бегу на Raspberry Pi

Xiaomi LYWSD02

Xiaomi LYWSD03MMC Bluetooth Датчик с низким энергопотреблением, который можно подключить к помощнику по беговой дорожке Raspberry Pi

Xiaomi LYWSD03MMC

Если вы заинтересованы в использовании room-assistant для этой функции, я предполагаю, что вы уже настроили для этой цели хотя бы один Raspberry Pi. Я не рекомендую использовать рум-ассистент только для этой функции, так как он сложнее в использовании и дороже, чем следующий вариант.

Интеграция датчиков Bluetooth Low Energy с использованием ESPHome и ESP32

Третий и самый дешевый способ интеграции датчиков температуры и влажности Bluetooth с низким энергопотреблением с Home Assistant — использование одного или нескольких ESP32 под управлением ESPHome. В зависимости от того, где вы покупаете плату ESP32, ее можно купить всего за ~ 3 доллара США. Это позволяет легко подобрать несколько и разложить их по дому.

  • Преемник популярного ESP8266.
  • Порт Micro-USB для легкой прошивки и питания.
  • Двухъядерный (Tensilica LX6) с тактовой частотой до 240 МГц.

Текущая версия ESPHome поддерживает датчики Bluetooth от Inkbird, Ruuvitag и Xiaomi. Преимущество этой установки заключается в том, что вам не нужно устанавливать какие-либо пользовательские компоненты, а расширить диапазон так же просто, как купить и настроить новую плату ESP32.

Для этой установки не требуется пайка, и вы можете просто запитать плату ESP32, используя старое зарядное устройство для телефона. Дополнительным преимуществом использования ESPHome является то, что вы можете в любой момент добавить на доску несколько датчиков, расширив ее функциональность.

Датчики Bluetooth с низким энергопотреблением Xiaomi

Xiaomi производит ряд датчиков Bluetooth с низким энергопотреблением (BLE). Благодаря своей цене, внешнему виду и совместимости как с Home Assistant, так и с ESPHome, они легко возглавляют список лучших Bluetooth-датчиков температуры и влажности для Home Assistant. Они бывают всех видов форм и размеров. У многих есть дополнительный бонус в виде экрана, который отображает текущую температуру и влажность. Некоторые из них даже используют электронные дисплеи, которые мне очень нравятся. Благодаря использованию дисплея на электронной бумаге время, температура и влажность читаются даже на солнце.

Если вам нужен датчик температуры и влажности с экраном и возможностью подключения к Home Assistant, вам подойдут устройства Xiaomi с Bluetooth Low Energy. Поскольку платы ESP32 очень дешевы, вам не придется переплачивать, чтобы легко интегрировать их с Home Assistant.

Датчики температуры и влажности Xiaomi Bluetooth

Ниже представлена ​​подборка многих продуктов, производимых Xiaomi и ее суббрендами. Это то, что я считаю лучшими Bluetooth-датчиками температуры и влажности для Home Assistant. При принятии решения о покупке обратите внимание на совместимость.


Всем привет! Мне нужна помощь в понимании возможностей, предоставляемых миром Bluetooth в отношении Home Assistant.

Прежде всего мы можем использовать Bluetooth для:

Отслеживание BLE-устройств

Отслеживание классических устройств Bluetooth

Создание датчиков/управление через классический bluetooth

Первые два для обнаружения присутствия, последний для фактического управления устройством, например. Убийца комаров Xiaomi должен давать мне информацию о состоянии батареи и возможностях ВКЛ/ВЫКЛ.

Теперь поговорим об интеграции:
Также здесь.Есть несколько способов использования bluetooth, самый известный, насколько я понимаю, это

Интеграция в файл configuration.yaml

В случае «родной» интеграции Home Assistant внутри configuration.yaml можно ли также контролировать устройства, не предназначенные для отслеживания? Пример обычного средства от комаров от Xiaomi.

Помощник в номере Я вижу, что многие предпочитают это решение. Почему? Что так выгодно? Можно ли также использовать Room Assistant при возможной установке Home Assistant в докере с Supervisor?

Теперь мы подошли к другому непонятному моменту. «Bluetooth-контроллеры». Я понимаю, что могу использовать как встроенный BT возможной малины, так и внешний ключ, или плату ESP с ESPHome.

В случае ESPHome, я полагаю, мне нужно установить расширение в Home Assistant, а затем подключить Bluetooth-устройства, которые я хочу использовать (трекер, а не другие), непосредственно к этому объекту, верно? Тогда как это работает? Я автоматически генерирую объекты в Home Assistant? Так что, если я решу использовать ESP32 в качестве контроллера bluetooth, нет необходимости обращаться, например, к Room Assistant или configuration.yaml? Если вы решите использовать ESPHome. Могу ли я иметь то, что я знаю. Больше модулей ESP, которые действуют как контроллеры и распределяют их по дому для улучшения покрытия? Могут ли они разговаривать друг с другом?

Вместо этого, в случае с Room Assistant, я могу использовать много разных устройств (например, ключ и 3 нулевых стержня) и заставить их все общаться с Home Assistant, и вставленные устройства будут без проблем переходить от одного к другому. Что-то вроде роуминга?

Можете ли вы порекомендовать мне устройства для различных случаев? У меня нет Home Assistant на Raspi, поэтому мне нужно найти

USB-ключи с широким диапазоном

Модули ESP для использования с ESPHome


На мой взгляд, есть два варианта использования Bluetooth

отслеживание присутствия/занятости с использованием BLE или традиционного BT (на телефоне или метке)

фиксированные датчики, которые взаимодействуют через Bluetooth

На данный момент я использую второй вариант. У меня есть несколько датчиков температуры и влажности Bluetooth в разных комнатах дома. У меня есть домашний помощник, установленный на Raspberry Pi 4 (и ранее 3b). Я очень быстро обнаружил, что качество сигнала Bluetooth на pi ужасное, и он продолжал терять датчики BT.

Затем я переключился на использование ESP32 под управлением ESPHome в качестве концентратора датчиков (поэтому датчик BT подключается к ESP32, который затем подключается через Wi-Fi обратно к HA). Результатом стало безупречное поведение, отсутствие потерянных датчиков. Теперь у меня есть сенсорный концентратор в каждой комнате. Помимо датчиков температуры, я добавил ИК-бластер, чтобы я мог управлять чем угодно с помощью ИК-пульта оттуда, и иметь различные другие датчики в зависимости от моих потребностей. Работает очень хорошо и доволен этой настройкой.

Я намерен добавить помощника по комнате, чтобы затем начать отслеживать занятость комнаты и автоматизировать работу на основе этого.

Если вам не нужны датчики присутствия, вам не нужен комнатный помощник, и вы можете просто использовать ESPHome для стационарных датчиков. Что касается рекомендуемых модулей ESP, подойдет практически любой ESP32 (ESP8266 не имеет Bluetooth, поэтому его нет).

Что касается механики с ESPHome: вы должны определить любые датчики в конфигурации прошивки ESP32, а не в HA. Поскольку ESPHome использует собственный протокол, HA автоматически обнаружит любые устройства ESPHome в той же сети и автоматически распознает датчики.
Поэтому вам не обязательно устанавливать ESPHome в HA. Вы можете использовать ESPHome на ПК, чтобы написать конфигурацию прошивки для вашего модуля ESP32 и определить там датчики, а затем прошить ESP32 через USB. Я делаю это так, потому что я нетерпелив, а компиляция прошивки EPSHome на моем HA Pi занимает гораздо больше времени, чем на моем ПК. Тем не менее, я установил ESPHome и включил OTA-обновления для своих ESP32, чтобы я мог легко их прошивать, если я поместил их в недоступное место.

Компонент Govee BLE Home Assistant

Интеграция Home Assistant с устройствами Govee Bluetooth Low Energy (BLE).

Поддерживаемые устройства Govee

Этот компонент настроит следующие платформы.

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

example

Существует два основных способа установки этого пользовательского компонента в вашем экземпляре Home Assistant:

  1. В Home Assistant нажмите ссылку на HACS
  2. Нажмите "Интеграции".
  3. Нажмите на многоточие в правом верхнем углу и выберите Пользовательские репозитории.
  4. Введите URL-адрес этого репозитория в разделе с надписью Добавить URL-адрес пользовательского репозитория и выберите Интеграция в раскрывающемся списке Категория
  5. .
  6. Нажмите кнопку ДОБАВИТЬ
  7. Закройте окно Пользовательские репозитории
  8. .
  9. Теперь вы должны увидеть карточку Govee BLE на странице интеграции HACS. Нажмите «УСТАНОВИТЬ» и следуйте инструкциям по установке.
  10. Перезапустите экземпляр Home Assistant, а затем перейдите к разделу Настройка ниже.
  1. Скачать или клонировать этот репозиторий
  2. Скопируйте содержимое папки custom_components/govee_ble в ту же файловую структуру на вашем экземпляре Home Assistant
    • Проще всего это сделать с помощью надстройки Samba, но вы можете делать это по своему усмотрению.
  3. Перезапустите экземпляр Home Assistant, а затем перейдите к разделу Настройка ниже.

Хотя ручная установка, описанная выше, кажется менее сложной, важно отметить, что вы не сможете видеть обновления этого пользовательского компонента, если не подписаны на список наблюдения. Затем вам придется повторять каждый шаг в этом процессе. Используя HACS, вы сможете увидеть, что обновление доступно, и легко обновить пользовательский компонент.

Для этой интеграции существует поток конфигурации. После установки пользовательского компонента и перезапуска Home Assistant:

  1. Перейдите в раздел "Конфигурация" -> "Интеграции".
  2. Нажмите + ДОБАВИТЬ ИНТЕГРАЦИЯ, чтобы настроить новую интеграцию.
  3. Найдите Govee BLE и нажмите на него.
  4. Вы пройдете остальную часть процесса настройки через процесс настройки.

Если один из ваших датчиков сообщает неправильно или у вас есть датчик, который вообще не отображается, вы можете включить отладку пользовательского компонента, используя встроенный регистратор Home Assistant. Просто добавьте следующую запись в раздел журналов в файле configuration.yaml:

После перезапуска Home Assistant перейдите к журналам, посмотрите вывод и рассмотрите возможность создания новой проблемы на GitHub. Убедитесь, что вы ищете открытые проблемы, прежде чем сообщать о них, на случай, если кто-то уже столкнулся с ними.

Из-за количества устройств Bluetooth, которые могут находиться в пределах досягаемости, и для ограничения количества записей в журнале будут регистрироваться только те устройства, которые сообщают свое имя и начинаются с ihoment_, Govee_, Minger_, GBK_ или GVH. Таким же образом приложение Govee в настоящее время определяет поддерживаемые устройства, поэтому он может измениться по мере выпуска новых устройств. Если у вас есть устройство Govee, которое не соответствует этому шаблону, откройте задачу на GitHub и укажите имя рекламируемого устройства Govee, чтобы его можно было добавить в логику.

Вклад приветствуется!

Если вы хотите внести свой вклад, ознакомьтесь с правилами участия

Первоначально это было основано на/беззастенчиво скопировано/вдохновлено Home-Is-Where-You-Hang-Your-Hack/sensor.goveetemp_bt_hci иibermotus/govee. Это, как и asednev, были невероятно ценными ресурсами для идентификации пакетных данных для датчиков, которыми я сам не владею.

О нас

Интеграция Home Assistant с устройствами Govee Bluetooth Low Energy (BLE).

Читайте также: