This commit is contained in:
2023-12-02 21:31:39 +03:00
parent 506b6f905a
commit 121ca8f453
7 changed files with 17 additions and 119 deletions

View File

@@ -111,4 +111,4 @@ async def device_listener_to_code(var, config):
if CONF_IRK in config:
cg.add(var.set_irk(config[CONF_IRK]))
if CONF_MAC in config:
cg.add(var.set_irk(config[CONF_MAC]))
cg.add(var.set_address(config[CONF_MAC]))

View File

@@ -26,6 +26,8 @@ namespace esphome
bool NimbleDeviceListener::parse_event(NimbleTrackerEvent *tracker_event)
{
// ESP_LOGD(TAG, "Found device %s", tracker_event->toString().c_str());
ESP_LOGD(TAG, "%d", this->match_by_);
if (this->match_by_ == MATCH_BY_IRK) {
if (tracker_event->getAddressType() != BLE_ADDR_RANDOM)
{
@@ -44,15 +46,19 @@ namespace esphome
{
return false;
}
} else if (this->match_by_ == MATCH_BY_ADDRESS) {
auto address = tracker_event->getAddress();
}
if (this->match_by_ == MATCH_BY_ADDRESS) {
ESP_LOGD(TAG, "Found device %s", tracker_event->toString().c_str());
auto address = tracker_event->getAddress().toString();
if (this.address_ == address) {
if (this->address_ == address) {
return this->update_state(tracker_event);
} else {
return false;
}
}
return false;
};
} // namespace nimble_tracker

View File

@@ -14,7 +14,7 @@ namespace esphome
public:
bool parse_event(NimbleTrackerEvent *tracker_event);
void set_irk(std::string irk_hex);
void set_address(std::stding address);
void set_address(std::string address);
protected:
virtual bool update_state(NimbleTrackerEvent *tracker_event) = 0;
@@ -22,7 +22,7 @@ namespace esphome
enum MatchType
{
MATCH_BY_IRK,
MATCH_BY_ADDRESS;
MATCH_BY_ADDRESS,
};
MatchType match_by_;