Update radon_eye_listener.cpp for more possible variants (#7567)

This commit is contained in:
baldisos 2024-10-09 03:33:50 +02:00 committed by GitHub
parent 6139b933c5
commit 9211aad524
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,7 @@
#include "radon_eye_listener.h"
#include "esphome/core/log.h"
#include <algorithm>
#include <vector>
#ifdef USE_ESP32
@ -10,9 +12,14 @@ static const char *const TAG = "radon_eye_ble";
bool RadonEyeListener::parse_device(const esp32_ble_tracker::ESPBTDevice &device) {
if (not device.get_name().empty()) {
if (device.get_name().rfind("FR:R", 0) == 0) {
// This is an RD200, I think
ESP_LOGD(TAG, "Found Radon Eye RD200 device Name: %s (MAC: %s)", device.get_name().c_str(),
// Vector containing the prefixes to search for
std::vector<std::string> prefixes = {"FR:R", "FR:I", "FR:H"};
// Check if the device name starts with any of the prefixes
if (std::any_of(prefixes.begin(), prefixes.end(),
[&](const std::string &prefix) { return device.get_name().rfind(prefix, 0) == 0; })) {
// Device found
ESP_LOGD(TAG, "Found Radon Eye device Name: %s (MAC: %s)", device.get_name().c_str(),
device.address_str().c_str());
}
}