В начале года я писал статью "Сравнение датчиков температуры и влажности (Bluetooth)", а сегодня я расскажу, как добавить эти датчики в HomeBridge (по аналогии можно добавить и в Home Assistant).
Первое, что необходимо сделать - это установить плагин Homebridge Mi Hygrothermograph, можно через Web-интерфейс самого бриджа.
Далее необходимо установить библиотеки и их зависимости, необходимые для Noble и обеспечивающие доступ к подсистеме Bluetooth:
sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev
После чего, нам необходимо получить MAC-адреса наших датчиков, тут можно пойти по одному из двух путей.
- Посмотреть в приложении Mi Home. Для этого открываем приложение Mi Home, находим наш датчик, в правом верхнем углу три точки, About -> MAC adress.
- Отсканировать BLE устройства. Открываем терминал нашей малины, пишем команду:
sudo hcitool lescan
Если после ввода команды sudo hcitool lescan мы видим ошибку, а она возникает из-за того, что интерфейс Bluetooth занят, нам необходимо перезагрузить этот интерфейс.
Делается это командой:
sudo systemctl restart bluetooth
Итак, приступим к добавлению устройств в HomeBridge.
Пойдем по пути от простого к сложному. А простым у нас, как ни странно, является добавление часов LYWSD02MMC.
Часы LYWSD02MMC
Для добавления часов в HomeBridge, нам необходимо всего лишь знать его MAC-адрес. После чего добавляем в конфиг новый аксессуар:
{ "name": "Часы Зал", "address": "E1:1E:11:F1:64:36", "temperatureName": "Часы Температура", "humidityName": "Часы Влажность", "timeout": 15, "accessory": "Hygrotermograph" }
Далее перезагружаем HomeBridge и ждем, пока у устройства обновится температура, это происходит 1 раз в 10 минут.
Датчик LYWSD03MMC
Для добавления Датчика LYWSD03MMC, нам необходим не только MAC-адрес, но и bindKey.
Получение bindKey
Для получение bindKey необходимо проделать следующее.
Первое, что необходимо, - установить приложение Stream на наше iOS устройство. Далее:
Откройте Stream -> HTTPS Sniffing -> CA Install. Затем вы будете перенаправлены в браузер для загрузки профиля VPN. Перейдите в Общие -> Профиль -> Stream Generated CA... -> Установите профиль VPN.
После установки профиля VPN:
Открываем Stream -> HTTPS Sniffing -> нажимаем «CA Installed & Trusted».В настройках телефона: Основные -> Об этом устройстве -> Доверие сертификатам -> Stream Generated CA… в положение включено.
Второе. Открываем Mi Home, логинимся (если это еще не было сделано), обязательно указываем регион материковый Китай.
- Открываем приложение Stream, нажимаем "Sniff Now". Сразу же переходим в Mi Home, начинаем добавление датчика (процедура добавления стандартная). Дождитесь, пока в плагине отобразится температура и влажность.
- Возвращаемся в Stream и нажимаем "Stop Sniffing". На все про все у меня тратится чуть больше минуты.
Далее нажимаем "Sniff History" и выполняем поиск по ключевому слову "bltbind". Если поиск дал положительный результат, нажимаем "Edit" -> выделяем все файлы и нажимаем "Export HAR". Экспортируем любым привычным способом на свой компьютер.
Третье, уже на компьютере. На сайте Charles Proxy скачиваем свежую версию программы. Запускаем (триал версия на 30 дней).
- Файл -> открыть наш архив HAR, экспортированный с iOS.
- Далее в поиске пишем bind_key.
Чтобы не описывать, где и что нужно выбрать, приведу скриншот.
Я вас поздравляю, это было долгое и мучительное получение заветного ключа, но мы это сделали и можем приступать к добавлению датчика в HomeBridge.
Открываем конфиг и добавляем новый аксессуар.
{ "name": "Температура BLE Спальня", "address": "A4:C2:38:17:A6:6C", "temperatureName": "Температура BLE Спальня", "humidityName": "Влажность BLE Спальня", "timeout": 15, "bindKey": "697F650A6599839DF96A68B84D2C1841", "accessory": "Hygrotermograph" }
Для добавление в Home Assistant, добавляем в конфиг:
- platform: mitemp_bt encryptors: 'A4:C1:38:07:A6:6C': '697F650A6599839DF96A68B84D2C1841'
Xiaomi ClearGrass CGD1
Будильник Xiaomi ClearGrass CGD1 добавляется абсолютно так же, как и предыдущее устройство (для добавления необходимо получить bindKey). В приложении Apple HomeKit отображается как датчик температуры/влажности.
Mi Home
Неоспоримым преимуществом является то, что эти датчики, после добавления в альтернативную систему автоматизации, остаются в приложении Mi Home и могут участвовать в автоматизациях.
Небольшая ложка дегтя
Не обошлось и без недостатков. Привязанные датчики в Raspberry Pi не могут создавать BLE Mesh, датчики подключаются напрямую к малине. Поэтому важно, чтобы малинка располагалась в непосредственной близости к датчикам.
Итог
У меня четыре датчика, расположенных в квартире, один из них находится в ванной. Малинка находится на балконе. Вот именно тот датчик, который в ванной, и не достает. В дальнейшем думаю решить проблему внешним Bluetooth - USB свистком. В остальном меня все устраивает, за три месяца не было ни одного сбоя. При этом в Mi Home они продолжают работать и участвовать в автоматизациях.
Датчик LYWSD03MMC добавил, но в доме "этот аксессуар не отвечает". Мак адрес и bindKey верные.
Возможно дело в Bluetooth на малине? sudo hcitool lescan выдает ошибку, даже после команды по перезагрузке bluetooth. В саму малину воткнут конби2 стик.
у меня после перезагрузки bluetooth, всегда все норм. попробуй поднеси датчик максимально близко.
Не помогает. На https://stackoverflow.com/questions/60668497/hcitool-lescan-set-scan-parameters-failed-input-output-error">стаковерфлоу есть такая же проблема, но без решения.
Абсолютно та же проблема - датчик прокинулся, но пишет, что аксессуар не отвечает. Мак адрес и bindKey проверил уже на 10 раз. Датчик лежит прям рядом с малиной.
Хотя извиняюсь. Перезагрузка Bluetooth со второго раза внезапно помогла. Спасибо большое за туториал!
Напишу тут еще, если перезагрузка БТ не срабатывает через SSH, необходимо остановить HB и уже после ребутнуть.
Что-то у меня после ребута HB вообще всё отвалилось внезапно и рестарт Bluetooth не срабатывает. Выдаёт Set scan parameters failed: Input/output error. Куда копать, не подскажите?
Подождите 15 минут(или какой апатайм в настройках плагина), должно обновиться.
Спасибо.
Датчик пробросился но не отвечает. И перезагрузку БТ делал и HB нечего не помогает. Причём скан БТ делает он видит датчик. Что ещё можно попробовать?
Также bindkey можно получить с помощью доработанного приложения https://www.kapiba.ru/2017/11/mi-home.html">MiHome
Да можно, я привел один из вариантов.
https://cleargrass.com/cg_temp_rh_monitor/overview">CGG1 Обнаружился сразу. достаточно только mac
А подскажите где взять приложение Stream? Не могу его в appstore найти.
А подскажите где взять приложение Stream? Не могу его в appstore найти.
А было у кого-то такое, чтобы при попытке запуститься с сенсором mitemp_bt(из hacs) малинка висла?
Что-то они изменили Charles proxy и уже не получается найти bind_key таким образом.
есть такая проблема. тоже один датчик отвалился. и теперь не могу получить ключ. думаю дело в датчике
Да у меня их 4 и ни один не находит. Вот этот мануал тоже нифига не работает что-то, не находит девайсы. https://github.com/mKeRix/room-assistant/issues/277">https://github.com/mKeRix/room...
Ребята, просто не понимаю что нужно еще сделать что бы этот мотор завелся! Все перепробовал! Даже тещу мамой назвал и все равно этот датчик не подключается. Пишет что сканирование остановлено, Нужно запускать через Sudo или иметь root . Запускаю вышеупомянутую команду
в терминале, все окей сканирует и видит мой датчик. Но как подключиться то к нему?
Использую малину 4 и Hoobs.
Спасибо!!!
Квадратный, который
LYWSD03MMC
Должен ли датчик быть перепрошитым? или со стоковой прошивкой тоже можно использовать?
а более лёгкого пути нет для добавления блютус устройств?