add pressure channel

This commit is contained in:
Tester23
2023-12-16 18:27:46 +01:00
parent 5a4dc0241e
commit e4211ac508
5 changed files with 33 additions and 2 deletions

View File

@ -86,6 +86,9 @@ void hass_populate_unique_id(ENTITY_TYPE type, int index, char* uniq_id) {
case CURRENT_SENSOR:
sprintf(uniq_id, "%s_%s_%d", longDeviceName, "current", index);
break;
case PRESSURE_SENSOR:
sprintf(uniq_id, "%s_%s_%d", longDeviceName, "pressure", index);
break;
case HASS_RSSI:
sprintf(uniq_id, "%s_rssi", longDeviceName);
break;
@ -235,6 +238,10 @@ HassDeviceInfo* hass_init_device_info(ENTITY_TYPE type, int index, const char* p
isSensor = true;
sprintf(g_hassBuffer, "Smoke");
break;
case PRESSURE_SENSOR:
isSensor = true;
sprintf(g_hassBuffer, "Pressure");
break;
case TVOC_SENSOR:
isSensor = true;
sprintf(g_hassBuffer, "Tvoc");
@ -540,6 +547,12 @@ HassDeviceInfo* hass_init_sensor_device_info(ENTITY_TYPE type, int channel, int
cJSON_AddStringToObject(info->root, "unit_of_meas", "ppm");
sprintf(g_hassBuffer, "~/%d/get", channel);
cJSON_AddStringToObject(info->root, "stat_t", g_hassBuffer);
break;
case PRESSURE_SENSOR:
cJSON_AddStringToObject(info->root, "dev_cla", "pressure");
cJSON_AddStringToObject(info->root, "unit_of_meas", "hPa");
sprintf(g_hassBuffer, "~/%d/get", channel);
cJSON_AddStringToObject(info->root, "stat_t", g_hassBuffer);
break;
case TVOC_SENSOR:
cJSON_AddStringToObject(info->root, "dev_cla", "volatile_organic_compounds");

View File

@ -65,8 +65,9 @@ typedef enum {
ILLUMINANCE_SENSOR,
// dBm unit
HASS_RSSI,
ENERGY_SENSOR,
// hPa
PRESSURE_SENSOR,
} ENTITY_TYPE;

View File

@ -2101,6 +2101,15 @@ void doHomeAssistantDiscovery(const char* topic, http_request_t* request) {
discoveryQueued = true;
}
break;
case ChType_Pressure_div100:
{
dev_info = hass_init_sensor_device_info(PRESSURE_SENSOR, i, 3, 2, 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_PowerFactor_div1000:
{
dev_info = hass_init_sensor_device_info(POWERFACTOR_SENSOR, i, 4, 3, 1);