Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Hardware
  4. Wasserstands-/Füllstandssensor,Wasserpegelschalter

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    12
    1
    332

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.3k

Wasserstands-/Füllstandssensor,Wasserpegelschalter

Geplant Angeheftet Gesperrt Verschoben Hardware
wasserstandssensorfüllstandssensorwassersenorwasserpegelschalter
37 Beiträge 10 Kommentatoren 7.4k Aufrufe 10 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • S Offline
    S Offline
    Schlagschatten
    schrieb am zuletzt editiert von
    #1

    Hallo,
    suche seit einiger Zeit eine Möglichkeit, einen Wassersensor in Iobroker zu integrieren. Leider gehen mir so lagsam die Ideen aus. Habe einiges im Web gelesen, allerdings nicht wirklich eine gute Lösung gefunden. Eine Variante wäre es, über einen kabellosen Fensterkontakt den Sensor auszulesen. Variante 2 über einen Ultraschallsensor und einem Wemos D1 eine Füllstandsanzeige zu realisieren. Habe mir einen H-Tronic WS 10 zugelegt, da dieser eine 2,5mm Klinke 2-polig hat und der Sonoff TH10/16 ebenfalls mit 2,5mm Klinke 4-polig arbeitet. Auch weitere Sensoren werden beim Sonoff unterstützt, nur Werte bekomme ich nicht.
    Vielleicht hat jemand von euch eine eleganterer Alternative.

    Gruß Chris

    OpenSourceNomadO 1 Antwort Letzte Antwort
    0
    • bahnuhrB Online
      bahnuhrB Online
      bahnuhr
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2

      Bei mir:
      Wemos und Ultraschall

      https://forum.iobroker.net/topic/23474/anleitung-wemos-sketch-mit-sensoren


      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
      Danke.
      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
      ScreenToGif :https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Schlagschatten
        schrieb am zuletzt editiert von
        #3

        Danke für dein Projekt, wie Stabil läuft es über den Wemos und MQTT?

        1 Antwort Letzte Antwort
        0
        • bahnuhrB Online
          bahnuhrB Online
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #4

          Verbindung läuft mittlerweile stabil.
          Der Sensor empfängt manchmal "Störsignale". Habe ihn z.B. auch im Heizöltank.
          Aktuell ca. 60cm von oben.
          Manchmal misst er aber auch 80cm; kurz darauf wieder 60cm.
          Habe versucht dies mit dem Script abzufangen (Werte Abweichung > 20% ignorieren).

          Anbei mal das aktuelle Script.

          // ************************************************************
          // Wemos-Sketch: Basis
          // inkl. Ultraschall, BME280, Wifi, MQTT, Webserver, Time
          // 5/2019 bahnuhr, Dieter Mueller
          // ************************************************************
              #include <ESP8266WiFi.h>
              #include <WiFiClient.h>
              #include <ESP8266WebServer.h>
              #include <ESP8266mDNS.h>
              //#include <MQTTClient.h>
              #include <MQTT.h>
              #include <Wire.h>
              #include <NTPtimeESP.h>
              #include "cactus_io_BME280_I2C.h"
          // ************************************************************
          // Eingaben machen:
          // ************************************************************
          // BME 280
              int alti = 314; // aktuelle Hoehe über Meeresspiegel = Altitude -> zur Korrektur von pressure
          // Network Wifi
              String ssid = "xxx";
              const char* password = "xxx";
              IPAddress ip = ipaddr_addr("192.168.xxx.xxx"); // feste IP-Adresse fuer den WeMos
          // MQTT
              const char* mqtt_user = "xxx"; // Benutzername der MQTT-Instanz auf dem IoBroker
              const char* mqtt_passwd = "xxx"; // Passwort der MQTT-Instanz auf dem IoBroker
              const char* mqtt_ip = "192.168.xxx.xxx"; // IP Adresse des IoBroker
              int mqtt_port = 1884; // Port des IoBroker
              const char* mqtt_name = "Wemos-Heizoel"; // Name des Wemos der in IoBroker im Adapter MQTT unter info angezeigt wird.// Wemos-System
              String Wemos_Device = "Heizoel";   // z.B. Heizoel
              int ignor = 20;   // Variable für Distance Abweichungen ignorieren
              int loop_mqtt = 300000;  // in ms - Delay MQTT
             
          // ************************************************************
          // ab hier keine Veränderung mehr !
          // ************************************************************
          // HC-SR04 Ultraschall        // VCC = 5V ; GND an GND ; echo an D7 ; trig an D6
              #define echoPin D7   // Echo Pin
              #define trigPin D6   // Trigger Pin
              int maximumRange = 200;  int minimumRange = 0; // Maximum und Minimum range needed
              float duration, distance, distance_alt; // Duration used to calculate distance
          // BME280                     // VCC = 3,3V ; GND an GND ; SCL an D1 ; SDA an D2
              BME280_I2C bme(0x76);  // I2C using address 0x76
              float hPa_alt, Grad_alt, feuchte_alt;  // alte Werte
              int hPa_korrektur; 
          // Network Wifi
              IPAddress gateway = ipaddr_addr("192.168.243.1"); // IP-Adresse des WLAN-Gateways
              IPAddress subnet = ipaddr_addr("255.255.255.000"); // Subnetzmaske
              IPAddress dns1 = ipaddr_addr("8.8.8.8");//dns 1
              IPAddress dns2 = ipaddr_addr("8.8.4.4");//dns 2
              long rssi_alt; // Signalstärke alt
          // MQTT
              String mqtt_send = "nein";
              WiFiClient net;
              MQTTClient client;
          // Wemos-System
             int serial = 9600; // Übertragungsgeschwindigkeit Serial
             int loop_delay = 3000;  // in ms - Delay in Loop
             unsigned long letzteMillis_mqtt = 0;   // speichern last time
             int loop_verbindung = 300000;  // in ms - Delay Verbindung -> alle 5 Min. Wifi und mqtt prüfen
             unsigned long letzteMillis_verbindung = 0;   // speichern last time
          // Time
             NTPtime NTPch("2.de.pool.ntp.org");   // Choose server pool as required
             strDateTime dateTime;
             int time_offset = 1;  // offset 1 Std.
             int time_summertime = 1;  // 1=Sommerzeit
             String dayStr = ""; String monatStr = ""; String jahrStr = ""; String stdStr = ""; String minStr = ""; String sekStr = ""; 
          //Server
             ESP8266WebServer server(80);
          
          
          // *************************************************
          // Unterprogramm: void setup
          // *************************************************
          void setup()  {
            Serial.begin(serial);
            // Ultraschall
              pinMode(trigPin, OUTPUT);
              pinMode(echoPin, INPUT);
            // BME 280
              if (!bme.begin()) {
                Serial.println("Es konnte kein BME280 Sensor gefunden werden!");
                Serial.println("Bitte überprüfen Sie die Verkabelung!");
                while (1);
              }
                bme.setTempCal(-1);
            // WiFi, MQTT, Webserver
            setup_wifi();
            setup_mqtt();
            setup_webserver();
          }
          
          
          // *************************************************
          // Unterprogramm: void loop
          // *************************************************
          void loop()  {
            unsigned long aktuellMillis = millis();
              if (aktuellMillis - letzteMillis_mqtt >= loop_mqtt) { mqtt_send = "ja"; } else { mqtt_send = "nein"; }
            // WiFi und MQTT prüfen
              if (aktuellMillis - letzteMillis_verbindung >= loop_verbindung) {
                if (WiFi.status() != WL_CONNECTED) {
                  setup_wifi();
                }
                Serial.println("WiFi geprüft und ok");
                client.publish("Wemos_" + Wemos_Device + "/Meldung", "WiFi geprüft und ok.");
              // MQTT prüfen
                 if (!client.connect(mqtt_name, mqtt_user, mqtt_passwd)) { // Verbindung zum MQTT wird hergestellt
                   setup_mqtt();
                 }
                 Serial.println("MQTT geprüft und ok");
                 client.publish("Wemos_" + Wemos_Device + "/Meldung", "MQTT geprüft und ok.");
              letzteMillis_verbindung = aktuellMillis;
              }
            // Webserver
              server.handleClient(); // auf HTTP-Anfragen warten
            // Time
              Zeit_holen();
            // Ultraschall HC-SR04 Daten abrufen
                digitalWrite(trigPin, LOW);
                delayMicroseconds(2);
                digitalWrite(trigPin, HIGH);
                delayMicroseconds(10);
                digitalWrite(trigPin, LOW);
                duration = pulseIn(echoPin, HIGH);
              // Calculate the distance (in cm) based on the speed of sound.
                distance = duration/58.2;
                if (distance >= maximumRange || distance <= minimumRange){
                  Serial.println("---");
                }
                Serial.print(distance); Serial.print(" cm\t");
            // BME 280
              hPa_korrektur = (alti / 8) - 1; 
              bme.readSensor(); 
              Serial.print(bme.getPressure_MB() + hPa_korrektur); Serial.print(" hPa\t");    // Pressure in millibars
              Serial.print(bme.getHumidity()); Serial.print(" %\t\t");
              Serial.print(bme.getTemperature_C()); Serial.print(" °C\t");
            // Wifi-RSSI uebertragen
                int rssi = WiFi.RSSI();
                Serial.print(rssi); Serial.println(" WiFi-RSSI");
            // Daten an MQTT übertragen
              if (mqtt_send == "ja") {
                // Ultraschall
              	  int abweichung = 100 / distance_alt * distance - 100;
                  if ((distance - distance_alt > 1 || distance - distance_alt < -1) && ((abweichung > 0 && abweichung < ignor)  || (abweichung < 0 && abweichung > -ignor) || distance_alt == 0 || ignor == 0)) {
                    client.publish("Wemos_" + Wemos_Device + "/Distance", String(distance)); 
                    client.publish("Wemos_" + Wemos_Device + "/Meldung", "Distance geändert (akt.;alt): " + String(distance) + " ; " + String(distance_alt)); 
                    distance_alt = distance;
                  }
                // BME 280
                  if ((bme.getPressure_MB() + hPa_korrektur - hPa_alt) > 1 ||(bme.getPressure_MB() + hPa_korrektur - hPa_alt) < -1) {
                    client.publish("Wemos_" + Wemos_Device + "/BME280-Luftdruck", String(bme.getPressure_MB() + hPa_korrektur)); 
                    client.publish("Wemos_" + Wemos_Device + "/Meldung", "Luftdruck geändert (akt.;alt): " + String(bme.getPressure_MB()+ hPa_korrektur) + " ; " + String(hPa_alt)); 
                    hPa_alt = (bme.getPressure_MB() + hPa_korrektur);
                  }
                  if (bme.getHumidity()- feuchte_alt > 1 || bme.getHumidity()- feuchte_alt < -1) {
                    client.publish("Wemos_" + Wemos_Device + "/BME280-Luftfeuchtigkeit", String(bme.getHumidity())); 
                    client.publish("Wemos_" + Wemos_Device + "/Meldung", "Luftfeuchtigkeit geändert (akt.;alt): " + String(bme.getHumidity()) + " ; " + String(feuchte_alt)); 
                    feuchte_alt = bme.getHumidity();
                  }
                  if (bme.getTemperature_C()- Grad_alt > 1 || bme.getTemperature_C()- Grad_alt < -1) {
                    client.publish("Wemos_" + Wemos_Device + "/BME280-Temperatur", String(bme.getTemperature_C())); 
                    client.publish("Wemos_" + Wemos_Device + "/Meldung", "Temperatur geändert (akt.;alt): " + String(bme.getTemperature_C()) + " ; " + String(Grad_alt)); 
                    Grad_alt = bme.getTemperature_C();
                  }
                // Wifi-RSSI
                  if (rssi-rssi_alt > 2 || rssi-rssi_alt < -2) {
                    client.publish("Wemos_" + Wemos_Device + "/WiFi-RSSI", String(rssi)); 
                    client.publish("Wemos_" + Wemos_Device + "/Meldung", "WiFi-RSSI geändert (akt.;alt): " + String(rssi) + " ; " + String(rssi_alt)); 
                    rssi_alt = rssi;
                  }
              letzteMillis_mqtt = aktuellMillis;
              }
          //Delay x before next reading
            delay(loop_delay);
          }
          
          
          // -------------------------------------------------
          // Unterprogramm: setup_wifi
          // -------------------------------------------------
          void setup_wifi() {
            delay(10);
          // Connect WiFi
            Serial.println(); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid);
            WiFi.hostname("Wemos_" + Wemos_Device);
            WiFi.config(ip, gateway, subnet, dns1, dns2); 
            WiFi.mode(WIFI_STA); 
            WiFi.begin(ssid, password);
           
            while (WiFi.status() != WL_CONNECTED) {
              delay(500); Serial.print(".");
            }
            Serial.println(""); Serial.println(""); Serial.println("WiFi verbunden!");
          // Print the IP address
            Serial.print("IP-Addresse: "); Serial.print(WiFi.localIP()); Serial.println("");
          }
          // -------------------------------------------------
          // Unterprogramm: setup_mqtt
          // -------------------------------------------------
          void setup_mqtt() {
            client.begin(mqtt_ip, mqtt_port, net); // Verbindungsaufbau zu MQTT
            Serial.println(); Serial.print("MQTT verbinden!");
            while (!client.connect(mqtt_name, mqtt_user, mqtt_passwd)) { // Verbindung zum MQTT wird hergestellt
              Serial.print(".");
            }
            Serial.println(); Serial.println("MQTT verbunden!"); Serial.println("");
            client.publish("Wemos_" + Wemos_Device + "/IP-Adresse", myIp() );
            client.publish("Wemos_" + Wemos_Device + "/Meldung", "WiFi und MQTT geprüft und ok.");
          }
          // -------------------------------------------------
          // Unterprogramm: setup_webserver
          // -------------------------------------------------
          void setup_webserver() {
            if (MDNS.begin("esp8266")) {
              Serial.println("MDNS responder started");
            }
            server.begin();
            Serial.println("Webserver gestartet!");
            Serial.print("Benutze diese URL: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/"); Serial.println("");
              // HTTP-Anfragen bearbeiten
                server.on("/" , handleRoot);
                server.onNotFound(handleNoRoot);
          }
          // -------------------------------------------------
          // Unterprogramm: IP Adresse ermitteln
          // -------------------------------------------------
          String myIp() {
              char myIpString[24];
              IPAddress myIp = WiFi.localIP();
              sprintf(myIpString, "%d.%d.%d.%d", myIp[0], myIp[1], myIp[2], myIp[3]);
              return myIpString;
          }
          // -------------------------------------------------
          // Unterprogramm: Time
          // -------------------------------------------------
          void Zeit_holen() {
              dateTime = NTPch.getNTPtime(time_offset, time_summertime);
              if(dateTime.valid){
                byte actualHour = dateTime.hour; byte actualMinute = dateTime.minute; byte actualsecond = dateTime.second;
                int actualyear = dateTime.year; byte actualMonth = dateTime.month; byte actualday =dateTime.day;
                byte actualdayofWeek = dateTime.dayofWeek;
                jahrStr = dateTime.year;
                monatStr = dateTime.month < 10 ? "0" + String(dateTime.month) : String(dateTime.month);
                dayStr = dateTime.day < 10 ? "0" + String(dateTime.day) : String(dateTime.day);
                stdStr = dateTime.hour < 10 ? "0" + String(dateTime.hour) : String(dateTime.hour);
                minStr = dateTime.minute < 10 ? "0" + String(dateTime.minute) : String(dateTime.minute);
                sekStr = dateTime.second < 10 ? "0" + String(dateTime.second) : String(dateTime.second);        
                Serial.print("Stand: "); Serial.print(dayStr); Serial.print("."); Serial.print(monatStr); Serial.print("."); Serial.print(dateTime.year);
                Serial.print(" um "); Serial.print(stdStr); Serial.print(":"); Serial.print(minStr); Serial.print(":"); Serial.print(sekStr); Serial.println(" Uhr");
              }  
          }
          // -------------------------------------------------
          // Unterprogramm: Webserver
          // -------------------------------------------------
          void handleRoot() { // bei Aufruf des Root-Verzeichnisses
              String antwort = "";
              int rssi = WiFi.RSSI();
              antwort = "WeMos: \t\t" + Wemos_Device + "\n";
              antwort = antwort + "==============================================\n\n";
              antwort = antwort + "Stand: \t\t" + dayStr + "." + monatStr + "." + jahrStr + " um " + stdStr + ":" + minStr + ":" + sekStr + " Uhr\n";
            // Ultraschall
              antwort = antwort + "\n";
              antwort = antwort + "Ultraschall:";
              antwort = antwort + "\tDistance: \t\t" + distance + " cm\n";
              antwort = antwort + "\t\tAbweichung ignorieren: \t" + ignor + " % (0 = alle Werte werden uebertragen)\n";
            // BME 280  
              bme.readSensor(); 
              antwort = antwort + "\n";
              antwort = antwort + "BME 280:";
              antwort = antwort + "\tAltitude: \t\t" + alti + " Meter\n";
              antwort = antwort + "\t\tLuftdruck: \t\t" + (bme.getPressure_MB() + hPa_korrektur) + " hPa\n";
              antwort = antwort + "\t\tLuftfeuchtigkeit: \t" + bme.getHumidity() + " %\n";
              antwort = antwort + "\t\tTemperatur: \t\t" + bme.getTemperature_C() + " Grad Celsius\n";
            // System
              antwort = antwort + "\n";
              antwort = antwort + "System:";
              antwort = antwort + "\t\tVerbunden mit: \t\t" + ssid + "\n";
              antwort = antwort + "\t\tSignalstaerke: \t\t" + String(rssi) + " dBm\n";
              antwort = antwort + "\t\tIP-Adresse: \t\t" + myIp() + "\n";
              antwort = antwort + "\n";
            // MQTT
              antwort = antwort + "ioB-MQTT:";
              antwort = antwort + "\tName: \t\t\t" + mqtt_name + "\n";
              antwort = antwort + "\t\tIP-Adresse: \t\t" + mqtt_ip + "\n";
              antwort = antwort + "\t\tMQTT-Port: \t\t" + String(mqtt_port) + "\n";
              antwort = antwort + "\t\tSende-Intervall: \t" + String(loop_mqtt/1000) + " Sekunden\n";
              antwort = antwort + "\n\n";
           
              antwort = antwort + "Folgende Werte einstellen mit: \t" + myIp() + "/wert?...\n";
              antwort = antwort + "---------------------------------------------------------------------------------------\n";
              antwort = antwort + "Sende-Intervall MQTT an iobroker\t" + "delay=x\t\t" + "(x = Sekunden)\n";
              antwort = antwort + "Altitude des aktuellen Standorts\t" + "alti=x\t\t" + "(x = Meter ueber Meeresspiegel)\n";
              antwort = antwort + "SSID fuer Wlan\t\t\t\t" + "ssid=x\t\t" + "(ssid zum einloggen)\n";
              antwort = antwort + "Distance: Veraenderungen ignorieren\t" + "ignor=x\t\t" + "(x = % vom Wert; 0 wenn Nein)\n\n\n";
          
              antwort = antwort + "@ 08/2019 bahnuhr, Dieter Mueller";
              server.send(200, "text/plain", antwort);
              delay(150);
          }
          void handleNoRoot() {
              String antwort = "";
              if (server.args() > 0) {
                for (uint8_t i = 0; i < server.args(); i++) {
                  if (server.argName(i) == "delay") {
                    loop_mqtt = ((server.arg(i)).toInt())*1000;
                    Serial.print("Delay eingestellt auf: "); Serial.print(loop_mqtt/1000); Serial.println(" Sekunden"); 
                    handleRoot();
                  } else if (server.argName(i) == "alti") {
                    alti = (server.arg(i)).toInt();
                    Serial.print("Altitude eingestellt auf: "); Serial.print(alti); Serial.println(" Meter ueber Meeresspiegel"); 
                    handleRoot();
                  } else if (server.argName(i) == "ignor") {
                    ignor = (server.arg(i)).toInt();
                    Serial.print("Distance-Abweichung ignorieren eingestellt auf: "); Serial.print(ignor); Serial.println(" %"); 
                    handleRoot();
                  } else if (server.argName(i) == "ssid") {
                    ssid = server.arg(i);
                    Serial.print("SSID eingestellt auf: "); Serial.println(ssid);  
                    setup_wifi();
                    setup_mqtt();
                    setup_webserver();
                    handleRoot();
                  } else {
                    server.send(404, "text/plain", "Eingabe ist falsch und konnte nicht bearbeitet werden!");
                  }
                }
              } else {
                server.send(404, "text/plain", "Eingabe ist falsch und konnte nicht bearbeitet werden!");
              }
          }
          
          

          Wenn es gefällt, dann Daumen hoch.

          mfg
          Dieter


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

          1 Antwort Letzte Antwort
          1
          • S Offline
            S Offline
            Schlagschatten
            schrieb am zuletzt editiert von
            #5

            Habe gelesen, das es Probleme mit der Oberflächenspiegelung der Flüssigkeit und der Ultraschallmessung gibt, vielleicht hat es damit zutun.

            bahnuhrB 1 Antwort Letzte Antwort
            0
            • S Schlagschatten

              Habe gelesen, das es Probleme mit der Oberflächenspiegelung der Flüssigkeit und der Ultraschallmessung gibt, vielleicht hat es damit zutun.

              bahnuhrB Online
              bahnuhrB Online
              bahnuhr
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #6

              @Schlagschatten sagte in Wasserstands-/Füllstandssensor,Wasserpegelschalter:

              Habe gelesen, das es Probleme mit der Oberflächenspiegelung der Flüssigkeit und der Ultraschallmessung gibt, vielleicht hat es damit zutun.

              Alles möglich.
              Hab mich daran gewöhnt.

              Ne bessere Lösung hab ich noch nicht gefunden.


              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
              Danke.
              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
              ScreenToGif :https://www.screentogif.com/downloads.html

              1 Antwort Letzte Antwort
              0
              • S Offline
                S Offline
                Schlagschatten
                schrieb am zuletzt editiert von
                #7

                Mit dem Ultraschallsensor und der Füllstandsanzeigen ist schon eine abgefahrene Lösung. Mir würde für den Anfang erstmal eine einfachere und ggf. stabilere Variante mit Werten (true/false) reichen. Würde mich über weitere hilfreiche Vorschläge freuen.

                1 Antwort Letzte Antwort
                0
                • G Offline
                  G Offline
                  George_Best
                  schrieb am zuletzt editiert von
                  #8

                  Hi,

                  ich messe den Füllstand meiner Zisterne mit einem Wemos D1 mini und einem HC SR04 Ultraschallsensor. Funktioniert seit 2 Jahren bei Wind und Wetter ohne Probleme. Wemos D1 mini ist via ESPEasy und MQTT in ioBroker eingebunden.

                  bahnuhrB 1 Antwort Letzte Antwort
                  0
                  • bahnuhrB Online
                    bahnuhrB Online
                    bahnuhr
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #9

                    wemos und ultraschall -> billig und funktioniert.

                    Eine wirkliche genaue, zuverlässige Lösung hab ich noch nicht gefunden.

                    true/false wäre mir zu wenig.
                    Ich möchte schon die cm haben.

                    mfg


                    Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                    Danke.
                    gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                    ScreenToGif :https://www.screentogif.com/downloads.html

                    1 Antwort Letzte Antwort
                    0
                    • G George_Best

                      Hi,

                      ich messe den Füllstand meiner Zisterne mit einem Wemos D1 mini und einem HC SR04 Ultraschallsensor. Funktioniert seit 2 Jahren bei Wind und Wetter ohne Probleme. Wemos D1 mini ist via ESPEasy und MQTT in ioBroker eingebunden.

                      bahnuhrB Online
                      bahnuhrB Online
                      bahnuhr
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #10

                      @George_Best sagte in Wasserstands-/Füllstandssensor,Wasserpegelschalter:

                      Hi,

                      ich messe den Füllstand meiner Zisterne mit einem Wemos D1 mini und einem HC SR04 Ultraschallsensor. Funktioniert seit 2 Jahren bei Wind und Wetter ohne Probleme. Wemos D1 mini ist via ESPEasy und MQTT in ioBroker eingebunden.

                      Hast du auch Störsignale?


                      Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                      Danke.
                      gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                      ScreenToGif :https://www.screentogif.com/downloads.html

                      G 1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Schlagschatten
                        schrieb am zuletzt editiert von
                        #11

                        Habt ihr den Ultraschallsensor in ein wassergeschütztes Gehäuse gebaut oder wie geht ihr da vor?

                        bahnuhrB 1 Antwort Letzte Antwort
                        0
                        • S Schlagschatten

                          Habt ihr den Ultraschallsensor in ein wassergeschütztes Gehäuse gebaut oder wie geht ihr da vor?

                          bahnuhrB Online
                          bahnuhrB Online
                          bahnuhr
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #12

                          @Schlagschatten sagte in Wasserstands-/Füllstandssensor,Wasserpegelschalter:

                          Habt ihr den Ultraschallsensor in ein wassergeschütztes Gehäuse gebaut oder wie geht ihr da vor?

                          Ne, das hab ich nicht.


                          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                          Danke.
                          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                          ScreenToGif :https://www.screentogif.com/downloads.html

                          1 Antwort Letzte Antwort
                          0
                          • bahnuhrB bahnuhr

                            @George_Best sagte in Wasserstands-/Füllstandssensor,Wasserpegelschalter:

                            Hi,

                            ich messe den Füllstand meiner Zisterne mit einem Wemos D1 mini und einem HC SR04 Ultraschallsensor. Funktioniert seit 2 Jahren bei Wind und Wetter ohne Probleme. Wemos D1 mini ist via ESPEasy und MQTT in ioBroker eingebunden.

                            Hast du auch Störsignale?

                            G Offline
                            G Offline
                            George_Best
                            schrieb am zuletzt editiert von
                            #13

                            @bahnuhr sagte in Wasserstands-/Füllstandssensor,Wasserpegelschalter:

                            @George_Best sagte in Wasserstands-/Füllstandssensor,Wasserpegelschalter:

                            Hi,

                            ich messe den Füllstand meiner Zisterne mit einem Wemos D1 mini und einem HC SR04 Ultraschallsensor. Funktioniert seit 2 Jahren bei Wind und Wetter ohne Probleme. Wemos D1 mini ist via ESPEasy und MQTT in ioBroker eingebunden.

                            Hast du auch Störsignale?

                            Inwiefern? Das Signal wird ohne Störsignale übertragen - es wird ja auch kein Analog-Signal übertragen sondern bereits der gemessene Wert.
                            Ich sende das Signal alle 300 Sekunden, daher gibt es auch kein "Flackern" des gemessenen Wertes.

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              Superdad
                              schrieb am zuletzt editiert von Superdad
                              #14

                              Würde jemand so freundlich sein mir die Vorgehensweise mit dem Wemos und dem HC SR04 zu erklären?
                              Die Teile gibt es ja in China oder bei Amazon zu kaufen.
                              Habe mir auch schon einige Videos auf YouTube angeschauen.
                              Werde daraus aber einfach nicht schlau.

                              Was muss denn für ein Programm auf den Wemos und wie spielt man das auf?
                              Vielleicht geht es ja auch mit dem NodeMcu, wenn das leichter ist?
                              Wie bekomme ich dann eine Verbindung zur Homematic um mir den Wasserstand in VIS anzeigen zu lassen?

                              Ich habe mir jetzt schon den dritten Wasserstandsmesser von ELV gekauft und die Dinger gehen regelmässig nach eineinhalb bis zwei Jahren kaputt.
                              Ich habe einfach keine Lust mehr denen das Geld in den Rachen zu werfen für ihren Schrott!

                              Könnte mir jemand helfen?

                              CCU3

                              iOBroker auf IntelNUC Proxmox

                              bahnuhrB 1 Antwort Letzte Antwort
                              0
                              • E Offline
                                E Offline
                                ecki945
                                schrieb am zuletzt editiert von ecki945
                                #15

                                @Superdad said in Wasserstands-/Füllstandssensor,Wasserpegelschalter:

                                HC SR04

                                Ich habe zwar ne nodemcu, Dein Wemos sollte ähnlich sein. Bei mir habe ich Tasmota ausgespielt und verwende folgende Konfiguration:
                                f402c8b9-9335-4797-8ec1-7490d4171bdb-grafik.png

                                GPIO4 und GPIO5 musst du nicht konfigurieren. Bei mir ist da ein Display angeschlossen.

                                Weiterhin verwende ich dieses Modell:

                                4e0c93a8-e786-4b92-9669-d5ce4f513f52-grafik.png

                                1 Antwort Letzte Antwort
                                0
                                • S Superdad

                                  Würde jemand so freundlich sein mir die Vorgehensweise mit dem Wemos und dem HC SR04 zu erklären?
                                  Die Teile gibt es ja in China oder bei Amazon zu kaufen.
                                  Habe mir auch schon einige Videos auf YouTube angeschauen.
                                  Werde daraus aber einfach nicht schlau.

                                  Was muss denn für ein Programm auf den Wemos und wie spielt man das auf?
                                  Vielleicht geht es ja auch mit dem NodeMcu, wenn das leichter ist?
                                  Wie bekomme ich dann eine Verbindung zur Homematic um mir den Wasserstand in VIS anzeigen zu lassen?

                                  Ich habe mir jetzt schon den dritten Wasserstandsmesser von ELV gekauft und die Dinger gehen regelmässig nach eineinhalb bis zwei Jahren kaputt.
                                  Ich habe einfach keine Lust mehr denen das Geld in den Rachen zu werfen für ihren Schrott!

                                  Könnte mir jemand helfen?

                                  bahnuhrB Online
                                  bahnuhrB Online
                                  bahnuhr
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #16

                                  @Superdad sagte in Wasserstands-/Füllstandssensor,Wasserpegelschalter:

                                  Würde jemand so freundlich sein mir die Vorgehensweise mit dem Wemos und dem HC SR04 zu erklären?

                                  Such mal nach meinen Beiträge.
                                  Da habe ich es erklärt. Und auch ein funktionierendes Sketch eingestellt.


                                  Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
                                  Danke.
                                  gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
                                  ScreenToGif :https://www.screentogif.com/downloads.html

                                  1 Antwort Letzte Antwort
                                  0
                                  • S Offline
                                    S Offline
                                    Superdad
                                    schrieb am zuletzt editiert von
                                    #17

                                    Vielen Dank euch Beiden!

                                    CCU3

                                    iOBroker auf IntelNUC Proxmox

                                    1 Antwort Letzte Antwort
                                    0
                                    • S Offline
                                      S Offline
                                      Superdad
                                      schrieb am zuletzt editiert von
                                      #18

                                      @ecki945

                                      Habe mir jetzt mal alles besorgt und angeschlossen.
                                      Hoffe, dass ich es richtig angeschlossen habe.
                                      DC6 = Trigger
                                      DC7 = Echo
                                      GND = GND
                                      Vin = 5V
                                      NodeMCU mit Tasmota geflasht.
                                      Bekomme im iOBroker im Sonoff-Adapter unter SR04_Distance auch einen Wert angezeigt.
                                      Dieser kann aber nicht stimmen.
                                      Mit welcher Formel muss der umgerechnet werden?
                                      Oder hast du eventuell ein Blockly dazu?
                                      Auch habe ich noch nicht mitbekommen in welchem Intervall der gemessene Abstand aktualisiert wird.
                                      Weißt du das zufällig?

                                      Gruss Andreas

                                      CCU3

                                      iOBroker auf IntelNUC Proxmox

                                      1 Antwort Letzte Antwort
                                      0
                                      • E Offline
                                        E Offline
                                        ecki945
                                        schrieb am zuletzt editiert von ecki945
                                        #19

                                        Guten Morgen Andreas,

                                        bei mir ist das so angeschlossen: (Habe an D1 und D2 noch ein Sh1106 Display angeschlossen)

                                        248a72b2-8a14-4b8a-b28c-9b2b7af91ed6-grafik.png

                                        Den Wert musst du eigentlich nicht umrechnen. Dieser wird in der Einheit cm übertragen. In der Tasmota Software ist ja noch ein Mittelwertfilter hinterlegt. Schätze mal dass die Software alle par Sekunden misst. Wie oft übertragen wird kannst du mit dem Parameter teleperiod einstellen. Entweder fest in die Software eintragen wenn du selbst compilieren willst, oder in der Konsole mit teleperiod und einer Zahl. Zulässig sind 0 für ausschalten oder 10 - 3600 sekunden.

                                        Mein Werte im obigen Bild stimmt zwar messtechnisch auch überhaupt nicht, liegt bei mir aber am Einbau des Sensors, den ich übers Wochenende ändern werde.

                                        Die weitere Verarbeitung des Signals kannst du dann z.B. in Javascript machen.

                                        Ich will bei mir die Ölmenge im zylindrischen Erdtank bestimmen. Das Script dazu habe ich schon geschrieben und sieht so aus:

                                        
                                        // Maximale Füllmenge im Erdtank
                                        const maxVolume = 7000; // Liter
                                        
                                        //maximale Füllhöhe
                                        const MaxOelLevel = 160; // cm
                                        
                                        // Gemessener Abstand von Sensor zu Öloberfläche
                                        var AirLevel = 0; // cm
                                        
                                        // Korrekturwert wegen Sensormontage im Erdtank ( Domschacht)
                                        var AirLevelOffset = 16; // cm
                                        
                                        // Errechneter Ölstand im Tank
                                        var OelLevel = 0; // cm
                                        
                                        // Menge Öl in Erdtank
                                        var Oelvolume = 0;
                                        
                                        // Peiltabelle von Thyssen Krupp
                                        // Wert links Pegelstand von Grund ab gemessen in cm,
                                        // Wert Rechts Fuellstand in Liter
                                        
                                        const Peiltabelle = new Map([
                                          [   0,   0 ],
                                          [   1,   5 ],
                                          [   2,  15 ],
                                          [   3,  28 ],
                                          [   4,  43 ],
                                          [   5,  61 ],
                                          [   6,  80 ],
                                          [   7, 101 ],
                                          [   8, 124 ],
                                          [   9, 149 ],
                                          [  10, 174 ],
                                          [  11, 201 ],
                                          [  12, 230 ],
                                          [  13, 259 ],
                                          [  14, 289 ],
                                          [  15, 320 ],
                                          [  16, 352 ],
                                          [  17, 385 ],
                                          [  18, 419 ],
                                          [  19, 455 ],
                                          [  20, 491 ],
                                          [  21, 528 ],
                                          [  22, 565 ],
                                          [  23, 603 ],
                                          [  24, 642 ],
                                          [  25, 682 ],
                                          [  26, 723 ],
                                          [  27, 764 ],
                                          [  28, 806 ],
                                          [  29, 848 ],
                                          [  30, 891 ],
                                          [  31, 935 ],
                                          [  32, 979 ],
                                          [  33, 1024 ],
                                          [  34, 1069 ],
                                          [  35, 1114 ],
                                          [  36, 1160 ],
                                          [  37, 1206 ],
                                          [  38, 1254 ],
                                          [  39, 1303 ],
                                          [  40, 1352 ],
                                          [  41, 1401 ],
                                          [  42, 1450 ],
                                          [  43, 1500 ],
                                          [  44, 1550 ],
                                          [  45, 1601 ],
                                          [  46, 1652 ],
                                          [  47, 1703 ],
                                          [  48, 1755 ],
                                          [  49, 1808 ],
                                          [  50, 1861 ],
                                          [  51, 1914 ],
                                          [  52, 1967 ],
                                          [  53, 2020 ],
                                          [  54, 2074 ],
                                          [  55, 2128 ],
                                          [  56, 2183 ],
                                          [  57, 2238 ],
                                          [  58, 2293 ],
                                          [  59, 2348 ],
                                          [  60, 2403 ],
                                          [  61, 2458 ],
                                          [  62, 2513 ],
                                          [  63, 2569 ],
                                          [  64, 2625 ],
                                          [  65, 2681 ],
                                          [  66, 2737 ],
                                          [  67, 2793 ],
                                          [  68, 2849 ],
                                          [  69, 2905 ],
                                          [  70, 2961 ],
                                          [  71, 3017 ],
                                          [  72, 3073 ],
                                          [  73, 3130 ],
                                          [  74, 3187 ],
                                          [  75, 3244 ],
                                          [  76, 3301 ],
                                          [  77, 3358 ],
                                          [  78, 3415 ],
                                          [  79, 3472 ],
                                          [  80, 3529 ],
                                          [  81, 3586 ],
                                          [  82, 3643 ],
                                          [  83, 3700 ],
                                          [  84, 3757 ],
                                          [  85, 3814 ],
                                          [  86, 3871 ],
                                          [  87, 3928 ],
                                          [  88, 3984 ],
                                          [  89, 4040 ],
                                          [  90, 4096 ],
                                          [  91, 4152 ],
                                          [  92, 4208 ],
                                          [  93, 4264 ],
                                          [  94, 4320 ],
                                          [  95, 4376 ],
                                          [  96, 4432 ],
                                          [  97, 4488 ],
                                          [  98, 4543 ],
                                          [  99, 4598 ],
                                          [ 100, 4653 ],
                                          [ 101, 4708 ],
                                          [ 102, 4763 ],
                                          [ 103, 4818 ],
                                          [ 104, 4873 ],
                                          [ 105, 4927 ],
                                          [ 106, 4981 ],
                                          [ 107, 5034 ],
                                          [ 108, 5087 ],
                                          [ 109, 5140 ],
                                          [ 110, 5193 ],
                                          [ 111, 5246 ],
                                          [ 112, 5298 ],
                                          [ 113, 5349 ],
                                          [ 114, 5400 ],
                                          [ 115, 5451 ],
                                          [ 116, 5501 ],
                                          [ 117, 5551 ],
                                          [ 118, 5600 ],
                                          [ 119, 5649 ],
                                          [ 120, 5698 ],
                                          [ 121, 5747 ],
                                          [ 122, 5795 ],
                                          [ 123, 5841 ],
                                          [ 124, 5887 ],
                                          [ 125, 5932 ],
                                          [ 126, 5977 ],
                                          [ 127, 6022 ],
                                          [ 128, 6066 ],
                                          [ 129, 6110 ],
                                          [ 130, 6153 ],
                                          [ 131, 6195 ],
                                          [ 132, 6237 ],
                                          [ 133, 6278 ],
                                          [ 134, 6319 ],
                                          [ 135, 6359 ],
                                          [ 136, 6398 ],
                                          [ 137, 6436 ],
                                          [ 138, 6473 ],
                                          [ 139, 6510 ],
                                          [ 140, 6546 ],
                                          [ 141, 6582 ],
                                          [ 142, 6616 ],
                                          [ 143, 6649 ],
                                          [ 144, 6681 ],
                                          [ 145, 6712 ],
                                          [ 146, 6742 ],
                                          [ 147, 6771 ],
                                          [ 148, 6800 ],
                                          [ 149, 6827 ],
                                          [ 150, 6852 ],
                                          [ 151, 6877 ],
                                          [ 152, 6900 ],
                                          [ 153, 6921 ],
                                          [ 154, 6940 ],
                                          [ 155, 6958 ],
                                          [ 156, 6973 ],
                                          [ 157, 6986 ],
                                          [ 158, 6996 ],
                                          [ 159, 7001 ],
                                          [ 160, 9999 ] // error
                                        ]) ;
                                        
                                        // Name des Tasmota Gerätes
                                        const Geraetename = 'DVES_568D91';
                                        
                                        //Staus Verbindung zu Tasmota
                                        var StatusVerbindung = 0;
                                        
                                        // String der verbundenen Tasmota Geräte
                                        var sonoffname;
                                        
                                        StatusVerbindung = getState("sonoff.0.info.connection").val; // Prüfe Verbindung zu Tasmota prüfen
                                        //console.log(StatusVerbindung);
                                        sonoffname = StatusVerbindung.search(Geraetename); // Suchen ob Tasmota Gerätename vorhanden
                                        
                                        //console.log(sonoffname);
                                        if( sonoffname != -1)
                                        {
                                            var Messwert  = getState("sonoff.0.DVES_568D91.SR04_Distance").val; // Hole Daten von Ultraschallsensor
                                            console.log( 'Luftmessweg' + Messwert + 'cm') ;
                                            AirLevel = Messwert - AirLevelOffset; // Montagehöhe von Sensor abziehen
                                            OelLevel = MaxOelLevel - AirLevel; // Errechne die Füllhöhe im Erdtank
                                            console.log( 'Ölmessweg   ' + OelLevel + '  cm') ;
                                        
                                                if ((OelLevel  >= 0) && (OelLevel < MaxOelLevel))
                                                 {
                                                     Oelvolume = Peiltabelle.get(Math.round(OelLevel));
                                                    console.log( 'Ölmenge  ' + Oelvolume + '  Liter') ;
                                        //            sendTo("telegram.0", "send", {
                                        //            text: 'Heizpatrone Stufe 1 Ein'
                                        //            });            
                                                    }
                                                    else
                                                    {console.log('Fehler in Messung');
                                                    Oelvolume = 9999;
                                                    console.log( 'Ölmenge  ' + Oelvolume + '  Liter') ;           
                                                    } 
                                            }
                                        else{
                                            console.log('Keine Verbindung zu Tasmota Gerät');
                                            Oelvolume = 9999;
                                        }
                                         code_text
                                        

                                        Gruß Stephan

                                        Basti97B 1 Antwort Letzte Antwort
                                        0
                                        • S Offline
                                          S Offline
                                          Superdad
                                          schrieb am zuletzt editiert von
                                          #20

                                          Hallo Stephan,

                                          jetzt ist alles im grünen Bereich.
                                          Muss nur noch das Script anpassen.
                                          Hatte ganz vergessen, dass der Sensor unter 20cm nur Mist misst!

                                          Hatte gestern einen halben Tag gebraucht um auf das Nodemcu Sonoff zu flashen.
                                          Zuerst habe ich es mit ESPeasy Flashtool probiert. Hat aber nicht funktioniert.
                                          Dann mit Arduino versucht zu flashen. Bis ich dann die richtige Einstellung hatte, war der halbe Tag rum.
                                          Aber jetzt funktioniert es ja.

                                          Vielen Dank für die Hilfe!

                                          CCU3

                                          iOBroker auf IntelNUC Proxmox

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          387

                                          Online

                                          32.5k

                                          Benutzer

                                          81.6k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe