Publish internal temperature to Home Assistant (#1243)

This commit is contained in:
giedriuslt
2024-05-20 01:49:45 +03:00
committed by GitHub
parent a8afa673c6
commit e609f37264
5 changed files with 34 additions and 8 deletions

View File

@ -96,6 +96,9 @@ void hass_populate_unique_id(ENTITY_TYPE type, int index, char* uniq_id) {
case PRESSURE_SENSOR:
sprintf(uniq_id, "%s_%s_%d", longDeviceName, "pressure", index);
break;
case HASS_TEMP:
sprintf(uniq_id, "%s_temp", longDeviceName);
break;
case HASS_RSSI:
sprintf(uniq_id, "%s_rssi", longDeviceName);
break;
@ -281,6 +284,9 @@ HassDeviceInfo* hass_init_device_info(ENTITY_TYPE type, int index, const char* p
case ILLUMINANCE_SENSOR:
sprintf(g_hassBuffer, "Illuminance");
break;
case HASS_TEMP:
sprintf(g_hassBuffer, "Temperature");
break;
case HASS_RSSI:
sprintf(g_hassBuffer, "RSSI");
break;
@ -649,6 +655,13 @@ HassDeviceInfo* hass_init_sensor_device_info(ENTITY_TYPE type, int channel, int
cJSON_AddStringToObject(info->root, "stat_t", g_hassBuffer);
cJSON_AddStringToObject(info->root, "val_tpl", g_template_lowMidHigh);
break;
case HASS_TEMP:
cJSON_AddStringToObject(info->root, "dev_cla", "temperature");
cJSON_AddStringToObject(info->root, "stat_t", "~/temp");
cJSON_AddStringToObject(info->root, "unit_of_meas", "°C");
cJSON_AddStringToObject(info->root, "entity_category", "diagnostic");
//cJSON_AddStringToObject(info->root, "icon_template", "mdi:access-point");
break;
case HASS_RSSI:
cJSON_AddStringToObject(info->root, "dev_cla", "signal_strength");

View File

@ -65,6 +65,8 @@ typedef enum {
READONLYLOWMIDHIGH_SENSOR,
// lx unit
ILLUMINANCE_SENSOR,
/// @brief °C unit
HASS_TEMP,
/// @brief dBm unit
HASS_RSSI,
/// @brief Time firmware is alive in secs

View File

@ -2010,6 +2010,8 @@ void doHomeAssistantDiscovery(const char* topic, http_request_t* request) {
}
if (1) {
//use -1 for channel as these don't correspond to channels
dev_info = hass_init_sensor_device_info(HASS_TEMP, -1, -1, -1, 1);
MQTT_QueuePublish(topic, dev_info->channel, hass_build_discovery_json(dev_info), OBK_PUBLISH_FLAG_RETAIN);
dev_info = hass_init_sensor_device_info(HASS_RSSI, -1, -1, -1, 1);
MQTT_QueuePublish(topic, dev_info->channel, hass_build_discovery_json(dev_info), OBK_PUBLISH_FLAG_RETAIN);
hass_free_device_info(dev_info);