diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c index 0c0051709..6e19d6634 100644 --- a/src/httpserver/http_fns.c +++ b/src/httpserver/http_fns.c @@ -1880,11 +1880,21 @@ void doHomeAssistantDiscovery(const char* topic, http_request_t* request) { dev_info = hass_init_sensor_device_info(TEMPERATURE_SENSOR, i, 2, 1, 1); } break; + case ChType_ReadOnly_div10: + { + dev_info = hass_init_sensor_device_info(CUSTOM_SENSOR, i, 2, 1, 1); + } + break; case ChType_Temperature_div100: { dev_info = hass_init_sensor_device_info(TEMPERATURE_SENSOR, i, 2, 2, 1); } break; + case ChType_ReadOnly_div100: + { + dev_info = hass_init_sensor_device_info(CUSTOM_SENSOR, i, 2, 2, 1); + } + break; case ChType_Humidity: { dev_info = hass_init_sensor_device_info(HUMIDITY_SENSOR, i, -1, -1, 1); @@ -1900,6 +1910,11 @@ void doHomeAssistantDiscovery(const char* topic, http_request_t* request) { dev_info = hass_init_sensor_device_info(CURRENT_SENSOR, i, 3, 2, 1); } break; + case ChType_ReadOnly_div1000: + { + dev_info = hass_init_sensor_device_info(CUSTOM_SENSOR, i, 3, 3, 1); + } + break; case ChType_LeakageCurrent_div1000: case ChType_Current_div1000: { diff --git a/src/new_pins.c b/src/new_pins.c index 32c4b3a2f..c3b422cf5 100644 --- a/src/new_pins.c +++ b/src/new_pins.c @@ -1096,6 +1096,7 @@ int ChannelType_GetDivider(int type) { case ChType_Voltage_div10: case ChType_Power_div10: case ChType_Frequency_div10: + case ChType_ReadOnly_div10: return 10; case ChType_Frequency_div100: case ChType_Current_div100: @@ -1105,6 +1106,7 @@ int ChannelType_GetDivider(int type) { case ChType_Pressure_div100: case ChType_Temperature_div100: case ChType_Power_div100: + case ChType_ReadOnly_div100: return 100; case ChType_PowerFactor_div1000: case ChType_EnergyTotal_kWh_div1000: @@ -1112,6 +1114,7 @@ int ChannelType_GetDivider(int type) { case ChType_EnergyToday_kWh_div1000: case ChType_Current_div1000: case ChType_LeakageCurrent_div1000: + case ChType_ReadOnly_div1000: return 1000; case ChType_Temperature_div2: return 2; @@ -1205,6 +1208,11 @@ const char *ChannelType_GetTitle(int type) { return "ReactivePower"; case ChType_Illuminance: return "Illuminance"; + case ChType_ReadOnly: + case ChType_ReadOnly_div10: + case ChType_ReadOnly_div100: + case ChType_ReadOnly_div1000: + return "ReadOnly:"; } return ""; } @@ -2030,7 +2038,9 @@ const char* g_channelTypeNames[] = { "LeakageCurrent_div1000", "Power_div100", "Motion", - "error", + "ReadOnly_div10", + "ReadOnly_div100", + "ReadOnly_div1000", "error", "error", "error", diff --git a/src/new_pins.h b/src/new_pins.h index 5d3b43701..d325cc491 100644 --- a/src/new_pins.h +++ b/src/new_pins.h @@ -922,6 +922,27 @@ typedef enum channelType_e { //chandetail:"file":"new_pins.h", //chandetail:"driver":""} ChType_Motion, + //chandetail:{"name":"ReadOnly_div10", + //chandetail:"title":"TODO", + //chandetail:"descr":"This channel is read only.", + //chandetail:"enum":"ChType_ReadOnly_div10", + //chandetail:"file":"new_pins.h", + //chandetail:"driver":""} + ChType_ReadOnly_div10, + //chandetail:{"name":"ReadOnly_div100", + //chandetail:"title":"TODO", + //chandetail:"descr":"This channel is read only.", + //chandetail:"enum":"ChType_ReadOnly_div100", + //chandetail:"file":"new_pins.h", + //chandetail:"driver":""} + ChType_ReadOnly_div100, + //chandetail:{"name":"ReadOnly_div1000", + //chandetail:"title":"TODO", + //chandetail:"descr":"This channel is read only.", + //chandetail:"enum":"ChType_ReadOnly_div1000", + //chandetail:"file":"new_pins.h", + //chandetail:"driver":""} + ChType_ReadOnly_div1000, //chandetail:{"name":"Max", //chandetail:"title":"TODO", //chandetail:"descr":"This is the current total number of available channel types.",