Mit Feuchtesensor Relais schalten

  • Hi, entschuldigt die evtl dumme Frage. Ich habe ein paar kapazitive Bodenfeuchtesensoren in Blumentöpfen, die bei Bedarf ein Relais schalten, an dem eine Pumpe hängt. Das läuft aktuell soweit mit einem simplen Arduino-Sketch auf einem D1 mini. Aber jedes mal, wenn ich den Threshold zum Triggern der Pumpe ändern will, muss ich den ESP herausholen und das Notebook mit nem Kabel anstöpseln, den Wert auslesen, den Sketch anpassen und neu hochladen. Daher würde ich das auch gerne einfach über Tasmota machen, wo ich einfach übers WLAN drauf zugreifen kann. Die Werte des Sensors auszulesen ist kein Problem, aber wie kann ich lokal auf Tasmota einen Threshold festlegen, ab dem ein entsprechender GPIO (mit angehängtem Relais) geschaltet wird?

    Das würde mir schon reichen.

    Vielen Dank euch.

  • Hi.

    Sowas kannst du in Tasmota mit den Rules machen.

    Einfach ne Rule erstellen die den Sensorwert ausliest und bei dem gewünschten wert schaltet.

    Beispiel, damit man nicht immer die ganze Rule neu schreiben muss:

    Den Threshold in der Konsole in einen Memory schreiben:

    mem1 [WERT]

    und die Rule:

    Rule1 on [Sensor]#[ValueName]=%mem%1 do Power1 1 endon on [Sensor]#[ValueName]!=%mem1% do Power1 0 endon

    Aktivieren mit:

    Rule1 1

    Soll der Treshold geändert werden einfach in der Konsole den Memory Wert neu setzen.

    mem1 [neuerWert]

    Lässt sich auch mit Hysterese für die Ein/Ausschaltwerte erweitern usw usw

    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 (12. August 2021 um 14:08)

  • Hi ...

    Oh, ja, stimmt. Natürlich %mem1% ... Danke für den Hinweis 👍

    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

  • Moin,
    ich muss mich hier mal anhängen, weil ich dazu noch eine Frage habe:
    Wenn ich das Relais jetzt manuell schalte über die Weboberfläche, dann geht es bei ausreichender Feuchtigkeit natürlich direkt wieder aus. Kann man das irgendwie ändern, damit die Regel beim manuellen Schalten ignoriert wird?

    Besten Dank!
    Gruß,
    Olli

  • Also das Umfeld ist genau das, was fapo am Anfang beschrieben hat.
    Nur, dass ich die Pumpe bei Bedarf selber ein- und ausschalten möchte, auch wenn der Sensor sagt, dass die Erde eigentlich feucht genug ist. Ja klar, Sensor aus dem Boden ziehen bewirkt dasselbe ^^ Vielleicht gibt's aber ja ne Möglichkeit.
    Nur wenn das jetzt übelst kompliziert umzusetzen ist, kann ich auch drauf verzichten :D

  • Rule1

    on [Sensor]#[ValueName]<%Var1% do Power1 1 endon

    on [Sensor]#[ValueName]>%Var1% do Power1 0 endon

    Rule2

    on Power2#state=0 do var1 %mem1% endon

    on Power2#state=1 do var1 0 endon

    die Idee umgesetzt- mit einem virtuellen Relais Power2 ( 2. Knopf auf Webui erzeugen durch Config Relay auf freien GPIO) wird der Auslösewert verstellt und zurück gestellt

    PS: auf Console absetzen einmalig

    Webbutton2 manuell Pumpe <p> Ein/Aus

    macht es übersichtlich

    2 Mal editiert, zuletzt von karoCB (9. Juni 2023 um 10:53)

  • Nach ein wenig wilder Tipperei in der Konsole habe ich nun doch noch eine andere Lösung gefunden.
    Grund: nach einem Stromausfall schaltet das Relais die Pumpe ein, da kann man mit PowerOnState rumspielen so viel man will :D (danke auch nochmal an karoCB für den Hinweis, das Verhalten nach Stromausfall zu beachten).
    Habe die Regeln dann komplett deaktiviert und siehe da: mit PowerOnState 0 bleibt die Pumpe nach Stromausfall ausgeschaltet. So soll es sein.
    Habe dann die Rule1 aktiviert, die ist ja die Wichtigste. Auch dann klappt es noch wunderbar.
    Meinen Wunsch nach manueller Schaltung musste ich also anders lösen, denn Rule2 konnte ich so wie sie war nicht wieder aktivieren, weil sie ja der Auslöser für das "Fehlverhalten" war.
    Ich hatte mich, nachdem ich die Lösung von karoCB getestet habe, sowieso schon gefragt, ob nicht eine Regel eine andere deaktivieren kann. Und siehe da, es geht :)
    So sieht Regel 2 nun aus:
    Rule2 on power2#state=1 do backlog rule1 0; power1 1 endon on power2#state=0 do backlog power1 0; rule1 1 endon

    Es funktioniert alles, wie es soll. Sollte ich etwas übersehen haben, sagt mir bitte Bescheid :)

  • Ich habe auch noch eine Anschlussfrage: Die Werte auf dem Analog-Eingang des ESPs variieren mitunter sehr stark. Kann ich den Input über die letzten paar Werte mitteln, sodass einzelne Spitzen glattgebügelt werden? Wenn, dann nur sehr umständlich, oder?

  • Die Reaktion kam schnell. Ist einfach ein kapatitiver Feuchtemesser, der mit 5V versorgt wird und direkt in den Analog-Eingang am D1 mini (8266) hängt.

    Rule wie ganz oben gegeben.

    Externen Spannungsteiler habe ich nicht.

    Danke