ESPHome
2026.1.5
Loading...
Searching...
No Matches
esphome
components
ble_scanner
ble_scanner.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <cinttypes>
4
#include <cstdio>
5
#include <ctime>
6
7
#include "
esphome/core/component.h
"
8
#include "
esphome/components/esp32_ble_tracker/esp32_ble_tracker.h
"
9
#include "
esphome/components/text_sensor/text_sensor.h
"
10
11
#ifdef USE_ESP32
12
13
namespace
esphome
{
14
namespace
ble_scanner {
15
16
class
BLEScanner
:
public
text_sensor::TextSensor
,
public
esp32_ble_tracker::ESPBTDeviceListener
,
public
Component
{
17
public
:
18
bool
parse_device
(
const
esp32_ble_tracker::ESPBTDevice
&device)
override
{
19
// Format JSON using stack buffer to avoid heap allocations from string concatenation
20
char
buf[128];
21
char
addr_buf[MAC_ADDRESS_PRETTY_BUFFER_SIZE];
22
snprintf(buf,
sizeof
(buf),
"{\"timestamp\":%"
PRId64
",\"address\":\"%s\",\"rssi\":%d,\"name\":\"%s\"}"
,
23
static_cast<
int64_t
>
(::time(
nullptr
)), device.
address_str_to
(addr_buf), device.
get_rssi
(),
24
device.
get_name
().c_str());
25
this->
publish_state
(buf);
26
return
true
;
27
}
28
void
dump_config
()
override
;
29
};
30
31
}
// namespace ble_scanner
32
}
// namespace esphome
33
34
#endif
esphome::Component
Definition
component.h:75
esphome::ble_scanner::BLEScanner
Definition
ble_scanner.h:16
esphome::ble_scanner::BLEScanner::dump_config
void dump_config() override
Definition
ble_scanner.cpp:11
esphome::ble_scanner::BLEScanner::parse_device
bool parse_device(const esp32_ble_tracker::ESPBTDevice &device) override
Definition
ble_scanner.h:18
esphome::esp32_ble_tracker::ESPBTDevice
Definition
esp32_ble_tracker.h:71
esphome::esp32_ble_tracker::ESPBTDevice::address_str_to
const char * address_str_to(std::span< char, MAC_ADDRESS_PRETTY_BUFFER_SIZE > buf) const
Format MAC address into provided buffer, returns pointer to buffer for convenience.
Definition
esp32_ble_tracker.h:78
esphome::esp32_ble_tracker::ESPBTDevice::get_name
const std::string & get_name() const
Definition
esp32_ble_tracker.h:89
esphome::esp32_ble_tracker::ESPBTDevice::get_rssi
int get_rssi() const
Definition
esp32_ble_tracker.h:88
esphome::esp32_ble_tracker::ESPBTDeviceListener
Definition
esp32_ble_tracker.h:136
esphome::text_sensor::TextSensor
Definition
text_sensor.h:25
esphome::text_sensor::TextSensor::publish_state
void publish_state(const std::string &state)
Definition
text_sensor.cpp:28
component.h
esp32_ble_tracker.h
esphome
Providing packet encoding functions for exchanging data with a remote host.
Definition
a01nyub.cpp:7
text_sensor.h
Generated by
1.12.0