Merge pull request #292 from iranl/fix-ha-discovery
Fix Home Assistant discovery topics
This commit is contained in:
72
Network.cpp
72
Network.cpp
@@ -749,7 +749,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"battery low",
|
"battery low",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_battery_critical,
|
String("~") + mqtt_topic_battery_critical,
|
||||||
deviceType,
|
deviceType,
|
||||||
"battery",
|
"battery",
|
||||||
"",
|
"",
|
||||||
@@ -768,7 +768,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"keypad battery low",
|
"keypad battery low",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_battery_keypad_critical,
|
String("~") + mqtt_topic_battery_keypad_critical,
|
||||||
deviceType,
|
deviceType,
|
||||||
"battery",
|
"battery",
|
||||||
"",
|
"",
|
||||||
@@ -790,7 +790,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"battery voltage",
|
"battery voltage",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_battery_voltage,
|
String("~") + mqtt_topic_battery_voltage,
|
||||||
deviceType,
|
deviceType,
|
||||||
"voltage",
|
"voltage",
|
||||||
"measurement",
|
"measurement",
|
||||||
@@ -806,7 +806,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"trigger",
|
"trigger",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_lock_trigger,
|
String("~") + mqtt_topic_lock_trigger,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@@ -822,7 +822,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"MQTT connected",
|
"MQTT connected",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_mqtt_connection_state,
|
_lockPath + mqtt_topic_mqtt_connection_state,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@@ -840,12 +840,12 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"Restart NUKI Hub",
|
"Restart NUKI Hub",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_reset,
|
String("~") + mqtt_topic_reset,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"diagnostic",
|
"diagnostic",
|
||||||
mqtt_topic_reset,
|
String("~") + mqtt_topic_reset,
|
||||||
{ { "ic", "mdi:restart" },
|
{ { "ic", "mdi:restart" },
|
||||||
{ "pl_on", "1" },
|
{ "pl_on", "1" },
|
||||||
{ "pl_off", "0" },
|
{ "pl_off", "0" },
|
||||||
@@ -860,7 +860,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"Firmware version",
|
"Firmware version",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_info_firmware_version,
|
String("~") + mqtt_topic_info_firmware_version,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@@ -877,7 +877,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"Hardware version",
|
"Hardware version",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_info_hardware_version,
|
String("~") + mqtt_topic_info_hardware_version,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@@ -894,7 +894,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"NUKI Hub version",
|
"NUKI Hub version",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_info_nuki_hub_version,
|
_lockPath + mqtt_topic_info_nuki_hub_version,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@@ -911,12 +911,12 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"LED enabled",
|
"LED enabled",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_config_led_enabled,
|
String("~") + mqtt_topic_config_led_enabled,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"config",
|
"config",
|
||||||
mqtt_topic_config_led_enabled,
|
String("~") + mqtt_topic_config_led_enabled,
|
||||||
{ { "ic", "mdi:led-variant-on" },
|
{ { "ic", "mdi:led-variant-on" },
|
||||||
{ "pl_on", "1" },
|
{ "pl_on", "1" },
|
||||||
{ "pl_off", "0" },
|
{ "pl_off", "0" },
|
||||||
@@ -931,12 +931,12 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"Button enabled",
|
"Button enabled",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_config_button_enabled,
|
String("~") + mqtt_topic_config_button_enabled,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"config",
|
"config",
|
||||||
mqtt_topic_config_button_enabled,
|
String("~") + mqtt_topic_config_button_enabled,
|
||||||
{ { "ic", "mdi:radiobox-marked" },
|
{ { "ic", "mdi:radiobox-marked" },
|
||||||
{ "pl_on", "1" },
|
{ "pl_on", "1" },
|
||||||
{ "pl_off", "0" },
|
{ "pl_off", "0" },
|
||||||
@@ -951,12 +951,12 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"Unlatch",
|
"Unlatch",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_mqtt_connection_state,
|
"",
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
mqtt_topic_lock_action,
|
String("~") + mqtt_topic_lock_action,
|
||||||
{ { "enabled_by_default", "false" },
|
{ { "enabled_by_default", "false" },
|
||||||
{ "pl_prs", "unlatch" }});
|
{ "pl_prs", "unlatch" }});
|
||||||
|
|
||||||
@@ -974,12 +974,12 @@ void Network::publishHASSConfigAdditionalButtons(char *deviceType, const char *b
|
|||||||
"Lock 'n' Go",
|
"Lock 'n' Go",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_mqtt_connection_state,
|
"",
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
mqtt_topic_lock_action,
|
String("~") + mqtt_topic_lock_action,
|
||||||
{ { "enabled_by_default", "false" },
|
{ { "enabled_by_default", "false" },
|
||||||
{ "pl_prs", "lockNgo" }});
|
{ "pl_prs", "lockNgo" }});
|
||||||
|
|
||||||
@@ -991,12 +991,12 @@ void Network::publishHASSConfigAdditionalButtons(char *deviceType, const char *b
|
|||||||
"Lock 'n' Go with unlatch",
|
"Lock 'n' Go with unlatch",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_mqtt_connection_state,
|
"",
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
mqtt_topic_lock_action,
|
String("~") + mqtt_topic_lock_action,
|
||||||
{ { "enabled_by_default", "false" },
|
{ { "enabled_by_default", "false" },
|
||||||
{ "pl_prs", "lockNgoUnlatch" }});
|
{ "pl_prs", "lockNgoUnlatch" }});
|
||||||
}
|
}
|
||||||
@@ -1016,7 +1016,7 @@ void Network::publishHASSConfigBatLevel(char *deviceType, const char *baseTopic,
|
|||||||
"battery level",
|
"battery level",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_battery_level,
|
String("~") + mqtt_topic_battery_level,
|
||||||
deviceType,
|
deviceType,
|
||||||
"battery",
|
"battery",
|
||||||
"measurement",
|
"measurement",
|
||||||
@@ -1041,7 +1041,7 @@ void Network::publishHASSConfigDoorSensor(char *deviceType, const char *baseTopi
|
|||||||
"door sensor",
|
"door sensor",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_lock_door_sensor_state,
|
String("~") + mqtt_topic_lock_door_sensor_state,
|
||||||
deviceType,
|
deviceType,
|
||||||
"door",
|
"door",
|
||||||
"",
|
"",
|
||||||
@@ -1066,7 +1066,7 @@ void Network::publishHASSConfigRingDetect(char *deviceType, const char *baseTopi
|
|||||||
"ring detect",
|
"ring detect",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_lock_state,
|
String("~") + mqtt_topic_lock_state,
|
||||||
deviceType,
|
deviceType,
|
||||||
"sound",
|
"sound",
|
||||||
"",
|
"",
|
||||||
@@ -1087,12 +1087,12 @@ void Network::publishHASSConfigLedBrightness(char *deviceType, const char *baseT
|
|||||||
"LED brightness",
|
"LED brightness",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_config_led_brightness,
|
String("~") + mqtt_topic_config_led_brightness,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"config",
|
"config",
|
||||||
mqtt_topic_config_led_brightness,
|
String("~") + mqtt_topic_config_led_brightness,
|
||||||
{ { "ic", "mdi:brightness-6" },
|
{ { "ic", "mdi:brightness-6" },
|
||||||
{ "min", "0" },
|
{ "min", "0" },
|
||||||
{ "max", "5" }});
|
{ "max", "5" }});
|
||||||
@@ -1107,12 +1107,12 @@ void Network::publishHASSConfigSoundLevel(char *deviceType, const char *baseTopi
|
|||||||
"Sound level",
|
"Sound level",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_config_sound_level,
|
String("~") + mqtt_topic_config_sound_level,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"config",
|
"config",
|
||||||
mqtt_topic_config_sound_level,
|
String("~") + mqtt_topic_config_sound_level,
|
||||||
{ { "ic", "mdi:volume-source" },
|
{ { "ic", "mdi:volume-source" },
|
||||||
{ "min", "0" },
|
{ "min", "0" },
|
||||||
{ "max", "255" },
|
{ "max", "255" },
|
||||||
@@ -1130,7 +1130,7 @@ void Network::publishHASSConfigAccessLog(char *deviceType, const char *baseTopic
|
|||||||
"Last action authorization",
|
"Last action authorization",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_lock_log,
|
String("~") + mqtt_topic_lock_log,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@@ -1149,7 +1149,7 @@ void Network::publishHASSConfigKeypadAttemptInfo(char *deviceType, const char *b
|
|||||||
"Keypad status",
|
"Keypad status",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_lock_log,
|
String("~") + mqtt_topic_lock_log,
|
||||||
deviceType,
|
deviceType,
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
@@ -1177,7 +1177,7 @@ void Network::publishHASSWifiRssiConfig(char *deviceType, const char *baseTopic,
|
|||||||
"wifi signal strength",
|
"wifi signal strength",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_wifi_rssi,
|
_lockPath + mqtt_topic_wifi_rssi,
|
||||||
deviceType,
|
deviceType,
|
||||||
"signal_strength",
|
"signal_strength",
|
||||||
"measurement",
|
"measurement",
|
||||||
@@ -1200,7 +1200,7 @@ void Network::publishHASSBleRssiConfig(char *deviceType, const char *baseTopic,
|
|||||||
"bluetooth signal strength",
|
"bluetooth signal strength",
|
||||||
name,
|
name,
|
||||||
baseTopic,
|
baseTopic,
|
||||||
mqtt_topic_lock_rssi,
|
String("~") + mqtt_topic_lock_rssi,
|
||||||
deviceType,
|
deviceType,
|
||||||
"signal_strength",
|
"signal_strength",
|
||||||
"measurement",
|
"measurement",
|
||||||
@@ -1247,7 +1247,11 @@ void Network::publishHassTopic(const String& mqttDeviceType,
|
|||||||
{
|
{
|
||||||
json["dev_cla"] = deviceClass;
|
json["dev_cla"] = deviceClass;
|
||||||
}
|
}
|
||||||
json["stat_t"] = String("~") + stateTopic;
|
|
||||||
|
if(stateTopic != "")
|
||||||
|
{
|
||||||
|
json["stat_t"] = stateTopic;
|
||||||
|
}
|
||||||
|
|
||||||
if(stateClass != "")
|
if(stateClass != "")
|
||||||
{
|
{
|
||||||
@@ -1259,9 +1263,11 @@ void Network::publishHassTopic(const String& mqttDeviceType,
|
|||||||
}
|
}
|
||||||
if(commandTopic != "")
|
if(commandTopic != "")
|
||||||
{
|
{
|
||||||
json["cmd_t"] = String("~") + commandTopic;
|
json["cmd_t"] = commandTopic;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
json["avty"]["t"] = _lockPath + mqtt_topic_mqtt_connection_state;
|
||||||
|
|
||||||
for(const auto& entry : additionalEntries)
|
for(const auto& entry : additionalEntries)
|
||||||
{
|
{
|
||||||
if(strcmp(entry.second, "true") == 0)
|
if(strcmp(entry.second, "true") == 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user