Home Assistant - ESP32 i czujniki bluetooth

Home Assistant - ESP32 i czujniki bluetooth

Masz czujniki na bluetooth od Xiaomi i chcesz je podłączysz do Home Assistant? Wykorzystamy ESP32 z wbudowanym Bluetooth i WiFi. To rozwiązanie się nie zawiesza i pozwala nam wystawić "bramkę BLE" dokładnie tam gdzie jej potrzebujemy!

ESP32-WROOM-30PIN + obudowa - kupisz tutaj za 40zł

A kosztuje mniej niż dobrej jakości moduł bluetooth - do tego nic nie trzeba lutować. A dodatkowo możemy zaopatrzyć się w ładną obudowę, która niedługo będzie dostępna w naszym sklepiku ;) Gdyby to Wam nie wystarczyło aktualizacja odbywa się OTA - czyli gdy raz skonfigurujemy płytkę na naszym Home Assistant, to zmieniając coś w jej ustawieniach, klikamy upload i przez WiFi ładowane to jest na ESP!

Na wstępie muszę zaznaczyć, że czujniki na bluetooth nie są przywiązane do jednej bramki jak mają Zigbee. Każdy może odczytać z nich dane, wystarczy włączyć wyszukiwanie takich urządzeń w okolicy. Plusem jest to, że taki czujnik kwiatków możemy używać w aplikacji Mi Home i jednocześnie z Home Assistant przez zaprogramowane tutaj ESP32.

Muszę też jasno napisać, że wcześniej nie byłem przekonany do ESPHome, mam na kilku urządzeniach Tasmotę i działa to bardzo dobrze ale po tym co zobaczyłem dziś pisząc ten artykuł... Chapeau bas Twórcy ESPHOME! 

Potrzebujemy

Instalacja

Jest to normalny addon, więc wchodzimy w Supervisor -> add-on store i szukamy ESPHome

Home Assistant - ESP32 i czujniki bluetooth_3

Instalujemy i włączamy na zakładkach po lewej.

Tworzenie nowego ESP

Tworzymy nowy klikając na ogromny plus w czerwonym kółku po prawej i prowadzamy po kolei.

Nazwa, Typ 

Tutaj bardzo ważne, musimy wybrać ESP32 Generetic albo Development Board (może to się nazywać tak lub tak)

Home Assistant - ESP32 i czujniki bluetooth_1

Ustawienia WiFi i OTA

Wprowadzamy hasło naszego WiFi oraz hasło aktualizacji OTA. Powyższe ustawienia są najważniejsze, resztę możemy zaktualizować przez WiFi, więc się tym teraz nie przejmujmy.

Compile

Następnie musimy kliknąć na 3 kropki [...] -> Compile, gdy będzie to gotowe pobierz plik bin.

Home Assistant - ESP32 i czujniki bluetooth_1

Oczywiście, za pierwszym razem będzie to trwało znacznie dłużej - trzeba uzbroić się w cierpliwość. 

Uwaga: mnie za pierwszy razem nie chciało pobrać, dopiero jak odłączyłem płytkę z Conbee2, plik miał w końcu zawartość.

Programowanie płytki

Teraz tylko podłączamy płytkę. Mała dygresja: teoretycznie płytka powinna być rozpoznana w narzędziu na Home Assistant (po podłączeniu do komputera gdzie mamy HA w górnym rogu powinna być widoczna w liście rozwijanej). Jednak nie zawsze to działa i trzeba restartować kontener. Pobierając ją na dysk jesteśmy w stanie zrobić to zdecydowanie szybciej.

Odpalamy na komputerze program esphome-flasher, wybieramy port oraz plik flashujemy.

Home Assistant - ESP32 i czujniki bluetooth_6

Przez cały czas widoczna jest Console, więc widzimy czy się udało, nie odłączaj jej na razie, nie ma takiej potrzeby. Potem podłączysz tam gdzie ma być.

MAC adres czujników

Trzeba jakieś hcli i inne ale znalazłem zmodowaną aplikację, którą trzeba użyć Xiaomi o co chodzi z tymi regionami Europa / Chiny i dlaczego to jest tak ważne? opis oraz link do pobrania zamieszcza w sekcji: Zmodowana aplikacja Mi Home.

Następnie tworzymy folder na naszym telefonie (nie na karcie): /vevs/logs i czekamy kilkanaście minut aż pojawi się tam plik devices.txt w którym będą nazwy, mac, ip oraz token. Natomiast bindkey znajdziesz w pliku parings.txt

Konfiguracja ESP

Wracamy do Home Assistant add-on ESPHome i klikamy edit na naszym projekcie ESP.

Home Assistant - ESP32 i czujniki bluetooth_9 

Musisz tak naprawdę ustawić ssid, password oraz api password i ota password oraz oczywiście dodać czujniki, w moim wypadku wygląda to tak.

esphome:
  name: bt_mi
  platform: ESP32
  board: esp-wrover-kit

wifi:
  ssid: "ssid"
  password: "hasło"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "awaryjny_ssid"
    password: "awaryjne_haslo"

web_server:
  port: 80

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "hasło"

ota:
  password: "hasło"

# Enable Bluetooth scanning for this ESP32
esp32_ble_tracker:

sensor:
  - platform: xiaomi_hhccjcy01
    mac_address: 81:EA:CA:45:59:02
    temperature:
      name: "Palma Temperature"
    moisture:
      name: "Palma Moisture"
    illuminance:
      name: "Palma Illuminance"
    conductivity:
      name: "Palma Soil Conductivity"
    battery_level:
      name: "Palma Battery Level"
  - platform: xiaomi_hhccjcy01
    mac_address: 81:EA:CA:45:52:A0
    temperature:
      name: "Stokrotka Temperature"
    moisture:
      name: "Stokrotka Moisture"
    illuminance:
      name: "Stokrotka Illuminance"
    conductivity:
      name: "Stokrotka Soil Conductivity"
    battery_level:
      name: "Stokrotka Battery Level"

I teraz najlepsze robisz save (jeżeli są jakieś błędy to od razu będzie to widoczne) a następnie klikasz Upload i... robi się to OTA po WiFi!

Home Assistant - ESP32 i czujniki bluetooth_8

A więc jak będziesz mieć dowolnie nowy czujnik, to wystarczy go tutaj dodać a następnie kliknąć Upload - działa to genialnie!

Integracje

U mnie musiałem wejść jeszcze w Konfiguracja->Integracje i dodać ESP. Odczytałem to w logach ESPHome, na sam koniec


Skoro port był podany, to wpisałem tylko esp2.local

A następnie o password, które podaliśmy wyżej w sekcji esp czyli: 

# Enable Home Assistant API
api:
  password: "xxxx"

Gotowe

Po chwili zaczną nam spływać dane z czujników - u mnie z jakiegoś powodu nie wczytuje stanu baterii na MiFlora :( 

Obudowa

A jeżeli nie chcesz kupować płytki na Aliexpress i nie masz drukarki to sprawdź nasz sklepik: ESP32-WROOM-30PIN + obudowa 

Podsumowanie

Na początku nie rozumiałem w ogóle po co dodawać add-on ESPHome do Home Assistant, po co ta cała zakładka, kompilacje itp. Ale gdy już do tego usiądziesz i zaczniesz z tym działać to okazuje się, że działa to naprawdę bardzo fajnie! Jestem mega pozytywnie zaskoczony możliwościami tego oprogramowania w takiej formie a przecież to dopiero początek zabawy! 

Chcesz wiedzieć więcej? Dołącz do grupy na FB. Będzie nam też miło jak polubisz Fanpage!

Oczyszczacz Xiaomi Smartmi TVOC

Od: 449 zł 799 zł | Powiadom gdy cena spadnie

Świetna konkurencja dla Xiaomi 3H z dodatkowym czujnikiem TVOC, działa z aplikacją Xiaomi Home! Jednak najważniejsze, że pasują standardowe filtry z oczyszczaczy 3H/3C i podobnych. W zestawie filtr czarny, czyli HEPA13 - do tego europejskie normy powietrza i automatyzacji.

Dziwi brak reklam? Przeczytaj dlaczego i wesprzyj bloga na  lub