add auto discovery for led enabled

This commit is contained in:
technyon
2023-02-20 18:58:21 +01:00
parent b812b2ca2a
commit 802b0a31a4
2 changed files with 50 additions and 1 deletions

View File

@@ -596,6 +596,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
"battery",
"",
"diagnostic",
"",
{{"pl_on", "1"},
{"pl_off", "0"}});
@@ -614,6 +615,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
"battery",
"",
"diagnostic",
"",
{{"pl_on", "1"},
{"pl_off", "0"}});
}
@@ -631,6 +633,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
"voltage",
"measurement",
"diagnostic",
"",
{ {"unit_of_meas", "V"} });
// Trigger
@@ -646,10 +649,45 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
"",
"",
"diagnostic",
"",
{ { "enabled_by_default", "true" } });
// doc_out["name"] = name + " LED enabled";
// doc_out["object_id"] = object_id + " LED enabled";
// doc_out["uniq_id"] = build_unique_id(address, "led_enabled");
// doc_out["ic"] = "mdi:led-variant-on";
// doc_out["ent_cat"] = "config";
// doc_out["stat_t"] = net_build_topic("config");
// doc_out["val_tpl"] = "{{iif(value_json.led_enabled,'ON','OFF')}}";
// doc_out["cmd_t"] = net_build_topic("config/set");
// doc_out["state_on"] = "ON";
// doc_out["state_off"] = "OFF";
// doc_out["pl_on"] = "{'led_enabled': true}";
// doc_out["pl_off"] = "{'led_enabled': false}";
// doc_out["opt"] = true;
// LED enabled
publishHassTopic("switch",
"led_enabled",
uidString,
"_led_enabled",
"LED enabled",
name,
baseTopic,
mqtt_topic_config_led_enabled,
deviceType,
"switch",
"",
"config",
mqtt_topic_config_led_enabled,
{ { "ic", "mdi:led-variant-on" },
{ "pl_on", "1" },
{ "pl_off", "0" },
{ "state_on", "1" },
{ "state_off", "0" },});
}
}
//json["cmd_t"] = String("~") + String(mqtt_topic_lock_action);
void Network::publishHASSConfigBatLevel(char *deviceType, const char *baseTopic, char *name, char *uidString,
char *lockAction, char *unlockAction, char *openAction, char *lockedState,
char *unlockedState)
@@ -670,6 +708,7 @@ void Network::publishHASSConfigBatLevel(char *deviceType, const char *baseTopic,
"battery",
"measurement",
"diagnostic",
"",
{ {"unit_of_meas", "%"} });
}
}
@@ -694,6 +733,7 @@ void Network::publishHASSConfigDoorSensor(char *deviceType, const char *baseTopi
"door",
"",
"",
"",
{{"pl_on", "doorOpened"},
{"pl_off", "doorClosed"},
{"pl_not_avail", "unavailable"}});
@@ -720,6 +760,7 @@ void Network::publishHASSConfigRingDetect(char *deviceType, const char *baseTopi
"sound",
"",
"",
"",
{{"pl_on", "ring"},
{"pl_off", "locked"}});
}
@@ -748,6 +789,7 @@ void Network::publishHASSWifiRssiConfig(char *deviceType, const char *baseTopic,
"signal_strength",
"measurement",
"diagnostic",
"",
{ {"unit_of_meas", "dBm"} });
}
}
@@ -770,6 +812,7 @@ void Network::publishHASSBleRssiConfig(char *deviceType, const char *baseTopic,
"signal_strength",
"measurement",
"diagnostic",
"",
{ {"unit_of_meas", "dBm"} });
}
}
@@ -786,6 +829,7 @@ void Network::publishHassTopic(const String& mqttDeviceType,
const String& deviceClass,
const String& stateClass,
const String& entityCat,
const String& commandTopic,
std::vector<std::pair<char*, char*>> additionalEntries
)
{
@@ -821,6 +865,10 @@ void Network::publishHassTopic(const String& mqttDeviceType,
{
json["ent_cat"] = entityCat;
}
if(commandTopic != "")
{
json["cmd_t"] = String("~") + commandTopic;
}
for(const auto& entry : additionalEntries)
{

View File

@@ -76,6 +76,7 @@ private:
const String& deviceClass,
const String& stateClass = "",
const String& entityCat = "",
const String& commandTopic = "",
std::vector<std::pair<char*, char*>> additionalEntries = {}
);