NEWS
Wasserzähler - Version 2 - all-in-device
Wasserzähler - Version 2 - all-in-device
-
Hallo zusammen,
ich möchte in diesem Thread den Wasserzähler in der Version 2 vorstellen und diskutieren. In Version 1 waren 2 Komponeten notwendig (Hardware mit Kameraaufnahme, Docker-Server zur Auswertung). Das Zusammenspiel und die Konfiguration waren nicht immer ganz einfach.
Daher habe ich eine Nachfolgegeneration entwickelt, bei der alles in einem all-included Device umgesetzt ist und es noch um eine Web-basierte graphische Oberfläche zur einfachen Konfiguration ergänzt.
Das Grundprinzip basiert unverändert auf einem ESP32-Modul mit Kamera, welches regelmäßig ein Bild aufnimmt und durch Bilderkennung (Neuronale Netze, CNN) auswertet und den Zählerstand digitalisiert zur Verfügung stellt:


Hier ein Eindruck der graphischen Benutzeroberfläche:

Die Hardware ist wieder auf Thingiverse veröffentlicht, die Software könnt ihr als Firmware oder zum selber kompilieren auf GitHub finden. Dort gibt es auch ein Wiki mit Installations- und Konfigurationsanleitung.
-
Software/Wiki: https://github.com/jomjol/AI-on-the-edge-device/wiki
Ich stehe hier gerne wieder für Feedback, Fragen oder einfach zur Hilfe zur Verfügung und freue mich, wenn dieser Thread genauso intensiv genutzt wird, wie bei der Version 1 (>1k Beiträge und >22k Aufrufe).
Beste Grüße und viel Spass beim Nachbauen,
Jomjol
P.S.: die neue Software ist sehr flexibel aufgebaut und kann grundsätzlich auch Bildererkennung / Neuronale Netze für andere Zwecke eingesetzt werden. Wer eine gute Idee oder Anregung hat oder bei eine Modifikation Unterstützung braucht - bitte auch gerne einfach hier posten.
@jomjol Gelöst!
Die Konfiguration musste auskommentiert werden. (nach dem Lesen des Forums)Hallo, also habe ich dieses Projekt erfolgreich umgesetzt, obwohl ich mir darüber Sorgen gemacht habe. Vielen Dank für dieses Projekt, es ist großartig!
Das einzige, was ich nicht tun konnte, war MQTT in Home Assistant auszuführen. Ich versuche mir dieses Thema anzuhören: wasser / watermeter / readout
hat aber keine antwort. Ich habe die IP-Adresse im Home Assistant aufgeführt, auf dem der MQTT-Broaker ausgeführt wird. Name und Passwort ebenfalls ausgefüllt. Was mache ich bitte falsch? -
@jomjol Gelöst!
Die Konfiguration musste auskommentiert werden. (nach dem Lesen des Forums)Hallo, also habe ich dieses Projekt erfolgreich umgesetzt, obwohl ich mir darüber Sorgen gemacht habe. Vielen Dank für dieses Projekt, es ist großartig!
Das einzige, was ich nicht tun konnte, war MQTT in Home Assistant auszuführen. Ich versuche mir dieses Thema anzuhören: wasser / watermeter / readout
hat aber keine antwort. Ich habe die IP-Adresse im Home Assistant aufgeführt, auf dem der MQTT-Broaker ausgeführt wird. Name und Passwort ebenfalls ausgefüllt. Was mache ich bitte falsch? -
-
@MichMein hast du am Gaszähler das FishEye Objektiv drauf, ja oder? Hätte ich noch hier rumliegen.
Sieht top aus, glaub ich muss meinen auch umrüsten auf den ESP. Momentan hängt da nur ein Sensor dran, der den Impuls zählt. -
@watcherkb Sehr gut
Wenn Dein Gaszähler meinem Schlumberger G4 RF1 gleicht, kann ich Dir gerne die STL Dateien geben. -
@watcherkb Sehr gut
Wenn Dein Gaszähler meinem Schlumberger G4 RF1 gleicht, kann ich Dir gerne die STL Dateien geben. -
@Hasont
Die vielen Nachkommastellen könnten ein Fehler in der Ausgabe sein. Was meinst du mit "CorrectedValue" ist. WEnn du damit "Configuration" --> "Set PreValue" meinst, dann verstehe ich deine Darstellung allerdings auch nicht.
Gruß,
jomjol@jomjol sagte in Wasserzähler - Version 2 - all-in-device:
@Hasont
Die vielen Nachkommastellen könnten ein Fehler in der Ausgabe sein. Was meinst du mit "CorrectedValue" ist. WEnn du damit "Configuration" --> "Set PreValue" meinst, dann verstehe ich deine Darstellung allerdings auch nicht.
Gruß,
jomjolJa, ich meinte Set PreValue, habs grad erst wieder gesetzt! Bleibt immer 6 stellig und rundet sogar nach unten ab.
Hatte 3047.70 als PreValue eingegeben und er zeigt 3047.699951.

-
@jomjol sagte in Wasserzähler - Version 2 - all-in-device:
@Hasont
Die vielen Nachkommastellen könnten ein Fehler in der Ausgabe sein. Was meinst du mit "CorrectedValue" ist. WEnn du damit "Configuration" --> "Set PreValue" meinst, dann verstehe ich deine Darstellung allerdings auch nicht.
Gruß,
jomjolJa, ich meinte Set PreValue, habs grad erst wieder gesetzt! Bleibt immer 6 stellig und rundet sogar nach unten ab.
Hatte 3047.70 als PreValue eingegeben und er zeigt 3047.699951.

-
@MichMein hätte auch Interesse an den stl files,
habe hier 2 Esp einmal mit fish eye- und einmal normal
könnte dann mit beiden testen und berichten Gaszähler sieht ident aus
Mit freundlichen Grüßen
mikewolf@Mikewolf Hi, hier die STL Dateien. Diese sind nochmals etwas modifiziert worden, 2mm breiter und 2mm höher in der Hoffnung das es besser passt. Auch die Auflage für den ESP ist geändert worden. Schau mal ob Du damit etwas wirst und berichte dann bitte!
-
@jomjol sagte in Wasserzähler - Version 2 - all-in-device:
@Hasont
Die vielen Nachkommastellen könnten ein Fehler in der Ausgabe sein. Was meinst du mit "CorrectedValue" ist. WEnn du damit "Configuration" --> "Set PreValue" meinst, dann verstehe ich deine Darstellung allerdings auch nicht.
Gruß,
jomjolJa, ich meinte Set PreValue, habs grad erst wieder gesetzt! Bleibt immer 6 stellig und rundet sogar nach unten ab.
Hatte 3047.70 als PreValue eingegeben und er zeigt 3047.699951.

@Hasont Aus dem von Dir genannten Problem habe ich nur die ersten beiden Stellen nach dem Komma genommen da es recht unwahrscheinlich ist das das Bild immer dann gemacht wird wenn an der letzten Stellen die richtig zu sehen ist. Mit den 2 Stellen klappt es bei mir bestens!
-
@Hasont Hallo Horst,
ich hänge Dir hier ein paar Handybilder meiner Einstellungen an, vielleicht helfen diese Dir ja weiter.
Du musst in den SA Adapter Deine benötigten Einstellungen vornehmen und im DP Deiner Wassermenge für den SA Adapter auch m3 angeben da es das nicht aus dem DP auslesen kann.

Gruß Michael
PS. mein Gehäuse für den Gaszähler ist fertig und nachher test ich mal ob es auch passt. Ich berichte weiter.
-
@Hasont Aus dem von Dir genannten Problem habe ich nur die ersten beiden Stellen nach dem Komma genommen da es recht unwahrscheinlich ist das das Bild immer dann gemacht wird wenn an der letzten Stellen die richtig zu sehen ist. Mit den 2 Stellen klappt es bei mir bestens!
@MichMein sagte in Wasserzähler - Version 2 - all-in-device:
@Hasont Aus dem von Dir genannten Problem habe ich nur die ersten beiden Stellen nach dem Komma genommen da es recht unwahrscheinlich ist das das Bild immer dann gemacht wird wenn an der letzten Stellen die richtig zu sehen ist. Mit den 2 Stellen klappt es bei mir bestens!
Ich nehme auch nur 2 Stellen und er zeigts im RAW ja auch an. Trotzdem macht er 6 Stellen nach dem Komma.
Denke jomjol hat ja schon ne Idee uns man braucht es ja nicht wirklich.Horst
-
@MichMein
Hallo Michael, danke dafür.
Funktioniert jetzt auch mit Parser.
Was wäre das denn für ein Vorteil auf mqtt umzustellen?
Dein Gaszähler sieht ja echt gut aus.LG
Horst -
@watcherkb Sehr gut
Wenn Dein Gaszähler meinem Schlumberger G4 RF1 gleicht, kann ich Dir gerne die STL Dateien geben. -
@MichMein leider nein, da muss ich was eigenes designen. Den Deckel kopiere ich mir aber gerne

Danke@watcherkb schade, gerne doch. Viel Erfolg

-
@Mikewolf Hi, hier die STL Dateien. Diese sind nochmals etwas modifiziert worden, 2mm breiter und 2mm höher in der Hoffnung das es besser passt. Auch die Auflage für den ESP ist geändert worden. Schau mal ob Du damit etwas wirst und berichte dann bitte!
-
@MichMein Hallo Dateien im Druck,später wenn fertig werde ich berichten Danke für die bereitstellung der files
frage : mit welchen Pogramm Arbeitest Du um so etwas zu kreieren .DAnke
mikewolf -
Also trat jetzt ein anderes Problem auf. Mehrmals am Tag wird ein bedeutungsloser Wert generiert und weitergegeben, sodass er in InfluxDB geschrieben wird, wo ich nach der Erkennung die Daten bearbeiten muss. Hier sende ich einen Auszug aus dem Protokoll von 3 Werten, wenn der mittlere falsch erkannt wird und dann wieder richtig. Ich sende auch Konfigurationsnachbearbeitung.
Vielleicht habe ich etwas falsch eingestellt, aber ich weiß nicht was. Bitte sehen Sie irgendwo einen Fehler?[PostProcessing]
DecimalShift = 0
PreValueUse = True
PreValueAgeStartup = 30
AllowNegativeRates = False
MaxRateValue = 0.1
ErrorMessage = True
CheckDigitIncreaseConsistency = False2020-11-28_16-37-55: task_autodoFlow - next round
2020-11-28_16-37-55: FlowControll.doFlow - ClassFlowMakeImage
2020-11-28_16-38-00: FlowControll.doFlow - ClassFlowAlignment
2020-11-28_16-39-03: FlowControll.doFlow - ClassFlowDigit
2020-11-28_16-39-08: handler_wasserzaehler
2020-11-28_16-39-09: handler_wasserzaehler
2020-11-28_16-39-09: handler_prevalue
2020-11-28_16-39-20: FlowControll.doFlow - ClassFlowAnalog
2020-11-28_16-39-46: FlowControll.doFlow - ClassFlowPostProcessing
2020-11-28_16-39-46: FlowControll.doFlow - ClassFlowMQTT
2020-11-28_16-39-46: sent publish successful in MQTTPublish, msg_id=50761, watermeter/readout, 631.0377
2020-11-28_16-39-46: task_autodoFlow - round done
2020-11-28_16-39-46: CPU Temperature: 57.22020-11-28_16-42-46: task_autodoFlow - next round
2020-11-28_16-42-46: FlowControll.doFlow - ClassFlowMakeImage
2020-11-28_16-42-51: FlowControll.doFlow - ClassFlowAlignment
2020-11-28_16-43-54: FlowControll.doFlow - ClassFlowDigit
2020-11-28_16-44-08: handler_wasserzaehler
2020-11-28_16-44-08: handler_wasserzaehler
2020-11-28_16-44-08: handler_prevalue
2020-11-28_16-44-09: FlowControll.doFlow - ClassFlowAnalog
2020-11-28_16-44-35: FlowControll.doFlow - ClassFlowPostProcessing
2020-11-28_16-44-35: FlowControll.doFlow - ClassFlowMQTT
2020-11-28_16-44-35: sent publish successful in MQTTPublish, msg_id=2756, watermeter/readout, 639.0385
2020-11-28_16-44-35: task_autodoFlow - round done
2020-11-28_16-44-35: CPU Temperature: 57.22020-11-28_16-47-37: task_autodoFlow - next round
2020-11-28_16-47-37: FlowControll.doFlow - ClassFlowMakeImage
2020-11-28_16-47-42: FlowControll.doFlow - ClassFlowAlignment
2020-11-28_16-48-45: FlowControll.doFlow - ClassFlowDigit
2020-11-28_16-49-02: FlowControll.doFlow - ClassFlowAnalog
2020-11-28_16-49-08: handler_wasserzaehler
2020-11-28_16-49-09: handler_wasserzaehler
2020-11-28_16-49-09: handler_prevalue
2020-11-28_16-49-30: FlowControll.doFlow - ClassFlowPostProcessing
2020-11-28_16-49-30: FlowControll.doFlow - ClassFlowMQTT
2020-11-28_16-49-30: sent publish successful in MQTTPublish, msg_id=53367, watermeter/readout, 631.0389
2020-11-28_16-49-31: task_autodoFlow - round done
2020-11-28_16-49-31: CPU Temperature: 53.3




Jetzt nicht mehr.
daher weiß ich nicht genau. Das kann ich dir aber am Montag sagen mit welchem Programm mein Kollege das macht.