NEWS
Wemos D1 mini || Tasmota || Reedkontakt || WZ auslesen
-
@takahara
du schriebst ja:
Ich zähle leider zu viele Impulse und somit erhalte ich auch ein falsches Ergebniswie hast du das denn Festgestellt bzw. mit welchem System hast du bis jetzt gearbeitet ?
-
@takahara Ja, richtig. Diese Verschaltung meinte ich. Ggf. den Kondensator und/oder den 1K Widerstand größer dimensionieren. Bei 1K und 100nF ergibt sich eine Entladezeitkonstante von 0,5ms (T=R*C). Könnte reichen, muss aber nicht. Aber das ist mal eine gute Anfangskonfiguration.
Es gibt grundsätzlich 3 verschiedene Arten ein Prellen zu "unterdrücken":
- Hardwarebeschaltung (mein Favorit)
- Softwaremäßig (z.B. mit Blockly in ioBroker) abfangen. Nach dem ersten Impuls mit einem Timer von vielleicht 100ms setzen, der für diese Zeit weitere eingehende Impulse ignoriert.
- Softwaremäßig im Datenpunkt des Zähleingangs: Entprellzeit beim Schreiben in die Datenbank einstellen.
Wie 2) und 3) in Tasmota umzusetzen wären, weiß ich leider nicht. Aber 1) geht immer
-
@ralla66 Wie ich oben beschrieben hatte, hab ich folgende Beschaltung am WEMOS D1 mini ausprobiert:
Und in Tasmota folgende Softwarekonfiguration hinterlegt:
Mein Ziel ist es einen Wasserzähler mit Reedkontakt auszuwerten.
Einstrahl - Wohnungswasserzähler ETK LZ für Kaltwasser bis 30°C inkl. Reed-Kontaktgeber 0,25 Liter/Imp., Q3=2,5 m³/h, DN 15 Baulänge 110mm Rohranschluss 1/2'' Gewinde 3/4''
Der WEMOS D1 Mini soll nur die Impulse der Reedkontaktes zählen. Die gezählten Impulse sollen an einen Iobroker mittels MQTT weitergeleitet werden und ein entsprechendes BLOCKLY soll dann den Wasserverbrauch errechnen.
1 Impuls des Kaltwasserzählers entspricht 0,25Liter. Über das Zählwerk am Kaltwasserzähler lässt sich gut überprüfen ob a) die gezählten Impulse richtig sind und b) ob das BLOCKLY richtig rechnet.
Da ich in meinen ersten Versuchen immer zu viele Impulse gezählt hatte, vermute ich meinen Fehler in der Hardware-/Softwarekonfiguration des WEMOS D1 mini.
VG
Takahara -
ja ok, dann müsste man erst einmal Wissen was der Counter_n macht.
-
@takahara
Hi,
soviel kann ich schon mal sagen:- mein Reedkontakt läuft auf dem Wemos GPIO4 / D2
- der Reedkontakt schaltet D2 gegen Masse, ohne weitere Beschaltung durch Widerstände etc. (seit über einem Jahr)
- GPIO4 ist als Switch konfiguriert, Gerätetyp des Wemos ist Generic 18
- auf der Tasmota-Konsole über den Debounce-Befehl die Entprellzeit zwischen 40 und 1000 ms eingeben, Standardwert ist 50
- Ausgabe an ioBroker „true“ oder „false“. Zählung erfolgt über ein Blockly
So sollte alles laufen.
Bei mir allerdings über den Sonoff-Adapter im ioBroker.Gruß
Rakete01 -
Hallo rakete01, zum Testen habe ich den WEMOS D1 Mini auf ein Breadboard montiert und den Reedkontakt mit zwei Adern!
IMG_0081.jpg simuliert.In Tasmota habe ich deine Konfiguration eingestellt und ich vermute, dass du über ein Script (evtl. Blockly) den Zustandswechsel des Schalters zählen wirst? Ist das richtig? Kannst du ggf. das Blockly posten?
Auch wenn ich die beiden blauen Adern verbinde, sprich der Reedkontakt wird geschlossen, kann ich keine Veränderung im Iobroker des Switches erkennen.
Scheint so, also ob ich irgendwas noch nicht richtig eingestellt habe!?!!!!
VG
Takahara -
@takahara
Hi,
ich lese den Wert “POWER“ aus, der zeigt true oder false.Hier das zugehörige Blockly:
Ich hoffe, das hilft.
Gruß
Rakete01 -
@rakete01 Danke dir erstmal. ich habe jetzt alles aufgebaut und werde mich in den kommenden Tagen zurück melden.
VG
Takahara -
@josh: Ich hatte noch keine Zeit deinen Vorschlag umzusetzen. Die Idee von @Rakete01 klingt viel versprechend, hat sicher allerdings bei mir nicht bewährt. Ich habe auf meinem Wasserzähler einen Verbrauch von 9,077m³ abgelesen, während im IOBroker ein Verbrauch von 9,724m³ abzulesen war.
Ich vermute, dass ich immer noch zu viele Impulse vom Reedkontakt einlese. Was mich allerdings dann wieder zu meinem Ursprungsproblem zurück bringt und eine Frage aufwirft.Der Reedkontakt das Wasserzählers soll 1Impuls geben wenn 0,25l durch den Wasserzähler geflossen sind. Wenn ich jetzt ein RC-Glied an den Zähleingang des WEMOS D1 mini anschließe, werde (vereinfacht gesagt) die Impuls die vom Reedkontakt stammen, teilweise am Zähleigang des WEMOS unterdrückt.
Aber warum liefert mir der Reedkontakt des Wasserzählers nicht schon bereits die korrekte Anzahl der Impulse.VG
Takahara -
Hi,
hast du mal auf der Konsole in Tasmota die Entprellzeit mit dem Befehl Debounce angepasst?
Mit z.B. Debounce 200 wird die Entprellzeit auf 200 ms festgelegt.Vielleicht hilfts...
Gruß
Rakete01 -
@rakete01 Hallo, ja ich hatte die debounce Zeit (buttondebouce 200) auf 200ms eingestellt. Bin jetzt mal auf einen höheren Wert (500ms) gegangen. Werde mal schauen, wie sich das auswirken wird.
VG
-
Wieder zurück auf Los -> Mögliche Fehlerquellen untersuchen
Wenn ich jetzt ein RC-Glied an den Zähleingang des WEMOS D1 mini anschließe, werde (vereinfacht gesagt) die Impuls die vom Reedkontakt stammen, teilweise am Zähleigang des WEMOS unterdrückt.
Dann wäre die Beschaltung am Wemos falsch oder der Reedkontakt nicht richtig..
Die Schaltung am Wemos wurde per Digitalvoltmeter ( Impuls ) geprüft ?
Deine Telemetrieperiode in Tasmota steht auf was ? Bei default ( 300 ) siehst du den getakteten Impuls erst 5 Minuten später im IO !!
Auch gerne genommen Umrechnungsfehler da Werte mit Komma.
Zudem sollte man sich auch bewußt sein das der Übertragungsweg auch Zeit kostet ( Wlan ) und auch seine Tücken hat.
Hier kann nicht Sichergestellt werden das der Impuls überhaupt im IO ankommt.Thema Netzteile, wer mit Funk spielt sollte kein Netzteil vom Krabbeltisch nehmen.
Hier saubere Spannung. Das Netzteil sollte min 1A liefern, dauerhaft. -
@takahara Schaue Dir mal bei Wikipedia an, was das "Prellen" bedeutet.
Einfach gesagt, springt der Reedkontakt beim Schließen mehrfach auf und ab und verursacht mehr als einen Impuls. Dies kann man hardwaremäßig unterdrücken, aber auch softwaremäßig.
Mit einem Digitalmultimeter kann man dies nicht messen. Man benötigt ein Oszilloskop. Damit kann man die Mehrfachimpulse sehr schön sehen. Aber einen "Oscar" haben wohl die wenigsten zu Hause.
Das mit dem Prellen ist auch nur so eine Idee. Es kann auch sein, dass der Fehler ganz woanders liegt. Ich könnte mir auch vorstellen, dass ein falsch positionierten Reedkontakt auch diesen Fehler hervorrufen könnte.
-
Er schrieb : teilweise am Zähleigang des WEMOS unterdrückt -> ohne Oskar wie festgestellt ?
Dann wird das wohl kein Prellen sein was eh unwahrscheinlich ist.
Eine Softwaremäßige Unterdrückung sollte eh vermieden werden, besser ist immer den Fehler zu beheben. -
@josh Magst du mir noch zeigen, wie du Tasmota konfiguriert hast? Ich werde es nachbauen und mich dann mit meiner Auswertung noch mal zurückmelden.
VG
Takahara -
@takahara Ich habe gar keinen Reedkontakt per Tasmota angebunden. Alle Aktoren und Sensoren, die ich habe, geben per Tasmota über MQTT die Daten an ioBroker bzw. bekommen per MQTT Daten von Tasmota. Tasmota ist halt nur der Mittelsmann. Sämtliche Logic läuft in ioBroker ab.