mirror of
https://github.com/wled/WLED.git
synced 2025-07-25 19:56:32 +00:00
Fix state issue on change reporting, add override sample ini
This commit is contained in:
parent
f51da4f0c4
commit
f9467ceaf1
2
.gitignore
vendored
2
.gitignore
vendored
@ -9,7 +9,7 @@
|
|||||||
.vscode
|
.vscode
|
||||||
|
|
||||||
esp01-update.sh
|
esp01-update.sh
|
||||||
platformio_override.ini
|
/platformio_override.ini
|
||||||
replace_fs.py
|
replace_fs.py
|
||||||
wled-update.sh
|
wled-update.sh
|
||||||
|
|
||||||
|
@ -33,5 +33,4 @@ build_flags =
|
|||||||
lib_deps =
|
lib_deps =
|
||||||
${esp32.lib_deps}
|
${esp32.lib_deps}
|
||||||
enjoyneering/AHT10@~1.1.0
|
enjoyneering/AHT10@~1.1.0
|
||||||
Wire
|
|
||||||
```
|
```
|
||||||
|
9
usermods/AHT10_v2/platformio_override.ini
Normal file
9
usermods/AHT10_v2/platformio_override.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[env:aht10_example]
|
||||||
|
extends = env:esp32dev
|
||||||
|
build_flags =
|
||||||
|
${common.build_flags} ${esp32.build_flags}
|
||||||
|
-D USERMOD_AHT10
|
||||||
|
; -D USERMOD_AHT10_DEBUG ; -- add a debug status to the info modal
|
||||||
|
lib_deps =
|
||||||
|
${esp32.lib_deps}
|
||||||
|
enjoyneering/AHT10@~1.1.0
|
@ -32,6 +32,11 @@ private:
|
|||||||
float _lastHumidity = 0;
|
float _lastHumidity = 0;
|
||||||
float _lastTemperature = 0;
|
float _lastTemperature = 0;
|
||||||
|
|
||||||
|
#ifndef WLED_MQTT_DISABLE
|
||||||
|
float _lastHumiditySent = 0;
|
||||||
|
float _lastTemperatureSent = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
AHT10 *_aht = nullptr;
|
AHT10 *_aht = nullptr;
|
||||||
|
|
||||||
float truncateDecimals(float val)
|
float truncateDecimals(float val)
|
||||||
@ -74,7 +79,7 @@ private:
|
|||||||
mqttCreateHassSensor(F("Humidity"), topic, F("humidity"), F("%"));
|
mqttCreateHassSensor(F("Humidity"), topic, F("humidity"), F("%"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void mqttPublishIfChanged(const __FlashStringHelper *topic, float lastState, float state, float minChange)
|
void mqttPublishIfChanged(const __FlashStringHelper *topic, float &lastState, float state, float minChange)
|
||||||
{
|
{
|
||||||
// Check if MQTT Connected, otherwise it will crash the 8266
|
// Check if MQTT Connected, otherwise it will crash the 8266
|
||||||
// Only report if the change is larger than the required diff
|
// Only report if the change is larger than the required diff
|
||||||
@ -83,6 +88,8 @@ private:
|
|||||||
char subuf[128];
|
char subuf[128];
|
||||||
snprintf_P(subuf, 127, PSTR("%s/%s"), mqttDeviceTopic, (const char *)topic);
|
snprintf_P(subuf, 127, PSTR("%s/%s"), mqttDeviceTopic, (const char *)topic);
|
||||||
mqtt->publish(subuf, 0, false, String(state).c_str());
|
mqtt->publish(subuf, 0, false, String(state).c_str());
|
||||||
|
|
||||||
|
lastState = state;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -163,10 +170,10 @@ public:
|
|||||||
|
|
||||||
// We can avoid reporting if the change is insignificant. The threshold chosen is below the level of accuracy, but way above 0.01 which is the precision of the value provided.
|
// We can avoid reporting if the change is insignificant. The threshold chosen is below the level of accuracy, but way above 0.01 which is the precision of the value provided.
|
||||||
// The AHT10/15/20 has an accuracy of 0.3C in the temperature readings
|
// The AHT10/15/20 has an accuracy of 0.3C in the temperature readings
|
||||||
mqttPublishIfChanged(F("temperature"), _lastTemperature, temperature, 0.1f);
|
mqttPublishIfChanged(F("temperature"), _lastTemperatureSent, temperature, 0.1f);
|
||||||
|
|
||||||
// The AHT10/15/20 has an accuracy in the humidity sensor of 2%
|
// The AHT10/15/20 has an accuracy in the humidity sensor of 2%
|
||||||
mqttPublishIfChanged(F("humidity"), _lastHumidity, humidity, 0.5f);
|
mqttPublishIfChanged(F("humidity"), _lastHumiditySent, humidity, 0.5f);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Store
|
// Store
|
||||||
|
Loading…
x
Reference in New Issue
Block a user