From 4e0a39d77cf76595555fcb249987b20c5b4dab08 Mon Sep 17 00:00:00 2001 From: Alex Young Date: Sat, 14 May 2022 16:57:42 +0100 Subject: [PATCH] Add support for `nut` type tags (#470) This patch adds support for tags which all report themselves as having the same identifier: `name:nut`, but do all have distinct unchanging MAC addresses. The patch changes the reported ID to be `nut:`. --- lib/BleFingerprint/BleFingerprint.cpp | 6 ++++++ lib/BleFingerprint/BleFingerprint.h | 1 + lib/BleFingerprint/rssi.h | 2 ++ lib/BleFingerprint/util.h | 2 ++ 4 files changed, 11 insertions(+) diff --git a/lib/BleFingerprint/BleFingerprint.cpp b/lib/BleFingerprint/BleFingerprint.cpp index fa3dcc5..2f640c7 100644 --- a/lib/BleFingerprint/BleFingerprint.cpp +++ b/lib/BleFingerprint/BleFingerprint.cpp @@ -158,6 +158,12 @@ void BleFingerprint::fingerprintServiceAdvertisements(NimBLEAdvertisedDevice *ad setId("meater:" + getMac(), ID_TYPE_MEATER); return; } + else if (uuid == nutUUID) + { + asRssi = BleFingerprintCollection::refRssi + (haveTxPower ? txPower : NUT_TX); + setId("nut:" + getMac(), ID_TYPE_NUT); + return; + } } String fingerprint = "ad:"; diff --git a/lib/BleFingerprint/BleFingerprint.h b/lib/BleFingerprint/BleFingerprint.h index 4c4ba53..496475e 100644 --- a/lib/BleFingerprint/BleFingerprint.h +++ b/lib/BleFingerprint/BleFingerprint.h @@ -44,6 +44,7 @@ #define ID_TYPE_IBEACON short(175) #define ID_TYPE_RM_ASST short(180) #define ID_TYPE_KNOWN_MAC short(185) +#define ID_TYPE_NUT short(190) class BleFingerprintCollection; diff --git a/lib/BleFingerprint/rssi.h b/lib/BleFingerprint/rssi.h index 5ff8440..8a4ac03 100644 --- a/lib/BleFingerprint/rssi.h +++ b/lib/BleFingerprint/rssi.h @@ -12,5 +12,7 @@ #define EXPOSURE_TX (-12) #define ITAG_TX (-10) +#define NUT_TX (-12) + #define EDDYSTONE_ADD_1M (-41) #endif diff --git a/lib/BleFingerprint/util.h b/lib/BleFingerprint/util.h index 690eeb8..3b24ca1 100644 --- a/lib/BleFingerprint/util.h +++ b/lib/BleFingerprint/util.h @@ -14,6 +14,8 @@ static BLEUUID miThermUUID(uint16_t(0x181A)); static BLEUUID trackrUUID((uint16_t)0x0F3E); static BLEUUID vanmoofUUID(0x6acc5540, 0xe631, 0x4069, 0x944db8ca7598ad50); +static BLEUUID nutUUID((uint16_t)0x1803); + static BLEUUID fitbitUUID(0xadabfb00, 0x6e7d, 0x4601, 0xbda2bffaa68956ba); static BLEUUID roomAssistantService(0x5403c8a7, 0x5c96, 0x47e9, 0x9ab859e373d875a7);