ESP32 problem z konfiguracją

Zaprzeczasz sam sobie, czyli nie jesteś na żadnym etapie, bo rozumiem, że niczego jeszcze nie flaszowałeś?

ALE PRZEDE WSZYSTKIM NIE ODPOWIADASZ NA WAŻNE PYTANIA

“A po co, a na co to komu?” nie było żartem - nie wiem czy zgadłem, że chcesz mieć EBP, czy może cel jest kompletnie inny.

Najlepiej rób screenshoty każdego kroku, bo nadal nie mam czasu, a z tego webowego flaszera korzystałem może raz w życiu i nie pamiętam każdego kroczku, a nadal jest za wcześnie bym miał czas.

ALE NAJPIERW ODPOWIEDZ NA KLUCZOWE PYTANIA

Cel jest taki aby można było zczytywać temperature z czujmików temperatury xiaomi

według tej instrukcji ale coś nie dałem rady.

Tylko nie mogłem na tym etapie dodać do HA ESP32

wybrałem preapare i zainstalował się system

obraz

i teraz mam taki wybór

Moja opinia i pewnie nieodosobniona, hejdom to bardzo słabe źródło wiedzy. Autor mocno komercyjny, poradniki z błędami. Handel wszystkim (w tym danymi) celem nadrzędnym. Zacznij czytać oficjalne dokumentacje danych projektów, korzystaj z aktualnych informacji. A najważniejsze - zacznij dostarczać odpowiedzi na stawiane tu pytania, jeśli oczekujesz pomocy. Mam wrażenie, że tylko @szopen ma na tyle cierpliwości aby pomagać przy tak słabym feedback’u z Twojej strony. Ja czytam ale mi się nie chce odpowiadać, bo mam wrażenie, że nie oczekujesz pomocy tylko chcesz ulżyć swej frustracji.

1 polubienie

Jestem zielony w tym temacie.
@Szopen jest naprawde super, że mi pomaga na samym początku doceniam to.
Hejdom już sobie odpuściłem.
Staram się odpowiadać na zadane pytania ale może coś przeoczyłem.
Przepraszam

Jak serwer HA ma bluetooth’a to te termometry bez problemu inyegrują się w HA. A bramkę zazwyczaj używa się aby zwiększyć zasięg.

Serwer gdzie jest postawiony HA nie ma bluetoota wiec urządzeń się nie da dodać bezposrednio.
Ale udało się dodać ESPHome do HA wiec jest jakiś sukces

to musisz wgrać bluetooth proxy, czyli z linku Ready-Made Projects — ESPHome (szopen już podawał), wybrać


i wgrać kabelkiem.

to już zrobiłem jak dostałem info od @szopen

Z czujników LYWSD03MMC ?
bo nie wiem czy o takie pytasz - WIĘCEJ KONKRETÓW PROSZĘ
Znakomicie nadaje się dla nich projekt EBP (i to zarówno gdy są na fabrycznym firmware jak i na alternatywnym BTHome, choć szczerze polecam BTHome od @pvvx bo Xiaomi to klęka przed alternatywą… ale to nie temat na dziś, w każdym razie pod żadnym pozorem nie aktualizuj im firmware w oficjalnej apce, bo to utrudni przejście na BTHome, a Tobie pewnie centralnie to uniemożliwi…)

Jak dasz mi trochę czasu to przygotuję jakiś prosty komiks

Ten sukces jest dość połowiczny, bo wgrałeś sobie “puste” firmware i w dodatku zintegrowałeś ten sprzęt już z HA (więc będziesz musiał wywalić tą integrację w HA, bo po pierwsze możesz skorzystać z gotowego projektu ebp o którym tu piszemy od połowy wątku, a po drugie zmieni się nazwa urządzenia, klucze itd.)

Najpierw powinieneś dokonać Adpocji do IDE (Dashboardu) ESPHome (tylko jeśli czujesz się na siłach by samodzielnie sobie klepnąć działającego YAMLa), bo przy adopcji można sobie zmodyfikować nazwę hosta tego ESP i generują się nowe klucze.

A dopiero po skutecznej Adopcji możesz integrować (chociaż lepiej mieć już cokolwiek przygotowane zamiast integrować takiego “pustaka”).

ale co najgorsze chyba nie za bardzo chcesz zrozumieć jak to wszystko działa…

Bo właściwie mógłbyś skorzystać z natywnej integracji w ESPHome

ale po co skoro nawet w tej dokumentacji jest notatka

You may alternatively use ESPHome’s Bluetooth Proxy component to forward sensor data to Home Assistant and have Mija devices configured using its own Mija BLE component. This should work for the devices flashed with PVVX MiThermometer custom firmware, as well as the regular, stock firmware.

i przekierowuje ona chętnych prostoty do rozbudowanej dokumentacji tego, co proponowałem wcześniej

ale jak wspominałem (nie ja jeden, bo i @Piter pisał o tym) można to uzyskać “od tyłka strony” fleszując już gotowe firmware

no nie zrobiłeś tego co trzeba, tylko jak dziecko we mgle wgrałeś sobie “puste” firmware (tzn. tak też można, ale roboty jest zdecydowanie więcej, a nie radzisz sobie z najprostszymi sprawami)

szykuję środowisko do zrobienia komiksu (wprawdzie w normalnym HAOS, a nie tak dziwacznej instalacji jaką masz, ale skoro jesteś takim hardkorem, by mieć mocno niestandardowe rozwiązania, to chyba jakoś sobie poradzisz) pod windowsem, więc jeśli masz inny system na desktopie to będziesz miał minimalnie inaczej, ale skoro dałeś radę z pustakiem to będzie podobnie.


@angler
Gość, który prowadzi hej-bloga jest w głównej mierze influencerem, to jest zawód w którym zarabia się pieniądze sprzedając cudze produkty (taka nowa forma komiwojażera, tylko nie trzeba wychodzić z domu :upside_down_face:), jak widać skutecznie, bo OP się u niego obkupił po uszy.

1 polubienie

dobra wymiękam, nawet tak prosty kreator daje możliwość rozgałęzienia się operacji na tyle różnych ścieżek (w dodatku raczej wszystkie są poprawne), że to przerasta możliwości mojego wolnego czasu

dalej należy zrobić Adopcję do Dashboardu (IDE) ESPHome oraz integrację w HA

właśnie stanąłem na tym, że można użyć kreator my-HA lub go olać

Potem przy Adopcji zmienić nazwę hosta ESP lub nie itd. itd.
jedne drogi kończą się rekompilacją (bo muszą - te rzeczy są na stałe zaszyte w firmware) inne nie…
faktycznie można coś spaprać jeśli się nie czuje tego co się dzieje pod pokładem


Więc może zmieńmy kierunek - jeśli pokażesz YAMLa, który wygenerował się przy okazji tworzenia pustego firmware (a właściwie przy Adopcji sprzętu do IDE), to spróbuję w prostych słowach wytłumaczyć czemu się nie da przejść z tego firmware na EBP

edit - opisałem wszystko co ważne poniżej, wystarczy, że to zrozumiesz (nie potrzebuję już “pustego” YAMLa, bo sobie go wygrzebałem na repo)

ESPHome to żywy projekt i wiele się w nim zmienia (i może się coś zmieniło od czasu gdy widziałem takiego YAMLa z pustym projektem po Adopcji, ale jak właśnie sprawdziłem, obecnie w czasach ESPHome 2024.5.5 jest jak było), ale standardowo stosuje się frameworka Arduino (to zaszłość historyczna - w nim działały wszystkie możliwe integracje, gdy w ESP-IDF nie), jednak akurat projekty związane z Bluetooth wymagają ESP-IDF (ze względu na konieczną wyższą wydajność, a IDF jest pod pewnymi względami lepiej zoptymalizowany), te frameworki są niezgodne, więc nie ma między nimi przejścia przez flashowanie OTA, konieczny jest kabelek.

Z takich bardziej hardkorowych różnic - w IDF długi czas nie działał webserwer (obecnie działa), ale NIE JEST ZALECANY do równoczesnego użytku z EBP.

Dla porównania zdalny YAML na podstawie którego tworzony jest “pusty” firmware - widać frameworka Arduino

Tu masz YAML jaki mi się wygenerował przy adopcji EBP

substitutions:
  name: esp32-bluetooth-proxy-cbe554
  friendly_name: Bluetooth Proxy cbe554
packages:
  esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
api:
  encryption:
    key: Ccbxk7tbOJUgQh22PJi4S+bNVpKGLwJzBkSBwBzFJ8c=


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

jak widać zależy on od zdalnego kodu na repo

ten zdalny kod jest tu

a tu masz przykład bliźniaczo podobnego urządzenia (to nie jest ten sam egzemplarz tu skopiowałem YAMLa z czegoś co jest w użytku, ale zmieniłem na identyczne klucze czy wygenerowaną nazwę hosta by pokazać jak przerabiać), ale z kodem uniezależnionym od repo i wyposażonym w kilka wodotrysków dla przyjemności użytku

substitutions:
  name: esp32-bluetooth-proxy-cbe554
  friendly_name: Bluetooth Proxy cbe554
# packages:
#  esphome.bluetooth-proxy: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
  friendly_name: ${friendly_name}
# linijka poniżej to ograniczenie ilości procesów kompilacji na bardzo słabym sprzęcie, by RAMu nie brakło
  compile_process_limit: 2

esp32:
  board: esp32dev
  framework:
    type: esp-idf


api:
  encryption:
    key: Ccbxk7tbOJUgQh22PJi4S+bNVpKGLwJzBkSBwBzFJ8c=

#dashboard_import:
#  package_import_url: github://esphome/firmware/bluetooth-proxy/esp32-generic.yaml@main

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "${name}-AP"
    password: "12345678"


logger:
ota:
improv_serial:

esp32_ble_tracker:
  scan_parameters:
    # We currently use the defaults to ensure Bluetooth
    # can co-exist with WiFi In the future we may be able to
    # enable the built-in coexistence logic in ESP-IDF
#    active: true
    active: false

bluetooth_proxy:
  active: true
#  active: false

button:
  - platform: safe_mode
    name: Safe Mode Boot
    entity_category: diagnostic

sensor:
  - platform: internal_temperature
    name: "${friendly_name} Internal Temperature"
    accuracy_decimals: 1
    entity_category: diagnostic
  - platform: uptime
    name: "${friendly_name} Uptime"
    entity_category: diagnostic
  - platform: wifi_signal
    name: "${friendly_name} sygnał WiFi"
    update_interval: 60s
    entity_category: diagnostic
  - platform: esp32_hall
    name: "${friendly_name} sensor Hall'a"
    update_interval: 60s

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "${friendly_name} IP Address"
    dns_address:
      name: "${friendly_name} DNS Address"
    ssid:
      name: "${friendly_name} Connected SSID"
    bssid:
      name: "${friendly_name} Connected BSSID"
    mac_address:
      name: "${friendly_name} Mac Wifi Address"
    scan_results:
      name: "${friendly_name} Latest Scan Results"
1 polubienie

Wystarczyło kupić jakiekolwiek urządzenie 2 generacji od Shelly i mieć funkcjonalność Bluetooth Proxy, niejako przy okazji, po wyjęciu z pudełka.
Chociaż dobrze jest się nauczyć flashowania ESP i zrozumieć jak to działa.

1 polubienie

ale do xiaomi nie potrzeba bluetooth proxy, w esp czyta to tak:
wystarczy podać mac adresy urządzeń, tu mam odczyt wagi xiaomi dla dwóch użytkowników i dwa sensory temperatury i wilgotności


esp32_ble_tracker:


# Bluetooth
sensor:
  - platform: xiaomi_miscale
    mac_address: ''
    weight:
      name:  Xiaomi Mi Scale Weight
      id: weight_miscale
      on_value:
        then:
          - lambda: |-
              if (id(weight_miscale).state >= 45 && id(weight_miscale).state <= 65) {
                return id(weight_user1).publish_state(x);}
              else if (id(weight_miscale).state >= 75 && id(weight_miscale).state <= 85) {
                return id(weight_user2).publish_state(x);}

    impedance:
      name:  Xiaomi Mi Scale Impedance
      id: impedance_miscale
      on_value:
        then:
          - lambda: |-
              if (id(weight_miscale).state >= 45 && id(weight_miscale).state <= 65) {
                return id(impedance_user1).publish_state(x);}
              else if (id(weight_miscale).state >= 75 && id(weight_miscale).state <= 85) {
                return id(impedance_user2).publish_state(x);}

  - platform: template
    name:  Waga N
    id: weight_user1
    unit_of_measurement: 'kg'
    icon: mdi:weight-kilogram
    accuracy_decimals: 2
  - platform: template
    name:  Impedance N
    id: impedance_user1
    unit_of_measurement: 'Ω'
    icon: mdi:omega
    accuracy_decimals: 0
  - platform: template
    name:  Waga L
    id: weight_user2
    unit_of_measurement: 'kg'
    icon: mdi:weight-kilogram
    accuracy_decimals: 2
  - platform: template
    name:  Impedance L
    id: impedance_user2
    unit_of_measurement: 'Ω'
    icon: mdi:omega
    accuracy_decimals: 0

  - platform: ble_rssi
    mac_address: ''
    name:  MiScale RSSI 

  - platform: xiaomi_lywsdcgq
    mac_address: ""
    temperature:
      name:  Piwnica Temperature
    humidity:
      name:  Piwnica Humidity
    battery_level:
      name:  Piwnica Battery Level

  - platform: ble_rssi
    mac_address: ""
    name:  Piwnica_tmp RSSI 

  - platform: xiaomi_lywsdcgq
    mac_address: ""
    temperature:
      name:  Lazienka Temperature
    humidity:
      name:  Lazienka Humidity
    battery_level:
      name:   Lazienka Battery Level

  - platform: ble_rssi
    mac_address: ""
    name:  Lazienka_tmp RSSI  

  - platform: wifi_signal
    id: ble_wifi_signal
    name:  WiFi Signal
    update_interval: 60s
    icon: "mdi:wifi"

  - platform: uptime
    id: ble_uptime
    name:  Uptime
    filters:
      - lambda: return x / 60.0;
    unit_of_measurement: min
    icon: "mdi:clock-start"

Wgranie alternatywnego firmware do tych termometrów, zmiana protokółu na BTHome, Bluetooth Proxy i termometry są uatomatycznie wykrywane przez HA, nie trzeba ich definiować w ESPHome, dla mnie takie rozwiązane okazało się najlepsz - najprostsze a zarazem najbardziej elastyczne :slight_smile: .

Najprostsze rozwiazania sa najlepsze :slight_smile:
Jeśli dobrze rozumiem to wgrywam oprogramowanie o którym piszesz do termometrów XIAOMI LYWSD03MMC i reszte ogarnia HA ?
@macek A masz sprawdzony sposób aby to wgrać ?

poczytaj …

i wgraj korzystając ze strony …
https://pvvx.github.io/ATC_MiThermometer/TelinkMiFlasher.html

Plik YAML po wgraniu oprogramowania wyglada tak:

esphome:
  name: esp32dawcio
  friendly_name: ESP32Dawcio

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "SgiyOO++NoSHGmUpEv9OSYLbQKG15xR1Ck2w4Bzw+Ck="

ota:
  password: "dac7a8caf8aa9b1a44c29c057b6d9d71"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Esp32Dawcio Fallback Hotspot"
    password: "VR7nDqPcpYue"

captive_portal:
    

Chyba nie wgram bo mam nieobslugiwany firmware w tych termometrach.

9:54:50: Connecting to: LYWSD03MMC
19:55:01: Hardware Revision String: B1.4
19:55:01: Software Revision String: 0159
19:55:01: Firmware Revision String: 2.1.1_0159
19:55:01: Detected Mi device
19:55:01: (!) Version: 2.1.1_0159 is temporarily not supported (!)

Zapewne zaktualizowałeś do najnowszej w app …

Nie przypominam sobie ale pewnie tak było.
I co teraz :wink: czekać aż będzie obsługiwany ?