diff --git a/Network.cpp b/Network.cpp index a0366ff..e951574 100644 --- a/Network.cpp +++ b/Network.cpp @@ -749,7 +749,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "battery low", name, baseTopic, - mqtt_topic_battery_critical, + String("~") + mqtt_topic_battery_critical, deviceType, "battery", "", @@ -768,7 +768,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "keypad battery low", name, baseTopic, - mqtt_topic_battery_keypad_critical, + String("~") + mqtt_topic_battery_keypad_critical, deviceType, "battery", "", @@ -790,7 +790,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "battery voltage", name, baseTopic, - mqtt_topic_battery_voltage, + String("~") + mqtt_topic_battery_voltage, deviceType, "voltage", "measurement", @@ -806,7 +806,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "trigger", name, baseTopic, - mqtt_topic_lock_trigger, + String("~") + mqtt_topic_lock_trigger, deviceType, "", "", @@ -822,7 +822,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "MQTT connected", name, baseTopic, - mqtt_topic_mqtt_connection_state, + _lockPath + mqtt_topic_mqtt_connection_state, deviceType, "", "", @@ -840,12 +840,12 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "Restart NUKI Hub", name, baseTopic, - mqtt_topic_reset, + String("~") + mqtt_topic_reset, deviceType, "", "", "diagnostic", - mqtt_topic_reset, + String("~") + mqtt_topic_reset, { { "ic", "mdi:restart" }, { "pl_on", "1" }, { "pl_off", "0" }, @@ -860,7 +860,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "Firmware version", name, baseTopic, - mqtt_topic_info_firmware_version, + String("~") + mqtt_topic_info_firmware_version, deviceType, "", "", @@ -877,7 +877,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "Hardware version", name, baseTopic, - mqtt_topic_info_hardware_version, + String("~") + mqtt_topic_info_hardware_version, deviceType, "", "", @@ -894,7 +894,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "NUKI Hub version", name, baseTopic, - mqtt_topic_info_nuki_hub_version, + _lockPath + mqtt_topic_info_nuki_hub_version, deviceType, "", "", @@ -911,12 +911,12 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "LED enabled", name, baseTopic, - mqtt_topic_config_led_enabled, + String("~") + mqtt_topic_config_led_enabled, deviceType, "", "", "config", - mqtt_topic_config_led_enabled, + String("~") + mqtt_topic_config_led_enabled, { { "ic", "mdi:led-variant-on" }, { "pl_on", "1" }, { "pl_off", "0" }, @@ -931,12 +931,12 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "Button enabled", name, baseTopic, - mqtt_topic_config_button_enabled, + String("~") + mqtt_topic_config_button_enabled, deviceType, "", "", "config", - mqtt_topic_config_button_enabled, + String("~") + mqtt_topic_config_button_enabled, { { "ic", "mdi:radiobox-marked" }, { "pl_on", "1" }, { "pl_off", "0" }, @@ -951,12 +951,12 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n "Unlatch", name, baseTopic, - mqtt_topic_mqtt_connection_state, + "", deviceType, "", "", "", - mqtt_topic_lock_action, + String("~") + mqtt_topic_lock_action, { { "enabled_by_default", "false" }, { "pl_prs", "unlatch" }}); @@ -974,12 +974,12 @@ void Network::publishHASSConfigAdditionalButtons(char *deviceType, const char *b "Lock 'n' Go", name, baseTopic, - mqtt_topic_mqtt_connection_state, + "", deviceType, "", "", "", - mqtt_topic_lock_action, + String("~") + mqtt_topic_lock_action, { { "enabled_by_default", "false" }, { "pl_prs", "lockNgo" }}); @@ -991,12 +991,12 @@ void Network::publishHASSConfigAdditionalButtons(char *deviceType, const char *b "Lock 'n' Go with unlatch", name, baseTopic, - mqtt_topic_mqtt_connection_state, + "", deviceType, "", "", "", - mqtt_topic_lock_action, + String("~") + mqtt_topic_lock_action, { { "enabled_by_default", "false" }, { "pl_prs", "lockNgoUnlatch" }}); } @@ -1016,7 +1016,7 @@ void Network::publishHASSConfigBatLevel(char *deviceType, const char *baseTopic, "battery level", name, baseTopic, - mqtt_topic_battery_level, + String("~") + mqtt_topic_battery_level, deviceType, "battery", "measurement", @@ -1041,7 +1041,7 @@ void Network::publishHASSConfigDoorSensor(char *deviceType, const char *baseTopi "door sensor", name, baseTopic, - mqtt_topic_lock_door_sensor_state, + String("~") + mqtt_topic_lock_door_sensor_state, deviceType, "door", "", @@ -1066,7 +1066,7 @@ void Network::publishHASSConfigRingDetect(char *deviceType, const char *baseTopi "ring detect", name, baseTopic, - mqtt_topic_lock_state, + String("~") + mqtt_topic_lock_state, deviceType, "sound", "", @@ -1087,12 +1087,12 @@ void Network::publishHASSConfigLedBrightness(char *deviceType, const char *baseT "LED brightness", name, baseTopic, - mqtt_topic_config_led_brightness, + String("~") + mqtt_topic_config_led_brightness, deviceType, "", "", "config", - mqtt_topic_config_led_brightness, + String("~") + mqtt_topic_config_led_brightness, { { "ic", "mdi:brightness-6" }, { "min", "0" }, { "max", "5" }}); @@ -1107,12 +1107,12 @@ void Network::publishHASSConfigSoundLevel(char *deviceType, const char *baseTopi "Sound level", name, baseTopic, - mqtt_topic_config_sound_level, + String("~") + mqtt_topic_config_sound_level, deviceType, "", "", "config", - mqtt_topic_config_sound_level, + String("~") + mqtt_topic_config_sound_level, { { "ic", "mdi:volume-source" }, { "min", "0" }, { "max", "255" }, @@ -1130,7 +1130,7 @@ void Network::publishHASSConfigAccessLog(char *deviceType, const char *baseTopic "Last action authorization", name, baseTopic, - mqtt_topic_lock_log, + String("~") + mqtt_topic_lock_log, deviceType, "", "", @@ -1149,7 +1149,7 @@ void Network::publishHASSConfigKeypadAttemptInfo(char *deviceType, const char *b "Keypad status", name, baseTopic, - mqtt_topic_lock_log, + String("~") + mqtt_topic_lock_log, deviceType, "", "", @@ -1177,7 +1177,7 @@ void Network::publishHASSWifiRssiConfig(char *deviceType, const char *baseTopic, "wifi signal strength", name, baseTopic, - mqtt_topic_wifi_rssi, + _lockPath + mqtt_topic_wifi_rssi, deviceType, "signal_strength", "measurement", @@ -1200,7 +1200,7 @@ void Network::publishHASSBleRssiConfig(char *deviceType, const char *baseTopic, "bluetooth signal strength", name, baseTopic, - mqtt_topic_lock_rssi, + String("~") + mqtt_topic_lock_rssi, deviceType, "signal_strength", "measurement", @@ -1247,8 +1247,12 @@ void Network::publishHassTopic(const String& mqttDeviceType, { json["dev_cla"] = deviceClass; } - json["stat_t"] = String("~") + stateTopic; - + + if(stateTopic != "") + { + json["stat_t"] = stateTopic; + } + if(stateClass != "") { json["stat_cla"] = stateClass; @@ -1259,8 +1263,10 @@ void Network::publishHassTopic(const String& mqttDeviceType, } 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) {