Подключение BLE датчиков температуры к умному дому

Несколько лет назад накупил классных датчиков температуры и влажности LYWSD03MMC от Mi по цене в районе 5$. Их можно связать с телефоном в приложении Mi Smart Home. Но данный тип не очень интересен, т.к. не позволяет считывать температуру удаленно. Поэтому была куплена еще умная розетка WiFi со встроенным шлюзом, которая уже могла связываться со всеми датчиками самостоятельно и транслировать данные в облако, откуда их можно читать из любого места планеты через интернет в том же самом приложении. Также уже можно настроить простейшую автоматизацию по управлению той же самой розеткой. Но к тому времени у меня уже был OpenHUB и логично было бы объединить всё общий локальный умный дом.

Перепрошивка

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

Процедура очень простая, ребята очень постарались. Нужен компьютер или телефон с BLE моделем. Нужно зайти с него на сайт и последовательно нажать Connect, выбрать из списка один из найденных датчиков, нажать Do Activation, нажать Custom Firmware ver 3.7, нажать Start Flashing.

ESP32 BLE Tracker Hub

BLE датчики в отличие от ZigBee не могут строить Mesh сеть, поэтому должны быть расположены неподалеку от хаба. Сделаем его за несколько баксов. Есть отличный проект сделавший простым такие сложные операции как прошивки и программирование МК. Это ESPHome. Просто покупаем одну из поддерживаемых плат ESP32. У меня пока это Heltec Wireless Stick Lite, позже переделаю на ESP32dev, которых лучше сразу взять пачку, т.к. из них можно сделать кучу интересных устройств. Обратите внимание, что более дешевый ESP8266 тут не подходит, т.к. не содержит модуля BLE. Также можно проверить список готовых устройств, которые можно пепрепрошить и заодно добавить функциональности.

Проще всего компилировать и прошивать из HomeAssistant (HA), добавить поддержку EPSHome очень просто по этой инструкции. После установки нужно создать устройство в интерфейсе HA. Один раз нужно будет подключить плату напрямую к компьютеру по USB и прошить через WebSerial с сайта. В последующем, все изменения, которые вы будете вносить в yaml файл можно внести в прошивку удаленно по OTA, т.е. по WiFi в пару кликов. Здесь расписано какие строчки нужно внести в файл конфигурации для нашего температурного датчика. У меня получилось следующее (xxx у вас свои).

esphome:
  name: ir-remote
esp32:
  board: heltec_wireless_stick_lite
  framework:
    type: arduino
api:
ota:
  password: "xxxxxxxxxxxxxxxxxxxxxxxxxx"
wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "ir_remote Fallback Hotspot"
    password: "xxxxxxxxx"

esp32_ble_tracker:
sensor:
  - platform: pvvx_mithermometer
    mac_address: "A4:C1:38:XX:XX:XX"
    temperature:
      name: "PVVX Temperature"
    humidity:
      name: "PVVX Humidity"
    battery_level:
      name: "PVVX Battery-Level"
    battery_voltage:
      name: "PVVX Battery-Voltage"

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

Добавить комментарий

Ваш адрес email не будет опубликован.