From ff67b071447f9e75b4f0be022a1cbfaba3cfa384 Mon Sep 17 00:00:00 2001 From: MaPaLo76 <72209721+MaPaLo76@users.noreply.github.com> Date: Mon, 23 Feb 2026 19:25:43 +0100 Subject: [PATCH] fix(mqtt): publishSession nicht bei GRATIS-only Burst (lastBurstSec == 0) --- src/main.cpp | 10 +++++----- test_sketches/test_mqtt_client.cpp | 13 +++++++------ test_sketches/test_web_server.cpp | 10 +++++----- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 6df1525..b4b3d05 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -35,12 +35,12 @@ void loop() { wifiConnector.loop(); mqttClient.loop(); - // MQTT: Session-Publish nach jedem abgeschlossenen Burst + // MQTT: Session-Publish nur wenn Netto-Zeit vorhanden (kein GRATIS-only Burst) if (laserTracker.consumeBurstEnd()) { - mqttClient.publishSession( - laserTracker.getLastBurstSeconds(), - settings.get().gratisSeconds - ); + int lastBurst = laserTracker.getLastBurstSeconds(); + if (lastBurst > 0) { + mqttClient.publishSession(lastBurst, settings.get().gratisSeconds); + } } // Display mit aktuellen Werten aktualisieren diff --git a/test_sketches/test_mqtt_client.cpp b/test_sketches/test_mqtt_client.cpp index 08206ca..b1f05f6 100644 --- a/test_sketches/test_mqtt_client.cpp +++ b/test_sketches/test_mqtt_client.cpp @@ -83,12 +83,13 @@ void loop() { // MQTT: Session-Publish nach Burst-Ende if (laserTracker.consumeBurstEnd()) { - LOG_I("TEST-MQTT", "BurstEnd erkannt -> publishSession (lastBurst=%ds)", - laserTracker.getLastBurstSeconds()); - mqttClient.publishSession( - laserTracker.getLastBurstSeconds(), - settings.get().gratisSeconds - ); + int lastBurst = laserTracker.getLastBurstSeconds(); + if (lastBurst > 0) { + LOG_I("TEST-MQTT", "BurstEnd erkannt -> publishSession (lastBurst=%ds)", lastBurst); + mqttClient.publishSession(lastBurst, settings.get().gratisSeconds); + } else { + LOG_I("TEST-MQTT", "BurstEnd erkannt, aber nur Gratiszeit -> kein Publish"); + } } // Display diff --git a/test_sketches/test_web_server.cpp b/test_sketches/test_web_server.cpp index 0f79430..bf86f14 100644 --- a/test_sketches/test_web_server.cpp +++ b/test_sketches/test_web_server.cpp @@ -75,12 +75,12 @@ void loop() { wifiConnector.loop(); mqttClient.loop(); - // MQTT: Session-Publish nach Burst-Ende + // MQTT: Session-Publish nur wenn Netto-Zeit vorhanden (kein GRATIS-only Burst) if (laserTracker.consumeBurstEnd()) { - mqttClient.publishSession( - laserTracker.getLastBurstSeconds(), - settings.get().gratisSeconds - ); + int lastBurst = laserTracker.getLastBurstSeconds(); + if (lastBurst > 0) { + mqttClient.publishSession(lastBurst, settings.get().gratisSeconds); + } } // Display