Próbuje uruchomić tracking telefonu (dokładniej pomiar odlełości/dystansu) z wykorzystaniem ESPHome.
Mam przy domu furtkę z elektrozaczepem otwieraną z domu, chcę ją trochę unowocześnieć z wykorzystaniem ESPHome.
Plan jest taki, aby po podejściu na zdefiniowaną odległość furtka (elektrozaczep) się otwierała.
Mam zainstalowaną najnowszą wersję aplikacji Home Assistant (2023.9.2) na Huawei P20, w ustawieniach aktywowałem BLE transmitter.
W ESP Home mam następującą konfigurację:
Po aktywacji sensora, od razu w HA wykryło mi integrację iBeacon Tracker, niestety nie widzę w niej żadnych urządzeń.
Czy ktoś z forumowiczów używał telefonu/zegarka/iBeacon’a do otwoerania furtki na podstawie odległości urządzania od ESP Home? Całość działa stabilnie?
W jaki sposób skonfigurować ESPHome, telefon i aplikację aby całość działała i abym mógł otwierać furtkę po podejściu z telefonem.
Natomiast ESPHome ma sensor RSSI (ESP32 Bluetooth Low Energy RSSI Sensor — ESPHome) zakładałem, że mogę go wykorzystać.
Problemem jest natomiast wykrycie samego telefonu, co bym nie robił, to w logach nie widzę telefonu (a aplikacja HA i sensory są włączone)
Tak na androidzie, chyba ostatni model Huawei który go miał na pokładzie.
Potwierdzam, że mam włączony Nadajnik BLE.
ESPresence wykrył telefon i niby działa wykrywanie dystansu, ale odświeżanie jest bardzo wolne. Nie wyobrażam sobie sytuacji, gdzie podchodzę pod furtkę i muszę czekać 20 sekund a się otworzy.
Zastanawiam się dlaczego ESP Home nie chce mi złapać telefonu
Jeśli się tym bardziej pobawię to dam znać, póki co czasu brak (i zawsze mi szkoda baterii w telefonie na takie gadżety).
Mam 2 proxy na bazie ESPHome i jednak nie wykryło mi telefonu, więc nie jesteś sam
edit: zajrzałem w dokumentację i do działania potrzeba jeszcze czegoś takiego w ESPHome
binary_sensor:
# Presence based on iBeacon UUID
- platform: ble_presence
ibeacon_uuid: '68586f1e-89c2-11eb-8dcd-0242ac130003'
# powyżej to jest UUID ustawiany w aplikacji (pewnie będziesz miał automatycznie wygenerowany jakiś inny)
name: "ESP32 BLE Tracker Test Service iBeacon"
Dzięki za sprawdzenie Czyli to nie tylko mój problem.
Nie potrzebuję wideo domofonu czy domofonu, do otwierania furtki i tak będę wykorzystywał ESPHome (dwa wejścia + przekaźnik), więc otwieranie przez bluetooth to opcja, jednak chciałem sprawdzić jak całość się zachowa zanim cokolwiek zamontuję i rozpocznę “test żony”
/data/cache/platformio/packages/toolchain-riscv32-esp/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/esphome-web-25bf30/src/esphome/core/controller.o: in function `esphome::Controller::setup_controller(bool)':
/data/build/esphome-web-25bf30/src/esphome/core/controller.cpp:11: undefined reference to `esphome::binary_sensor::BinarySensor::add_on_state_callback(std::function<void (bool)>&&)'
/data/cache/platformio/packages/toolchain-riscv32-esp/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/esphome-web-25bf30/src/main.o: in function `esphome::preferences::IntervalSyncer::IntervalSyncer()':
/data/build/esphome-web-25bf30/src/esphome/components/preferences/syncer.h:9: undefined reference to `esphome::binary_sensor::BinarySensor::BinarySensor()'
/data/cache/platformio/packages/toolchain-riscv32-esp/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/esphome-web-25bf30/src/main.o: in function `setup()':
/data/build/esphome-web-25bf30/src/main.cpp:144: undefined reference to `vtable for esphome::ble_presence::BLEPresenceDevice'
/data/cache/platformio/packages/toolchain-riscv32-esp/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: /data/build/esphome-web-25bf30/src/main.cpp:144: undefined reference to `vtable for esphome::ble_presence::BLEPresenceDevice'
/data/cache/platformio/packages/toolchain-riscv32-esp/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/esphome-web-25bf30/src/main.o: in function `esphome::Component::set_component_source(char const*)':
/data/build/esphome-web-25bf30/src/esphome/core/component.h:148: undefined reference to `vtable for esphome::ble_presence::BLEPresenceDevice'
/data/cache/platformio/packages/toolchain-riscv32-esp/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: /data/build/esphome-web-25bf30/src/esphome/core/component.h:148: undefined reference to `vtable for esphome::ble_presence::BLEPresenceDevice'
/data/cache/platformio/packages/toolchain-riscv32-esp/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/esphome-web-25bf30/src/main.o: in function `esphome::Component::Component()':
/data/build/esphome-web-25bf30/src/esphome/core/component.h:67: undefined reference to `vtable for esphome::ble_presence::BLEPresenceDevice'
/data/cache/platformio/packages/toolchain-riscv32-esp/bin/../lib/gcc/riscv32-esp-elf/8.4.0/../../../../riscv32-esp-elf/bin/ld: .pioenvs/esphome-web-25bf30/src/main.o:/data/build/esphome-web-25bf30/src/esphome/components/preferences/syncer.h:11: more undefined references to `vtable for esphome::ble_presence::BLEPresenceDevice' follow
collect2: error: ld returned 1 exit status
*** [.pioenvs/esphome-web-25bf30/firmware.elf] Error 1
========================= [FAILED] Took 51.11 seconds =========================
Poniżej moja konfiguracja:
esphome:
name: esphome-web-25bf30
friendly_name: BTProxy
platformio_options:
board_build.mcu: esp32c3
board_build.variant: esp32c3
esp32:
board: esp32-c3-devkitm-1
framework:
type: esp-idf
sdkconfig_options:
CONFIG_BT_BLE_50_FEATURES_SUPPORTED: y
CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y
CONFIG_ESP_TASK_WDT_TIMEOUT_S: "10"
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "XXX"
ota:
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ap:
ssid: "Esphome-Web-25Bf30"
password: "XXX"
esp32_ble_tracker:
scan_parameters:
active: false
bluetooth_proxy:
active: false
binary_sensor:
- platform: ble_presence
ibeacon_uuid: '68586f1e-89c2-11eb-8dcd-0242ac130003'
name: "ESP32 BLE Tracker Test Service iBeacon"
Używam ESP-IDF, może dlatego.
W aplikacji mam dwie wartości, id i UUID. ESPresence używa id, a co mam wpisać tu? an pewno UUID? Ruszyło u Ciebie?
Zacznij od clean build files, bo to błąd linkera, więc pewnie w cache masz jakieś stare wersje komponentów, jeśli używasz ESPHome we wrześniowym wydaniu to zaktualizuj do 2023.9.1
Jak widać nie działa zbyt rewelacyjnie, bo się nie ruszałem z chaty.
w tej linijce masz podać UUID taki jaki masz w aplikacji w ustawieniach (nigdy nie używaj przykładowych identyfikatorów znalezionych w sieci, zawsze ustaw własne)
PS masz płytkę ESP32-C3 a nie ESP32?
nie wiedziałem, że na C3 jest już działający bluetooth, a jest?
Dlatego wymagany jest UUID (tzn. nie wiem jak w tym projekcie, ale to jest zachowanie normalne i ESPHome umożliwia wykorzystanie UUID zamiast MACa), ukrywanie MAC-adresu można wyłączyć w odniesieniu do karty WiFi to może i można wyłączyć w przypadku BLE?