NEWS
Wasserzähler - Version 2 - all-in-device
-
@jomjol sagte in Wasserzähler - Version 2 - all-in-device:
@werners Hi Werner,
das ist komisch - eigentlich müsste er die Ziffern alle sehr gut erkennen. Vielleicht machen die Reflektionen bei der ersten 2 oder der 5 Probleme, der Rest ist aber top! Bin ratlos!Hallo jomol
mit der älteren Version ging es bis auf die Nachkommastelle. Ich habe die neue nur drauf gemacht weil ich gehofft habe, das die dann auch geht.
Was kann ich noch machen?Gruß
Werner -
@jomjol said in Wasserzähler - Version 2 - all-in-device:
@kalli01 Haber gerade eine neue Version hochgeladen. Teste mal folgendes File: https://github.com/jomjol/neural-network-digital-counter-readout/blob/master/dig1030s1q.tflite
Danke für die neue Version. Ich habe versucht die Beleuchtung und Schärfe noch mal zu verbessern und ich finde das Bild eigentlich gut. Die 6 wird leider fast immer als 0 erkannt. Kann ich da noch etwas ändern? Sind die Felder so gut eingestellt? stört hier vielleicht der kleine weiße strich am unteren Rand?
Was ist denn der Unterschied zwischen den Dateien 1q.tflite, 2q.tflite, 3q.tflite?
edit
habe jetzt den Halter noch mal neu gemacht und die Kamera näher ran gerückt. Hoffe das es mit größeren Ziffern besser klappt. Habe die LED etwas abgedeckt aber die Reflektion ist noch da. zu Dunkel ist ja auch schlecht -
@kalli01 Der Unterschied ist die Netzgröße. Je größer die Ziffer, desto kleiner das Netz und damit schneller. Zu klein ist aber auch nicht gut, da dann die Anzahl der Parameter für die Komplexität zu gering wird. Daher ist es immer etwas experimentieren.
-
@xsev sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol Genial!!!
Ich hab die neue Rolling Version jetzt seit gut 2 Stunden am laufen und die ersten Auswertungen sind auch schon eingetroffen.
Update ging wie gewohnt problemlos via OTA, er hat sogar meine alten Werte komplett übernommen. Ich musste im Prinzip nur die 2. Zahl in den Rois hinterlegen.
Dezimal Shift hat auch für beide Zahlen (unterschiedlich) prima funktioniert, einzig die Fehlerkorrektur (maxRateValue) wäre noch sehr gut, wenn diese ebenfalls getrennt anzugeben wäre. Ich hab z.B. 2 völlig unterschiedliche Dezimalwerte da müsste ich eine getrennte Fehlerkorrektur verwenden. Aber ich schätze (hoffe) das kommt noch.
Bei der MQTT Übertragung ist mir noch ein kleiner "Schönheitsfehler" aufgefallen. Dort wird ein zusätzlicher Ordner angelegt mit dem Namen MQTT und darunter ein Ordner mit der Instanz Nummer (in meinem Fall 0) und darin ist der connection Status enthalten, der eigentliche Topic (in meinem Fall Watermeter1) kommt dann nochmal separat, siehe Screenshot. Schätze das ist was mit dem Pfad schief gelaufen.
Ansonsten alles bestens im Moment. Vielen Dank für deine Mühe!!!Der Baum sollte wie folgt aussehen:
mqtt/0
ist der normale Zweig unter iobroker. Darunter wird dann der spezielle Zähler angelegt (Paramter:maintopic
) und dann jeweils ein Unterordner für jedeNumber
(hier NT & HT).
Auf der Zählerebene gibt es noch den Statusconnection
dort findest du einen Wert, ob die Verbindung noch steht (war ein Wunsch aus einem anderen Post).
Vielleicht muss du nochmal deineconfig.ini
öffnen und dort den Parametermaintopic
setzen. Der ist neu in dieser Version. Alle anderen Parameter (topicerror
,topicrate
, ...) werden nicht mehr verwendet und durch Standartwerte ersetzt. -
@xsev In der neueste Version ist jetzt auch
MaxRateValue
individuel parametrisiert.
BUG: muss den commit nochmal zurück ziehen - da ist noch ein Fehler drin. Bin jetzt aber erstmal unterwegs - dauert daher etwas.
CORRECTED: läuft bei mir jetzt ohne Fehler und ich habe es hoch geladen (Branch "rolling") - Achtung ggf. einmalig Handarbeit an der Config.ini notwendig -
@jomjol
Super! Ich hab die Version aktualisiert, MaxRateValue konnte ich getrennt einstellen und scheint auch zu klappen. Nach dem reboot verschwindet allerdings das Auswahlhäkchen bei MaxRateValue (grau hinterlegt) und es ist augenscheinlich deaktiviert. In der Config.ini direkt ist es aber richtig hinterlegt und läuft auch.Bezüglich MQTT: Ja den normalen Zweig Mqtt.0 hab ich auch, das komische ist, in diesem legt er mir einen 2. Mqqt Zweig an in dem dann nur einmal der Topic und connected steht. Die anderen Werte sind korrekt im "Hauptmqtt Zweig" und dem Topic abgelegt.
Hab ich evtl hier was falsch?
-
@xsev sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol
Super! Ich hab die Version aktualisiert, MaxRateValue konnte ich getrennt einstellen und scheint auch zu klappen. Nach dem reboot verschwindet allerdings das Auswahlhäkchen bei MaxRateValue (grau hinterlegt) und es ist augenscheinlich deaktiviert. In der Config.ini direkt ist es aber richtig hinterlegt und läuft auch.Bezüglich MQTT: Ja den normalen Zweig Mqtt.0 hab ich auch, das komische ist, in diesem legt er mir einen 2. Mqqt Zweig an in dem dann nur einmal der Topic und connected steht. Die anderen Werte sind korrekt im "Hauptmqtt Zweig" und dem Topic abgelegt.
Hab ich evtl hier was falsch?
Das Deaktivieren kommt daher, dass du auch noch einen leeren Wert drin hast, ohne Name des ROIs (=default). Da muss ich mir noch was einfallen lassen.
-
Hallo Jomjol
Long time ago . . . Ich melde mich auch wieder mal
Hatte jetzt einige Zeit die 5-er Version am laufen ohne nennenswerte Probleme. Auch nicht mit der MicroSD. Das einzige was 2-3 mal passierte (trotz CheckDigitIncreaseConsistency=True), dass der Wert kurz vor dem Nulldurchgang trotzdem nicht richtig erfasst wurde und dann sprunghaft anstieg (bei mir um 0.1 m3). Musste dann jeweils das PreValue manuell neu setzen.
Jetzt konnte ich es aber nicht lassen und wollte unbedingt die neue Version testen. Du hast da ja extrem viel investiert, Chapeau ! Habe dann auch gleich die letzte "Rolling" verwendet. Mit ein paar kleinen Anpassungen in der config.ini habe ich es dann auch geschafft damit alles durchläuft.
Jetzt habe ich aber ein Problem mit Helligkeit, Kontrast und Sättigung. Egal was ich einstelle, auch mit oder ohne " FixedExposure", das Bild ändert beinahe bei jeder Aufnahme. Einmal "normal", dann mit grünstich oder blaustich oder auch überbelichtet. Wenn das passiert funktioniert auch die Ausrichtung an den Markers nicht mehr und der Output ist falsch. Hier einmal die verschiedenen Versionen die ich kriege:
Hast du eine Ahnung an was das liegen könnte? Mit einem anderen ESP32 habe ich es bereits ohne Erfolg versucht. Auch eine komplette Neuinstallation und einspielen der FW hat nicht geholfen (Erase). Hat das sonst niemand? Kann das an der Spiegelung liegen?
Bin für jeden Tipp dankbar.
Danke & Gruss
Michael -
Ich habe die erste Version des GPIO Handlers implementiert und ein pull-request für rolling gestartet. Bei mir läuft die Version sehr stabil.
Hier eine Liste der Änderungen:- GPIO: implements basic functionality for GPIO handler.
- Configuration via config.ini / HTML page
- GPIO 12, 13, 1, 3, 0, 4 can be used (see restrictions in HTML configuration page)
- GPIO can be used as input or output
- pullup / pulldown can be enabled
- supports all interrupt types of the ESP32
- publishing via MQTT or HTTP
- definition of the MQTT topic name
- HTML: implements regex mask for text input fields (currently enabled for GPIO inputs and main topic)
- HTML: automatic detection of select fields
- MQTT: added readings for uptime and freeMem (can be used for tracking with Infux DB and as memory leak detection)
- MQTT: connection is no longer terminated and reestablished on each flow
- Classe ConfigFile created. Can be used by all components in the future.
- Bugfix: memory leaks in ClassFlowAnalog and ClassFlowControll fixed.
- Removed compiler warnings
Die GPIO Einstellungen sind sehr umfangreich ausgefallen.
@jomjol Bitte pull-request möglichst schnell einarbeiten. Da du sehr viele Änderungen vornimmst, laufen die Versionen sehr schnell auseinander.
- GPIO: implements basic functionality for GPIO handler.
-
@zwer2k Habe gerade schon auf Github geantwortet. Das wird jetzt eine Herausforderung, da ich gerade dabei bin, den Wasserzähler auf die Option für zwei oder mehr Zahlen auf einem Bild zu erweitern. Dazu muss ich auch tiefer in die config.ini und den html-Code rein. Ist aber noch nicht veröffentlicht, da gerade bei mir im Test. Muss ich mir anschauen - dauert bei 50 Files aber einen Moment.
Aber erstmal herzlichen Dank für deine viele Arbeit und auch die Verbesserungen an meinem Code.EDIT: habe es gerade gemerged!
-
@jomjol sagte in Wasserzähler - Version 2 - all-in-device:
@zwer2k Habe gerade schon auf Github geantwortet. Das wird jetzt eine Herausforderung, da ich gerade dabei bin, den Wasserzähler auf die Option für zwei oder mehr Zahlen auf einem Bild zu erweitern. Dazu muss ich auch tiefer in die config.ini und den html-Code rein. Ist aber noch nicht veröffentlicht, da gerade bei mir im Test. Muss ich mir anschauen - dauert bei 50 Files aber einen Moment.
Aber erstmal herzlichen Dank für deine viele Arbeit und auch die Verbesserungen an meinem Code.EDIT: habe es gerade gemerged!
Super, vielen Dank.
Konntest du schon deine Änderungen rein mergen?
Hatte auch einige Zeit für das mergen gebraucht, mein Fork war vor ca. einem Monat, seit dem hast du jede Menge Änderungen vorgenommen, vor allem die HTML-Dateien waren nicht einfach.
Da habe ich eine Frage: Wieso entwickelst du fast ausschließlich in plain-Javascript? Ein Framework würde es ja erheblich vereinfachen. jQuery hast du zwar an 1,2 Stellen eingebunden, hast aber nicht wirklich eingesetzt. -
@zwer2k Bin in html und javascript wirklich kein Experte und daher hat es sich so entwickelt. Wenn du mir da etwas unter die Arme greifen kannst, wäre das super!
Ich habe deine Änderungen übernommen, jedoch noch einige Schwierigkeiten mit dem Multi-Number und dem Handling der Configuration. Bin gerade dabei an meinen 3 Zähler verschiedene Setup-Szenarien zu testen und lade nachher noch einen Zwischenstand hoch.
Noch eine Frage: du scheinst dich auch gut in espressif auszukennen. Ich schaffe es nicht, den Code auf v4.3 zum Laufen zu bekommen. Hast du mit sowas Erfahrung?
-
@jomjol
Bei der html und javascript Entwicklung kann ich gern unterstützen. Auf ein Framework zu wechseln würde komplette Neuentwicklung des Frontends bedeuten und z.T. im Backend, ist einiges an Aufwand und vermutlich nicht mehr nötigt, da du vermutlich nicht mehr viele Funktionen implementieren willst. Mit jQuery könnte man aber einiges vereinfachen.
Im espressif bin ich auch kein Experte, hab bis jetzt hauptsächlich Arduino-Framework mit Platform-IO verwendet. Du verwendest soweit ich weiß auch Platform-IO, so wie ich es verstehe gibt es dafür maximal espressif@3.3.0 . Die lässt sich problemlos kompilieren. Wenn du idf-tools verwendest, dann kannst du auch espressif 4.3 installieren, damit konnte ich dein Code auch problemlos kompilieren. -
@zwer2k Kompilieren geht auch problemlos, aber der Code läuft nicht auf dem ESP32 - er hängt bei mir ohne jegliche Fehlermeldung.
-
-
@zwer2k Genau dasselbe Phänomen habe ich auch!
-
@Zwer2k Ich habe gerade die neue Rolling gepostest. Sie soll ist eine Beta für das nächste Release - Fokus ist Dual/Multi Meter Option (mehrere Zahlen auf einem Zähler).
Ich habe auch alle deine Funktionen übernommen, allerdings scheint es bei mir nicht zu funktionieren, zumindest finde ich keine Einträge im MQTT über den Zustand der GPIOs. Was genau muss ich einstellen und woran merke ich, ob es wirklich funktioniert.
Vielleicht kannst du die neue Rolling auch testen. Eventuell habe ich bei der Integration und dem finalen Bug-Fixing noch etwas an einem Code versehentlich verändert.Danke und Gruß,
jomjol -
@jomjol Hallo Josef, hoffe ich kann die neue Version bei mir nun ohne Probleme einspielen, die letzten Versionen ab 7.0.1 habe ich einfach nicht zum laufen gebracht. Ich werde nun gleich einmal testen und berichten. Vielen Dank für Deine unermüdliche Arbeit, ist ein super Projekt!! Liebe Grüße Paul
-
@pfried Bin gespannt auf deine Rückmeldung!
-
@jomjol
Deine neue Version scheint gut zu laufen . Hab auch einmal selbst kompiliert, geht auch. War etwas verwirrt, da sich die IP-Adresse von der ESP-CAM geändert hat, kommt vermutlich vom spielen mit mit verschiedenen espressif Versionen.
Ich verstehe allerdings nicht, wie ich einen weiteren Zähler hinzufügen müsste. Muss aber dazu sagen, dass ich nicht genau nachgeschaut habe, da ich keinen doppelten Zähler habe.GPIOs funktionieren bei mir weiterhin problemlos. Hast du entsprechenden MainTopicMQTT definiert?
Und Häkchen für MQTT gesetzt?
Dann sieht es bei mir so im ioBroker aus