ESP32 - Bluetooth

Ja używam mam sparowane w ESP32 i w aplikacji, w prawdzie aplikację rzadko uruchamiam, ale działa

Ok Paweł a możesz napisać jak to zrobiłeś ? Ja mam tak kiedy dodam czujniki do ESP to mi wylatują z aplikacji bo zmienia się niby wtedy Bindkey.
Dzięki za pomoc

@miastek ja zrobiłem to tak: dodałem do aplikacji czujnik (w plikach sprawdziłem sobie jaki jest bindkey oraz MAC) dodałem w konfiguracji ESPhome wpis z tymi numerami które sprawdziłem i tyle.

Czyli używasz zmodowanej rosyjskiej wersji Xiaomi Home ?

Właściwie to nie, bo używam iPhone.

Będę miał dostęp do iPhona, gdzie tam można sprawdzić te pliki o których piszesz ? Na co dzień używam androida i tam jest manager plików w iPhonie znajdę coś takiego ?

W iPhone jest to bardziej skomplikowane bo trzeba zaglądnąć do plików z kopii zapasowej iPhone. Chyba z tego tutoriala to robiłem

Ok sprawdzę i dam znać jak poszło, dzięki za pomoc.

@pawelwaz ma rację: to zawsze musi być jeden i ten sam bindkey, każde kolejne parowanie z innym “systemem” powoduje jego zmianę.
Poczytaj, zbierz uzyskane informacje razem i wyciągnij wnioski, dasz radę:
Home Assistant - ESP32 i czujniki bluetooth
Home Assistant - Termometr / higrometr XIAOMI Mijia Bluetooth 2 (LYWSD03MMC)

Jak u Was z częstotliwością odświeżania danych z czujników? Mam 6 x Xiaomi LYWSD03MMC i na niektórych odświeża mi temperature co 5h. Trochę mnie to już denerwuje. Da się coś z tym zrobić ? HA mam na Proxmox. Bindy wziąłem ze zmodowanej aplikacji. Czujniki są cały czas w niej widoczne i działają. Może to mieć wpływ ?

@zaawii
Z moich doświadczeń: brak odczytów=brak zasięgu (chyba, że warunki są dość idealnie niezmienne), ale z tego co napisałeś zrozumiałem, że piszesz w niewłaściwym wątku - ten jest poświęcony transmisji przez pośredniczącą bramkę ESP32.

Jakkolwiek jeśli używasz równocześnie aplikacji z integracją mitemp_bt to te rozwiązania mogą “się gryźć” (oba aktywnie odpytują sensory), ale istnieje pasywna integracja - patrz niżej.

Jest jeszcze rozwiązanie alternatywne, które jest jest dość banalne - akurat w LYWSD03MMC można zmienić firmware na alternatywne - ale UWAGA pozbawi to możliwości wykorzystania sensorów z oficjalną aplikacja! (na niektórych używam atc1441 i jest możliwość wyboru innej częstotliwości raportowania niż na fabrycznym firmware) zajrzyj sobie tam - jest klika linków:
http://forum.jdtech.pl/Watek-mijia-lywsd03mmc-termohigrometr-z-wyswietlaczem-lcd-ble
tylko w takim rozwiązaniu trzeba użyć nieoficjalnej integracji ble_monitor (zamiast mitemp_bt)

Dlaczego w niewłaściwym wątku ? Używam właśnie ESP32. Wcześniej gdy miałem HA na Pi3 wbudowany bluetooth ogarniał wszystkie czujniki i nie było problemu. Gdy przesiadłem się na Proxmoxa i ESP pojawił się ten problem z rzadkim odczytem. Też obstawiałem zasięg dlatego kupiłem drugie ESP aby rozmieścić w “dwóch końcach” mieszkania. Tez nie pomogło. Dlatego pisze ten wątek jak to u Was wygląda ? Co ile macie odczyty temperatury ?
Swoją droga ciekawy temat ten alternatywny firmware. Używasz ?

Ja mam te czujniki podpięte do ESP32 i raportują tak:

Więc, moim zdaniem jak zmienia się temperatura to odrazu wysyłają raport - nie wgrywałem alternatywnego firmware.
Pokaż jaką masz konfigurację w ESP

1 polubienie

Trochę już kombinowałem z ustawieniami esp32_ble_tracker. Mam teraz coś takeigo:

wifi:
  ssid: "xxxx"
  password: "xxxx"
  # Optional manual IP
  #fast_connect : on
  manual_ip:
    static_ip: 192.168.1.80
    gateway: 192.168.1.1
    subnet: 255.255.255.0
    dns1 : 8.8.8.8
    dns2 : 8.8.4.4
  power_save_mode: none

captive_portal:
# Enable logging
debug: 
logger:
  level: DEBUG
# Enable Home Assistant API
api:
  password: "xxxx"
ota:
  password: "xxx"
# Enable Bluetooth scanning for this ESP32
esp32_ble_tracker:
  scan_parameters:
    duration: 100s
    interval: 128ms
    window: 64ms
    active: true
#Default
#    duration: 300s
#    interval: 512ms
#    window: 48ms
#    active: true

sensor:
  - platform: xiaomi_hhccjcy01
    mac_address: 'XX:XX:XX:XX:XX:XX'
    temperature:
      name: "mi temperature Flora"
    moisture:
      name: "mi moisture Flora"
    illuminance:
      name: "mi llluminance Flora"
    conductivity:
      name: "mi conductivity Flora"
#    battery_level:
#      name: "mi battery Flora"
  - platform: xiaomi_lywsd03mmc
    mac_address: "XX:XX:XX:XX:BC:3F"
    bindkey: "xxxxxx"
    temperature:
      name: "mi temperature czujnik gabinet"
      accuracy_decimals: 0
      force_update: true
    humidity:
      name: "mi humidity czujnik gabinet"
    battery_level:
      name: "mi battery czujnik gabinet"

Pozostałe czujniki oczywiście analogiocznie.

@zaawii A nie wiem, jakoś tak sformułowałeś posta, że byłem przekonany, że nie używasz ESP :stuck_out_tongue_winking_eye:

Używam różnych kombinacji, ale akurat tylko 1 czujnik LYWSD03MMC za pośrednictwem ESP i jest on (jak dotąd) na fabrycznym firmware - nie zauważyłem różnic w raportowaniu (w obecnej chwili mam go równocześnie w zasięgu bezpośrednim i przez ESP - wykres zielony i żółto-zileony) oba czujniki są w pokojach, gdzie parametry się zmieniają się bardzo powoli) - czasem faktycznie raportuje bardzo rzadko, ale za pośrednictwem ESP jest niemal dokładnie tak samo często jak w integracji ble_monitor (wykresy praktycznie się pokrywają dlatego widać w zasadzie 2 linie, a nie 3)

Z alternatywnym firmware (od atc1441) mam za to w środowisku “szybkozmiennym”, więc trudno porównywać (ale moim zdaniem raportują sporo częściej - jednak zwróć uwagę na to, że na zewnątrz parametry zmieniają się znacznie agresywniej)

Jakkolwiek jestem już przekonany do zmiany firmware we wszystkich pozostałych LYWSD03MMC (tylko lenistwo mnie powstrzymało, bo to wymaga też trochę zmian w konfiguracji HA)

Właściwie bramkę na ESP odpaliłem dla czujników MiFlora i zegarka LYWSD02 (bo z nimi miałem problem dotyczący zasięgu).

U mnie to wygląda tak:

I oczywiście nie jest tak, że temperatura przez ten czas się nie zmienia.
Dziś wywaliłem wszystkie czujniki z aplikacji Xiaomi. Zobaczę czy to coś da.

Ja nie mam powyższego wpisu, u mnie jest tak:

esp32_ble_tracker:

sensor:

  • platform: xiaomi_lywsd03mmc
    mac_address: “xx:xx:xx:xx:xx”
    bindkey: “12345678934567845678”
    temperature:
    name: “Czujnik Serwerownia Temperatura”
    humidity:
    name: “Czujnik Serwerownia Wilgotność”
    battery_level:
    name: “Czujnik Serwerownia Bateria”

W aplikacji mam i to wcale nie przeszkadza.

Obrazek z innej instalacji (fabryczny firmware i bez użycia ESP, ale akurat świetnie widać, że jeśli warunki się nie zmieniają to raporty są rzadko) chociaż w twoim przypadku zastanawiam się czy ble-tracker z niestandardowymi ustawieniami nie ma jakiegoś wpływu na komunikację?

@szopen - wielkie dzięki za podesłanie custom romów do LYWSD03MMC. Wczoraj zmodowałem jeden czujnik i jak na razie jestem mega zadowolony.
Zyskujemy:

  • możliwość ustawiania czasów raportowania (10 sek, 1 min, 5 minut lub 10 minut)
  • możliwość kalibrowania wskazań temperatury i wilgotności
  • sterowanie tym co ba być widoczne na wyświetlaczu (ikona baterii, buźka itp)
  • brak konieczności używania bindkey !!
  • jeśli używamy ich z ESP32 nie musimy niczego zmieniać w konfiguracji.

Wyrywka jest banalnie prosta. Można wrócić do fabrycznego firmwaru. Dla mnie bomba. Po testuje jeszcze dziś i lecę z pozostałymi 6-oma czujnikami.

Korzystałem z tego rozwiązania - GitHub - atc1441/ATC_MiThermometer: Custom firmware for the Xiaomi Thermometer LYWSD03MMC and Telink Flasher via USB to Serial converter
Polecam i w razie pytań służę pomocą.

1 polubienie

@zaawii Oprócz tych wielu plusów jest jeden minus - niekompatybilność z fabryczną aplikacją (co chyba odstrasza szczególonie początkujących).

ALE jest jeszcze jedna kwestia - to jest BLE i o ile sam czujnik zużywa symboliczną ilość energii (można pokopać po datasheet;ach ale nie pamiętam czy je podlinkowałem na jdtechu…) ale no właśnie - każdy raport to jest spory wydatek energetyczny - najwięcej prądu idzie właśnie podczas transmisji czyli raportu (w tej instalacji której wykres widać u góry mam ustawione 10 min + dodatkowe raporty przy szybkich zmianach) i w zasadzie to te 2 czujniki są moim poligonem - jak długo przetrwają ogniowa zasilające.

OFF TOPIC Z tego co kojarzę od niedawna integracja Passive BLE monitor (czyli połączenie bezpośrednie, a nie za pośrednictwem ESP) może korzystać też z danych w natywnym formacie tego firmware (ale nie testowałem - wystarcza mi emulacja formatu fabrycznego bez bindkey’a).