add auto discovery for led enabled
This commit is contained in:
52
Network.cpp
52
Network.cpp
@@ -596,6 +596,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"battery",
|
"battery",
|
||||||
"",
|
"",
|
||||||
"diagnostic",
|
"diagnostic",
|
||||||
|
"",
|
||||||
{{"pl_on", "1"},
|
{{"pl_on", "1"},
|
||||||
{"pl_off", "0"}});
|
{"pl_off", "0"}});
|
||||||
|
|
||||||
@@ -614,6 +615,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"battery",
|
"battery",
|
||||||
"",
|
"",
|
||||||
"diagnostic",
|
"diagnostic",
|
||||||
|
"",
|
||||||
{{"pl_on", "1"},
|
{{"pl_on", "1"},
|
||||||
{"pl_off", "0"}});
|
{"pl_off", "0"}});
|
||||||
}
|
}
|
||||||
@@ -631,6 +633,7 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"voltage",
|
"voltage",
|
||||||
"measurement",
|
"measurement",
|
||||||
"diagnostic",
|
"diagnostic",
|
||||||
|
"",
|
||||||
{ {"unit_of_meas", "V"} });
|
{ {"unit_of_meas", "V"} });
|
||||||
|
|
||||||
// Trigger
|
// Trigger
|
||||||
@@ -646,10 +649,45 @@ void Network::publishHASSConfig(char* deviceType, const char* baseTopic, char* n
|
|||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
"diagnostic",
|
"diagnostic",
|
||||||
|
"",
|
||||||
{ { "enabled_by_default", "true" } });
|
{ { "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,
|
void Network::publishHASSConfigBatLevel(char *deviceType, const char *baseTopic, char *name, char *uidString,
|
||||||
char *lockAction, char *unlockAction, char *openAction, char *lockedState,
|
char *lockAction, char *unlockAction, char *openAction, char *lockedState,
|
||||||
char *unlockedState)
|
char *unlockedState)
|
||||||
@@ -670,6 +708,7 @@ void Network::publishHASSConfigBatLevel(char *deviceType, const char *baseTopic,
|
|||||||
"battery",
|
"battery",
|
||||||
"measurement",
|
"measurement",
|
||||||
"diagnostic",
|
"diagnostic",
|
||||||
|
"",
|
||||||
{ {"unit_of_meas", "%"} });
|
{ {"unit_of_meas", "%"} });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -694,6 +733,7 @@ void Network::publishHASSConfigDoorSensor(char *deviceType, const char *baseTopi
|
|||||||
"door",
|
"door",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
{{"pl_on", "doorOpened"},
|
{{"pl_on", "doorOpened"},
|
||||||
{"pl_off", "doorClosed"},
|
{"pl_off", "doorClosed"},
|
||||||
{"pl_not_avail", "unavailable"}});
|
{"pl_not_avail", "unavailable"}});
|
||||||
@@ -720,6 +760,7 @@ void Network::publishHASSConfigRingDetect(char *deviceType, const char *baseTopi
|
|||||||
"sound",
|
"sound",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
"",
|
||||||
{{"pl_on", "ring"},
|
{{"pl_on", "ring"},
|
||||||
{"pl_off", "locked"}});
|
{"pl_off", "locked"}});
|
||||||
}
|
}
|
||||||
@@ -748,6 +789,7 @@ void Network::publishHASSWifiRssiConfig(char *deviceType, const char *baseTopic,
|
|||||||
"signal_strength",
|
"signal_strength",
|
||||||
"measurement",
|
"measurement",
|
||||||
"diagnostic",
|
"diagnostic",
|
||||||
|
"",
|
||||||
{ {"unit_of_meas", "dBm"} });
|
{ {"unit_of_meas", "dBm"} });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -770,6 +812,7 @@ void Network::publishHASSBleRssiConfig(char *deviceType, const char *baseTopic,
|
|||||||
"signal_strength",
|
"signal_strength",
|
||||||
"measurement",
|
"measurement",
|
||||||
"diagnostic",
|
"diagnostic",
|
||||||
|
"",
|
||||||
{ {"unit_of_meas", "dBm"} });
|
{ {"unit_of_meas", "dBm"} });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -786,6 +829,7 @@ void Network::publishHassTopic(const String& mqttDeviceType,
|
|||||||
const String& deviceClass,
|
const String& deviceClass,
|
||||||
const String& stateClass,
|
const String& stateClass,
|
||||||
const String& entityCat,
|
const String& entityCat,
|
||||||
|
const String& commandTopic,
|
||||||
std::vector<std::pair<char*, char*>> additionalEntries
|
std::vector<std::pair<char*, char*>> additionalEntries
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -821,6 +865,10 @@ void Network::publishHassTopic(const String& mqttDeviceType,
|
|||||||
{
|
{
|
||||||
json["ent_cat"] = entityCat;
|
json["ent_cat"] = entityCat;
|
||||||
}
|
}
|
||||||
|
if(commandTopic != "")
|
||||||
|
{
|
||||||
|
json["cmd_t"] = String("~") + commandTopic;
|
||||||
|
}
|
||||||
|
|
||||||
for(const auto& entry : additionalEntries)
|
for(const auto& entry : additionalEntries)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -76,6 +76,7 @@ private:
|
|||||||
const String& deviceClass,
|
const String& deviceClass,
|
||||||
const String& stateClass = "",
|
const String& stateClass = "",
|
||||||
const String& entityCat = "",
|
const String& entityCat = "",
|
||||||
|
const String& commandTopic = "",
|
||||||
std::vector<std::pair<char*, char*>> additionalEntries = {}
|
std::vector<std::pair<char*, char*>> additionalEntries = {}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user