diff --git a/src/httpserver/hass.c b/src/httpserver/hass.c index 9433a28a8..70ab75efc 100644 --- a/src/httpserver/hass.c +++ b/src/httpserver/hass.c @@ -489,6 +489,10 @@ 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 CUSTOM_SENSOR: + sprintf(g_hassBuffer, "~/%d/get", channel); + cJSON_AddStringToObject(info->root, "stat_t", g_hassBuffer); + break; default: sprintf(g_hassBuffer, "~/%d/get", channel); cJSON_AddStringToObject(info->root, "stat_t", g_hassBuffer); diff --git a/src/httpserver/hass.h b/src/httpserver/hass.h index 01bfe3115..93cffe742 100644 --- a/src/httpserver/hass.h +++ b/src/httpserver/hass.h @@ -55,6 +55,8 @@ typedef enum { POWERFACTOR_SENSOR, /// @brief FREQUENCY_SENSOR, + /// @brief + CUSTOM_SENSOR, } ENTITY_TYPE; diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c index d6748160e..8c56e00f2 100644 --- a/src/httpserver/http_fns.c +++ b/src/httpserver/http_fns.c @@ -1763,6 +1763,15 @@ void doHomeAssistantDiscovery(const char* topic, http_request_t* request) { discoveryQueued = true; } break; + case ChType_ReadOnly: + { + dev_info = hass_init_sensor_device_info(CUSTOM_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_Temperature: { dev_info = hass_init_sensor_device_info(TEMPERATURE_SENSOR, i, -1, -1);