mirror of
https://github.com/openshwprojects/OpenBK7231T_App.git
synced 2026-02-11 00:25:41 +00:00
add smoke percent channel type and add bat_relay_n
This commit is contained in:
@ -67,6 +67,9 @@ void hass_populate_unique_id(ENTITY_TYPE type, int index, char* uniq_id) {
|
||||
case CO2_SENSOR:
|
||||
sprintf(uniq_id, "%s_%s_%d", longDeviceName, "co2", index);
|
||||
break;
|
||||
case SMOKE_SENSOR:
|
||||
sprintf(uniq_id, "%s_%s_%d", longDeviceName, "smoke", index);
|
||||
break;
|
||||
case TVOC_SENSOR:
|
||||
sprintf(uniq_id, "%s_%s_%d", longDeviceName, "tvoc", index);
|
||||
break;
|
||||
@ -116,6 +119,7 @@ void hass_populate_device_config_channel(ENTITY_TYPE type, char* uniq_id, HassDe
|
||||
case BINARY_SENSOR:
|
||||
sprintf(info->channel, "binary_sensor/%s/config", uniq_id);
|
||||
break;
|
||||
case SMOKE_SENSOR:
|
||||
case CO2_SENSOR:
|
||||
case TVOC_SENSOR:
|
||||
case POWER_SENSOR:
|
||||
@ -212,6 +216,10 @@ HassDeviceInfo* hass_init_device_info(ENTITY_TYPE type, int index, char* payload
|
||||
isSensor = true;
|
||||
sprintf(g_hassBuffer, "%s CO2", CFG_GetShortDeviceName());
|
||||
break;
|
||||
case SMOKE_SENSOR:
|
||||
isSensor = true;
|
||||
sprintf(g_hassBuffer, "%s Smoke", CFG_GetShortDeviceName());
|
||||
break;
|
||||
case TVOC_SENSOR:
|
||||
isSensor = true;
|
||||
sprintf(g_hassBuffer, "%s Tvoc", CFG_GetShortDeviceName());
|
||||
@ -472,6 +480,13 @@ HassDeviceInfo* hass_init_sensor_device_info(ENTITY_TYPE type, int channel, int
|
||||
sprintf(g_hassBuffer, "~/%d/get", channel);
|
||||
cJSON_AddStringToObject(info->root, "stat_t", g_hassBuffer);
|
||||
break;
|
||||
case SMOKE_SENSOR:
|
||||
// there is no "smoke" class!
|
||||
//cJSON_AddStringToObject(info->root, "dev_cla", "smoke");
|
||||
cJSON_AddStringToObject(info->root, "unit_of_meas", "%");
|
||||
sprintf(g_hassBuffer, "~/%d/get", channel);
|
||||
cJSON_AddStringToObject(info->root, "stat_t", g_hassBuffer);
|
||||
break;
|
||||
case CO2_SENSOR:
|
||||
cJSON_AddStringToObject(info->root, "dev_cla", "carbon_dioxide");
|
||||
cJSON_AddStringToObject(info->root, "unit_of_meas", "ppm");
|
||||
|
||||
@ -58,6 +58,8 @@ typedef enum {
|
||||
/// @brief
|
||||
CUSTOM_SENSOR,
|
||||
/// @brief
|
||||
SMOKE_SENSOR,
|
||||
/// @brief
|
||||
READONLYLOWMIDHIGH_SENSOR,
|
||||
} ENTITY_TYPE;
|
||||
|
||||
|
||||
@ -1825,6 +1825,15 @@ void doHomeAssistantDiscovery(const char* topic, http_request_t* request) {
|
||||
discoveryQueued = true;
|
||||
}
|
||||
break;
|
||||
case ChType_SmokePercent:
|
||||
{
|
||||
dev_info = hass_init_sensor_device_info(SMOKE_SENSOR, i, -1, -1);
|
||||
MQTT_QueuePublish(topic, dev_info->channel, hass_build_discovery_json(dev_info), OBK_PUBLISH_FLAG_RETAIN);
|
||||
hass_free_device_info(dev_info);
|
||||
|
||||
discoveryQueued = true;
|
||||
}
|
||||
break;
|
||||
case ChType_ReadOnly:
|
||||
{
|
||||
dev_info = hass_init_sensor_device_info(CUSTOM_SENSOR, i, -1, -1);
|
||||
|
||||
@ -458,7 +458,7 @@ const char* htmlPinRoleNames[] = {
|
||||
"TM1638_CLK",
|
||||
"TM1638_DAT",
|
||||
"TM1638_STB",
|
||||
"error",
|
||||
"BAT_Relay_n",
|
||||
"error",
|
||||
"error",
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user