Jak skonfigurować odczyt z bluetooth, np. szczoteczki

Wychodząc z założenia, że to prościzna, kupiłem na pewnej stronie ESP32-WROOM-30PIN . Zrobiłem to z myślą o obsłudze szczoteczki OCLEAN..
Wyszedłem z założenia, że opis ze strony wystarczy abym poradził sobie z konfiguracją. Niestety, przerosło mnie to. Opis zbyt lakoniczny.
Znajdzie się Ktoś kto mnie poprowadzi jak to zrobić ?
Mam dodatek ESPHome. Mam zainstalowany moduł do obsługi odczytu stanu licznika wody. Tu poradziłem sobie. Dodałem już “new device”.




doszedłem do

i co dalej ?

Coś masz już coś wgrane w tym ESP czy jest czysty? Podpięty pod USB?

tak, jest czysty, podpięty.


Moduł trzeba ustawić w tryb programowania przycisk BOOT i podłączyć USB


Nie mam nic takiego.

Screenshot - 28.04.2023 , 11_39_43

Jak podłączam mój ESP32 i daję jak wyżej, nie wykrywa mi urządzeń. Miałem podobnie gdy konfigurowałem “wodomierz”.
Musiałem zrobić to na innym kompie (dostęp dopiero jutro). Tylko podpowiedz mi co dalej.

Oglądnij sobie kilka filmików tego kanału odnośnie konfiguracji ESPHome, czy to LEDy czy BLE, Jak dodać adresowalne listy led WS2812B do Home Assistant - YouTube
Nieważne jakie urządzenie, początek wygląda tak samo. Dopiero w późniejszej konfiguracji określasz jaki sprzęt będziesz podłączał i tak dostosowujesz.
Niektóre płytki wymagają włożenia i wciśnięcia BOOT a niektóre wkładasz do portu z wciśniętym BOOT. Jest tyle klonów, że musisz pokombinować.

ESPHome-web nie działa np. w Firefoxie, ale działa z pewnością w przeglądarkach Vivaldi, Chrome i bodajże w MS Edge.

O ile mnie pamięć nie myli funkcja “Prepare for first use” w ESPHome-web wywraca do góry nogami cały ciąg tworzenia nowego urządzenia - tam najpierw generujemy sobie “puste” urządzenie, które w kolejnym kroku Adoptujemy do dashboardu (IDE) ESPHome i wtedy powstaje z automatu lokalny YAML, wymiana kluczy i integracja z HA (oraz można od razu zmienić nazwę, co oczywiście wywołuje kompilację i OTA).
Więc ten istniejący YAML pójdzie w kubeł.


Natomiast mając już własnego YAMLa można wgrać wsad do “pustego ESP” na 2 sposoby:

  1. albo używając trybu “Manual download” wybieramy “modern format” i potem można uzyskany wsad binarny wykorzystać w ESPHome-web (bez używania “prepare for…”, po prostu urządzenie musi mieć wymuszony tryb bootloadera - kwestia kliknięcia w jego przyciski w odpowiedniej kolejności), od biedy można wybrać “legacy format” i wtedy użyć flashera starego typu. UWAGA to jest wybór albo-albo: stary flasher nie działa z wsadami w nowym formacie, a wsady w starym formacie nie dają się wrzucić przez web-flasher.
  2. albo podpinamy ESP (również w trybie bootloadera) bezpośrednio do maszyny, na której pracuje HAOS oczywiście mówię tu o maszynie, czyli maszynie fizycznej jeśli mamy natywną instalację HAOS (HAOS-generic albo HAOS dla SBC), jeśli to wirtualizacja to najpierw trzeba przekazać ten port z wirtualizatora do hosta HAOS (więc generalnie to nie jest metoda dla początkujących z proxmoxem itp.).

W obu opisanych przypadkach ESP32 musi być w trybie bootloadera (no generalnie to podstawowa zasada przy flashowaniu za pośrednictwem portu szeregowego, obojętnie czy to pierwsze flashowanie czy awaryjne np. po uwaleniu wadliwym wsadem przez OTA).

Zasada używania przycisków jest taka

  • albo trzymając przycisk BOOT podpinamy płytkę prototypową ESP do portu USB i puszczamy po kilku sekundach (trzymamy tyle aby komputer miał czas na rozpoznanie portu a ESP czas na wystartowanie w trybie bootloadera)
  • albo jeśli nie zrobiliśmy tego po przy podłączaniu wciskamy BOOT i trzymając go klikamy krótko przycisk RESET, i po upływie kliku sekund puszczamy BOOT

Zasadniczo BOOT można trzymać i do końca flashowania, ale jest to zbędne, a nie mogę gwarantować, że w jakimś modelu płytki nie będzie przeszkadzało.
Inne nazwy przycisku BOOT to FLASH, FLA, inne nazwy RESET to RST, EN.
To tyle o popularnych płytkach.

Na tych mniej popularnych czasem przyciski nie są opisane, czasem mają jeszcze inne nazwy - wystarczy poeksperymentować, zwykle jest jakaś kontrolka LED, po niej złapiemy orient, który to reset, wybrane specyficzne płytki mogą nie mieć mostka USB-UART (więc nie podpina się ich do USB tylko do własnego mostka), mogą nie mieć przycisków, wtedy używamy zworki, bądź kabelki do płytek stykowych (jumper wire) itd.


A teraz przejdę dużym skokiem do kolejnej części zagadnienia, na wskazanym blogu jest błędny kod - ma braki (być może powstał w starej wersji ESPHome), zajrzyj od razu w komentarze, albo do dokumentacji

@radel
Skoro już masz jakoś ogarnięty wodomierz, to zasada pierwszego flashowania każdego ESP jest taka sama.

Zrobiłem wszystko w/g TEGO. Doszedłem do 4:38 min i wyskoczyło mi:


Wcześniej cały czas po instalacji również było offline (nie przełączyło się jak w 03:23 min)

Rozumiem, że jest jakiś problem z połączeniem do mojej sieci ?

a, a kod który mam wpisany to:

esphome:
  name: esp32
  friendly_name: ESP32

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "................................"

ota:
  password: "...................................."

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32 Fallback Hotspot"
    password: "................................"

captive_portal:

esp32_ble_tracker:

ble_client:
  - mac_address: 70:28:45:69:95:36
    id: itag_black

sensor:
  - platform: ble_client
    type: characteristic
    ble_client_id: itag_black
    name: "iTag battery level"
    service_uuid: '180f'
    characteristic_uuid: '2a19'
    icon: 'mdi:battery'
    unit_of_measurement: '%'
  - platform: ble_client
    type: rssi
    ble_client_id: itag_black
    name: "szczoteczka 1"

i jeszcze log z esp gdy dam wirelessly:

Ne wymagaj żebym oglądał jakieś filmy na YT skoro wyżej napisałem istotne konkrety.

Która to metoda flashowania? Bo mi wygląda na OTA, a OTA działa TYLKO jeśli na MCU ESP już pracuje firmware (wsad) ESPHome z włączonym ota: i ma poprawne połączenie z siecią (tj. urządzenie działa normalnie). Czyli tylko jeśli skutecznie wcześniej przeflaszowałeś poprawny firmware po kabelku.

Dołóż sobie jakikolwiek inny sensor, który działa zawsze poprawnie bez względu na wszytko (to będziesz miał test, czy ESP działa poprawnie) dotyczący np. działania samego ESP (choćby uptime).

Dziękuję Wszystkim za pomoc.
Nie chcę być namolny i niestety zdecydowałem, że porzucę ten “projekt”.
Jako początkującego (choć nie najmłodszego wiekiem) przerasta mnie to. Używacie (oczywistych dla Was) skrótów myślowych, odnośników które prowadzą mnie w jeszcze większą “kołomyję”. Czuję się zagubiony w tej “wiedzy”. Nie potrzebnie prowokuję nerwowość.
Całą moją mizerną wiedzę czerpię z gotowych poradników w sieci, takich od A do Z.
Niestety do “mojego” problemu nie znalazłem takiego, więc zaczynając ten post myślałem, że z jego treści samo coś takiego się stworzy. Prawdę mówiąc liczyłem, że Ktoś poprowadzi mnie za rękę. Przy okazji pozostanie gotowa wiedza dla innych takich jak ja. Cóż. Za wysokie progi na moje nogi.
Jeszcze raz dzięki za poświęcony czas.
@szopen - wiem, że chcesz pomóc, ale mam też świadomość, że za dużo energii musiałbyś stracić na mnie. Rozumiem.
Pozdrawiam.

Kiedyś byłem w podobnym miejscu i moim zdaniem kluczowym jest zrozumienie jak coś działa. Ja zaczynałem od zrozumienia czym jest kompilacja pliku bin z kodu dowolnego języka programowania. Starałem się zrozumieć jak dzała mikrokompuer jakim jest np ESP. Jak już posiadłem tę wiedzę, wszystko dotyczące programowania tego sprzętu stało się zrozumiałe. Nigdy nie byłem fanem pozyskiwania wiedzy z YT. Nie mam do takich poradników zaufania. Najbardziej cenię sobie oficjalne dokumentacje danego projektu, który chce poznać, zrozumieć.

@radel
Nie od razu Kraków zbudowano. Nie poddawaj się.

W kwestii zasadniczej, (moim zdaniem, bo nie napisałeś co faktycznie robisz, nie damy rady współpracować jeśli będziesz się odwoływał do filmików na YT) tj. próby flaszowania OTA do “pustego” MCU, to jest sytuacja podobna do takiej przypowiastki:

Masz samochód z pustym bakiem, ale chcesz nim dojechać (OTA) na stację benzynową by go zatankować, to nie ma szans się udać bez paliwa w baku (działający wsad ESPHome + połączenie z siecią).
Musisz najpierw wlać paliwo z kanistra (flashowanie po kabelku w trybie bootloadera).
Potem możesz jeździć na stację i tankować tyle razy ile chcesz (OTA).
Dopóki nie odjedziesz ze stacji benzynowej i nie zużyjesz całego paliwa w jakichś krzakach (np. wgranie wadliwego firmware, w takiej sytuacji oczywiście używasz kanistra = flaszowania po kabelku).


Teraz miałem trochę czasu na YT

Sytuacja jest taka - krok z 3 minuty tego wideo jest możliwy tylko na wybranych konfiguracjach HA (z ssl, nie wiemy czy masz taką), ponadto tam autor wybrał totalnie inną płytkę, u siebie musisz dobrać YAMLa do sprzętu.

Dlatego nie rób w/g wideotutoriala, zrób normalnie, dowolną metodą jaką umiesz i od razu opisuj każdy WŁASNY krok (nie cudzy), screenshoty wskazane, również kod YAML, który używasz, w przypadku zdjęć sprzętu też nikt się nie obrazi, natomiast linkowanie do sklepu w którym nie widać co kupujesz jest bez sensu (wymoderuję ten link).

Ta płytka to prawdopodobnie to

źródło

1 polubienie

Tak. Podbudowaliście mnie ! Dzięki za motywację.
A już myślałem, że …
A może…
… Wiem, że proszę o dużo, ale może Ktoś po prostu będzie mi mówił krok po kroku co dalej (czekając na moją odpowiedź).
Gdyby powrócić do samej góry i zaczynając od tego miejsca podpowiadać mi jaki następny krok ?
Jeśli proszę o zbyt wiele, to …nie psujcie sobie majówki (i wcale nie muszę tego zrobić na już).
Płytka jaka posiadam ma napisane - ESP32 DEVKITV1


Home Assistant postawiony mam na PROXMOX na terminalu HP T620

W konfiguracji masz wpis

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

W tym miejscu masz odwołanie do pliku secrets gdzie powinieneś mieś wpisane nazwę i hasło do swojej sieci Wifi
image

# Your Wi-Fi SSID and password
wifi_ssid: "Nazwa_sieci"
wifi_password: "Haslo_do_sieci"

Masz to ustawione?

@ajakubek
Teoretycznie przy dodawaniu 1 urządzenia do IDE ESPHome (do jego dashboardu) te dane zostają wypełnione podczas przechodzenia kreatora pierwszy raz, no ale wiadomo - mogło być różnie.

@radel

Wymagasz za dużo. Możliwych scenariuszy jest więcej niż sobie wyobrażasz, bardzo wiele z nich doprowadzi do celu, ale zwykle znacznie więcej (takich które zawierają jakiś istotny błąd) niestety nie.

Po prostu zrób to co opisałem nieco wyżej (nie wiem czy widziałeś, bo edytowałem posta, a w międzyczasie pojawiły się kolejne odpowiedzi).

Po prostu udokumentuj co robisz, wtedy może znajdziemy kluczowy błąd.

To tak jak z konfiguracją sieci LAN - jest niemal nieskończenie wiele poprawnych konfiguracji, ale jest od nich nieskończenie więcej konfiguracji wadliwych.

Secrets - Tak, mam tam dane swojej sieci.
Więc od początku. Robię tak
Bez podłączonej płytki do komputera


dalej wybieram

Pojawia się okno

daję install
no i pojawia się okno

i co teraz ?

  1. Nie musisz niczego zamalowywać. (możesz za to skopiować sobie do schowka klucz szyfrowania API, bo to on jest w tym zamalowanym okienku, chociaż on jest i tak dostępny w wygenerowanym YALMu)
  2. Na razie dobrze (nadałbym jakaś bardziej obrazową nazwę dla urządzenia, ale to można zmienić również później jak się dopracujesz działającego OTA), wybór zależy od tego gdzie podpinasz płytkę.

Nie wybierasz pierwszej opcji, bo jak mówiłeś płytka jest “pusta”. (a to jest właśnie OTA)

Jeśli masz połączenie z HA po ssl i używasz kompatybilnej przeglądarki, to wybierasz opcję drugą. (nie mam wspieranej w ten sposób konfiguracji, więc tu ogarniesz sobie sam)
Ale jeśli nie spełniasz tych warunków kreator zaproponuje alternatywne rozwiązanie - ręczne flashowanie z wykorzystaniem ESPHome-web)
obrazek pokazuje moment kompilacji, więc jeszcze nie mogę pobrać wsadu, ale on się utworzy

Jeśli nie to wybierasz opcję trzecią z twojego ostatniego obrazka i podpinasz płytkę do tego komputera gdzie masz zainstalowany HA (są dodatkowe warunki do spełnienia, a nie chwalisz się jak nasz zainstalowany).

Albo po prostu wybierasz instalację ręczną - zostanie skompilowany wsad, który możesz pobrać i wgrać ręcznie, pisałem o tym wszystkim już wyżej. (tu wybierasz format wsadu zależnie od tego jak planujesz go flashować)

OK.

Cytat
a nie chwalisz się jak nasz zainstalowany

Home Assistant na Proxmox na terminalu HP T620

Wciskam przycisk boot na płytce, podpinam ją pod USB komputera,
wybieram Manual Download, dalej


co wybrać ?