Ankündigung
Einklappen
Keine Ankündigung bisher.
Füllstandsmessung Tank (Zisterne) (gerne auf KNX)
Einklappen
X
-
Bekommst du die jedes mal kostenlos ersetzt oder zweifelt der Hersteller beim 4 mal in kurzer Zeit mehr an dir als an seinem Produkt?
-
Bei mir ist gestern Nummer 4 von den Amazon China Sensoren verreckt nach ziemlich genau 3 Wochen fehlerfreien Betrieb. Immerhin deutlich länger gehalten als die letzten.
Ich denke einen letzten Anlauf mit den Billigsensoren werde ich noch wagen. Hat noch jemand einen Tipp welchen Sensor man kaufen kann?
Einen Kommentar schreiben:
-
btw:
ich hab mittlerweile auf influxdb2 umgestellt und lasse in meinem NodeRed Script (Drucksensor zu Füllstand, siehe https://knx-user-forum.de/forum/%C3%...48#post1776248 ) die Rückgabe nun gleich so ausgeben, das man diese direkt als eine Ausgabe in die Influxdb2 schreiben kann und dabei auch Tags geschrieben werden.
Ausgabe sieht nun wie folgt aus:
Auch hab ich das Script intern noch etwas optimiert, es wird nun eine kleine fließende Mittelwertbildung gemacht, sowie intern nun nicht mehr nur mit integer gerechnet.Code:array[2] 0: array[2] 0: object menge: 5627 1: object typ: "inhalt" einheit: "liter" quelle: "drucksensor" ort: "zisterne" 1: array[2] 0: object menge: 71 1: object typ: "inhalt" einheit: "prozent" quelle: "drucksensor" ort: "zisterne"
NodeRed_Zisterne_1.jpg
Programmcode für die Sektion "Funktion"
Code:// zistern litering table (got from manufacturer GRAF) // first column = fillheight in mm // second column = liter const literingTable = [ [0, 0], [100, 368], [200, 976], [300, 1621], [400, 2339], [500, 3153], [600, 3796], [700, 4609], [800, 5341], [900, 6057], [1000, 6731], [1100, 7301], [1200, 7515], [1260, 7550] ]; //var msg; var msg2; var msg3; var msg4; // pressure Sensor parameters const max_height = 2; // 2m const max_mA = 20; // mA at max_height const min_mA = 4; // mA at zero height // index to table for lowest level in zistern where water // can still be pumped. Below pump cant reach the water const percent_0_index = 2 // eg, 2 is 976l //const lowest_level_Tindex = 2; // Main starts here var y; var measured_mA = msg.payload; // get mA value from Sensor as input var measured_mA_mean; measured_mA_mean = context.get('measured_mA_mean'); if (context.get('Startup') == 341487) { context.set("Startup", 0) measured_mA_mean = measured_mA; } measured_mA_mean = (measured_mA_mean * 2 + measured_mA) / 3; context.set('measured_mA_mean', measured_mA_mean); if (measured_mA < min_mA){ // if its below allowed range, then exit node.warn("Error ! Input Value below 4mA") return; } var high_mm = (max_height * 1000 / (max_mA - min_mA) * (measured_mA_mean - min_mA)); //var x = Math.round(high_mm); var x = high_mm; //search for fitting table area, getting index into table as i for(var i = 0; i < literingTable.length; i++) { if (literingTable[i][0] > x) break; // if "end entry" found, then exit } i = i - 1; // correct index to "start entry" // check if index was inside table and not the last entry if (i<literingTable.length-1){ // was inside table // get values from table var x1 = literingTable[i+0][0]; var y1 = literingTable[i+0][1]; var x2 = literingTable[i+1][0]; var y2 = literingTable[i+1][1]; // and calculate the value in between y=(y1+((x-x1)/(x2-x1)*(y2-y1))); } else{ // was the last entry, // so return last entry as fixe value from table // no calcuation needed y=literingTable[i+0][1] } // calculate percentage from table index 2 as 0% to last table index as 100% var percent = 100 / (literingTable[literingTable.length-1][1] - literingTable[percent_0_index][1]); percent = Math.round(((percent * (y - literingTable[percent_0_index][1])) * 1) * 1e0) / 1e0; if (percent < 0){ percent = -1; } y = Math.round(y); msg.payload = [ [ // first value { // influxdb2 fields "menge": y }, { // influxdb2 tags "typ": "inhalt", "einheit": "liter", "quelle": "drucksensor", "ort": "zisterne" } ], [ // second value { // influxdb2 fields "menge": percent }, { // influxdb2 tags "typ": "inhalt", "einheit": "prozent", "quelle": "drucksensor", "ort": "zisterne" } ] ]; return [msg];
Dann muß noch folgender Programmcode bei Sektion "Start" rein:
Code:// Der Code hier wird ausgeführt, // wenn der Node gestartet wird if (context.get("Startup") === undefined) { context.set("Startup", 341487) }
Es wurde nun mittlerweile auch die Impulsauswertung des Gartenwasserzählers in Betrieb genommen.
Das hat mir nun ermöglicht beim Nachfüllen der Zisterne per Gartenwasser die Menge des Gartenwasserzählers mit der über den Drucksensor ermittelten Menge in Bezug zu setzen.
Ergebnis: +/-10L !!!
Zuletzt geändert von Techi; 20.08.2023, 06:57.
- Likes 1
Einen Kommentar schreiben:
-
Schau dir mal an wie die funktioniert. Wenn man danach googelt stellt man schnell fest, dass die genau dafür entwickelt wurde ein festhalten ohne großes einquetschen zu ermöglichen.Zitat von crazyyou Beitrag anzeigenDrückt die Abspannklemme die Leitung nicht zu sehr zusammen?
Das Kabel wird auf großer Länge gleichmäßig eingeklemmt und dadurch nicht beschädigt.
Einen Kommentar schreiben:
-
Drückt die Abspannklemme die Leitung nicht zu sehr zusammen?
Einen Kommentar schreiben:
-
Doch, denn genau um die Beschädigung zu vermeiden nutzt man die ja.Zitat von crazyyou Beitrag anzeigen
Dann ist eine Abspannklemme nicht wirklich die beste Idee, oder?
Einen Kommentar schreiben:
-
Zitat von 1mannlan Beitrag anzeigenWenn du die Sonde über den Boden hängen willst, solltest du das mit einer Abspannklemme machen und nicht über die Verschraubung an der Dose.Dann ist eine Abspannklemme nicht wirklich die beste Idee, oder?Zitat von Techi Beitrag anzeigenDieser kleine dünne Schlauch muss also immer frei luftdurchgängig und frei von Beschädigung oder Feuchtigkeit, dabei aber immer dem Luftdruck der Aussenluft ausgesetzt sein.
Einen Kommentar schreiben:
-
Bitte lies dir die vorangegangenen Beiträge durch, dort wurde auch der Grund genannt.Zitat von StefanWE Beitrag anzeigenIst so ein Druckausgleichsfilter wirklich notwendig? Im Grunde wird doch nur das Kabel der Sonde mit dem Kabel zum Aktor verbunden...
Also nochmal:
In der Anschlusskabel befinden sich nicht nur Leiter, sondern auch ein kleiner Druckschlauch welcher z.B. beim Abschneiden des Anschlusskabels gesondert betrachtet werden sollte damit dieser frei und offen bleibt. Über diesen kleinen Schlauch wird die Druckdifferenzmessung von Oberfläche Luft zu Unterwasserdruck gemacht.
Dieser kleine dünne Schlauch muss also immer frei Luft-durchgängig und frei von Beschädigung oder Feuchtigkeit, dabei aber immer dem Luftdruck der Außenluft ausgesetzt sein.
Das schafft man am besten mit einem speziellen Druckausgleichs Durchgang, das kann halt optimalerweise eine spezielle Membran sein.
Zuletzt geändert von Techi; 08.07.2023, 09:18.
Einen Kommentar schreiben:
-
Nichts was mir jetzt einfiele.Zitat von StefanWE Beitrag anzeigen... Muss ich dabei noch etwas beachten? Als Kabel zum Aktor habe ich A-2Y(L)2Y 2x2x0,8.
Das mit den Klemmen sollte passen. Achte darauf, dass das Kabel der Sonde nicht zu sehr gequetscht wird. Wenn du die Sonde über den Boden hängen willst, solltest du das mit einer Abspannklemme machen und nicht über die Verschraubung an der Dose. Vielleicht auch Overkill, aber ich wollte das Kabel nicht zu sehr belasten.Zitat von StefanWE Beitrag anzeigendas würde ich dann in der Dose mit Wago Klemmen an die Leitung der Sonde klemmen und die Sonde ins Wasser lassen.
Die Löcher für die Schrauben sind recht eng, vermutlich musst du passende Schrauben besorgen, sonst sollte das so halten!Zitat von StefanWE Beitrag anzeigenkann ich die Dose denn einfach mit Spaxschrauben am Plastik Dom festschrauben?
Einen Kommentar schreiben:
-
Ach du meine Güte, so empfindlich hätte ich nicht gedacht. Gut das man noch mal gefragt hat. Habe die Dose nun bestellt. Muss ich dabei noch etwas beachten? Als Kabel zum Aktor habe ich A-2Y(L)2Y 2x2x0,8.
das würde ich dann in der Dose mit Wago Klemmen an die Leitung der Sonde klemmen und die Sonde ins Wasser lassen.
kann ich die Dose denn einfach mit Spaxschrauben am Plastik Dom festschrauben?
Einen Kommentar schreiben:
-
Ohne Druckausgleichsmembran funktioniert die Sonde nicht. Innerhalb der Zisterne ist die Luftfeuchtigkeit sehr hoch, deshalb würden die Kontaktstellen recht schnell rosten, wenn man einfach ein Loch in die Box bohrt.Zitat von StefanWE Beitrag anzeigenIst so ein Druckausgleichsfilter wirklich notwendig? Im Grunde wird doch nur das Kabel der Sonde mit dem Kabel zum Aktor verbunden...
Selbst die verzinkten Betonanker rosten schon nach einem Jahr. Daher würde ich auf die Membran nicht verzichten.
Einen Kommentar schreiben:
-
Ist so ein Druckausgleichsfilter wirklich notwendig? Im Grunde wird doch nur das Kabel der Sonde mit dem Kabel zum Aktor verbunden...
Einen Kommentar schreiben:
-
https://wekonn.de/products/feuchtedi...32903544832105Zitat von JMA Beitrag anzeigen
Die Box schaut gut aus und scheint mir groß genug, hättest du da evtl. eine genauere Bezeichnung bzw. eine Bezugsquelle?
Wäre auch noch eine Option - werde ich z.B. bestellen
Einen Kommentar schreiben:
-
Verstehe ich das richtig, das die Drucksonde https://www.amazon.de/Fl%C3%BCssigkeitsstandsgeber-Wasserstandsensor-Detektor-Signalausgang-Fl%C3%BCssigkeitsstanddetektor-Bew%C3%A4sserungssysteme/dp/B08XVV3MZX/ref=sr_1_5?__mk_de_DE=%C3%85M%C3%85%C5%BD%C3%95%C3 %91&crid=187526GNLJ4S5&keywords=TL-136&qid=1681588272&sprefix=tl-136%2B%2Caps%2C72&sr=8-5&th=1 im Wasser untertaucht. Also etwa 20-30cm über dem Boden der Zisterne hängen sollte?
ich würde mir jetzt auch den Aio Aktor von mdt dazu holen. Und passend dazu irgendein kleines 24v dc Netzteil. Soweit richtig, oder habe ich etwas vergessen?
Einen Kommentar schreiben:


Einen Kommentar schreiben: