NEWS
Wasserzähler - Version 2 - all-in-device
-
@alexho coole Idee!
-
-
@jomjol
Ich hätte da noch einen weiteren Interessanten Fehler:mqtt.1 2022-01-02 21:36:56.202 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 19:44:17.605 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 18:41:14.522 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 18:36:23.759 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 18:31:32.678 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 18:26:41.703 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 18:21:23.913 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 18:16:32.771 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 18:11:41.903 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 18:06:50.754 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 18:01:59.758 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:57:09.044 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:52:17.754 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:47:26.849 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:42:35.905 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:37:12.179 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:32:21.008 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:27:29.951 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:22:39.043 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:17:48.147 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:12:56.814 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:08:05.759 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 17:03:15.105 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:58:24.006 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:53:33.176 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:43:06.194 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:38:15.114 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:33:24.050 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:28:33.292 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:23:42.145 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:18:51.085 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:14:00.206 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:09:09.302 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 16:04:18.218 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 15:44:54.267 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 15:40:03.161 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 15:35:12.249 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 15:30:21.306 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 15:25:30.239 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 15:20:39.243 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "string" but received type "number" mqtt.1 2022-01-02 14:46:57.126 info send2Server mqtt.1.awtrix.notify[awtrix/notify] mqtt.1 2022-01-02 14:46:52.131 info send2Server mqtt.1.awtrix.notify[awtrix/notify] mqtt.1 2022-01-02 14:07:25.489 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 09:48:52.413 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 08:45:49.740 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 05:48:51.180 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 05:11:43.492 info send2Server mqtt.1.awtrix.customapp[awtrix/customapp] mqtt.1 2022-01-02 05:01:43.493 info send2Server mqtt.1.awtrix.customapp[awtrix/customapp] mqtt.1 2022-01-02 03:12:04.256 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 03:07:13.467 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 02:47:49.248 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string" mqtt.1 2022-01-02 02:42:58.285 info State value to set for "mqtt.1.gaszaehler.main.raw" has to be type "number" but received type "string"
Mal darfs "number" sein und dann wieder "string". Kein Reboot in dem Zeitraum laut Log
-
@alexho sagte in Wasserzähler - Version 2 - all-in-device:
@steffi
Das Problem mit Spiegelung konnte ich mit Hilfe der "Einleger aus 3D Drucker" in Griff bekommen.Das Problem kommt daher, dass seit Version 10 bei einem fehlerhaften Wert kein Value übertragen wird, sondern ein leerer String: "". Wenn jemand eine bessere Idee hat, bitte gerne melden. Das scheint bei mehrerer zu Verwirrung zu führen.
-
@jomjol
Hallo und gesundes neues Jahr.
Ich hab zum Jahreswechsel meinen Gas und Wasserzähler von 6.4 auf 10.2 upgedatet.
Wasser läuft soweit prima aber Gas macht mir die 6 und 9 Probleme.
Du hast mir damals die dig0840s1q.tflite dafür gebaut. Die hab ich jetzt auch probiert aber er erkennt mir die 9 an der dritten Stelle immer wieder mal als 0 obwohl die sich ja gar nicht ändert. An der 5 und 6 Stelle erkennt er die 6 und 9 bisher ganz gut. Anbei die Ziffern 5, 6 und 9.
9_dig3_20220103-105110.zip
Hab jetzt auch schon mit der Größe gespielt aber nach mehreren richtigen kommt immer wieder die 0.
Was genau macht eigentlich der Eintrag "ModelInputSize = 20 32" kann man da ev. was tun?
Die Größe der Zahlen beim Konfigurieren ist dx 60 dy 107
Anbei auch meine Config.ini config.ini
Freu mich schon auf deine Antwort
LG Horst -
@jomjol Erstmal, geiles Projekt!
@all
Ich hätte zwei Fragen zu dem Projekt, neben der normalen Wasseruhr würde ich gerne meine Warmwasserzähler tracken.-
Ich hab schon gesehen, dass nicht unbedingt 4 Analogzeiger zum errechnen des Zählerstandes notwendig sind, Frage ob der Wasserzähler im Bild funktioniert, ich gehe da aktuell davon aus.
-
Wie man ebenfalls auf dem Bild erkennt hab ich im Heizkreisverteiler nur 7-8 cm Platz, die Linse wäre dann nur ca. 5cm von der Uhr weg. Krieg ich das scharf, reicht der Winkel vom Objektiv und ist die Bilderkennung darauf angewiesen die volle Rundung der Uhr zu erkennen?
-
-
@alexho
Ist ja lustig, selber Zähler und Zählerstand
-
@fanatikz said in Wasserzähler - Version 2 - all-in-device:
Ich hab schon gesehen, dass nicht unbedingt 4 Analogzeiger zum errechnen des Zählerstandes notwendig sind, Frage ob der Wasserzähler im Bild funktioniert, ich gehe da aktuell davon aus.
Ja, der geht. Du musst den Parameter DecimalShift = -3 setzen.
Wie man ebenfalls auf dem Bild erkennt hab ich im Heizkreisverteiler nur 7-8 cm Platz, die Linse wäre dann nur ca. 5cm von der Uhr weg. Krieg ich das scharf, reicht der Winkel vom Objektiv und ist die Bilderkennung darauf angewiesen die volle Rundung der Uhr zu erkennen?
Die volle Rundung ist nicht nötig. Wenn Du das Bild nicht scharf bekommst oder die kurze Entfernung zu starke Verzerrung erzeugt, versuch's mit einem Spiegel.
-
@rupert-s sagte in Wasserzähler - Version 2 - all-in-device:
@fanatikz said in Wasserzähler - Version 2 - all-in-device:
Ich hab schon gesehen, dass nicht unbedingt 4 Analogzeiger zum errechnen des Zählerstandes notwendig sind, Frage ob der Wasserzähler im Bild funktioniert, ich gehe da aktuell davon aus.
Ja, der geht. Du musst den Parameter DecimalShift = -3 setzen.
Bist du dir hier sicher?
Es geht ja bei DecimalShift und die digitalen Ziffern?
Bei der Beschreibung zu DecimalShif steht: Shift the digit separator within the digital digits (positiv and negativ)Ich habe bei mir in den analogen ROI's einfach nur 3 angelegt und somit auch nur 3 Kreise um die analogen Zeiger gemacht. Bisher klappt das gut.
Bei DecimalShift steht bei mir 0
-
Erstmal vielen Dank für deine tolle Arbeit. Schätze ich wirklich sehr!
Ich hätte aber nochmal eine Frage zu den Werten.
Habe die neuste Version geflasht über das OTA Update:
Und hier gleich das Bild mit den Zählerständen.
Die analogen Zeiger werden richtig ausgelesen (der letzte Zeiger würde zwar schon auf der 4 stehen, aber das ist nicht so schlimm), allerdings, wird oben schon 310 erkannt. Ist zwar grundsätzlich von der Erkennung richtig, aber dennoch Logik mäßig falsch. Es sind nämlich 309.953
Heißt ich habe noch knapp 50 Liter bis wirklich 310 richtig wäre. Ich weiß das ist jetzt ein blödes Beispiel, aber das passiert auch, wenn es noch ungefähr 200 Liter sind.Kann hier von meiner Seite aus in der Config was verbessert werden?
Oder ist hier die Programmierlogik gefragt?Danke
-
@hasont Hallo Horst,
ich nehme dein Bilder ins nächste Training auf. Aber wenn du die dig0840s1q.tflite verwendest, darf sich an der Erkennungsgenauigkeit nichts ändern. Daran hat sich nichts geändert.
Gruß,
jomjol -
@rupert-s vielen dank, ich probier es mal aus.
-
@wusa sagte in Wasserzähler - Version 2 - all-in-device:
@rupert-s sagte in Wasserzähler - Version 2 - all-in-device:
@fanatikz said in Wasserzähler - Version 2 - all-in-device:
Ich hab schon gesehen, dass nicht unbedingt 4 Analogzeiger zum errechnen des Zählerstandes notwendig sind, Frage ob der Wasserzähler im Bild funktioniert, ich gehe da aktuell davon aus.
Ja, der geht. Du musst den Parameter DecimalShift = -3 setzen.
Bist du dir hier sicher?
Es geht ja bei DecimalShift und die digitalen Ziffern?
Bei der Beschreibung zu DecimalShif steht: Shift the digit separator within the digital digits (positiv and negativ)Ich habe bei mir in den analogen ROI's einfach nur 3 angelegt und somit auch nur 3 Kreise um die analogen Zeiger gemacht. Bisher klappt das gut.
Bei DecimalShift steht bei mir 0
Mit DecimalShift ist das so:
Das Komma liegt immer zwischen den analogen und digitalen Ziffern. Relativ dazu kann es über den Parameter verschoben werden. Wenn es keine analogen Zeiger gibt, dann ist die Zahl erstmal ohne Ziffern und kann dann über DecimalShift entsprechend verschoben werden. -
@wusa sagte in Wasserzähler - Version 2 - all-in-device:
Erstmal vielen Dank für deine tolle Arbeit. Schätze ich wirklich sehr!
Ich hätte aber nochmal eine Frage zu den Werten.
Habe die neuste Version geflasht über das OTA Update:
Und hier gleich das Bild mit den Zählerständen.
Die analogen Zeiger werden richtig ausgelesen (der letzte Zeiger würde zwar schon auf der 4 stehen, aber das ist nicht so schlimm), allerdings, wird oben schon 310 erkannt. Ist zwar grundsätzlich von der Erkennung richtig, aber dennoch Logik mäßig falsch. Es sind nämlich 309.953
Heißt ich habe noch knapp 50 Liter bis wirklich 310 richtig wäre. Ich weiß das ist jetzt ein blödes Beispiel, aber das passiert auch, wenn es noch ungefähr 200 Liter sind.Kann hier von meiner Seite aus in der Config was verbessert werden?
Oder ist hier die Programmierlogik gefragt?Danke
Dafür gibt es im Expertenmodus den Parameter:
Der übernimmt genau diese Konistenzprüfung. Nachdem du ihn aktiviert hast, kann du über SetPrevalue den richtigen Wert setzen. -
@wusa ich hätte den Digital shift jetzt für die 3 roten Werte nach dem Komma verstanden.
-
-
@jomjol
Hallo, also ich habe wieder von Version 9 aktualisiert und letzteres funktioniert bei mir einfach nicht. Er misst nicht mehr, schneidet, startet neu und verhält sich seltsam. Hier ist der Teil des Logs vor und nach dem Update. Ich habe über OTA-HTML und Firmware aktualisiert2022-01-03T22:20:57: task_autodoFlow - next round - Round #6 2022-01-03T22:20:57: FlowControll.doFlow - ClassFlowMakeImage 2022-01-03T22:21:07: FlowControll.doFlow - ClassFlowAlignment 2022-01-03T22:21:27: FlowControll.doFlow - ClassFlowDigit 2022-01-03T22:21:55: FlowControll.doFlow - ClassFlowAnalog 2022-01-03T22:22:11: FlowControll.doFlow - ClassFlowPostProcessing 2022-01-03T22:22:11: FlowControll.doFlow - ClassFlowMQTT 2022-01-03T22:22:11: sent publish successful in MQTTPublish, msg_id=25884, watermeter/connection, connected 2022-01-03T22:22:11: sent publish successful in MQTTPublish, msg_id=4027, watermeter/uptime, 1533 2022-01-03T22:22:11: sent publish successful in MQTTPublish, msg_id=64775, watermeter/freeMem, 2986376 2022-01-03T22:22:11: sent publish successful in MQTTPublish, msg_id=31858, watermeter/value, 44.8473 2022-01-03T22:22:12: sent publish successful in MQTTPublish, msg_id=11321, watermeter/error, no error 2022-01-03T22:22:12: sent publish successful in MQTTPublish, msg_id=17308, watermeter/rate, 0.000000 2022-01-03T22:22:12: sent publish successful in MQTTPublish, msg_id=7904, watermeter/timestamp, 2022-01-03T22:21:05 2022-01-03T22:22:12: sent publish successful in MQTTPublish, msg_id=53655, watermeter/json, {"value":44.8473,"error":"no error","rate":0.000000,"timestamp":"2022-01-03T22:21:05"} 2022-01-03T22:22:12: task_autodoFlow - round done 2022-01-03T22:22:12: CPU Temperature: 56.7 2022-01-03T22:22:16: handler_ota_update 2022-01-03T22:22:16: upload_post_handler 2022-01-03T22:22:25: download_get_handler 2022-01-03T22:22:28: handler_ota_update 2022-01-03T22:22:28: upload_post_handler 2022-01-03T22:22:29: download_get_handler 2022-01-03T22:22:41: handler_ota_update 2022-01-03T22:23:20: handler_ota_update 2022-01-03T22:23:30: handler_reboot 2022-01-03T22:23:30: Reboot in 5sec 2022-01-03T22:23:53: Time zone set to CET-1CEST,M3.5.0,M10.5.0/3 2022-01-03T22:23:53: ============================================================================================= 2022-01-03T22:23:53: =================================== Main Started ============================================ 2022-01-03T22:23:53: ============================================================================================= 2022-01-03T22:24:00: Time zone set to CET-1CEST 2022-01-03T22:24:00: task_autodoFlow - next round - Round #1 2022-01-03T22:24:00: FlowControll.doFlow - ClassFlowMakeImage 2022-01-03T22:24:11: FlowControll.doFlow - ClassFlowAlignment 2022-01-03T22:24:26: FlowControll.doFlow - ClassFlowCNNGeneral 2022-01-03T23:02:11: info_get_handler 2022-01-03T23:02:20: info_get_handler 2022-01-03T23:02:20: info_get_handler 2022-01-03T23:02:20: info_get_handler 2022-01-03T23:02:20: info_get_handler 2022-01-03T23:02:21: info_get_handler 2022-01-03T23:02:21: info_get_handler 2022-01-03T23:02:21: info_get_handler 2022-01-03T23:02:21: info_get_handler 2022-01-03T23:02:31: download_get_handler 2022-01-03T23:02:32: download_get_handler 2022-01-03T23:03:07: info_get_handler 2022-01-03T23:04:30: info_get_handler 2022-01-03T23:08:21: info_get_handler 2022-01-03T23:08:51: info_get_handler 2022-01-03T23:08:56: info_get_handler 2022-01-03T23:08:56: info_get_handler 2022-01-03T23:08:56: info_get_handler 2022-01-03T23:08:56: info_get_handler 2022-01-03T23:08:56: info_get_handler 2022-01-03T23:08:56: info_get_handler 2022-01-03T23:08:56: info_get_handler 2022-01-03T23:08:56: info_get_handler 2022-01-03T23:08:59: download_get_handler 2022-01-03T23:09:00: download_get_handler 2022-01-03T23:09:36: download_get_handler 2022-01-03T23:10:35: download_get_handler 2022-01-03T23:11:32: info_get_handler 2022-01-03T23:12:01: download_get_handler 2022-01-03T23:12:04: download_get_handler 2022-01-03T23:12:54: download_get_handler 2022-01-03T23:13:39: handler_reboot 2022-01-03T23:13:39: Reboot in 5sec 2022-01-03T23:13:55: Time zone set to CET-1CEST,M3.5.0,M10.5.0/3 2022-01-03T23:13:55: ============================================================================================= 2022-01-03T23:13:55: =================================== Main Started ============================================ 2022-01-03T23:13:55: ============================================================================================= 2022-01-03T23:14:02: Time zone set to CET-1CEST 2022-01-03T23:14:02: task_autodoFlow - next round - Round #1 2022-01-03T23:14:02: FlowControll.doFlow - ClassFlowMakeImage 2022-01-03T23:14:12: FlowControll.doFlow - ClassFlowAlignment 2022-01-03T23:14:27: FlowControll.doFlow - ClassFlowCNNGeneral 2022-01-03T23:16:58: download_get_handler 2022-01-03T23:17:00: download_get_handler 2022-01-03T23:18:07: info_get_handler 2022-01-03T23:18:48: download_get_handler 2022-01-03T23:19:36: info_get_handler 2022-01-03T23:22:12: info_get_handler 2022-01-03T23:23:02: download_get_handler 2022-01-03T23:34:01: handler_reboot 2022-01-03T23:34:01: Reboot in 5sec 2022-01-03T23:34:24: Time zone set to CET-1CEST,M3.5.0,M10.5.0/3 2022-01-03T23:34:24: ============================================================================================= 2022-01-03T23:34:24: =================================== Main Started ============================================ 2022-01-03T23:34:24: ============================================================================================= 2022-01-03T23:34:31: Time zone set to CET-1CEST 2022-01-03T23:34:31: task_autodoFlow - next round - Round #1 2022-01-03T23:34:31: FlowControll.doFlow - ClassFlowMakeImage 2022-01-03T23:34:40: FlowControll.doFlow - ClassFlowAlignment 2022-01-03T23:34:55: FlowControll.doFlow - ClassFlowCNNGeneral 2022-01-03T23:35:34: download_get_handler 2022-01-03T23:35:36: download_get_handler
-
@jezinka
Die Bilder zeigen, wie es sich verhält. Es ist nicht möglich, ein Bild als Referenz usw. zu laden. Jetzt habe ich Version 9 zurückgegeben und es funktioniert nicht mehr wie zuvor. Im Grunde misst es nicht, sondern zeigt die Bilder zumindest richtig an. -
@jezinka version 9
-
@jezinka sagte in Wasserzähler - Version 2 - all-in-device:
@jezinka
Die Bilder zeigen, wie es sich verhält. Es ist nicht möglich, ein Bild als Referenz usw. zu laden. Jetzt habe ich Version 9 zurückgegeben und es funktioniert nicht mehr wie zuvor. Im Grunde misst es nicht, sondern zeigt die Bilder zumindest richtig an.Grundsätzlich läuft Version 10 deutlich stabiler. Wenn es jetzt bei dir weder mit v9, noch mit v10 stabil läuft, liegt es wohl eher an der Hardware. Eventuell ist deine SD-Karte zerschossen, im schlimmeren Fall hast du einen Hardwarefehler.
Ich kann nur empfehlen, alles nochmals komplett neu aufzusetzen:- ESP32 erst Erease, dann flashen
- SD-Karte formatieren und erstmal mit der Grundkonfiguration bespielen.
Viel Erfolg,
jomjoil