NEWS
Wemos D1 mini || Tasmota || Reedkontakt || WZ auslesen
-
@rakete01 Sehr sehr gerne. freue mich schon :):):)
-
@takahara sagte in Wemos D1 mini || Tasmota || Reedkontakt || WZ auslesen:
@homoran Ja kannst du gerne machen. Danke dir
erledigt
-
@takahara Kann es sein, dass der Reedkontakt prellt? Dann musst Du Dich dem Problem annehmen. Du könntest z.B. noch einen Widerstand vor den Eingang des Controllers hängen z.B. 1k und dann noch einen "kleinen" Kondensator am Eingang des Controllers gegen Masse anschließen. Dabei würde ich mal mit 10nF anfangen. Ggf. den Kondensator noch etwas größer machen z.B. 100nF. Einfach mal testen.
-
@josh hallo Josh, rakete01 wollte mir am Wochenende noch seine Konfiguration zukommen lassen, aber ich schaue mir auch gerne dein Vorschlag an.
Meinst du eine Verschaltung in dieser Art:
Welche Tasmotakonfiguration würdest du vorschlagen?
Vielen Dank schon mal.
Takahara
-
-
@ralla66 Danke für deine Hilfe. Wenn ich fragen darf, warum nimmst du den Eingang D2 als Switch?
VG
Takahara -
Weil diesem Pin beim Neustarten keine Funktion zugeordnet ist.
Pinbelegung
Button, Switch, Relay usw kannst du auf Github bei Tasmota nachlesen.
Beschreibung und unten der Schaltplan dazu -
@ralla66 Hab vielen Danke. Allerdings ist für mich nicht ersichtlich, wie ich mit dieser Konfiguration die Impulse eines Reedkontaktes zählen kann.
-
@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.