diff --git a/docs/use/ble.md b/docs/use/ble.md index f89a4ca..fa541cf 100644 --- a/docs/use/ble.md +++ b/docs/use/ble.md @@ -124,8 +124,6 @@ A white list is a list of MAC addresses permitted to be published by OMG to set white list `mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{"white-list":["01:23:14:55:16:15","4C:65:77:88:9C:79","4C:65:A6:66:3C:79"]}'` -Note: if you want to filter (white or black list) on BLE sensors that are auto discovered, you need to wait for the discovery before applying the white or black list, or temporarily disable it: - to temporarily disable white/black list `mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoBT/config -m '{"ignoreWBlist":true}'` diff --git a/main/ZgatewayBT.ino b/main/ZgatewayBT.ino index 6317482..77a286d 100644 --- a/main/ZgatewayBT.ino +++ b/main/ZgatewayBT.ino @@ -388,10 +388,16 @@ void createOrUpdateDevice(const char* mac, uint8_t flags, int model, int mac_typ device->connect = true; } - if (model != UNKWNON_MODEL) { + if (model != UNKWNON_MODEL && device->sensorModel_id == UNKWNON_MODEL) { + newDevices++; + device->isDisc = false; device->sensorModel_id = model; } + // If a device has been added to the white-list, flag it so it can be auto-detected + if (!device->isWhtL && flags & device_flags_isWhiteL) { + newDevices++; + } if (flags & device_flags_isWhiteL || flags & device_flags_isBlackL) { device->isWhtL = flags & device_flags_isWhiteL; device->isBlkL = flags & device_flags_isBlackL;