remove door sensor discovery topic when no door sensor preent
This commit is contained in:
26
Network.cpp
26
Network.cpp
@@ -996,6 +996,27 @@ void Network::publishHassTopic(const String& mqttDeviceType,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Network::removeHassTopic(const String& mqttDeviceType, const String& mattDeviceName, const String& uidString)
|
||||||
|
{
|
||||||
|
String discoveryTopic = _preferences->getString(preference_mqtt_hass_discovery);
|
||||||
|
|
||||||
|
if (discoveryTopic != "")
|
||||||
|
{
|
||||||
|
String path = discoveryTopic;
|
||||||
|
path.concat("/");
|
||||||
|
path.concat(mqttDeviceType);
|
||||||
|
path.concat("/");
|
||||||
|
path.concat(uidString);
|
||||||
|
path.concat("/");
|
||||||
|
path.concat(mattDeviceName);
|
||||||
|
path.concat("/config");
|
||||||
|
|
||||||
|
_device->mqttPublish(path.c_str(), MQTT_QOS_LEVEL, true, "");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Network::removeHASSConfig(char* uidString)
|
void Network::removeHASSConfig(char* uidString)
|
||||||
{
|
{
|
||||||
String discoveryTopic = _preferences->getString(preference_mqtt_hass_discovery);
|
String discoveryTopic = _preferences->getString(preference_mqtt_hass_discovery);
|
||||||
@@ -1058,6 +1079,11 @@ void Network::removeHASSConfig(char* uidString)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Network::removeHASSConfigDoorSensor(char *deviceType, const char *baseTopic, char *name, char *uidString)
|
||||||
|
{
|
||||||
|
removeHassTopic("binary_sensor", "door_sensor", uidString);
|
||||||
|
}
|
||||||
|
|
||||||
void Network::publishPresenceDetection(char *csv)
|
void Network::publishPresenceDetection(char *csv)
|
||||||
{
|
{
|
||||||
_presenceCsv = csv;
|
_presenceCsv = csv;
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ public:
|
|||||||
void publishHASSWifiRssiConfig(char* deviceType, const char* baseTopic, char* name, char* uidString);
|
void publishHASSWifiRssiConfig(char* deviceType, const char* baseTopic, char* name, char* uidString);
|
||||||
void publishHASSBleRssiConfig(char* deviceType, const char* baseTopic, char* name, char* uidString);
|
void publishHASSBleRssiConfig(char* deviceType, const char* baseTopic, char* name, char* uidString);
|
||||||
void removeHASSConfig(char* uidString);
|
void removeHASSConfig(char* uidString);
|
||||||
|
void removeHASSConfigDoorSensor(char* deviceType, const char* baseTopic, char* name, char* uidString);
|
||||||
|
|
||||||
void clearWifiFallback();
|
void clearWifiFallback();
|
||||||
|
|
||||||
@@ -87,6 +88,8 @@ private:
|
|||||||
std::vector<std::pair<char*, char*>> additionalEntries = {}
|
std::vector<std::pair<char*, char*>> additionalEntries = {}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
void removeHassTopic(const String& mqttDeviceType, const String& mattDeviceName, const String& uidString);
|
||||||
|
|
||||||
void onMqttConnect(const bool& sessionPresent);
|
void onMqttConnect(const bool& sessionPresent);
|
||||||
void onMqttDisconnect(const espMqttClientTypes::DisconnectReason& reason);
|
void onMqttDisconnect(const espMqttClientTypes::DisconnectReason& reason);
|
||||||
|
|
||||||
|
|||||||
@@ -525,6 +525,10 @@ void NetworkLock::publishHASSConfig(char *deviceType, const char *baseTopic, cha
|
|||||||
{
|
{
|
||||||
_network->publishHASSConfigDoorSensor(deviceType, baseTopic, name, uidString, lockAction, unlockAction, openAction, lockedState, unlockedState);
|
_network->publishHASSConfigDoorSensor(deviceType, baseTopic, name, uidString, lockAction, unlockAction, openAction, lockedState, unlockedState);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_network->removeHASSConfigDoorSensor(deviceType, baseTopic, name, uidString);
|
||||||
|
}
|
||||||
_network->publishHASSWifiRssiConfig(deviceType, baseTopic, name, uidString);
|
_network->publishHASSWifiRssiConfig(deviceType, baseTopic, name, uidString);
|
||||||
_network->publishHASSBleRssiConfig(deviceType, baseTopic, name, uidString);
|
_network->publishHASSBleRssiConfig(deviceType, baseTopic, name, uidString);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user