Ankündigung

Einklappen
Keine Ankündigung bisher.

Füllstandsmessung Tank (Zisterne) (gerne auf KNX)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ur63
    antwortet
    Zitat von exxtreme Beitrag anzeigen
    die ABB/AE Dose nicht 100% abgedichtet ist.
    D.h., du hast die ABB AE/A 2.1 (IP54) in der Zisterne verbaut, ohne weiteren Schutz?


    Einen Kommentar schreiben:


  • 1mannlan
    antwortet
    Zitat von exxtreme Beitrag anzeigen
    ...allerdings könnte ich mir vorstellen, das eventuell Kondensat irgendwie rein kommen könnte, da die ABB/AE Dose nicht 100% abgedichtet ist.
    Dann würde ich zunächst dort ansetzen!

    Einen Kommentar schreiben:


  • exxtreme
    antwortet
    Zitat von 1mannlan Beitrag anzeigen

    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.

    Einen Kommentar schreiben:


  • 1mannlan
    antwortet
    Zitat von exxtreme Beitrag anzeigen
    Ja, so weit war ich eigentlich auch schon, ich hatte nur überlegt vorher noch einen letzten Versuch mit einem günstigen Sensor zu versuchen.
    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?

    Einen Kommentar schreiben:


  • exxtreme
    antwortet

    Zitat von Robert86424 Beitrag anzeigen
    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.

    Zitat von 1mannlan Beitrag anzeigen
    Offenbar keinen billigen mehr.
    Wie wäre es mit einem von Tecson?
    Ja, so weit war ich eigentlich auch schon, ich hatte nur überlegt vorher noch einen letzten Versuch mit einem günstigen Sensor zu versuchen.

    Einen Kommentar schreiben:


  • 1mannlan
    antwortet
    Zitat von exxtreme Beitrag anzeigen
    Hat noch jemand einen Tipp welchen Sensor man kaufen kann?
    ​​​​​​
    Offenbar keinen billigen mehr.
    Wie wäre es mit einem von Tecson?

    Einen Kommentar schreiben:


  • Robert86424
    antwortet
    Bekommst du die jedes mal kostenlos ersetzt oder zweifelt der Hersteller beim 4 mal in kurzer Zeit mehr an dir als an seinem Produkt?

    Einen Kommentar schreiben:


  • exxtreme
    antwortet
    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:


  • Techi
    antwortet
    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:
    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"​
    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.

    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.

    Einen Kommentar schreiben:


  • 1mannlan
    antwortet
    Zitat von crazyyou Beitrag anzeigen
    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.

    Einen Kommentar schreiben:


  • crazyyou
    antwortet
    Drückt die Abspannklemme die Leitung nicht zu sehr zusammen?

    Einen Kommentar schreiben:


  • 1mannlan
    antwortet
    Zitat von crazyyou Beitrag anzeigen



    Dann ist eine Abspannklemme nicht wirklich die beste Idee, oder?
    Doch, denn genau um die Beschädigung zu vermeiden nutzt man die ja.

    Einen Kommentar schreiben:


  • crazyyou
    antwortet
    Zitat von 1mannlan Beitrag anzeigen
    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.
    Zitat von Techi Beitrag anzeigen
    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?

    Einen Kommentar schreiben:


  • Techi
    antwortet
    Zitat von StefanWE Beitrag anzeigen
    Ist so ein Druckausgleichsfilter wirklich notwendig? Im Grunde wird doch nur das Kabel der Sonde mit dem Kabel zum Aktor verbunden...
    Bitte lies dir die vorangegangenen Beiträge durch, dort wurde auch der Grund genannt.

    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:


  • 1mannlan
    antwortet
    Zitat von StefanWE Beitrag anzeigen
    ... Muss ich dabei noch etwas beachten? Als Kabel zum Aktor habe ich A-2Y(L)2Y 2x2x0,8.
    Nichts was mir jetzt einfiele.

    Zitat von StefanWE Beitrag anzeigen
    das würde ich dann in der Dose mit Wago Klemmen an die Leitung der Sonde klemmen und die Sonde ins Wasser lassen.
    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 anzeigen
    kann ich die Dose denn einfach mit Spaxschrauben am Plastik Dom festschrauben?
    Die Löcher für die Schrauben sind recht eng, vermutlich musst du passende Schrauben besorgen, sonst sollte das so halten!

    Einen Kommentar schreiben:

Lädt...
X