Füllstandssensor/Pegelsonde (4-20 mA) in Tasmota / ESP nutzen?

  • Hallo,
    bislang wollte ich die Füllstandsanzeige unserer Beton-Zisterne mit Ultraschall ermitteln, bin aber davon abgekommen (Feuchte, Rost, störanfälligkeit Reflektionen (Tauchpumpe)...) .
    Würde es jetzt gerne über eine "Pegelsonde" lösen, die in Abhängigkeit vom Wasserdruck einen Spannungswert liefert.
    Beispiel: Pegelsonde

    Für Arduino hab ich was gefunden (bei Github), würde aber gerne bei Tasmota bleiben ...
    Gibt es hier eine Möglichkeit, die Werte (4-20mA, über einen Spannungswandler und dann wohl I2C) in einem mit Tasmota geflashten ESP zu ermitteln und letztlich die Werte zyklisch per MQTT zu senden?

    WLAN ist vorhanden, ein 5 adriges Kabel geht in die Zisterne, die ganze Elektronik (ausser dem Tauchsensor) wird in der Gartenhütte verbaut.

    Danke für Tipps,
    Martin

  • Hast du die notwendige Hardware wie ESP32 und den 4-20mA Messumformer? Der Ausgang vom Messumformer kommt an den analogen Eingang vom ESP32. Hast du die Ausgangsspannung schon gemessen, muss im Bereich von 0-3,3V sein.

  • Hi,
    ESP's hab ich, Messumformer 4-20mA und die Pegelsonde (1m) kommen morgen.

    Ich hab auch einen INA219 Spannungssensor bestellt.
    Es gibt ja auch die Variante, statt dem analogen Eingang eines ESP (wenn 4-20mA Messumformer genutzt wird) auch den I2C Bus zu nutzen. Dazu wird dann ein INA219 genutzt.

    Bin unsicher, welche Version ich aufbauen soll, was "stabiler" und "besser" ist.

    Welche Schaltung wäre es mit einem Messumformer, und geht es mit Tasmota (und welcher FW, den Tasmota-Sensors?)


    Hier hat jemand das mit dem INA219 umgesetzt.

    Danke!

  • Alles klar, teste ich dann mal ... zuerst mit dem INA219 ...

    Hab den INA mit Vcc,GND, SCL und SDA am Tasmota angeschlossen und D1 und D2 entsprechend eingestellt auf I2C SDA/SDL,
    sollte die Weboberfläche nach einem restart nicht den INA219 erkennen und zumindest irgendwelche Werte anzeigen?

    In der GUI wird nichts "erkannt" ... oder ist das normal bis am Vin auch was hängt?
    (möchte "stückchenweise vorgehen ...)

  • Danke für den Tipp, ich vergesse immer, das in der Console ja auch die erkannten Sensoren angezeigt werden :(
    Bis auf Vin+, Vin- alles angeschlossen, aber beim booten wird der INA219 nicht erkannt ... in Tasmota ist er an auf D1, D2 konfiguriert ...
    Hab mal zwei neue bestellt ... komisch ...

  • hab einen ISA219 vom Nachbar geliehen, schon gehts ;)

    Kurz mit 30cm Wassersäule getestet,
    eingetaucht sind es 107ma, in der Luft 72mA (in der Tasmota-Weboberfläche).
    Denke, es funktioniert also.

    Kurze Frage, kann ich den in der Weboberfläche angezeigten Wert ("INA 219 Current") mit einer Art math.Formel (Rule) grob umberechnen, das z.B. bei 107mA "100%" angezeigt und bei 74mA entsprechend "0%" ?
    Formel: (Wert - 74) * 3
    (Meine Zisterne hat eine Säulenform, daher sollte sich der Wert linear zur Höhe verändern)

    Hintergrund ist, mein Smarthome mit MQTT etc. bau ich erst auch, würde aber gerne jetzt schon per Weboberfläche den Wasserstand ablesen können ....

  • Moin.

    das wäre dann sowas wie:

    on ina219#current do scale1 %value%,0.074,0.107,0,100 endon

    Der Prozentwert Stünde dann in der Variablen %var1%

    Allerdings wird das darstellen etwas schwierig. Da fällt mir mit Rules nur ein das z.B. als Webbuttontext anzeigen zu lassen, bzw als Counter. Dazu einen freien GPIO als "Counter 1" konfigurieren und die Rule anpassen:

    Code
    Rule1 
    on ina219#current do scale1 %value%,0.074,0.107,0,100 endon
    on var1#state do counter1 %value% endon

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Danke, das ist doch schon sehr gut ... was alles mit "Tricks" geht, toll!

    Letzte Frage (hoffentlich ;-))
    Kann man nach der Anzeige des Prozentwertes noch ein " %" hinzufügen, habe etwas rumprobiert es aber nicht hinbekommen


    Nur falls es jemand "nachbauen" will,
    so ist die Schreibweise (Groß/Klein) bei mir korrekt:
    Rule1 on INA219#Current do scale1 %value%,0.070,0.104,0,100 endon on var1#state do counter1 %value% endon

    Und:
    Das Kabel an der Pegelsonde ist 5m lang, kann ich dies einfach kürzen oder muss das so lang bleiben, ist ja auch noch ein "Luftausgleichsschlauch" drin. Ich muss den Pegelsensor an ein im Boden 10m langes Kabel hängen, da würde ich das orig. Kabel gerne um 3m kürzen ...

  • Die Groß/Kleinschreibung ist den Rules egal, die nehmen alles. Aber es schaut halt übersichtlicher aus.

    Das mit dem Prozentzeichen geht leider nicht, den der Counter stellt nur nummerische Werte dar.

    Alternative wäre ein "virtuelles Relais" anstatt des Counters anzulegen. z.B. Relais2.

    Es wird dann dazu ein Webbutton erzeugt und dessen Bezeichnung kann man ändern:

    Rule1 on INA219#Current do scale1 %value%,0.070,0.104,0,100 endon on var1#state do webbutton2 %value%% endon


    Zu den technischen Fragen hab ich selbst keine Erfahrungswerte. Aber evtl kann da Noschviewas zu sagen.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • für deine Anzeige hier ein Hinweis auf Möglichkeiten

    karoCB
    5. Dezember 2022 um 21:17


    du baust alles in eine Variable VAR5 als Text ein und lässt es bei Änderung anzeigen z. B.

    on VAR5#State do Devicename <input value=%mem1%_Faktor_TriggerOFF:_%VAR5%_W > endon

    ( String darf keine Leerzeichen enthalten deshalb koppeln mit _ )


    oder so

    on VAR5#State do Devicename <h4><input value=%value%> endon


    PS: geht aber nur kleiner Release 13.4 !!

    2 Mal editiert, zuletzt von karoCB (22. Mai 2024 um 11:22)

  • Danke euch, habe schon 14.x drauf ... dann nutze ich die Counter-Anzeige ohne Prozent (es sei denn, jemand hat noch nee andere Idee ;) )

    > "PS: geht aber nur kleiner Release 13.4 !!"
    Wird das auch bald in Tasmota 14 supported oder ist das (bewußt) rausgeflogen?

  • diese Frage hatte ich hier auch schon gestellt ohne vollständige Antwort und ich vermute das es Sicherheitsgründe gibt, welche die Funktion des Html-Einbettens ausschließen soll.

    Es gibt aber auch Vermutungen und Hoffnungen das ein aktueller Core-Umbau der Grund sein könnte, so das für die Zukunft noch Hoffnung besteht

  • diese Frage hatte ich hier auch schon gestellt ohne vollständige Antwort und ich vermute das es Sicherheitsgründe gibt, welche die Funktion des Html-Einbettens ausschließen soll.

    Das betrifft aber nur das HTML einbetten?

    Der Devicename lässt sich noch ändern? Das wäre dann doch genau das richtige für topsurfer

    Rule1 on INA219#Current do scale1 %value%,0.070,0.104,0,100 endon on var1#state do devicename Füllstand: %value%% endon

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

    Einmal editiert, zuletzt von HoerMirAuf (23. Mai 2024 um 07:42)

  • Super, das sieht doch gut aus, schöne große Anzeige des Wertes, danke!

    Wie läßt sich denn "einfach" der Wert noch runden, oder die Nachkommastellen komplett abschneiden?

    Und die andere Frage, das 5m Kabel der Sonde, sollte doch einfach kürzbar sein ohne die Funktion/Genauigkeit zu beeinträchtigen, oder?

  • Moin

    schau mal nach auf welchen Wert CALCRES steht. Evtl. mal auf 0 setzen.

    CalcResCurrent calculation resolution
    0..7 = set number of decimal places to be used in Add, Sub, Mult and Scale

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Und die andere Frage, das 5m Kabel der Sonde, sollte doch einfach kürzbar sein ohne die Funktion/Genauigkeit zu beeinträchtigen, oder?

    Ich denke das kürzen sollte kein Problem sein. Diese Sonden gibt's ja auch werksseitig mit unterschiedlichen Kabellängen.

    Wenn sich dadurch die Werte verändern, dann würden sie das eh, wenn Du da nochmal 10m Kabel dazwischen klemmst.

    Aber das ist dann ja wieder nur eine Frage der Kalibrierung und du müsstest nur die max/min Werte in der Rule neu anpassen.

    benzino77 Tasmocompiler

    Gitpod Master Release

    Gitpod Development Release

    Sonoff-Basic / Sonoff-RF / Sonoff-Touch / Sonoff S20 / PowStro Basic / MagicHome / Sonoff-RF-Bridge mit diversen 433MHz RF Sender/Empfänger / Shelly_1 / ESP-WiFi-Dimmer / Gosund SP111 / ESP12E / WEMOS D1 Mini / ESP32Cam

    Sensoren: BME280/BMP280/HC-SR501/HC-SR04/ACS712/INA219/MHZ19B/DS3231

    Alexa Sprachsteuerung

    mosquitto/bash/html/cgi auf Wyse5070

  • Gehe davon aus, dass du im "Kabel der Sonde" auf das Luftröhrchen aufpasst... Es gibt spezielle Anschlußdosen mit Druckausgleich für solche Anschlüsse, Länge vom Kabel sollte keine Rolle spielen.