NEWS
Wasserzähler - Version 2 - all-in-device
-
@rupert-s sagte in Wasserzähler - Version 2 - all-in-device:
Hallo jomjol,
@jomjol said in Wasserzähler - Version 2 - all-in-device:
@rupert-s Der Tip mit dem Grünstich könnte tatsächlich vom Speichern kommen, dem gehe ich mal nach.
Bezüglich dem um 180° gedrehten Bild: wenn du zu einem ungünstigen Zeitpunkt die Webseite abfragst, wird noch das Rohbild angezeigt, da die Berechnung der Drehung noch nicht abgeschlossen ist. Ca. 10-20 Sekunden später sollte das gedrehte Bild erscheinen.Das falsch oder nicht gedrehte Bild geht aber manchmal auch in die Analyse und ergibt dann NNNNN.N
Gerade habe ich wieder ein "seltsames" Bild aufgeschnappt:
- Es ist unterbelichtet.
- Das kleine Bildchen des analogen Zeiger ist kein Ausschnitt des großen: unten klein 4,3, im großen Bild etwa 5,8.
Ich bin kein Webprogrammierer und durchschaue Deinen Code bei weitem nicht. Aber kann es sein, dass da mehrere Webservices oder Prozesse um die Wette laufen (siehe Ende von main.cpp) und -- gerade wenn ich "zuschaue" -- sich gelegentlich in die Quere kommen? Beim Zugriff auf die SD-Karte vs. Blitzlicht, bei der Ausgabe des richtigen Bildes usw? Ließe sich das vielleicht mit Locking-Verfahren beheben?
Eigentlich dürfte das nicht der Fall sein, da immer ein linearer Flow von der Bildaufnahme bis zur Versenden läuft. Da Problem könnte eher ein Thema der Kamera sein. Wenn diese gar kein Bild liefert, dann verwendet er je nach Status das Bild aus dem Speicher und dreht es einfach weiter. Das könnte dann so ein Effekt sein. Hast du eine andere OV2640, die du mal austauschen kannst? Dort gibt es riesige Qualitätsunterschiede und sie sind neben der SD-Karte oft die Ursache für komisches Verhalten.
-
@michmein sagte in Wasserzähler - Version 2 - all-in-device:
@rupert-s ich würde sie in einem issue auf GitHub machen, oder hier im Thread gezippt hochladen. @jomjol möchte sie glaub ich gerne sortiert und NUR 2-3 von jeder Zahl.
TOP - genauso brauche ich die Ziffern
-
@jomjol wäre es denn grundsätzlich möglich den Webzugriff zu blockieren wenn ein „Flow“ läuft, ohne den ESP dann dabei zu „stören“?
-
@michmein Dann ist er 2-3 Minuten nicht zugänglich und wirkt "tot". Man könnte den Status im Flow darstellen, dann weiß man, ob alles normal läuft (z.B. Bild noch nicht gedreht, ...).
-
@michmein sagte in Wasserzähler - Version 2 - all-in-device:
@xsev & @jomjol
Vielleicht ginge ja auch „i.O.“, „fehlerfrei“, „ok“ oder „keine Fehler“In der neueste Rolling (gerade hochgeladen) kommt jetzt "no error", falls alles okay ist.
-
@jomjol sehr geil danke!!!!
-
Wie ist den der beste Weg das System zu aktualisieren? Esp via OTA und SD einfach rüber kopieren?
Edit:
Alles klar! OTA Update ist ja selbsterklärend Hat bestens geklappt! Rückmeldung folgt. -
@jomjol sagte in Wasserzähler - Version 2 - all-in-device:
Dann ist er 2-3 Minuten nicht zugänglich und wirkt "tot". Man könnte den Status im Flow darstellen, dann weiß man, ob alles normal läuft (z.B. Bild noch nicht gedreht, ...).
Manchmal aber vielleicht „besser“ als dass der ESP neu startet wenn man zu nem unglücklichen Zeitpunkt einen Webzugriff durchführt. War auch nur irgendwie so ne Idee, wüsste nicht wirklich was man sonst sinnvolles machen könnte.
-
@michmein Der Neustart läßt sich dadurch nur bedingt verhindern. Ehrlich gesagt ist es mir auch nicht ganz klar, was ihn genau triggert. Aber muss halt im Blick haben, dass der Speicher und die Rechenkapa sehr begrenzt ist. Daher kann ich auch nicht alle Fehler abfangen. Insofern habe ich versucht, einen möglichst stabilen und reibungslosen "Restart" hinzubekommen.
Denke, dass ist ein guter Kompromiss. -
@jomjol said in Wasserzähler - Version 2 - all-in-device:
@michmein Dann ist er 2-3 Minuten nicht zugänglich und wirkt "tot". Man könnte den Status im Flow darstellen, dann weiß man, ob alles normal läuft (z.B. Bild noch nicht gedreht, ...).
Das fände ich durchaus akzeptabel. Jedenfalls besser als gestörte Bilder, Abstürze o.ä. Der Regelbetrieb soll ja dann sowieso nur das Empfangen der Daten per MQTT sein. Die "Overview"-Seite hat ja offensichtlich einen automatischen Refresh, das funktioniert sehr gut.
-
@jomjol, was genau lässt sich an der seriellen Schnittstelle alles auslesen und ist eine bidirektionale Kommunikation möglich?
Könnte man dort nen zweiten ESP anschließen auf dem ein Webserver läuft der über seine serielle Schnittstelle auf die des ersten ESP zugreift? -
@michmein Ja, technisch geht dass. Die serielle Schnittstelle ist eine bidirektionale RS232 mit Sender- und Empfangerleitung.
-
@jomjol was gibt der ESP denn alles aus über die serielle Schnittstelle?
-
@michmein sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol was gibt der ESP denn alles aus über die serielle Schnittstelle?
Wenn du meinen Wasserzähler meinst, dann alles mögliche, da ich ihn auch zum Debuggen benutze. Wenn du das verwenden willst, müsste man den Code ziemlich bereinigen und das Debugging optional per Parameter steuerbar machen.
-
@jomjol said in Wasserzähler - Version 2 - all-in-device:
@michmein sagte in Wasserzähler - Version 2 - all-in-device:
@jomjol was gibt der ESP denn alles aus über die serielle Schnittstelle?
Wenn du meinen Wasserzähler meinst, dann alles mögliche, da ich ihn auch zum Debuggen benutze.
Vermutlich alles, was im Code mit "printf" ausgegeben wird, oder?
Wenn du das verwenden willst, müsste man den Code ziemlich bereinigen und das Debugging optional per Parameter steuerbar machen.
@jomjol: Wenn Du das angehst, hätte ich eine Idee: Das Logging auch per MQTT "rauspusten"! Ich hab' immer ein schlechtes Gefühl, wenn permanent auf SD-Karten geschrieben wird: Mein Raspberry Pi mit "Volkszähler" hat diverse zerstört, bevor ich auf SSD umgestellt habe...
-
@jomjol nicht so schnell, war nur ne frage frei in den Raum.
Weiteres Gedankenspiel, gäbe es ne Möglichkeit einen ESP zu nutzen der die Bilder und die Auswertung dieser übernimmt und ein zweiter an die serielle Schnittstelle angeschlossener bekommt die relevanten Informationen darüber und auf diesem läuft der Webserver auf den man zugreift. Und immer wenn der erste neue Infos an den zweiten sendet wird die Webseite damit aktualisiert, somit würde der erste in seiner „Arbeit“ nicht gestört werden.
Und wenn das klappen würde, der ESP hat doch zwei serielle Schnittstellen so dass man dann zwei ESP Cam daran anschließen kann und nur einen Webserver benötigt. Alternativ würde dann bestimmt auch ein Wemos oder ähnlich machbar sein. Gibt es auch digitale Schnittstellen über die eine solche Kommunikation stattfinden könnte. Ich habe leider nur Ideen und kann an der Umsetzung nicht unterstützen -
@michmein Ja - auch das geht - technisch!
Mir ist der Mehrwert noch nicht klar. Eigentlich greife ich auf die Webseite quasi nie zu. Ich logge über MQTT alles in meine Datenbank. Ob der ESP32 alle paar Stunden mal neu startet ist für mich irrelevant. Im schlimmsten Fall verliere ich dann mal einen Messwert, mehr aber auch nicht. Wenn ich daran nicht gerade programmiere, dann läuft der Wochenlang ohne einen einzigen Reboot oder ähnliches. Wenn dir eine stabile Webpage wichtig ist, dann würde ich die auf einem stabilen professionellen Server installieren und die Messwerte aus der MQTT-Datenbank abrufen. -
@jomjol entschuldige bitte, vielleicht sind meine geistigen Ergüsse falsch rübergekommen. Ich brauche den Webserver auch nicht, wenn überhaupt schaue ich da alle paar Tage mal drauf, aus „Langeweile“ und „Neugier“. Es waren nur ein paar Gedanken zu dem Thema das der ESP hin und wieder mal neu startet wenn man auf den Webserver zugreift. Die Daten per MQTT zu bekommen ist absolut ausreichend und deine Arbeit und der Enthusiasmus ist GOLD wert!
-
Seit Anfang Jahr läuft nun der Wasserzähler Version 2 sauber und die Werte werden via MQTT in FHEM geloggt.
@jomjol: Tolle Arbeit!
Da unser Wasserzähler keine Zeiger hat, ist die Zahlenanzeige in Liter und die «Einerstelle» befindet sich oft zwischen zwei Ziffern und kann nicht erkannt werden (N). In diesem Fall wird dann der zuletzt korrekt gemessene Wert ausgegeben (zumindest vermute ich dies, da oft deutlich kleiner). Kann irgendwie erreicht werden, dass ein Fehler bei der letzten Stelle ignoriert wird (z.B. 0 einsetzen oder Ziffer der letzten Auswertung)? Geht das Programm von einer Messgrösse in m3 aus und würde sich bei einer Verschiebung des Kommas anders verhalten?
Gruss
tomix -
@jomjol ich würde die Zahlen hochladen aber wie genau muss es sein.
1.Muss ich alle zahlen mit der esp32cam aufnehmen?
2.muss ich nur die Zahlen ausschneiden von den Bildern.
3.von jeder Zahl 2 Exemplare .
4. ist die prepektive egal?