fix LWT, add discovery for LWT
This commit is contained in:
2
Config.h
2
Config.h
@@ -1,6 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define NUKI_HUB_VERSION "8.20"
|
#define NUKI_HUB_VERSION "8.21-pre-2"
|
||||||
|
|
||||||
#define MQTT_QOS_LEVEL 1
|
#define MQTT_QOS_LEVEL 1
|
||||||
#define MQTT_CLEAN_SESSIONS false
|
#define MQTT_CLEAN_SESSIONS false
|
||||||
|
|||||||
31
Network.cpp
31
Network.cpp
@@ -23,12 +23,21 @@ Network::Network(Preferences *preferences, const String& maintenancePathPrefix,
|
|||||||
_hostname = _preferences->getString(preference_hostname);
|
_hostname = _preferences->getString(preference_hostname);
|
||||||
|
|
||||||
memset(_maintenancePathPrefix, 0, sizeof(_maintenancePathPrefix));
|
memset(_maintenancePathPrefix, 0, sizeof(_maintenancePathPrefix));
|
||||||
|
|
||||||
size_t len = maintenancePathPrefix.length();
|
size_t len = maintenancePathPrefix.length();
|
||||||
for(int i=0; i < len; i++)
|
for(int i=0; i < len; i++)
|
||||||
{
|
{
|
||||||
_maintenancePathPrefix[i] = maintenancePathPrefix.charAt(i);
|
_maintenancePathPrefix[i] = maintenancePathPrefix.charAt(i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String connectionStateTopic = _preferences->getString(preference_mqtt_lock_path) + mqtt_topic_mqtt_connection_state;
|
||||||
|
|
||||||
|
memset(_mqttConnectionStateTopic, 0, sizeof(_mqttConnectionStateTopic));
|
||||||
|
len = connectionStateTopic.length();
|
||||||
|
for(int i=0; i < len; i++)
|
||||||
|
{
|
||||||
|
_mqttConnectionStateTopic[i] = connectionStateTopic.charAt(i);
|
||||||
|
}
|
||||||
|
|
||||||
setupDevice();
|
setupDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -417,7 +426,7 @@ bool Network::reconnect()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
publishString(_maintenancePathPrefix, _mqttConnectionStateTopic, "online");
|
publishString(_maintenancePathPrefix, mqtt_topic_mqtt_connection_state, "online");
|
||||||
|
|
||||||
_mqttConnectionState = 2;
|
_mqttConnectionState = 2;
|
||||||
for(const auto& callback : _reconnectedCallbacks)
|
for(const auto& callback : _reconnectedCallbacks)
|
||||||
@@ -698,6 +707,24 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"",
|
"",
|
||||||
{ { "enabled_by_default", "true" } });
|
{ { "enabled_by_default", "true" } });
|
||||||
|
|
||||||
|
// MQTT Connected
|
||||||
|
publishHassTopic("binary_sensor",
|
||||||
|
"mqtt_connected",
|
||||||
|
uidString,
|
||||||
|
"_mqtt_connected",
|
||||||
|
"MQTT connected",
|
||||||
|
name,
|
||||||
|
baseTopic,
|
||||||
|
mqtt_topic_mqtt_connection_state,
|
||||||
|
deviceType,
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"diagnostic",
|
||||||
|
"",
|
||||||
|
{{"pl_on", "online"},
|
||||||
|
{"pl_off", "offline"},
|
||||||
|
{"ic", "mdi:lan-connect"}});
|
||||||
|
|
||||||
// Firmware version
|
// Firmware version
|
||||||
publishHassTopic("sensor",
|
publishHassTopic("sensor",
|
||||||
"firmware_version",
|
"firmware_version",
|
||||||
|
|||||||
@@ -101,8 +101,8 @@ private:
|
|||||||
|
|
||||||
static Network* _inst;
|
static Network* _inst;
|
||||||
|
|
||||||
const char* _mqttConnectionStateTopic = mqtt_topic_mqtt_connection_state;
|
|
||||||
const char* _lastWillPayload = "offline";
|
const char* _lastWillPayload = "offline";
|
||||||
|
char _mqttConnectionStateTopic[211] = {0};
|
||||||
|
|
||||||
Preferences* _preferences;
|
Preferences* _preferences;
|
||||||
IPConfiguration* _ipConfiguration = nullptr;
|
IPConfiguration* _ipConfiguration = nullptr;
|
||||||
|
|||||||
Reference in New Issue
Block a user