mirror of https://github.com/arendst/Tasmota.git
v5.12.0d - Add Mqtt discovery suffix and precision
5.12.0d * Add always suffix with device number in Mqtt discovery topic (#1962) * Add single decimal precision to Nova Fitness SDS0x1 sensor values (#2093)
This commit is contained in:
parent
9538dfb585
commit
76a74cc427
|
@ -2,11 +2,13 @@
|
|||
* Add support for optional MQTT drivers to be selected in user_config.h (#1992)
|
||||
* Add Portuguese language file
|
||||
* Add compiler check for stable lwIP version v1.4 (#1940)
|
||||
* Add always suffix with device number in Mqtt discovery topic (#1962)
|
||||
* Add diacritics to Polish language file (#2005)
|
||||
* Add Hungarian language file (#2024)
|
||||
* Add Czech language file
|
||||
* Add Chinese (Traditional) in Taiwan language file (#2108)
|
||||
* Add support for Nova Fitness SDS011 and possibly SDS021 particle concentration sensor (#2070)
|
||||
* Add single decimal precision to Nova Fitness SDS0x1 sensor values (#2093)
|
||||
* Fix MQTT TLS fingerprint validation (#2033)
|
||||
*
|
||||
* 5.12.0c
|
||||
|
|
|
@ -93,9 +93,9 @@ void HAssDiscovery()
|
|||
|
||||
snprintf_P(sidx, sizeof(sidx), PSTR("_%d"), i);
|
||||
// Clear "other" topic first in case the device has been reconfigured
|
||||
snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/%s/%s%s/config"), (is_light) ? "switch" : "light", mqtt_topic, (1 == devices_present) ? "" : sidx);
|
||||
snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/%s/%s%s/config"), (is_light) ? "switch" : "light", mqtt_topic, sidx);
|
||||
MqttPublish(stopic, true);
|
||||
snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/%s/%s%s/config"), (is_light) ? "light" : "switch", mqtt_topic, (1 == devices_present) ? "" : sidx);
|
||||
snprintf_P(stopic, sizeof(stopic), PSTR(HOME_ASSISTANT_DISCOVERY_PREFIX "/%s/%s%s/config"), (is_light) ? "light" : "switch", mqtt_topic, sidx);
|
||||
|
||||
if (Settings.flag.hass_discovery) {
|
||||
char name[33];
|
||||
|
|
|
@ -92,18 +92,24 @@ void NovaSdsInit()
|
|||
|
||||
#ifdef USE_WEBSERVER
|
||||
const char HTTP_SDS0X1_SNS[] PROGMEM = "%s"
|
||||
"{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 2.5 " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"
|
||||
"{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 10 " D_UNIT_MICROMETER "{m}%d " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
"{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 2.5 " D_UNIT_MICROMETER "{m}%s " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"
|
||||
"{s}SDS0X1 " D_ENVIRONMENTAL_CONCENTRATION " 10 " D_UNIT_MICROMETER "{m}%s " D_UNIT_MICROGRAM_PER_CUBIC_METER "{e}"; // {s} = <tr><th>, {m} = </th><td>, {e} = </td></tr>
|
||||
#endif // USE_WEBSERVER
|
||||
|
||||
void NovaSdsShow(boolean json)
|
||||
{
|
||||
if (novasds_valid) {
|
||||
char pm10[10];
|
||||
char pm2_5[10];
|
||||
float pm10f = (float)(novasds_data.pm100) / 10.0f;
|
||||
float pm2_5f = (float)(novasds_data.pm25) / 10.0f;
|
||||
dtostrfd(pm10f, 1, pm10);
|
||||
dtostrfd(pm2_5f, 1, pm2_5);
|
||||
if (json) {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"SDS0X1\":{\"PM2.5\":%d,\"PM10\":%d}"), mqtt_data, novasds_data.pm25, novasds_data.pm100);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), PSTR("%s,\"SDS0X1\":{\"PM2.5\":%s,\"PM10\":%s}"), mqtt_data, pm2_5, pm10);
|
||||
#ifdef USE_WEBSERVER
|
||||
} else {
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SDS0X1_SNS, mqtt_data, novasds_data.pm25/10, novasds_data.pm100/10);
|
||||
snprintf_P(mqtt_data, sizeof(mqtt_data), HTTP_SDS0X1_SNS, mqtt_data, pm2_5, pm10);
|
||||
#endif // USE_WEBSERVER
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue