NEWS
Wasserzähler - Version 2 - all-in-device
-
@jomjol
Der Dank geht an Apollo77
Ich habe aber noch einen weiteren Parse-Fehler bei Neg-Read:mqtt.1 2021-12-31 14:14:53.026 warn Cannot parse "gaszaehler/main/json": {"value":,"raw":"18010.06","error":"Neg. Rate - Read: 18010.06 - Raw: 18010.06 - Pre: 18010.94 ","rate":"","timestamp":""} mqtt.1 2021-12-31 14:10:02.039 warn Cannot parse "gaszaehler/main/json": {"value":,"raw":"18010.05","error":"Neg. Rate - Read: 18010.05 - Raw: 18010.05 - Pre: 18010.94 ","rate":"","timestamp":""} mqtt.1 2021-12-31 14:00:20.035 warn Cannot parse "gaszaehler/main/json": {"value":,"raw":"18010.03","error":"Neg. Rate - Read: 18010.03 - Raw: 18010.03 - Pre: 18010.93 ","rate":"","timestamp":""}
-
@steffi
Das Problem mit Spiegelung konnte ich mit Hilfe der "Einleger aus 3D Drucker" in Griff bekommen. -
@andreas_z sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol
Der Dank geht an Apollo77
Ich habe aber noch einen weiteren Parse-Fehler bei Neg-Read:mqtt.1 2021-12-31 14:14:53.026 warn Cannot parse "gaszaehler/main/json": {"value":,"raw":"18010.06","error":"Neg. Rate - Read: 18010.06 - Raw: 18010.06 - Pre: 18010.94 ","rate":"","timestamp":""} mqtt.1 2021-12-31 14:10:02.039 warn Cannot parse "gaszaehler/main/json": {"value":,"raw":"18010.05","error":"Neg. Rate - Read: 18010.05 - Raw: 18010.05 - Pre: 18010.94 ","rate":"","timestamp":""} mqtt.1 2021-12-31 14:00:20.035 warn Cannot parse "gaszaehler/main/json": {"value":,"raw":"18010.03","error":"Neg. Rate - Read: 18010.03 - Raw: 18010.03 - Pre: 18010.93 ","rate":"","timestamp":""}
Danke für den Hinweis - Version 10.0.2 beseitigt auch diesen Bug.
-
@michmein
Mein Wasserzähler sieht genauso aus wie der auf deinem Bild. Ich würde deine Lösung gerne übernehmen. Hast du den Ausschnitt für den weißen Deckel "von Hand" reingeschnitten oder das stl-File des Wasseruhr-Adapters modifiziert? -
@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.
-