add smoke percent channel type and add bat_relay_n

This commit is contained in:
openshwprojects
2023-05-20 20:26:36 +02:00
parent 53d63ed72c
commit 808f65c8ad
15 changed files with 128 additions and 12 deletions

View File

@@ -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");