Skip to content

Experten-Setting "Check Digit Increase Consistency" addiert +1 auf Raw → falsche Rate ("Rate too high") #4078

@mce2024

Description

@mce2024

The Problem

Gerät: ESP32-CAM mit AI-on-the-edge
Firmware: Release: v16.1.0 (Commit: a1ccda2)

Kurzbeschreibung:
Die Experten-Einstellung "Check Digit Increase Consistency" führt dazu, dass bei einem niedrigeren, korrekten OCR-Raw-Wert fälschlicherweise +1 addiert wird (ganze Zahl erhöht), bevor die Rate berechnet wird. Das erzeugt eine falsche, zu große Rate und die Meldung "Rate too high".

Konkretes Verhalten (Beispiel):

  • Pre (vorheriger/gespeicherter Wert) war fälschlich zu hoch (z. B. 238.3398).
  • OCR liefert den korrekten Raw = 238.2952 (sollte verworfen werden, weil Raw < Pre).
  • Mit aktivierter Einstellung wird jedoch Read = Raw + 1 = 239.2952 gebildet.
  • Rate = Read − Pre = 239.2952 − 238.3398 = 0.9554 → Meldung: "Rate too high".

Log-Auszug:
2026-03-07T23:30:56+0100 main raw: 238.2952 value/pre: 238.33980 Msg: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
(weitere gleiche Zeilen vorhanden)

Nach Abschalten der Option "Check Digit Increase Consistency" lauten die Logfile-Einträge:
2026-03-08T00:00:22+0100,main**,238**.2952,,238.33980,,0.0000,Neg. Rate - Read: - Raw: 238.2952 - Pre: 238.3398 ,2.0,3.0,8.0,3.1,9.2,5.4,2.8

Bitte prüfen/patchen: die Rollover/Korrektur-Logik in Zusammenhang mit „Check Digit Increase Consistency“ sollte nicht blind +1 addieren, wenn pre bereits potentiell falsch ist oder wenn OCR-Confidence hoch ist. Danke!

Version

v16.1.0 (Commit: a1ccda2)

Logfile

[0d00h00m00s] 2026-03-07T22:30:21	<INF>	[MAIN] =================================================
[0d00h00m00s] 2026-03-07T22:30:21	<INF>	[MAIN] ==================== Start ======================
[0d00h00m00s] 2026-03-07T22:30:21	<INF>	[MAIN] =================================================
[0d00h00m00s] 2026-03-07T22:30:21	<INF>	[SDCARD] Basic R/W check started...
[0d00h00m00s] 2026-03-07T22:30:21	<INF>	[SDCARD] Basic R/W check successful
[0d00h00m00s] 2026-03-07T22:30:21	<INF>	[MAIN] PSRAM size: 8388608 byte (8MB / 64MBit)
[0d00h00m00s] 2026-03-07T22:30:21	<INF>	[MAIN] Total heap: 4377019 byte
[0d00h00m03s] 2026-03-07T22:30:24	<INF>	[MAIN] Camera info: PID: 0x26, VER: 0x42, MIDL: 0x7f, MIDH: 0xa2
[0d00h00m03s] 2026-03-07T22:30:24	<INF>	[SNTP] TimeServer: pool.ntp.org
[0d00h00m03s] 2026-03-07T22:30:24	<INF>	[SNTP] Configuring NTP Client...
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[SNTP] Time zone set to CET-1CEST,M3.5.0,M10.5.0/3
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[SNTP] time zone: +0100 Delta to UTC: 3600 seconds
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[SNTP] Time is already set: 2026-03-07 23:30:24
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[MAIN] CPU frequency: 160 MHz
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[SDCARD] Folder/file presence check started...
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[SDCARD] Folder/file presence check successful
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[MAIN] Tag: 'v16.1.0', Release: v16.1.0 (Commit: a1ccda2), Date/Time: 2026-01-11 22:38, Web UI: Release: v16.1.0 (Commit: a1ccda2)
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[MAIN] Reset reason: Via esp_restart
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[WLANINI] SSID: WUE-LAN
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[WLANINI] Password: XXXXXXXX
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[WLANINI] RSSIThreshold: -75
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[MAIN] WLAN config loaded, init WIFI...
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[WIFI] Automatic interface config --> Use DHCP service
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[WIFI] Set hostname to: watermeter
[0d00h00m03s] 2026-03-07T23:30:24	<INF>	[WIFI] Init successful
[0d00h00m08s] 2026-03-07T23:30:29	<INF>	[WIFI] Connected to: WUE-LAN, RSSI: -65
[0d00h00m09s] 2026-03-07T23:30:31	<INF>	[WIFI] Assigned IP: 192.168.2.14
[0d00h00m23s] 2026-03-07T23:30:44	<INF>	[MAIN] Device info: CPU cores: 2, Chip revision: 101
[0d00h00m23s] 2026-03-07T23:30:44	<INF>	[MAIN] SD card info: Name: SD32G, Capacity: 30436MB, Free: 30397MB
[0d00h00m25s] 2026-03-07T23:30:46	<INF>	[MAIN] Initialization completed successfully
[0d00h00m28s] 2026-03-07T23:30:49	<INF>	[TFLITE] Trying to load the model. If it crashes here, it ist most likely due to a corrupted model!
[0d00h00m28s] 2026-03-07T23:30:49	<INF>	[TFLITE] Trying to load the model. If it crashes here, it ist most likely due to a corrupted model!
[0d00h00m28s] 2026-03-07T23:30:49	<INF>	[LOGFILE] Set log level to ERROR
[0d00h01m02s] 2026-03-07T23:31:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h03m02s] 2026-03-07T23:33:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h05m02s] 2026-03-07T23:35:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h07m02s] 2026-03-07T23:37:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h09m02s] 2026-03-07T23:39:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h11m02s] 2026-03-07T23:41:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h13m02s] 2026-03-07T23:43:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h15m02s] 2026-03-07T23:45:23	<ERR>	[POSTPROC] main: Raw: 238.2962, Value: , Status: Rate too high - Read: 239.2962 - Pre: 238.3398 - Rate: 0.9564
[0d00h17m02s] 2026-03-07T23:47:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h19m02s] 2026-03-07T23:49:23	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Rate too high - Read: 239.2952 - Pre: 238.3398 - Rate: 0.9554
[0d00h21m02s] 2026-03-07T23:51:23	<ERR>	[POSTPROC] main: Raw: 238.2962, Value: , Status: Rate too high - Read: 239.2962 - Pre: 238.3398 - Rate: 0.9564
[0d00h00m00s] 2026-03-07T22:51:58	<INF>	[MAIN] =================================================
[0d00h00m00s] 2026-03-07T22:51:58	<INF>	[MAIN] ==================== Start ======================
[0d00h00m00s] 2026-03-07T22:51:58	<INF>	[MAIN] =================================================
[0d00h00m00s] 2026-03-07T22:51:58	<INF>	[SDCARD] Basic R/W check started...
[0d00h00m00s] 2026-03-07T22:51:58	<INF>	[SDCARD] Basic R/W check successful
[0d00h00m00s] 2026-03-07T22:51:59	<INF>	[MAIN] PSRAM size: 8388608 byte (8MB / 64MBit)
[0d00h00m00s] 2026-03-07T22:51:59	<INF>	[MAIN] Total heap: 4377019 byte
[0d00h00m03s] 2026-03-07T22:52:01	<INF>	[MAIN] Camera info: PID: 0x26, VER: 0x42, MIDL: 0x7f, MIDH: 0xa2
[0d00h00m03s] 2026-03-07T22:52:01	<INF>	[SNTP] TimeServer: pool.ntp.org
[0d00h00m03s] 2026-03-07T22:52:01	<INF>	[SNTP] Configuring NTP Client...
[0d00h00m03s] 2026-03-07T23:52:01	<INF>	[SNTP] Time zone set to CET-1CEST,M3.5.0,M10.5.0/3
[0d00h00m03s] 2026-03-07T23:52:01	<INF>	[SNTP] time zone: +0100 Delta to UTC: 3600 seconds
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[SNTP] Time is already set: 2026-03-07 23:52:02
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[MAIN] CPU frequency: 160 MHz
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[SDCARD] Folder/file presence check started...
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[SDCARD] Folder/file presence check successful
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[MAIN] Tag: 'v16.1.0', Release: v16.1.0 (Commit: a1ccda2), Date/Time: 2026-01-11 22:38, Web UI: Release: v16.1.0 (Commit: a1ccda2)
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[MAIN] Reset reason: Via esp_restart
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[WLANINI] SSID: WUE-LAN
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[WLANINI] Password: XXXXXXXX
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[WLANINI] RSSIThreshold: -75
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[MAIN] WLAN config loaded, init WIFI...
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[WIFI] Automatic interface config --> Use DHCP service
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[WIFI] Set hostname to: watermeter
[0d00h00m03s] 2026-03-07T23:52:02	<INF>	[WIFI] Init successful
[0d00h00m07s] 2026-03-07T23:52:06	<INF>	[WIFI] Connected to: WUE-LAN, RSSI: -65
[0d00h00m08s] 2026-03-07T23:52:07	<INF>	[WIFI] Assigned IP: 192.168.2.14
[0d00h00m10s] 2026-03-07T23:52:09	<INF>	[SNTP] Time is synced with NTP Server pool.ntp.org: 2026-03-07 23:52:09
[0d00h00m11s] 2026-03-07T23:52:10	<INF>	[MAIN] Device info: CPU cores: 2, Chip revision: 101
[0d00h00m11s] 2026-03-07T23:52:10	<INF>	[MAIN] SD card info: Name: SD32G, Capacity: 30436MB, Free: 30396MB
[0d00h00m13s] 2026-03-07T23:52:12	<INF>	[MAIN] Initialization completed successfully
[0d00h00m16s] 2026-03-07T23:52:14	<INF>	[TFLITE] Trying to load the model. If it crashes here, it ist most likely due to a corrupted model!
[0d00h00m16s] 2026-03-07T23:52:15	<INF>	[TFLITE] Trying to load the model. If it crashes here, it ist most likely due to a corrupted model!
[0d00h00m16s] 2026-03-07T23:52:15	<INF>	[LOGFILE] Set log level to ERROR
[0d00h00m51s] 2026-03-07T23:52:50	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Neg. Rate - Read:  - Raw: 238.2952 - Pre: 238.3398 
[0d00h02m50s] 2026-03-07T23:54:49	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Neg. Rate - Read:  - Raw: 238.2952 - Pre: 238.3398 
[0d00h04m50s] 2026-03-07T23:56:49	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Neg. Rate - Read:  - Raw: 238.2952 - Pre: 238.3398 
[0d00h06m50s] 2026-03-07T23:58:49	<ERR>	[POSTPROC] main: Raw: 238.2952, Value: , Status: Neg. Rate - Read:  - Raw: 238.2952 - Pre: 238.3398

Expected Behavior

Erwartetes Verhalten:
Wenn raw < pre sollte die Logik eine von mehreren Maßnahmen ergreifen:

  • Raw verwerfen (bei niedriger OCR-Confidence oder großer Differenz), ODER
  • bei hoher OCR-Confidence nicht automatisch +1 addieren, sondern zusätzliche Prüfungen (z. B. mehrere konsistente Frames, Prüfungen der Confidence) durchführen, ODER
  • Pre als verdächtig markieren und nicht automatisch korrigieren.

Workaround:
Deaktivieren der Experten-Einstellung "Check Digit Increase Consistency" behebt das Problem sofort (Read wird nicht mehr um +1 erhöht).

Reproduktionsschritte:

  1. Firmware und Device starten (ESP32-CAM).
  2. In Postprocessing die Experten-Einstellung "Check Digit Increase Consistency" aktivieren.
  3. Stelle sicher, dass pre zuvor fälschlich zu hoch gesetzt wurde (z. B. 238.3398).
  4. Liefere ein Bild/Frame mit dem korrekten, aber kleineren OCR-Wert (238.2952).
  5. Beobachte, dass im Log Read = raw + 1 gebildet wird und die Rate fälschlich als zu hoch gemeldet wird.

Screenshots

Image

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions