refactor: improve auto tare logic and reset conditions in scale handling

This commit is contained in:
2025-09-03 15:06:31 +02:00
parent f5a1debd7d
commit 043c2d4fa8
2 changed files with 14 additions and 22 deletions

View File

@@ -197,17 +197,6 @@ void loop() {
{
lastWeightReadTime = currentMillis;
// Prüfen ob die Waage korrekt genullt ist
// Abweichung von 2g ignorieren
if (autoTare && (weight > 2 && weight < 7) || weight < -2)
{
scale_tare_counter++;
}
else
{
scale_tare_counter = 0;
}
// Prüfen ob das Gewicht gleich bleibt und dann senden
if (abs(weight - lastWeight) <= 2 && weight > 5)
{

View File

@@ -161,20 +161,21 @@ void scale_loop(void * parameter) {
// Only measure at defined intervals to reduce noise
if (currentTime - lastMeasurementTime >= MEASUREMENT_INTERVAL_MS) {
// Prüfen ob die Waage korrekt genullt ist
// Abweichung von 2g ignorieren
if (autoTare && (weight > 2 && weight < 7) || weight < -2)
{
scale_tare_counter++;
}
else
{
scale_tare_counter = 0;
}
if (scale.is_ready())
{
// Waage automatisch Taren, wenn zu lange Abweichung
if (autoTare && scale_tare_counter >= 5)
{
Serial.println("Auto Tare scale");
//scale.tare();
//resetWeightFilter(); // Reset filter after auto tare
scaleTareRequest = true;
scale_tare_counter = 0;
}
// Waage manuell Taren
if (scaleTareRequest == true)
if (scaleTareRequest == true || (autoTare && scale_tare_counter >= 5))
{
Serial.println("Re-Tare scale");
oledShowMessage("TARE Scale");
@@ -184,6 +185,8 @@ void scale_loop(void * parameter) {
vTaskDelay(pdMS_TO_TICKS(1000));
oledShowWeight(0);
scaleTareRequest = false;
scale_tare_counter = 0;
weight = 0; // Reset global weight variable after tare
}
// Get raw weight reading