NEWS
Füllstandsmessung per Pegelsonde.
-
@Eisbaeeer Zisterne ist schon gut und richtig. Ich weiß nicht,, was der Tank-TÜV sagt, wenn da Drähte aus einem Bastelgehäuse in den Heizöltank gehen...
-
Eine neue Version ist online https://github.com/Eisbaeeer/Arduino.Ethernet.Zisterne
Jetzt kann die Dichte noch mit angegeben werden.// ---- HIER die Anpassungen vornehmen ---- const float max_liter = 6300; // Maximale Füllmenge des Behälters const float dichte = 1.0; // Dichte der Flüssigkeit - Bei Heizöl bitte "1.086" eintragen | Bei Wasser bitte "1.0" eintragen IPAddress mqttserver(192, 168, 1, 200); // IP Adresse des MQTT Servers IPAddress ip(192, 168, 1, 21); // IP Adresse, falls kein DHCP vorhanden ist byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x0A }; // MAC-Addresse bitte anpassen
Grüße Eisbaeeer
-
@klassisch sagte in Füllstandsmessung per Pegelsonde.:
@Eisbaeeer Zisterne ist schon gut und richtig. Ich weiß nicht,, was der Tank-TÜV sagt, wenn da Drähte aus einem Bastelgehäuse in den Heizöltank gehen...
Was für ein Tank-Tüv? Habe ich hier noch nie gehört. Unser Tank ist schon seit ca. 60 Jahren im Keller.
-
Hallo,
@Eisbaeeer sagte in Füllstandsmessung per Pegelsonde.:
Wenn er Pech hat, ist der Analog-Eingang irgend wann defekt. Im Datenblatt steht:
A0 Analog input, max 3.3V input A0Sein eigenes Risiko, ich würde es nicht machen
Ok, danke für den Hinweis, habe das hier geordert: https://www.aliexpress.com/item/32823522400.html?spm=a2g0s.9042311.0.0.755c4c4dfvh43M , damit kann ich 3,3 V einstellen und auch noch den Max- und Minpunkt justieren. Da ändere ich lieber die Schaltung, ist ja nicht weiter schlimm.
Heute ist noch das Display gekommen, habe es mal an den NodeMCU drangehängt.
-
@opossum Genau diesen Wandler verwende ich auch. Das sollte klappen.
-
@Beowolf Habe einen Erdtank. Da kommt alle 5 Jahre der TÜV vorbei. Die Vorschriften waren lang Zeit Ländersache, sind aber wohl seit 2017 bundesweit einheitlich https://www.tuv.com/germany/de/prüfung-von-heizöltanks.html . Bei uns wird das vom Landratsamt überwacht. Reparaturen dürfen nur vom lizenzierten Tankbauer vorgenommen werden. Das gilt selbst für die Power-Kontrollanzeige-Glimmlampe der Tanküberwachung. Kein Witz, habe einen entsprechenden Schriftverkehr mit dem Landratsamt.
-
Dann ist es klar das hier noch keiner da war. 9000 Liter im Keller, kein Schutzgebiet oder so.
-
@Eisbaeeer sagte in Füllstandsmessung per Pegelsonde.:
Eine neue Version ist online https://github.com/Eisbaeeer/Arduino.Ethernet.Zisterne
Jetzt kann die Dichte noch mit angegeben werden.// ---- HIER die Anpassungen vornehmen ---- const float max_liter = 6300; // Maximale Füllmenge des Behälters const float dichte = 1.0; // Dichte der Flüssigkeit - Bei Heizöl bitte "1.086" eintragen | Bei Wasser bitte "1.0" eintragen IPAddress mqttserver(192, 168, 1, 200); // IP Adresse des MQTT Servers IPAddress ip(192, 168, 1, 21); // IP Adresse, falls kein DHCP vorhanden ist byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0x0A }; // MAC-Addresse bitte anpassen
Grüße Eisbaeeer
Wieso 1.086 bei Heizöl? Heizöl ist doch leichter als Wasser.
Wäre 0,860 nicht der richtige Wert?
-
@Beowolf
Ähhm ja, muss nochmal drüber nachdenken.
Also 1 Liter Heizöl wiegt also 0.86 Kg.
Da hab ich noch einen Denkfehler drin.
Da meine Basis der maximale AD-Wandler Wert ist, muss ich da ansetzen. Ich korrigiere das noch. -
@Eisbaeeer sagte in Füllstandsmessung per Pegelsonde.:
Also 1 Liter Heizöl wiegt also 0.86 Kg.
Jepp, richtig. (Stichwort "Ölpest" - schwimmt auf dem Wasser)
Zum kalibrieren.
Ich kann ja jetzt schlecht mal eben den Heizöltank voll füllen lassen.
Es sollte doch gehen, PVC Rohr aus dem Baumarkt. Etwas länger als die max Füllhöhe. Unten zu durch Blindstopfen. Wasser rein, mal leer mal voll - fertig, oder?
Grüße
Manfred -
@Beowolf
Also, nachdem die Kinder im Bett sind,
hatte ich nochmals Zeit, eine Version 1.2 zu bauen. Die ist jetzt auf Github verfügbar.Da ich die Füllhöhe bzw. Liter Zahl aus dem maximalen Wert und dem 0 Wert berechne, ist es relativ egal, welches Medium verwendet wird. Die Liter werden immer aus dem tatsächlichen Prozentwert errechnet. Abhängig von dem maximalen Fassungsvermögen des Behälters. Entscheidend ist jetzt nur, welches Medium ich zum Kalibrieren verwende. Es ist jetzt also möglich, z.B. mit Wasser zu kalibrieren und in jeder anderen Flüssigkeit zu benutzen, wenn man den Dichtefaktor kennt.
Für die leichtere Kalibrierung zeige ich jetzt alle 30 Sekunden den tatsächlichen Analog Messwert an (Wert vom AD-Wandler). Dieser Wert muss dann nach der Kalibrierung im Sketch angegeben werden, den Sketch dann nochmals aufspielen und fertig.
Es sollte doch gehen, PVC Rohr aus dem Baumarkt. Etwas länger als die max Füllhöhe. Unten zu durch Blindstopfen. Wasser rein, mal leer mal voll - fertig, oder?
Genau das habe ich jetzt realisiert. Du kalibrierst in deinem Rohr und gibst den Dichte Faktor an.
Bin auf Rückmeldungen gespannt.
Grüße Eisbaeeer -
Mist, der Baumarkt hat zu.
-
@Beowolf Wo ist der nächste Verkaufsoffene Sonntag?
-
Hallo,
habe das jetzt noch einmal neu gebaut und in das Gehäuse des ELV-Aktors (diese kapazitive Füllstandsmessung) eingebaut. Warte jetzt auf den Strom-zu-Spannungs-Converter. Meiner macht ja nur 5V, das ist dann wohl zu viel für den Analogeingang (danke für den Hinweis). Hat denn jemand von Euch eine nette Grafik für eine Zisterne, die man noch bearbeiten kann? Möchte das über die Werteliste in Vis bauen. Die Werte kommen über MQTT in IOBroker an. Dort kann ich sie dann auswerten. Wie nehmt Ihr das Sendeintervall, ich bin mir da noch nicht schlüssig. Zur Zeit lasse ich alle 10 s die Messwerte übermitteln. Erscheint mir aber zu kurz, der Wasserstand ändert sich zur Zeit nicht so dramatisch. -
Bitteschön:
[{"tpl":"tplHqCircle","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"oid":"hm-rpc.0.OEQ0612234.1.FILLING_LEVEL","min":"0","max":"100","digits":"0","step":"1","is_comma":"true","displayPrevious":false,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"oid-battery":"hm-rpc.0.OEQ0612234.0.LOWBAT","unit":"%","caption":"Füllstand","hideNumber":false,"angleOffset":"","descriptionLeft":"HM-Sen-Wa-Od NEQ1012645:1.FILLING_LEVEL","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"83px","top":"203px","width":"177px","height":"179px","color":"black","text-align":"center","font-size":"","z-index":"2"},"widgetSet":"hqwidgets"},{"tpl":"tplPlump_tank_simple","data":{"oid":"hm-rpc.0.OEQ0612234.1.FILLING_LEVEL","g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","type":"level","level_min":"0","level_max":"100","color":"#C0C0C0","top_water":"#f4f5f6","bottom_water":"#b3bcbc","filter_pattern":"/vis/widgets/plumb/img/prev_tank_simple.png","filter_size":"2000","filter_opa":"50","conTop_level":"100","conTop_color_off":"#C0C0C0","conTop_color_on":"#00ff00","conTop_size":"20","conTop_pos":"50","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"g_conBottom":false,"conBottom_level":"1","conBottom_color_off":"#C0C0C0","conBottom_color_on":"#00ff00","conBottom_size":"20","conBottom_pos":"50","g_conLeft":false,"conLeft_level":"50","conLeft_color_off":"#C0C0C0","conLeft_color_on":"#00ff00","conLeft_size":"20","conLeft_pos":"50","g_conRight":false,"conRight_level":"50","conRight_color_off":"#C0C0C0","conRight_color_on":"#00ff00","conRight_size":"20","conRight_pos":"50","is_filter":false,"conTop_show":true,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"48px","top":"67px","width":"240px","height":"450px","z-index":"1"},"widgetSet":"plumb"},{"tpl":"tplHqOdometer","data":{"oid":"javascript.0.Zisterne.Literaktuell","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"style":"car","format":"(dddd)","factor":"1","leadingZeros":"true","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"name":"Liter","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"127px","top":"392px","width":"92px","height":"37px","z-index":"2"},"widgetSet":"hqwidgets"},{"tpl":"tplValueList","data":{"oid":"nothing_selected","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"html_prepend":"Liter","name":"Liter","lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0},"style":{"left":"130px","top":"430px","color":"white","background-color":"#009cb3","text-align":"center","font-size":"larger","width":"82px","height":"24px","z-index":"2"},"widgetSet":"basic"}]
-
Hallo,
@Superdad , vielen Dank für Dein Widget, habe es bei mir importiert. Läuft. -
Fixed uptime_d in MQTT: https://github.com/Eisbaeeer/Arduino.Ethernet.Zisterne
-
@opossum sagte in Füllstandsmessung per Pegelsonde.:
Hallo,
@Superdad , vielen Dank für Dein Widget, habe es bei mir importiert. Läuft.Hat jemand mal einen Screenshot vom Widget?
Danke. -
Hallo,
habe mal verschiedene Varianten getestet. Hier mal die Bilder:
Dann noch ein nettes Diagramm mit dem Füllstandsverlauf, eventuell den Tank noch umgestalten.
Warte noch auf -
Hallo,
ich habe das jetzt noch ein wenig verfeinert, der Tank allein war mir irgendwie zu spröde. Habe den Tank jetzt "integriert":
Wobei jetzt der blaue Wasserspiegel durch den Datenpunkt des ESP Easy gesteuert wird.