Level Sensor für Zisterne und Öl - Tank

Begonnen von Billy, 16 November 2018, 17:08:22

Vorheriges Thema - Nächstes Thema

Teamdrachen

Ich hab das System jetzt ca. 6 Wochen im Einsatz und bin "teilzufrieden"

Bei mir schwankt der Füllstand teilweise um 15-25%.
Eine Komplette Füllung sind 400 "Einheiten"
A0 zeigt bei Sensor "trocken"  80 an, bei erreichen Unterkante Überlauf 480

Gestern schwankte die Messung z.b. 65 Einheiten.
Das hängt halt mit dem Luftdruck zusammen.
Ab 8 Uhr gehts abwärts und ab 12Uhr ist der Tiefpunkt erreicht ab dem es dann bis ca. 21Uhr wieder langsam aufwärts geht

Da ich keine funktionierende Formel für den liegenden ovalen Zylinder habe, ist es zwar ärgerlich.... aber nicht tragisch.

Da die Zisterne keinen Überlauf hat, besteht die Hauptfunktion darin ab A0> 450 das 3 Wege Ventil umzuschalten und ab A0>470 wirft es für 45 Sekunden die Tauchpumpe an um ca. 30 Liter der Versickerung zuzuführen.
Da vor dem Regen der Luftdruck meist sinkt wirken sich die Schwankungen nicht negativ auf die Not-Entwässerung aus.

Bissel störend isses aber schon.



Otto123

#151
Klingt danach, als ob dein Kabel schlecht belüftet ist? Es endet in einer geschlossenen Dose? Es ist gedrückt / geknickt? Original Kabel verlängert und dabei "wasserdicht" verschlossen?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Billy

Zitat von: Teamdrachen am 18 August 2020, 13:15:54
Ich hab das System jetzt ca. 6 Wochen im Einsatz und bin "teilzufrieden"

Das hängt halt mit dem Luftdruck zusammen.
Ab 8 Uhr gehts abwärts und ab 12Uhr ist der Tiefpunkt erreicht ab dem es dann bis ca. 21Uhr wieder langsam aufwärts geht

Das darf nicht vom Luftdruck abhängen! Das genau ist ja der Vorteil der "vented Tube"
Wie Otto schon angemerkt hat!
Wenn du den Sensor aus deiner Zisterne nimmst und A0 schwankt immer noch so stark und die von Otto beschriebenen Fehlerquellen sind
ausgeschlossen, dann ist vermutlich der Sensor defekt.





FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

Teamdrachen

Da ist nix geknickt, oder luftdicht verschlossen.

Wieso hängt es nicht vom Luftdruck ab ?
Es ist doch ein Differenzdrucksensor. Zumindest hab ich das so verstanden.
Der Druck unter Wasser bleibt immer gleich. Der Luftdruck ändert sich nach Hoch und Tiefdrucklage und damit auch die Differenz.

Die Werte "zappeln" nicht stark, sondern bewegen sich über den Tag.

Es sei denn, es ist kein Differenzdrucksensor, sondern "nur" ein belüfteter Drucksensor.
Dann sollte es natürlich Wumpe sein welches Wetter wir gerade haben.

Auf jeden Fall ne seltsame Sache.


Frank_Huber

Es wäre interessant den Luftdruck mit in die Kurve aufzunehmen.
Eventuell würde man ja so dahinter kommen.

Wernieman

#155
@Teamdrachen
Ich glaube, Du verstehst den Sinn eines Differenzdrucksensor nicht.

Ein Meter Wassersäule erzeugt c.a. 0,1 Bar.
Siehe: https://de.wikipedia.org/wiki/Meter_Wassers%C3%A4ule

Wenn Du also den Druck unter der Wassersäule und den Umgebungsdruck misst, beiden voneinander Subtrahierst, kannst Du den Wasserdruck und damit die Wassersäule berechnen. Auch bekannt als hydrostatische Füllstand.
Siehe auch: https://de.wikipedia.org/wiki/Differenzdrucksensor

Unsicherheiten sind:
- Meßfehler
- Wasserdruck ist auch von der Temperatur, Wasserart etc. Abhängig.
- Von der Wassersäule kann man nicht auf die Wasser Menge schließen https://de.wikipedia.org/wiki/Hydrostatischer_Druck#/media/Datei:Hydrostatisches_Paradoxon4.svg

Kurzgefasst:
Wenn Deine Messung mit dem Umgebungsdruck schwankt, stimmt etwas mit Deinem Meßsystem nicht. Entweder ist Dein Sensor defekt, oder einer der beiden Parameter wird nicht richtig gemessen (z.B. verstopftes Rohr)

Edit: Ergänzung:
https://de.wikipedia.org/wiki/Hydrostatischer_Druck

Edit2:
Wo endet überhaupt Deine Meßleitung? In einer "Druckdichten" Gehäuse??
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

ZitatDer Druck unter Wasser bleibt immer gleich.
Nein, da die Luft auch auf dem Wasser liegt. Also der Druck unter Wasser schwankt genau mit dem Luftdruck.
Ist die Zisterne Luftdicht verschlossen? Steht die Zisterne in der Sonne?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Teamdrachen

Die Zisterne ist eingegraben und nicht luftdicht verschlossen.

Verstopftes Rohr... könnte DOA sein, aber sollte ein verstopftes Rohr nicht ein entgegengesetztes Fehlerbild aufweisen ?
Könnte man aber simulieren.

Anschlusskasten ist wie erwähnt nicht Luftdicht.

Mögliche Fehlerursache... der Current/Voltage Wandler. Das dauert natürlich am längsten eh einer auch CN geliefert wird.

Wernieman

Ich meinte mit "druckdicht" nicht echt druckdicht. Deshalb die "". Auch eine Normale Verteilerdose, wo die Kabel "eingeschoben" sind, verringert den Druckausgleich "drinnen-draußen" und verringert so Deine Messgenauigkeit.

Da das "Voneinander Abziehen" im Sensor selber geschieht, hätte ich auf den AD zuletzt gedacht. Aber ja .. der könnte es auch sein. So sieht nur Deine Kurve nicht aus.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Frank_Huber

Deswegen würde mich im Vergleich der Luftdruck interessieren, damit könnte man das Ganze evtl eingrenzen / ausschließen.

Papa Romeo

#160
Zitat von: Wernieman am 21 August 2020, 19:41:43
Ich meinte mit "druckdicht" nicht echt druckdicht. Deshalb die "". Auch eine Normale Verteilerdose, wo die Kabel "eingeschoben" sind, verringert den Druckausgleich "drinnen-draußen" und verringert so Deine Messgenauigkeit.

na, ich weiß nicht, ob ich das als optionale Fehlerquelle hinzuziehen würde... dann müsste sie aber schon sehr "dicht" sein.
Ich würde bei solchen Dosen "Wasserdicht" nicht unbedingt  mit "Druckdicht" gleichsetzen, zumal es sich auch nicht nur um ein "paar" mbar handelt.

Ich hab bei meinem Brunnen-Mess-System (was eigentlich dem dieses Sensors entspricht), das Referenz-Modul auch in einer "wasserdichten" Verteilerdose sitzen
und hab keine Probleme mit "übermässigen" Druckschwankungen und eigentlich recht "genauen" Wasserpegelrückmeldungen.

LG

Papa Romeo
...die richtige Lötspitzentemperatur prüft man zwischen Daumen und Zeigefinger.
...überlasse niemals etwas einer Software, das du hardwaremässig erreichen kannst.
...unvorsichtige Elektriker werden schnell zu leitenden Angestellten.
und...never change a running System...no Updates if not necessary

hatamoto

Hallo,

zuerst mal Danke für die tolle Anleitung.
Ich habe meinen Level-Sensor auch in einem extra Rohr in die Zisterne eingebaut.
Über einen MDT I/O Analog-Aktor bekomme ich über den KNX-Bus die Messwerte (in mA ) in FHEM angezeigt.
So weit, so gut.

Wie komme ich jetzt aber von mA auf cm?
In den beschriebenen Lösungen findet die Umrechnung ja bereits vor FHEM statt.

Im Prinzip sollte das ja eine Art Dreisatz (mit Min/Max-Werten) sein:
4,0 mA == 0 cm
20,0 mA == 500 cm
x mA == y cm

Hat das schon jemand gemacht und in fhem gerechnet?
Bin für Ideen oder Lösungen dankbar.

Gruß Chris



kjmEjfu

Zitat von: hatamoto am 28 August 2020, 10:41:50
Hat das schon jemand gemacht und in fhem gerechnet?
Bin für Ideen oder Lösungen dankbar.


https://forum.fhem.de/index.php/topic,93308.msg974431.html#msg974431
Da wird das doch per Userreading berechnet
Migriere derzeit zu Home Assistant

Billy

#163
Zitat von: kjmEjfu am 28 August 2020, 10:58:36
https://forum.fhem.de/index.php/topic,93308.msg974431.html#msg974431
Da wird das doch per Userreading berechnet
Stimmt, ich hatte das Verfahren bei mir ja zweistufig entwickelt.
Zuerst als reiner Sensor und Berechnung in Fhem,
dann Berechnung des Füllstandes und weitere Funktionen mit Tasmota scripting.

Ziel war die Unabhängigkeit der Zisternen Steuerung von Fhem bei Verkauf meines Hauses.
Ist zwar nicht geplant, wird aber irgendwann kommen.   ;)
FHEM immer akt. auf 3 BeagleBoneBlack: 2xHMLAN 2xJeelink ;10x HM-CC-TC, 13x HM-CC-VD, 1x HM-ES-PMSw1-Pl, 3x HM-LC-SW1-PL2, viele ESP8266, Tasmota Scripting, Mqtt*

hatamoto

Der Dreisatz ist doch nicht der richtige Ansatz.
Korrekt ist die Berechnung des Wasserstandes aus mA über eine Geradengleichung bzw. Lineare Funktion https://de.wikipedia.org/wiki/Lineare_Funktion (y=mx+n).
(Gut, wenn man einen Physiker in der Familie hat, der so etwas beruflich macht...  ;))

m (Steigung ) = (y2-y1)/(x2-x1)
Die y-Koordinate entspricht dabei der Wasserhöhe, die x-Koordinate entspricht Strom.
Diese muss für den jeweiligen Sensor individuell berechnet werden.
In meinem Fall kommt ein Sensor mit 0-500 cm Messhöhe und dem Messbereich 4-20 mA zum Einsatz.
m=(500-0)/(20-4)=31,25

n (y-Achsenabschnitt) = y1-m*x1
n=0-31,25*4=-125

Für den Wasserstand lautet das userReading:
wasserstand_cm:messwert-get.* { sprintf("%.2f",31.25*ReadingsVal("$NAME","messwert-get","4.0")+-125)." cm" }

Beim Inhalt habe ich mich dann an der Formel im FHEM-Wiki orientiert https://wiki.fhem.de/wiki/Zisterne:_F%C3%BCllstandsberechnung_mittels_Ultraschallsensor.
Der Unterschied ist nur, dass ich den Wert nicht vom Gesamtvolumen abziehen muss, da ich ja den Wasserstand und nicht den Abstand zu einem Ultraschallsensor messe.

tankinhalt_l:wasserstand_cm.* { int((202*(((89**2)*(acos(1-((ReadingsVal("$NAME","wasserstand_cm","0"))/89))))-((sqrt((2*89*(ReadingsVal("$NAME","wasserstand_cm","0")))-((ReadingsVal("$NAME","wasserstand_cm", "0"))**2)))*(89-(ReadingsVal("$NAME","wasserstand_cm", "0"))))))/1000)." Liter"}

202 ist die Länge der Zisterne, 89 der Radius.
Ich habe hier etwas getrickst, da meine Zisterne an den Enden gewölbt ist. Die Länge habe ich so eingestellt, dass bei maximalem Füllstand der Inhalt 5.000 Liter entspricht.

Gruß Chris