Configurare receptor BLE

   1. Tasmota

Documentația este disponibilă aici: https://tasmota.github.io/docs/

Modulul este programat cu Tasmota BLE, la pornire (atâta timp cât nu este configurată o rețea WIFI, sau dacă nu se poate conecta la rețeaua WIFI configurată anterior) creează o rețea WIFI cu numele Tasmota_xxxx la care trebuie sa ne conectăm.

După conectare (cu un telefon, laptop, etc.) ne direcționează automat către pagina de configurare a rețelei WIFI locale. Alegem rețeaua dorită și introducem parola.

Modulul afișează pentru scurt timp adresa IP primită apoi se resetează. Dupa 10-20 secunde ne putem conecta la adresa IP afișată mai devreme.


Meniul principal Tasmota arată așa:

meniu principal Tasmota


Accesăm opțiunea Configuration și ni se afișează următorul meniu:

meniu configurare Tasmota


Accesăm meniul Configure BLE și activăm opțiunea Enable Bluetooth.

meniu configurare BLE


Devices Seen vor fi afișate ulterior, pe măsură ce va recepționa mesajele BLE. Am ascuns parțial adresa MAC a dispozitivelor găsite în imagine.


Mergem înapoi la meniul Configuration și apoi la meniul Configure Other

Alegem un nume la Device Name și la Friendly Name, de exemplu "BLE living" și salvăm.

meniu configurare other


Ne întoarcem la meniul principal și intrăm pe Console.

meniu consolă Tasmota


Introducem următoarele comenzi, pe rând, apoi apăsăm tasta Enter:


Configurăm ora locală și momentul schimbării între ora de vară și ora de iarnă

Backlog0 Timezone 99; TimeStd 0,0,10,1,4,120; TimeDst 0,0,3,1,3,180


Implementăm o regulă ce va fi rulată la fiecare pornire Tasmota:

rule1 on system#boot do backlog mi32option0 0; mi32option1 1; mi32option2 1; mi32option5 0; mi32option6 1 endon


Activăm regula pentru a fi executată automat

rule1 1


Ne întoarcem la meniul principal și ar trebui sa apară afisați primii senzori descoperiți, dacă nu sunt afișați executăm un Restart. (ultimii 3 bytes / 6 caractere din adresa MAC au fost îndepărtați)

meniu principal Tasmota cu senzori



Acum putem accesa meniul Configuration > Configure MQTT

configurare MQTT


Am ales ca server MQTT adresa IP 192.168.1.100 unde este deja instalat serverul MQTT.
Portul a rămas 1883, cel standard, deoarece conexiunea se realizează în rețeaua internă.
Numele clientului a rămas cel standard deoarece trebuie să fie unic la fiecare dispozitiv ce se conectează prin MQTT. DVES_%06X înseamnă că acesta va fi DVES_ urmat 3 bytes unici din adresa MAC a modulului ESP.
La User și password introducem ce am configurat în serverul MQTT.
Noi preferăm topic unic sau pe funcții așa că modulele nostre transmit pe ble/loc informațiile. Mai avem configurați și ble/hol , ble/etaj deci topicul va fi living în acest caz iar comunicarea se va face prin ble/living/... cu acest modul.

Partea bună este că recepția tuturor mesajelor BLE are loc pe topicul ble/tasmota_ble/tele/ATCxxxxxx și pot fi mai ușor repartizați pe încăperi din Node Red sau utilizați direct ca atare întrucât sunt toți la un loc.



2. Home Assistant (ESPHome)


adăugare dispozitiv în ESPHome / Home Assistant

În Home Assistant navigăm la ESPHome (iconița albastră pe bara din stânga) și apăsăm pe butonul verde NEW DEVICE.

denumire receptor BLE

Ne apare meniul pentru un dispozitiv nou și îi dăm un nume, de exemplu BLE living apoi apăsăm NEXT

programare initiala dispozitiv


Alegem SKIP THIS STEP

alegem dispozitivul ESP32


Rămâne bifat Use recommended settings și alegem ESP32 ca dispozitiv

configuratia a fost realizata


Suntem anunțați că este gata configurarea inițială, ni se afișează și cheia de criptare API Home Assistant. Alegem SKIP.

dispozitivul apare in lista ESPHome


Dispozitivul apare acum în meniul ESPHome, alegem EDIT și modificăm fișierul după cum urmează:

esphome:
  name: ble-living
  friendly_name: BLE living

esp32:
  board: esp32dev
  framework:
    type: esp-idf # <- atentie, aici se modifica din arduino în esp-idf !

# Enable logging
logger:
  baud_rate: 0 # <- aceasta linie se adauga pentru a opri logarea pe portul serial, consuma prea multe resurse de timp

# Enable Home Assistant API
api:
  encryption:
    key: "lkj523l609dsgflkj2l5kj0s90525jlkjgs0d9t0435=" # <- aici lasam codul din ESPHome, nu modificam, cheia din stanga este doar un exemplu

ota:
  - platform: esphome
    password: "938kk5jh34k5jh34kj5h3k4jh5k34jh5" # <- si aici lasam codul din ESPHome, nu modificam, cheia din stanga este doar un exemplu

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Ble-Living Fallback Hotspot"
    password: "IX2l34kj23lT" # <- si aici lasam codul initial din ESPHome, cheia din stanga este doar un exemplu

captive_portal:

# DOAR DE AICI IN JOS ADAUGAM!

esp32_ble_tracker:
  scan_parameters: 
    active: True

bluetooth_proxy:
  active: True

sensor:
  - platform: pvvx_mithermometer
    mac_address: a4:c1:38:xx:xx:xx # aici adaugam ultimii 3 bytes din adresa MAC a senzorului nostru
    temperature:
      name: "Living temperatură"
    humidity:
      name: "Living umiditate"
    battery_level:
      name: "Living baterie"
    battery_voltage:
      name: "Living tensiune baterie"
    signal_strength:
      name: "Living semnal"


Apăsăm acum pe SAVE și INSTALL.

editare completa, apasam SAVE si INSTALL


Pentru că trebuie să transmitem fișierul de update la Tasmota alegem Manual download, altfel pe viitor alegem Wirelessly.

meniu update ESPHome


Alegem OTA format (Previously Legacy) și salvăm fișierul local.

salvam fisierul de update in format OTA


Navigăm la adresa IP a dispozitivului Tasmota (vezi mai sus) și alegem Firmware Upgrade din meniu.

meniu principal Tasmota


Apăsăm Choose File, alegem fisierul descărcat mai devreme (ble-living.ota.bin și apoi apăsăm Start upgrade.

upgrade Tasmota la ESPHome Home Assistant


Modulul își face update, repornește și apare ONLINE în pagina ESPHome din Home Assistant. De asemenea veți avea disponibile și datele de la senzorii Xiaomi configurați:

senzor Xiaomi afisat in Home Assistant