Hide assigned temp probes from scan results

This commit is contained in:
2026-06-05 03:12:09 -06:00
parent 5d8afd2e4a
commit 3f02f6146e
2 changed files with 39 additions and 3 deletions
+38 -2
View File
@@ -52,6 +52,26 @@ bool addressMatches(DeviceAddress address, const String& expected) {
return actual == normalizedExpected;
}
bool isTempAddressAssigned(const String& address) {
if (address.length() == 0) {
return false;
}
String normalizedAddress = address;
normalizedAddress.toUpperCase();
for (int i = 0; i < MAX_TEMP_SENSORS; i++) {
String assigned = appConfig.tempSensors[i].address;
assigned.toUpperCase();
if (assigned == normalizedAddress) {
return true;
}
}
return false;
}
void clearSensorRuntimeData() {
for (int i = 0; i < MAX_TEMP_SENSORS; i++) {
sensors.tempsF[i] = -127.0;
@@ -72,12 +92,28 @@ int scanTempSensors() {
sensorAddressStrings[i] = "";
}
int availableCount = 0;
for (int i = 0; i < sensorCount; i++) {
if (ds18b20.getAddress(sensorAddresses[i], i)) {
sensorAddressStrings[i] = addressToString(sensorAddresses[i]);
DeviceAddress address;
if (!ds18b20.getAddress(address, i)) {
continue;
}
String addressString = addressToString(address);
if (isTempAddressAssigned(addressString)) {
continue;
}
memcpy(sensorAddresses[availableCount], address, 8);
sensorAddressStrings[availableCount] = addressString;
availableCount++;
}
sensorCount = availableCount;
return sensorCount;
}