Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Dieser 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.
Dann ist eine Abspannklemme nicht wirklich die beste Idee, oder?
Drückt die Abspannklemme die Leitung nicht zu sehr zusammen?
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.
Das Kabel wird auf großer Länge gleichmäßig eingeklemmt und dadurch nicht beschädigt.
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.
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.
// 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.
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?
Bekommst du die jedes mal kostenlos ersetzt oder zweifelt der Hersteller beim 4 mal in kurzer Zeit mehr an dir als an seinem Produkt?
Bisher hat Amazon die immer anstandslos ausgetauscht. Ich habe aber 4 Sensoren von 4 verschiedenen Händlern probiert zwischen 30 und 70€. Ergebnis: immer der gleiche Sensor mit dem gleichen Beipackzettel.
Gabz ehrlich, wenn du schon vier versucht hast, was soll beim fünften anders sein?
Wenn dann müsstest du schon ganz woanders einen teureren kaufen, ich meinte mal welche im Bereich von 150€ gesehen zu haben.
Dass Wasser ins Druckausgleichsröhrchen kommt, oder es gequetscht wird ist ausgeschlossen?
Also gequetscht ist es definitiv nicht, es hat ja 3 Wochen problemlos funktioniert. Das Wasser direkt ins Röhrchen eindringt, schließe ich aus, allerdings könnte ich mir vorstellen, das eventuell Kondensat irgendwie rein kommen könnte, da die ABB/AE Dose nicht 100% abgedichtet ist.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar