Xiaomi датчики температуры и влажности Bluetooth в HomeBridge, получение bindKey

11 июля 2020, 13:01

В начале года я писал статью "Сравнение датчиков температуры и влажности (Bluetooth)", а сегодня я расскажу, как добавить эти датчики в HomeBridge (по аналогии можно добавить и в Home Assistant). 

Первое, что необходимо сделать - это установить плагин Homebridge Mi Hygrothermograph, можно через Web-интерфейс самого бриджа. 
k01-2.jpg

Далее необходимо установить библиотеки и их зависимости, необходимые для Noble и обеспечивающие доступ к подсистеме Bluetooth:

sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

После чего, нам необходимо получить MAC-адреса наших датчиков, тут можно пойти по одному из двух путей. 

  • Посмотреть в приложении Mi Home. Для этого открываем приложение Mi Home, находим наш датчик, в правом верхнем углу три точки, About -> MAC adress. 
  • Отсканировать BLE устройства. Открываем терминал нашей малины, пишем команду:
sudo hcitool lescan
1600x_image.png?1594464046
Видим перечень всех Bluetooth устройств в зоне видимости нашей Raspberry Pi

Если после ввода команды sudo hcitool lescan мы видим ошибку, а она возникает из-за того, что интерфейс Bluetooth занят, нам необходимо перезагрузить этот интерфейс. 

Делается это командой: 

sudo systemctl restart bluetooth
После чего процесс поиска устройств проходит без ошибок. 
1600x_image.png?1594464382

Итак, приступим к добавлению устройств в HomeBridge.

Пойдем по пути от простого к сложному. А простым у нас, как ни странно, является добавление часов LYWSD02MMC. 

Часы LYWSD02MMC

Для добавления часов в HomeBridge, нам необходимо всего лишь знать его MAC-адрес. После чего добавляем в конфиг новый аксессуар:

1600x_image.png?1594465579
{
            "name": "Часы Зал",
            "address": "E1:1E:11:F1:64:36",
            "temperatureName": "Часы Температура",
            "humidityName": "Часы Влажность",
            "timeout": 15,
            "accessory": "Hygrotermograph"
        }

Далее перезагружаем HomeBridge и ждем, пока у устройства обновится температура, это происходит 1 раз в 10 минут. 

Датчик LYWSD03MMC

Для добавления Датчика LYWSD03MMC, нам необходим не только MAC-адрес, но и bindKey

1600x_image.png?1594465580

Получение bindKey

Для получение bindKey необходимо проделать следующее.

Первое, что необходимо, - установить приложение Stream на наше iOS устройство. Далее:
  • Откройте Stream -> HTTPS Sniffing -> CA Install. Затем вы будете перенаправлены в браузер для загрузки профиля VPN. Перейдите в Общие -> Профиль -> Stream Generated CA... -> Установите профиль VPN.
После установки профиля VPN:
  • Открываем Stream -> HTTPS Sniffing -> нажимаем «CA Installed & Trusted».
  • В настройках телефона: Основные -> Об этом устройстве -> Доверие сертификатам -> Stream Generated CA… в положение включено.

1600x_image.png?1594467294
1600x_image.png?1594467294
1600x_image.png?1594467294

Второе. Открываем Mi Home, логинимся (если это еще не было сделано), обязательно указываем регион материковый Китай. 

  • Открываем приложение Stream, нажимаем "Sniff Now". Сразу же переходим в Mi Home, начинаем добавление датчика (процедура добавления стандартная). Дождитесь, пока в плагине отобразится температура и влажность.
  • Возвращаемся в Stream и нажимаем "Stop Sniffing". На все про все у меня тратится чуть больше минуты. 
  • Далее нажимаем "Sniff History" и выполняем поиск по ключевому слову "bltbind". Если поиск дал положительный результат, нажимаем "Edit" -> выделяем все файлы и нажимаем "Export HAR". Экспортируем любым привычным способом на свой компьютер.
Если поиск не дал положительного результата, тогда удаляем историю, удаляем датчик из приложение Mi Home, и проделываем процедуру с самого начала. Скажу так - у меня получилось далеко не с первого раза. 

Третье, уже на компьютере. На сайте Charles Proxy скачиваем свежую версию программы. Запускаем (триал версия на 30 дней). 

  • Файл -> открыть наш архив HAR, экспортированный с iOS. 
  • Далее в поиске пишем bind_key. 

Чтобы не описывать, где и что нужно выбрать, приведу скриншот. 

1600x_image.png?1594469394

Я вас поздравляю, это было долгое и мучительное получение заветного ключа, но мы это сделали и можем приступать к добавлению датчика в 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 отображается как датчик температуры/влажности.

1600x_image.png?1594470779

Mi Home

Неоспоримым преимуществом является то, что эти датчики, после добавления в альтернативную систему автоматизации, остаются в приложении Mi Home и могут участвовать в автоматизациях. 

Небольшая ложка дегтя

Не обошлось и без недостатков. Привязанные датчики в Raspberry Pi не могут создавать BLE Mesh, датчики подключаются напрямую к малине. Поэтому важно, чтобы малинка располагалась в непосредственной близости к датчикам.

Итог

У меня четыре датчика, расположенных в квартире, один из них находится в ванной. Малинка находится на балконе. Вот именно тот датчик, который в ванной, и не достает. В дальнейшем думаю решить проблему внешним Bluetooth - USB свистком. В остальном меня все устраивает, за три месяца не было ни одного сбоя. При этом в Mi Home они продолжают работать и участвовать в автоматизациях. 


Все новости мира умных домов - t.me/SprutAI_News или Instagram
Остались вопросы? Мы в Telegram - @Soprut

Хочешь умный дом но нет времени разбираться?
Посмотри примеры работ и выбери себе интегратора.
  1. (gloomy)
    (gloomy) 23 дня назад

    Датчик LYWSD03MMC добавил, но в доме "этот аксессуар не отвечает". Мак адрес и bindKey верные. 

    Возможно дело в Bluetooth на малине? sudo hcitool lescan выдает ошибку, даже после команды по перезагрузке bluetooth. В саму малину воткнут конби2 стик.

    • Дмитрий Батюшин (ReD)

      у меня после перезагрузки bluetooth, всегда все норм. попробуй поднеси датчик максимально близко.

    • Denis Efremov (mataleao)
      Denis Efremov (mataleao) 20 дней назад

      Абсолютно та же проблема - датчик прокинулся, но пишет, что аксессуар не отвечает. Мак адрес и bindKey проверил уже на 10 раз. Датчик лежит прям рядом с малиной.

      • Denis Efremov (mataleao)
        Denis Efremov (mataleao) 20 дней назад

        Хотя извиняюсь. Перезагрузка Bluetooth со второго раза внезапно помогла. Спасибо большое за туториал!

        • (gloomy)
          (gloomy) 20 дней назад

          Напишу тут еще, если перезагрузка БТ не срабатывает через SSH, необходимо остановить HB и уже после ребутнуть.

          • Denis Efremov (mataleao)
            Denis Efremov (mataleao) 20 дней назад

            Что-то у меня после ребута HB вообще всё отвалилось внезапно и рестарт Bluetooth не срабатывает. Выдаёт Set scan parameters failed: Input/output error. Куда копать, не подскажите? 

            • (gloomy)
              (gloomy) 20 дней назад

              Подождите 15 минут(или какой апатайм в настройках плагина), должно обновиться.

  2. (gwk)
    (gwk) 23 дня назад

    Также bindkey можно получить с помощью доработанного приложения MiHome

  3. (xrust)
    (xrust) 7 дней назад

    CGG1 Обнаружился сразу. достаточно только mac

  4. Николай Иванкин (Shprot)

    А подскажите где взять приложение Stream? Не могу его в appstore найти.

  5. Николай Иванкин (Shprot)
    Николай Иванкин (Shprot) отредактировано день назад
    Комментарий удален
К списку статей

Устройства в материале

Mi Temperature and Humidity Monitor 2

Производитель: Xiaomi
Заказать на:
JD

Mi Temperature and Humidity Monitor Digital Clock

Производитель: Xiaomi
Заказать на:

Qingping Bluetooth Alarm Clock

Производитель: ClearGrass
Заказать на:

Raspberry Pi 4

Производитель: Raspberry Pi
Заказать на:

Raspberry Pi 3 Model B+

Производитель: Raspberry Pi
Заказать на:

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

УЮТНЫЙ ДОМ

+7 495 797-21-74
Промокод:
SPRUT
Размер скидки:
5%

Z-Wave Ukraine

+380 68 641 9670
Промокод:
Sprut-UA
Размер скидки:
15%

Тематические чаты

Похожие статьи

04 сентября 2018, 12:14
Интеграция RGB ленты на ESP8266 с прошивкой tasmota в систему HomeBridge (HomeKit)
17 декабря 2019, 17:49
Универсальный привод для автоматического удаленного открытия окон с простой интеграцией в умные дома.
15 ноября 2018, 09:42
Способы автоматизации механических ворот
27 октября 2018, 12:20
Нативный Термостат для котла на ESP8266 с поддержкой Apple HomeKit
15 ноября 2018, 13:11
Xiaomi Mi Remote 360 добавляем Apple HomeKit
24 августа 2018, 12:18
Пошаговая установка HomeAssistant
20 октября 2018, 22:57
Теоретические основы протокола MQTT и описание того, как он работает и для чего используется
30 августа 2019, 07:28
Несколько нетривиальных способов использования датчика открытия окон/дверей от Xiaomi/Aqara.
02 июля 2020, 07:24
Я хочу поделиться своей разработкой: "умным открывателем пластикового окна". В статье вы найдете все необходимое, чтобы повторить проект и изготовить собственный привод для открывания окна с использованием штатной фурнитуры окна.
28 августа 2018, 09:48
От голого Raspbian до веб-интерфейса homebridge за четыре команды в терминале.