Fix bug w/ spaced names

This commit is contained in:
DTTerastar 2021-09-30 13:44:15 -04:00
parent 12804483cc
commit 6cf94ccd81
3 changed files with 18 additions and 11 deletions

View File

@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.7.1]
Fix more places slugified room name is needed
## [1.7.0]
- Potientaly breaking: room name is now lower cased, trimmed, and all whitespace replaced with underscores when put into mqtt (#64)

View File

@ -91,11 +91,10 @@ void connectToWifi()
};
Display.connected(true, false);
// Define custom settings saved by WifiSettings
// These will return the default if nothing was set before
room = WiFiSettings.string("room", ESPMAC, "Room");
WiFiSettings.heading("MQTT Connection");
mqttHost = WiFiSettings.string("mqtt_host", DEFAULT_MQTT_HOST, "Server");
mqttPort = WiFiSettings.integer("mqtt_port", DEFAULT_MQTT_PORT, "Port");
mqttUser = WiFiSettings.string("mqtt_user", DEFAULT_MQTT_USER, "Username");
@ -112,6 +111,7 @@ void connectToWifi()
publishDevices = WiFiSettings.checkbox("pub_devices", true, "Send to devices topic");
WiFiSettings.heading("Calibration");
maxDistance = WiFiSettings.floating("max_dist", 0, 100, DEFAULT_MAX_DISTANCE, "Maximum distance to report (in meters)");
forgetMs = WiFiSettings.integer("forget_ms", 0, 3000000, DEFAULT_FORGET_MS, "Forget beacon if not seen for (in miliiseconds)");
skipDistance = WiFiSettings.floating("skip_dist", 0, 10, DEFAULT_SKIP_DISTANCE, "Update mqtt if beacon has moved more than this distance since last report (in meters)");
@ -119,10 +119,11 @@ void connectToWifi()
refRssi = WiFiSettings.integer("ref_rssi", -100, 100, DEFAULT_REF_RSSI, "Rssi expected from a 0dBm transmitter at 1 meter");
WiFiSettings.heading("Additional Sensors");
pirPin = WiFiSettings.integer("pir_pin", 0, "PIR motion pin (0 for disable)");
radarPin = WiFiSettings.integer("radar_pin", 0, "Radar motion pin (0 for disable)");
dht11Pin = WiFiSettings.integer("dht11_pin", 0, "Temperature & humidity Sensor DHT11 (0 for disable)");
dht22Pin = WiFiSettings.integer("dht22_pin", 0, "Temperature & humidity Sensor DHT22 (0 for disable)");
dht11Pin = WiFiSettings.integer("dht11_pin", 0, "DHT11 sensor pin (0 for disable)");
dht22Pin = WiFiSettings.integer("dht22_pin", 0, "DHT22 sensor pin (0 for disable)");
WiFiSettings.hostname = "espresense-" + kebabify(room);
@ -159,7 +160,8 @@ void connectToWifi()
Serial.println(dht22Pin ? "enabled" : "disabled");
localIp = WiFi.localIP().toString();
roomsTopic = CHANNEL + "/rooms/" + slugify(room);
id = slugify(room);
roomsTopic = CHANNEL + "/rooms/" + id;
statusTopic = roomsTopic + "/status";
teleTopic = roomsTopic + "/telemetry";
subTopic = roomsTopic + "/+/set";
@ -242,7 +244,7 @@ bool reportDevice(BleFingerprint *f)
char JSONmessageBuffer[512];
serializeJson(doc, JSONmessageBuffer);
String devicesTopic = CHANNEL + "/devices/" + f->getId() + "/" + room;
String devicesTopic = CHANNEL + "/devices/" + f->getId() + "/" + id;
bool p1 = false, p2 = false;
for (int i = 0; i < 10; i++)

View File

@ -40,6 +40,7 @@ int mqttPort;
String mqttUser;
String mqttPass;
String room;
String id;
String statusTopic;
String teleTopic;
String roomsTopic;
@ -304,7 +305,7 @@ void commonDiscovery(JsonDocument *doc)
bool sendDiscoveryConnectivity()
{
if (!discovery) return true;
String discoveryTopic = "homeassistant/binary_sensor/espresense_" + room + "/connectivity/config";
String discoveryTopic = "homeassistant/binary_sensor/espresense_" + id + "/connectivity/config";
DynamicJsonDocument doc(1200);
char buffer[1200];
@ -337,7 +338,7 @@ bool sendDiscoveryMotion()
if (!discovery) return true;
if (!pirPin && !radarPin) return true;
String discoveryTopic = "homeassistant/binary_sensor/espresense_" + room + "/motion/config";
String discoveryTopic = "homeassistant/binary_sensor/espresense_" + id + "/motion/config";
DynamicJsonDocument doc(1200);
char buffer[1200];
@ -366,7 +367,7 @@ bool sendDiscoveryTemperature()
if (!discovery) return true;
if (!dht11Pin && !dht22Pin) return true;
String discoveryTopic = "homeassistant/sensor/espresense_" + room + "/temperature/config";
String discoveryTopic = "homeassistant/sensor/espresense_" + id + "/temperature/config";
DynamicJsonDocument doc(1200);
char buffer[1200];
@ -396,7 +397,7 @@ bool sendDiscoveryHumidity()
if (!discovery) return true;
if (!dht11Pin && !dht22Pin) return true;
String discoveryTopic = "homeassistant/sensor/espresense_" + room + "/humidity/config";
String discoveryTopic = "homeassistant/sensor/espresense_" + id + "/humidity/config";
DynamicJsonDocument doc(1200);
char buffer[1200];
@ -423,7 +424,7 @@ bool sendDiscoveryHumidity()
bool sendDiscoveryMaxDistance()
{
if (!discovery) return true;
String discoveryTopic = "homeassistant/number/espresense_" + room + "/max_distance/config";
String discoveryTopic = "homeassistant/number/espresense_" + id + "/max_distance/config";
DynamicJsonDocument doc(1200);
char buffer[1200];