NEWS
Wasserzähler - Selfmade
-
Ich habe heute mal die Wasseruhr freigeräumt und mit Erschrecken festgestellt, dass meine eine völlig andere Uhr ist, als die, welche hier immer auf allen Bildern zu sehen ist.
funktioniert das Ganze auch mit einer solchen Wasseruhr? oder bin ich der einzige hier, der einen solchen Exoten im Keller hängen hat?
Gruss
Silvio -
@cybertron Edit: siehe Post von jomjol weiter unten.
-
@jomjol Kannst Du mir bitte nochmals auf die Sprünge helfen wie Du den Docker am Raspberry startest.
Liebe Grüße
Pauldocker run -p 3000:3000 --mount type=bind,source=/volume/configpath,target=/config --mount type=bind,source=/volume/logpath,target=/log
geht gar nicht wie oben beschrieben.
Habesudo docker run -p 3000:3000 jomjol/wasserzaehler:rasp-rolling -- mount ......etcetc
versucht, da sagt Docker, dass er den mount Befehl nicht kennt. -
Ich habe leider das Problem, dass die Fehlerprüfung gar nicht mehr greift.
Habe heute auch mehrfach den Docker Container recreatet (Synology DS918+ / rolling), was leider keinen Erfolg brachte.
Gemerkt hatte ich es, als heute die Wasseruhr von 299 auf 300 m³ gewechselt hat.
Da wurde NNN.0156 angezeigt. Es kahm aber kein Error.
Mit der Version von Mitte November hatte die Fehlerprüfung noch funktioniert.
Da mittlerweile die Erkennung wirklich gut funktioniert, ist mir leider nicht aufgefallen, seit wann genau die Fehlerprüfung nicht mehr geht.Aktuell sieht meine .ini so aus.
[Imagesource] TimeoutLoadImage=30 #IP durch die IP des ESP32 ersetzen! URLImageSource=http://192.168.178.71/capture_with_flashlight LogImageLocation=./log/source_image # Falls nur schlechte / fehlerhafte Bilder gelockt werden sollen, naechste Zeile Kommentar entfernen LogOnlyFalsePictures=True [ConsistencyCheck] Enabled=True AllowNegativeRates=False #Maximum Change of new to old value (+ or -) MaxRateValue=0.2 #Return in Case of Error: Value = OldValue or NewValue # ErrorMessage = Return Text with problem (seperated by Tabstopp) if nothing, then no error message # Readout = Real Readout without corrections (NewValue) ErrorReturn=OldValue, ErrorMessage, Readout #ErrorReturn=OldValue, ErrorMessage #ErrorReturn=NewValue, ErrorMessage [alignment] initial_rotation_angle=358 [alignment.ref0] image=./config/Ref_ZR_x99_y219.jpg pos_x=130 pos_y=166 [alignment.ref1] image=./config/Ref_m3_x512_y117.jpg pos_x=554 pos_y=150 [alignment.ref2] image=./config/Ref_x0_x301_y386.jpg pos_x=339 pos_y=416 [Digital_Digit] names=ziffer1, ziffer2, ziffer3, ziffer4, ziffer5 Modelfile=./config/neuralnets/Train_CNN_Digital-Readout_Version_4.1.0.h5 #LogImageLocation=./log/digital_digit #LogNames=zeiger3, zeiger4 [Analog_Counter] names=zeiger1, zeiger2, zeiger3, zeiger4 Modelfile=./config/neuralnets/CNN_Analog-Readout_Version-4.0.1.h5 #LogImageLocation=./log/analog_counter #LogNames=zeiger3, zeiger4 [Analog_Counter.zeiger1] pos_x=524 pos_y=258 dx=120 dy=120 [Analog_Counter.zeiger2] pos_x=456 pos_y=390 dx=120 dy=120 [Analog_Counter.zeiger3] pos_x=330 pos_y=446 dx=120 dy=120 [Analog_Counter.zeiger4] pos_x=167 pos_y=382 dx=120 dy=120 [Digital_Digit.ziffer1] pos_x=232 pos_y=126 dx=42 dy=75 [Digital_Digit.ziffer2] pos_x=292 pos_y=126 dx=42 dy=75 [Digital_Digit.ziffer3] pos_x=355 pos_y=126 dx=42 dy=75 [Digital_Digit.ziffer4] pos_x=417 pos_y=126 dx=42 dy=75 [Digital_Digit.ziffer5] pos_x=476 pos_y=126 dx=42 dy=75
-
Mal an alle die Verbindungsabbrüche des ESPs haben. Ich habe seit gut einer Woche den Parser Adapter abgeschaltet und frage die URL mit einem Script alle 10min ab, läuft bisher ohne Verbindungsabbrüche, liegt wohl wirklich am Parser Adapter, warum auch immer.
-
@cybertron Grundsätzlich vom Prozess kann es auch damit funktionieren, aber dazu müssen:
- Die Ziffern neu/zusätzlich trainert werden (Weiss auf Schwarz bzw. Rot)
- Der Zeiger trainiert werden, da er komplett anders aussieht (falls 0.1l notwendig)
Für 1) braucht es von jeder Ziffer einige Bilder, sowohl von den Schwarzen, wie auch von den Roten.
Gruß,
jomjol -
@pfried Hallo Paul,
du musst zuerst die Verzeichnisse "log" und "config" anlegen und dann die richtigen absoluten Pfade bei source eintragen. Wenn ich es bei mir direkt unter dem Homeverzeichnis des Users "pi" mache funktioniert es folgendermassen:mkdir log mkdir config docker run -p 3000:3000 --mount type=bind,source=/home/pi/config,target=/config --mount type=bind,source=/home/pi/log,target=/log jomjol/wasserzaehler:raspi-rolling
Gruß,
jomjol -
@coyote Stellst Du uns das Script mit einer Anleitung bitte zur Verfügung?!
-
@Knallochse Guten Morgen, habe dazu weiter oben gepostet. Check doch mal ob nicht statt Enable=True ConsistencyEnable=True in die Config.ini gehört.
-
@jomjol Hallo Jomjol, vielen Dank, funktioniert Frage: kann ich den Docker auch unter dem pm2 Tool laufen lassen, sodass nach einem Neustart der Docker automatisch gestartet wird?
Liebe Grüße
PaulEDIT: So geht es:
pm2 start 'sudo docker run -p 3000:3000 --mount type=bind,source=/home/pi/config,target=/config --mount type=bind,source=/home/pi/log,target=/log jomjol/wasserzaehler:raspi-rolling' -
@jomjol Ich leider nochmals. Bekomme nun über den Parser immer das Ergebnis: 411.8888 Das ROI Bild zeigt aber:
Mache ich da noch was falsch? Früher waren immer die Zeiger korrekt und die Ziffern falsch, jetzt ist es umgekehrt.
Liebe Grüße
Paul -
Servus
Mal ne etwas andere Zwischenfrage
Wie habt ihr den Plastikdeckel von der Wasseruhr ab bekommen?
Wenn ich den drauf lasse und auf klappe passt das mit dem 3D-Druck nicht mehr.
Oder habt ihr da ein Stück aus dem gedruckten Ring raus geschnitten?
Gruß Peer -
@C1500 Ich habe einfach was rausgedremelt , da ich denke das die Wasserwerke was dagegen haben, wenn Mann mechanisch was an der Wasseruhr verändert.
Ist ja handwerklich auch keine große Sache -
@pfried sagte in Wasserzähler - Selfmade:
@Knallochse Guten Morgen, habe dazu weiter oben gepostet. Check doch mal ob nicht statt Enable=True ConsistencyEnable=True in die Config.ini gehört.
Danke für den Hinweis, habe die config.ini mal dahingehend geändert (probiert habe ich : ConsistencyEnable=True und ConsistencyCheckEnable=True , was aber keinen Effekt hatte. Wird weiterhin kein Fehler ausgegeben. Mal sehen, ob @jomjol noch eine Idee hat.
-
Ich möchte einfach mal einen Gedanken zur Erkennung allgemein äußern.
Braucht es die Erkennung der digitalen Zahlen überhaupt?
Da bei mir die analogen Zeiger sehr zuverlässig erkannt werden, könnte man da nicht die m3-Zahlen rechnerisch erhöhten?
Bei mir machen halt die digitalen Zahlen Probleme.
Momentan sieht das Bild so aus:
Erkannt wird: N00.1684 00N00 1684 (also die 3 nicht) -
@pfried na klar, ich bin jetzt nicht der Javascript Programmierer, aber es funktioniert
Bei schedule sind 10 Minuten eingestellt.
In der Klammer von body.slice können die Stellen noch angepasst werden, hier ist 0 (Anfang vom Array) und 8 (bis zur 8ten Stelle des Arrays). Könnt ihr anpassen, wie ihr es braucht.createState('javascript.0.Wasserzaehler.Stand',""); schedule('*/10 * * * *', function () { var url = "http://IP:3000/wasserzaehler.html?usePreValue"; var req = require('request'); req(url, function(error, response, body) { if (body){ log("Body OK","warn"); setState("javascript.0.Wasserzaehler.Stand",body.slice(0, 8)); } else {log("Body fehlerhaft","warn"); } }) });
-
@Knallochse Habe mal gerade meine internen Logs geprüft. Bei mir hat die Fehlererkennung gestern noch angeschlagen (ErrorRateTooHigh).
Hast du das Problem jetzt nur beim Übergang auf die nächsten Hunderter?
NNN dürfte es eigentlich gar nicht geben, wenn du mit den Wasserzähler mit dem Parameter "usePreValue" aufrufst - das würde ich unbedingt empfehlen:/wasserzaehler.html?usePrevalue
-
-
@jomjol Hallo jomjol, bei meinem Raspberry 4 mit 2Gbyte Hauptspeicher, verabschiedet sich der Docker immer nach einiger Zeit mit:
Was kann ich da noch tun?
Liebe Grüße
Paul -
@pfried Was heisst den nach einiger Zeit? Scheint, dass irgendein Speicher überläuft, bisher habe ich mich nicht um das Speichermanagement gekümmtert.