NEWS
Wasserzähler - Version 2 - all-in-device
-
Gibt es eigentlich ein Möglichkeit zu Erfahren ob es sich beim MQTT Wert um den tatsächlichen raw wert handelt oder einen korrigierten Wert? Ich würde bei einem Skript gerne eine "Sicherung" einbauen, das es sich bei dem Wert auch um den tatsächlichen handelt und nicht um einen korrigierten. Ich hab gesehen man kann ein Error Topic in MQTT aktivieren leider kommt da bei mir nichts an (Fehlermeldung allerdings im Log, kann ich gerne posten wenn von Nöten). Ach ja Version ist master - v7.0.1 - 2020-05-13
@Rupert-S Die 180 Grad gedrehtes Bild hatte ich eben auch einmal, is mir bislang nie aufgefallen, war Zufall weil ich gerade auf der Capture Seite war nach einem erneuten F5 war es wieder in Ordnung.
-
@xsev Es wird der korrigierte Wert übertragen, nicht der RAW Wert. Bei mir kommt der Error an:
2021-05-21T00:04:42: sent publish successful in MQTTPublish, msg_id=43644, wasserzaehler/zaehlerstand, 169.7597 2021-05-21T00:04:42: sent publish successful in MQTTPublish, msg_id=16957, wasserzaehler/error, Negative Rate - Returned old value - read value: 169.7580 - raw value: 00169.7580 - checked value: 169.757996 2021-05-21T00:04:42: sent publish successful in MQTTPublish, msg_id=20759, wasserzaehler/rate, 0.000049 2021-05-21T00:04:42: sent publish successful in MQTTPublish, msg_id=7990, wasserzaehler/timestamp, 2021-05-20T20:55:41 2021-05-21T00:04:42: task_autodoFlow - round done
Dann kommt der MQTT wasserzaehler/error: Negative Rate - Returned old value - read value: 169.7580 - raw value: 00169.7580 - checked value: 169.757996 bei mir an.
-
@pfried Hmm komisch, Rate und timestamp kommen an, Error leider nicht evtl. weil es aktuell noch keinen Error gab? Ich beobachte mal. Aber genau sowas such ich. Danke!
Das der Fehler aus dem Log
mqtt.0 2021-05-25 10:55:35.033 warn (2357) Client [wasser] Cannot publish message: TypeError [ERR_INVALID_ARG_TYPE]: The "string" argument must be of type string or an instance of Buffer or ArrayBuffer. Received type number (620)
EDIT:
Geht!! Ich hab den MQTT Pfad neu gesetzt und jetzt geht es! -
@xsev Den Fehler den Du anführst kommt vom MQTT Adapter nicht vom ESP. Solltest Du den MQTT über den IOBroker verwenden, würde ich Dir empfehlen auf die 2.4.0 Version umzusteigen, dann sind solche Fehler Vergangenheit. Installation über Adapter - Adapter aus URL installieren - dort MQTT eintippen und installieren.
Der Fehler mit der falschen Variablendeklaration wurde im IOBroker MQTT Forum diskutiert und sollte jetzt behoben sein. -
@pfried
Danke! Ich hab die MQTT Version 2.3.5 aus dem stable. Werd das aber mal aktualisieren. -
-
@pfried Hallo Paul,
das ist echt strange. Bei mir läuft das relativ stabil. Kannst du den Startvorgang über die serielle Schnittstelle mitloggen? Ich vermute ein Problem mit dem Lesen der Config.ini.
Gruß,
jomjol -
@jomjol Hi Josef, ich ändere aber nichts an der Config.ini. Also unveränderte SD-Card - Rolling via OTA rein, dauernd Reboots, Master zurück flashen - geht wieder... Liebe Grüße Paul
EDIT: Die Rolling SW vor der letzten läuft aber ohne Probleme
-
@pfried mit der Version 7... kam in der config.ini folgende Einträge hinzu
[MQTT] TopicRate = wasserzaehler/rate TopicTimeStamp = wasserzaehler/timestamp
Ich habe diese manuel eingefügt. Bei mir läuft die Version 7.0.1 soweit problemlos.
Ob es aber etwas damit zu tun hat weiß ich nicht. -
@knallochse Habe ich gesehen und habe diese auch in der Config.ini. Das sollte also nicht der Grund für die Reboots sein.
-
@jomjol Hallo Paul,
sehr spannend. Habe jetzt mal auf meinem Testdevice alles neu geflasht (inkl. erase flash) und die SD-Karte neu formatiert. Außer der wlan.ini ist alles neu. Ging bei mir auf Anhieb. Daher wäre ich tatsächlich bei Gelegenheit an dem Mitschnitt der seriellen Schnittstelle interessiert. Vielleicht kann ich dort noch etwas lernen.
Beste Grüße,
jomjol -
@xsev in Wasserzähler - Version 2 - all-in-device
@Rupert-S Die 180 Grad gedrehtes Bild hatte ich eben auch einmal, is mir bislang nie aufgefallen, war Zufall weil ich gerade auf der Capture Seite war nach einem erneuten F5 war es wieder in Ordnung.
Danke für Deine Antwort! Sind wir beide die einzigen mit derartigen Problemen oder Phänomenen? Scharze oder grünstichige Bilder kommen übrigens auch ohne logging immer wieder mal vor, lag also wohl doch nicht daran... Oder ist das ein Hinweis auf eine defekte Kamera?
-
@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. -
@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.
Vielleicht hilft Dir das ja Flashlight (GPIO 4):
The ESP32-CAM has a very bright built-in LED that can work as a flash when taking
photos. That LED is internally connected to GPIO 4.That GPIO is also connected to the microSD card slot, so you may have troubles when trying to use both at the same time – the flashlight will light up when using the microSD card.
Note: one of our readers shared that if you initialize the microSD card as follows, you won’t have this problem because the microSD card won’t use that data line.*
SD_MMC.begin("/sdcard", true)
*we found that this works and that the LED will not make that flash effect. However, the LED remains on with low brightness – we’re not sure if we are missing something.
-
@jomjol
Hallo jomjol,
ist das Thema mit den fehlenden GPIO Schalter nur in der 7.1 oder gibt es das dann gar nicht mehr?
LG
Horst -
@jomjol
Ich habe all meine ESP´s den Internetzugang gespertt. Jetz fiel mir am Timestamp auf, dass er die Zeit nicht mehr aktualisieren kann.
Wie wäre es wenn man in der Config.ini die NTP IP-Adresse des NTP-Servers einstellen kann und somit kann man die Fritzbox als NTP Server nutzen ohne dem ESP externen Zugang zu geben.
Kann ein bisschen paranoid sein aber seit dem Mirai Botnet bin ich ein bisschen Vorsichtiger mit den IOT.Einfach mal im Expertenmodus nach unten scollen Ohmann......
Asche auf mein HauptGruß
DerDani -
@hasont sagte in Wasserzähler - Version 2 - all-in-device:
it den fehlende
Hi Hasnot,
Fehler in meinen Debugging Einstellung. Kommt in der nächsten Version wieder rein. Habe es schon compiliert und sobald ich es etwas getestet habe, lade ich eine neue Rolling hoch.
Danke für den Hinweis,
jomjol -
@jomjol
Sag mal wäre es vielleicht (ohne großen Aufwand für dich ) möglich einen 2. Error Topic mit nur false/true Werten zu implementieren?
Der Wert bleibt solange false solange der tatsächliche (richtige) Wert ausgegeben wird und ändert nur true falls eine Korrektur (evtl Fehler) vorgenommen wurde oder andersrum...Hintergrund ist:
Ich würde gerne eine Sicherung in mein Script einbauen und nur schalten wenn es der tatsächlich richtige Wert ist und sicher kein korrigierter Wert. Mit dem jetzigen Error als leerer Wert bzw. Textwert kann man es nicht wirklich ansprechen. Also zumindest wüsste ich nicht wie.
-
@xsev Technisch möglich, aber ehrlich gesagt, gibt es so viele Anfragen für Sonderfälle und spezielle Werte, die man über den MQTT ausgeben könnte, dass ich dort keine speziellen Lösungen implementieren möchte. Das wäre eine never Ending Story.
Du könntest einen Fork machen und den MQTT-Adapter an deine Bedürfnisse anpassen. Die Kommunikation ist recht gut abgekapselt: https://github.com/jomjol/AI-on-the-edge-device/tree/master/code/components/jomjol_mqtt
Beste Grüße,
jomjol -
@jomjol Ja kein Thema vestehe ich natürlich.
Evtl. ein letzter Gedanke dazu noch, der jetzige error Wert den es schon gibt, kein leerer Wert wenn alles in Ordnung ist sondern ein true bzw. false? Wie gesagt ein leerer Wert lässt sich allgemein ungut ansprechen in scripten.