wip
This commit is contained in:
@@ -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]))
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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_;
|
||||
|
||||
|
Reference in New Issue
Block a user