Wasserzähler mit induktiven Näherungssensor auslesen

Begonnen von Gisbert, 09 April 2020, 15:21:54

Vorheriges Thema - Nächstes Thema

Gisbert

Hallo Schotty,

ich lese das Signal des Näherungssensors mit einem ESP8266 aus, auf dem ESPEasy läuft. Dort wird der GPIO in einem Task als Pulse Counter definiert. Die Übertragung zu Fhem findet per Wlan statt, wobei die Signalqualität ausreichend hoch ist, obwohl der ESP in einer Verteilerkiste für die Fußbodenheizung aus Blech steckt. Das Protokoll ist MQTT, und in Fhem nutze ich noch MQTT_DEVICE, es wird neuerdings MQTT_DEVICE2 empfohlen.

Kannst du mit diesen Angaben, was anfangen?

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Schotty

Moin Gisbert,
ja danke, das kann ich ;)
Im Grunde hatte ich es so zum ersten Testen auch gemacht: Wemos mit Tasmota, counter1n für den Pin und dann via MQTT rüber nach FHEM (dort dann mit MQTT2-Device). Das war aber wie gesagt nur zum schnellen Testen, ob es mit dem Sensor generell überhaupt funktioniert. Meine späteren Versuche mit diversen MySensors-Lösungen waren leider nur im Teststadium am Schreibtisch erfolgreich (wobei das aber letztlich wohl eher an meinen mangelnden Programmierkenntnissen liegt ;) ). Sollte ich es mit MySensors partout nicht zum (stabilen) Laufen bekommen, müsste ich mir einen anderen Weg suchen - dann im Idealfall irgendwie über LAN und mit MQTT und direkt in Kombination mit meiner DS18B20-Installation im Keller. Sprich, dann würde ich vermutlich wieder bei einer 'normalen' pulsecounter-Variante für den Sensor landen.
Was ich meinte war eher die Konfig des Devices "Sensor Wasseruhr" in FHEM selbst: Also wie verarbeitest du die 1l-Impulse weiter (Aufsummieren?, Verbrauchsberechnung?), welche Attribute hast du gesetzt etc.
Könntest du mir da vielleicht mal ein list von deinem Wasserzähler-Device zeigen/schicken?
Gruß
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Gisbert

Hallo Schotty,

die Counts werden per MQTT in ein Device in Fhem übertragen. Dort stehen sie als Reading zur weiteren Verarbeitung zur Verfügung. Damit der Zähler in Fhem nicht wieder bei null anfängt, z.B. bei Stromausfall oder Reset des ESPs, muss man ein weiteres Reading definieren, das laufend hochzählt, das Reading <Total> wird vom ESP geliefert:
attr DEVICE userReadings Total_monotonic monotonic {ReadingsVal($name,'Total',0)}

Der nächste Schritt ist dann ein Modul, welches dieses Reading verarbeitet, in meinem Beispiel mit dem Gaszähler, da ich den Wasserzähler noch nicht produktiv im Einsatz habe; es gibt das gleiche aber auch für Wasser:
define Gaszaehler GasCalculator DEVICE:Total_monotonic.*
Das war's auch schon für den Anfang. Sobald Counts einlaufen, werden eine Reihe von Readings erzeugt, die statistisch relevant sind. Man kann auch den aktuellen Wert des mechanischen Zählers setzen. Weitere Informationen gibt es im Wiki und in der commandref.

Viele​ Grüße​ Gisbert​
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

Schotty

Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

nanocosmos

#34
Ich brauche leider noch was mit einer Installation. Habe mir erst heute einen neuen Sensor gekauft.. habe den alten beim Umzug verlegt. [emoji1]

jbraeu

meinen heute zusammengebaut, leider reicht das signal ohne 100nF kondensator nicht :(

Schotty

..falls das auf meine Schaltung bezogen ist: Die dortigen 100nF-KerKos dienen eigtl als Abblock-/Entstörkondensatoren, machen das Signal also eher 'sauber' (bzw sollen Störeinflüsse verhindern/vermindern). Die lange Anschlussleitung vom Sensor ist eine nette Antenne - möglicherweise geht's bei dir auch ohne KerKos, wenn du das Kabel vom Sensor extrem kürzt - aber statt dessen würde ich persönlich lieber KerKos einsetzen.
Ansonsten: Spannungsversorgung, Verkabelung, evtl Counter mit/ohne PullUp etc nochmal gecheckt..?
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

jbraeu

#37
vllt. stell ich mich auch blöd an, hab schon counter und counter-n probiert aber leider nix.. (siehe screenshots)
- Sensor hat Kontakt und leuchtet.. naja mal abwarten bis die die kondensatoren da sind..
Hab am 1,4 A Netzteil 2 Sonoff basic mit Ultraschallsensor + den besagten Näherungssensor dran. Wlan reißt schon oft ab (5,18V) aber ich glaub das liegt eher daran das der AP zu weit weg ist.

Schotty

Also ich würde jetzt mal behaupten, dass es nicht an den fehlenden KerKos liegt.
Wie hast du den Sensor am Sonoff angeschlossen? 
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

jbraeu

#39
du hast mich drauf gebracht, hab den diesmal nicht mit rx/tx benutzt sondern den key und der ist nicht mehr wie beim vorgänger am gpio14 sondern am gpio2 zu finden. Mal sehen ob sich da was rührt. http://forum.creationx.de/forum/index.php?thread/1254-sonoff-basic-neueste-version-gpio14/&pageNo=2

Schotty

#40
Bin grad nicht am rechner,daher nur kurz: rx/tx ist ja eh für den ultraschallsensor,den näherungssensor schließt du ja an nen freien gpio an.

Hast du die korrekten kabel vom näherungssensor zum netzteil und zum soniff genutzt? Schwarz beim n.sensor ist bspw nicht GND. Hab die belegung grad nicht im kopf,hatte ich irgendwo aber mal geschrieben, ist glaube ich auch auf dem foto zu sehen,was ich reingestellt hatte, aber sollte ja auch auf nem aufkleber am sensor zu finden sein.
Die LED leuchtet nur dann,wenn metall erkannt wurde,und in dem fall kommt dann das 5v-Signal.
Also: n.sensor-gnd an sonoff-gnd, 5v spannungsversorgung an den sensor, 5v-signal vom n.sensor via spannungteiler an den sonoff-gpio. Wie gesagt kabelfarben beachten..
Wenns nicht klappt,mach sonst mal n foto von der verkabelung,evtl sieht man da sonst was. Wenn das passt solltest du es auch zum laufen bekommen  ;)

Nachtrag: du hattest aber den n.sensor in der 5v-variante genommen,oder?
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Schotty

..was mir gerade noch einfiel: das signal wird erst 'registriert',wenn die led einmal an- und dann wieder ausgeht,das ist dann ein impuls. Falls du den n.sensor also zum testen an metall anlegst und die led dauerhaft leuchtet,kann dein sonoff quasi nichts registrieren - das erfolgt erst,wenn die led dann wieder erlischt,also der sensor-interne kontakt wieder öffnet..
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

jbraeu

Guten Morgen,

die gute Nachricht, funktioniert perfekt! Bei mir lag das Problem vermutlich an der Spannungsversorgung, 3 Netzteile später hat es geklappt :)
Anscheinend braucht der Näherungssensor viel Anfangsspannung was den start vom sonoff verhinderte, steckt man die Versorgung mehrmals an und aus läuft das ganze an. Vermutlich wegen den nicht vorhandenen Kondensatoren :)

Schotty

#43
Klasse, Glückwunsch  :)
Hast du jetzt den counter mit oder ohne PullUp in Verwendung?
Der Näherungssensor selbst braucht (wenn ich mich recht erinnere) 300mA, müsste aber ebenfalls auf dem Aufkleber zu finden sein. Kannst du also ausrechnen, ob noch genügend 'Reserven' da sind, wenn du mit einem 1,4A-Netzteil 2 Sonoffs + Ultraschallsensor+ Näherungssensor versorgen willst..
Die Kondensatoren bei meinem Spannungswandler-Schema sollten dies imho nicht beeinflussen, die sind wie gesagt eigtl als Entstör-/Abblockkondis vorgesehen..
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/

Schotty

#44
Noch ein Tipp: FALLS du den counter ohne PullUp nutzt, könntest du für den entspr GPIO-Pin, an den das Signal vom N.Sensor an den Sonoff geht, noch einen PullDown-Widerstand hinzufügen. Wirkungsweise/Sinn im Grunde wie bei einem PullUp, er soll also den Eingang auf einen definierten Wert ziehen, um ein Floaten zu verhindern - nur dass eben VCC geschaltet werden soll und der Eingang ansonsten durch den PullDown eben auf GND gezogen wird.
Dimensionierung und Anschluss: Bei Microcontrollern scheint es 'Standard' zu sein, für einen PullUp 4k7 und für einen PullDown 10k zu nehmen. Real können die Werte natürlich wieder abweichen (Beispiel: Bei mehreren DS18B20-Sensoren und größeren Kabellängen muss man den empfohlenen 4k7-PullUp ggf schrittweise verkleinern, um saubere Signale zu erhalten), aber damit kann man schonmal testen. PullDown-Widerstand dann zwischen dem entspr GPIO-Pin und GND anschließen.
Handbuch zur BSB-LAN Hard- & Software (Anbindung v. Heizungsreglern, u.a. von Brötje & Elco):
https://1coderookie.github.io/BSB-LPB-LAN/