diff --git a/lib/BleFingerprint/BleFingerprint.cpp b/lib/BleFingerprint/BleFingerprint.cpp index 0886b1f..8577a0c 100644 --- a/lib/BleFingerprint/BleFingerprint.cpp +++ b/lib/BleFingerprint/BleFingerprint.cpp @@ -175,7 +175,7 @@ void BleFingerprint::setInitial(int initalRssi, float initalDistance) hasValue = filter() || filter(); } -bool BleFingerprint::report(JsonDocument *doc, int maxDistance) +bool BleFingerprint::report(JsonDocument *doc, float maxDistance) { if (pid.isEmpty() && sid.isEmpty() && !macPublic) return false; diff --git a/lib/BleFingerprint/BleFingerprint.h b/lib/BleFingerprint/BleFingerprint.h index ef41cbd..50f7192 100644 --- a/lib/BleFingerprint/BleFingerprint.h +++ b/lib/BleFingerprint/BleFingerprint.h @@ -38,7 +38,7 @@ public: BleFingerprint(BLEAdvertisedDevice *advertisedDevice, float fcmin, float beta, float dcutoff); void seen(BLEAdvertisedDevice *advertisedDevice); - bool report(JsonDocument *doc, int maxDistance); + bool report(JsonDocument *doc, float maxDistance); String getId() { diff --git a/src/main.cpp b/src/main.cpp index 2c1ad3b..b37dd06 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -94,7 +94,7 @@ void connectToWifi() // Define custom settings saved by WifiSettings // These will return the default if nothing was set before room = WiFiSettings.string("room", ESPMAC, "Room"); - maxDistance = WiFiSettings.integer("max_dist", DEFAULT_MAX_DISTANCE, "Maximum distance to report (in meters)"); + maxDistance = WiFiSettings.floating("max_dist", 0, 100, DEFAULT_MAX_DISTANCE, "Maximum distance to report (in meters)"); WiFiSettings.heading("MQTT Connection"); mqttHost = WiFiSettings.string("mqtt_host", DEFAULT_MQTT_HOST, "Server"); @@ -131,7 +131,7 @@ void connectToWifi() Serial.println(WiFi.getHostname()); Serial.print("Room: "); Serial.println(room); - Serial.printf("Max Distance: %d\n", maxDistance); + Serial.printf("Max Distance: %.2f\n", maxDistance); Serial.print("Telemetry: "); Serial.println(publishTele ? "enabled" : "disabled"); Serial.print("Rooms: "); @@ -178,7 +178,7 @@ void onMqttMessage(char *topic, char *payload, AsyncMqttClientMessageProperties String pay = String(new_payload); if (top == roomsTopic + "/max_distance/set") { - maxDistance = pay.toInt(); + maxDistance = pay.toFloat(); spurt("/max_dist", pay); } } diff --git a/src/main.h b/src/main.h index 4f943f4..f6c3870 100644 --- a/src/main.h +++ b/src/main.h @@ -46,7 +46,7 @@ bool activeScan; bool publishTele; bool publishRooms; bool publishDevices; -int maxDistance; +float maxDistance; int pirPin; int radarPin; @@ -341,6 +341,7 @@ bool sendDiscoveryMaxDistance() doc["availability_topic"] = "~/status"; doc["stat_t"] = "~/max_distance"; doc["cmd_t"] = "~/max_distance/set"; + doc["step"] = "0.01"; commonDiscovery(&doc); serializeJson(doc, buffer);