[HA Discovery] Fix RMAC discovery of unwanted devices (#1557)
This commit is contained in:
1 parent
9299ee7970
commit
80e00883fb
1 file changed
+6
-1
+6
-1
@@ -482,6 +482,7 @@ void updateDevicesStatus() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void dumpDevices() {
|
void dumpDevices() {
|
||||||
|
# if LOG_LEVEL > 4 // > NOTICE LOG LEVEL
|
||||||
for (vector<BLEdevice*>::iterator it = devices.begin(); it != devices.end(); ++it) {
|
for (vector<BLEdevice*>::iterator it = devices.begin(); it != devices.end(); ++it) {
|
||||||
BLEdevice* p = *it;
|
BLEdevice* p = *it;
|
||||||
Log.trace(F("macAdr %s" CR), p->macAdr);
|
Log.trace(F("macAdr %s" CR), p->macAdr);
|
||||||
@@ -493,6 +494,7 @@ void dumpDevices() {
|
|||||||
Log.trace(F("sensorModel_id %d" CR), p->sensorModel_id);
|
Log.trace(F("sensorModel_id %d" CR), p->sensorModel_id);
|
||||||
Log.trace(F("LastUpdate %u" CR), p->lastUpdate);
|
Log.trace(F("LastUpdate %u" CR), p->lastUpdate);
|
||||||
}
|
}
|
||||||
|
# endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void strupp(char* beg) {
|
void strupp(char* beg) {
|
||||||
@@ -1118,7 +1120,8 @@ void process_bledata(JsonObject& BLEdata) {
|
|||||||
const char* mac = BLEdata["id"].as<const char*>();
|
const char* mac = BLEdata["id"].as<const char*>();
|
||||||
int model_id = BTConfig.extDecoderEnable ? -1 : decoder.decodeBLEJson(BLEdata);
|
int model_id = BTConfig.extDecoderEnable ? -1 : decoder.decodeBLEJson(BLEdata);
|
||||||
int mac_type = BLEdata["mac_type"].as<int>();
|
int mac_type = BLEdata["mac_type"].as<int>();
|
||||||
if (model_id >= 0 && model_id != TheengsDecoder::BLE_ID_NUM::IBEACON && (BLEdata["type"].as<string>()).compare("RMAC") != 0) { // Broadcaster devices, excluding random macs
|
if ((BLEdata["type"].as<string>()).compare("RMAC") != 0 && model_id != TheengsDecoder::BLE_ID_NUM::IBEACON) { // Do not store in memory the random mac devices and iBeacons
|
||||||
|
if (model_id >= 0) { // Broadcaster devices
|
||||||
Log.trace(F("Decoder found device: %s" CR), BLEdata["model_id"].as<const char*>());
|
Log.trace(F("Decoder found device: %s" CR), BLEdata["model_id"].as<const char*>());
|
||||||
if (model_id == TheengsDecoder::BLE_ID_NUM::HHCCJCY01HHCC || model_id == TheengsDecoder::BLE_ID_NUM::BM2) {
|
if (model_id == TheengsDecoder::BLE_ID_NUM::HHCCJCY01HHCC || model_id == TheengsDecoder::BLE_ID_NUM::BM2) {
|
||||||
createOrUpdateDevice(mac, device_flags_connect, model_id, mac_type); // Device that broadcast and can be connected
|
createOrUpdateDevice(mac, device_flags_connect, model_id, mac_type); // Device that broadcast and can be connected
|
||||||
@@ -1172,6 +1175,8 @@ void process_bledata(JsonObject& BLEdata) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Log.trace(F("Random MAC or iBeacon device filtered" CR));
|
||||||
|
}
|
||||||
if (!BTConfig.extDecoderEnable && model_id < 0) {
|
if (!BTConfig.extDecoderEnable && model_id < 0) {
|
||||||
Log.trace(F("No eligible device found " CR));
|
Log.trace(F("No eligible device found " CR));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user