Bodenfeuchtesensoren ESP32 D1 mini ESPHome

Servus zusammen,

hat schon jemand die folgenden Bodenfeuchtesensoren
Bodenfeuchtesensor, Feuchte-Detektor und Pflanzenfeuchte-Messgerät
erfolgreich via einem ESP32 D1 mini mit ESPhome in Homeassistant eingebunden, und hätte evtl. ein YAML Beispiel für mich?

Hab leider mit den Sensoren noch nicht viel Erfahrung. Er hängt an 3.3V. Das folgende waren meine ersten Versuche:

esphome:
  name: controller-esp32
  friendly_name: Controller-ESP32

esp32:
  board: wemos_d1_mini32
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "xxx"

ota:
  password: "xxx"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: x.x.x.x
    gateway: x.x.x.x
    subnet: 255.255.255.0
    dns1: x.x.x.x
    #dns2: 0.0.0.0
  domain: .xxx.xxx

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Controller-Esp32"
    password: "xxx"

captive_portal:

sensor:
  - platform: adc
    pin: GPIO33
    name: "Soil Moisture Analog"
    update_interval: 10s

binary_sensor:
  - platform: gpio
    pin: GPIO26
    name: "Soil Moisture Digital"
    filters:
      - delayed_on: 5ms
      - delayed_off: 5ms
    on_press:
      then:
        - logger.log: "Soil Moisture Digital is ON"
    on_release:
      then:
        - logger.log: "Soil Moisture Digital is OFF"

Wäre super wenn man irgendwie die Feuchtigkeit als Prozentwert zwischen 0 und 100% angezeigt bekommen würde.

Hast du techn. Daten vom Sensor? Wie hast du den Sensor am ESP angebunden?

Hallo,

davon mal abgesehen. das die Sensoren keine sonderlich lange Lebenserwartung haben ( meine waren nach 3 Monaten am Ende und das in der Wohnung )

Die Teile liefern einen digital und einen Analogwert und ich hab den Analogwert am ESP eingelesen.
Ich bin mir nur nicht mehr sicher, ob ich dafür einen Widerstandteiler nutzen musste, weil die Spannung am Eingang eines ESP8266 nur max 1V betragen darf.

Da hilft am besten aber das Ebook zu dem Sensor, da man als Kunde bei az-delivery kostenlos bekommt.

Wenn du was haltbares haben willst, nehme lieber kapazitive Sensoren, aber da gibt es auch gewaltige Qualitätsunterschiede.

1 „Gefällt mir“

Im PDF ist die Rede von einer langen Lebensdauer von mindestens 6 Monaten (nicht die Welt), was vermutlich nicht ohne Grund aufgeführt ist. Wahrscheinlich wegen der elektrolyse die über die Zeit erfolgt.
Wenn ich mir das so anschau. ist der Kapazitive Sensor die elegantere / länger haltbare Lösung. Im zweifel könnte man den auch noch extra mit Lack versiegeln, dass nichts oxidiert, oder sonstwie eine nicht gewollte Verbindung eingeht.
Wenn das was diverse LLMs ausgeben stimmen, dann sind es 3,3V IN / OUT wie einen maximaler Strom für die Analog-Eingänge von 40mA.

Das folgende Video ist interessant um den passsenden Sensor zu finden:

Hab mir mal den Kapazitiven bestellt. werd weiter testen wenn se da sind.

Der analoge Wert passt nun mit dem folgenden Script:

sensor:
  - platform: adc
    pin: GPIO33
    name: "Soil Moisture"
    unit_of_measurement: "%"
    device_class: MOISTURE
    update_interval: 2s
    attenuation: 11db #required
    filters:

    - median:  # Hinzufügen eines Median-Filters zur Glättung der Werte
        window_size: 10

    - calibrate_linear:
        - 1.07100 ->  100.00   # 1.07100 mit dem ermittelten Wert anpassen
        - 3.12900 ->  0.00      # 3.12900 mit dem ermittelten Wert anpassen
    - lambda: |
       if (x < 0) return 0;
       else if (x > 100) return 100;
       else return (x);
    accuracy_decimals: 0

Wichtig ist, dass man die Werte zu 0 und 100% entsprechend dem vorliegenden Sensor ändert.

Den digitalen Wert beachte ich erst mal nicht. Braucht man vermtlich eh nicht wenn man den Prozentwert hat.
grafik

1 „Gefällt mir“

Hi,

sind das Deine Werte / Script für die kapazitiven Sensoren?

Grüße

Das war noch das Script inkl. der ermittelten Werte für die oben genannten Sensoren.
Die kapazitiven werden erst geliefert, konnte sie noch nicht testen. Wenn sie da sind und ich Zeit habe, ergänze ich weitere Infos.

ok - super.

Ich habe die kapazitiven Sensoren bereits im Einsatz und bin noch in der Findungsphase der richtigen Einstellungen:

sensor:
  - platform: adc
    name: "Sensor_Bodenfeuchte_voltage1"
    id: Humidity_voltage1
    pin: GPIO32
    accuracy_decimals: 2
    update_interval: 5s
    attenuation: 11dB

Dadurch werden mir die Werte in V ausgegeben. Wenn Du die Teile in Betrieb genommen hast, würde ich mich über einen Austausch mit dir freuen :slight_smile:

1 „Gefällt mir“

Hey Guys,
ich hab mir den gleichen Sensor von AZ delivery geholt, an einem ESP 8266 angeschlossen und deinen Code verwendet. Der Sensor zeigt bei mir nur 100% an und misst nicht. Was kann ich da machen?

Wichtig ist das ein analoger PIN verwendet wird.
Am ESP8266 z.b. A0 oder am ESP32 z.b. GPIO32

Beim ESP8266 ggf. darauf achten, ob man einen Wiederstand benötigt. da bin ich mir nicht sicher ob der nur 0 bis 1 V haben darf. Nicht das man ihn grillt wenn mehr anliegt.

ist es der aus dem ersten Bild mit den zwei metall stäben, oder der Kapazitive?

Hab mal das ganze kommentiert:

#  !!! Wichtig es darf nur Bereich 1 oder Bereich 2 aktiv sein. Da der selbe GPIO verwendet wird. !!!
#  !!! Der jeweils andere muss auskommentiert werden !!! 


############################################################################################################################################
# Bereich 1                                                                                                                                #
#                                                                                                                                          #
# Zum ermitteln der Messwerte des vorliegenden Sensors für den Zustand trocken und feucht.                                                 #
# Es erfolgt die Ausgabe in V                                                                                                              #
#                                                                                                                                          #
# Beispiel:                                                                                                                                #
# [22:15:08][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.13950 V with 0 decimals of accuracy  --  entspricht Feucht  100% #
# [22:13:48][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 3.12900 V with 0 decimals of accuracy  --  entspricht Trocken 0%   #
#                                                                                                                                          #
# Es wird jeweils der V wert verwendet.  Ggf warten bis sich der Wert einpendelt.                                                          #
#                                                                                                                                          #
############################################################################################################################################

sensor:
  - platform: adc
    pin: GPIO36
    name: "Bodenfeuchte kalibrierung"
    device_class: MOISTURE
    update_interval: 2s
    attenuation: 11db #required
    filters:
    - median:  # Hinzufügen eines Median-Filters zur Glättung der Werte
        window_size: 10
    accuracy_decimals: 0

############################################################################################################################################




############################################################################################################################################
# Bereich 2                                                                                                                                #
#                                                                                                                                          #
# Wenn die Messwerte zur Hand sind, diese in den unteren Bereich bei - calibrate_linear: anpassen.                                         #
#                                                                                                                                          #
# nicht vergessen den oberen Bereich aus zu kommentieren wenn die werte angepasst sind.                                                    #
############################################################################################################################################

sensor:
  - platform: adc
    pin: GPIO36
    name: "Bodenfeuchte"
    unit_of_measurement: "%"
    device_class: MOISTURE
    update_interval: 2s
    attenuation: 11db #required
    filters:

    - median:  # Hinzufügen eines Median-Filters zur Glättung der Werte
        window_size: 10

    - calibrate_linear:
        - 1.13950 ->  100.00   # 1.13950 mit dem ermittelten Wert anpassen
        - 3.12900 ->  0.00      # 3.12900 mit dem ermittelten Wert anpassen

    - lambda: |
       if (x < 0) return 0;
       else if (x > 100) return 100;
       else return (x);
    accuracy_decimals: 0

############################################################################################################################################

Hoffe das hilft in die richtige Richtung.

Hey, danke für die schnelle Antwort, ich teste gerade die mit zwei Metallstäben. Zum Glück konnte ich das Problem inzwischen beheben, ich hatte versehentlich den Digitalausgang statt des Analogausgangs verwendet und im Code GPIO32 geschrieben, aber GPIO33 verwendet.

Ich habe folgenden Code benutzt, den 100% Wert habe ich extra etwas über den gemessenen Wert (~1.36500) auf 1.40000 gesetzt, da die Erde sowieso nie mit 100% Wasser gesättigt ist, da ich zur Kalibrierung den Wert für Luft und den Wert für ein Glas Wasser genommen habe. Leider hat der Wert ziemlich geschwankt, aber ich vermute auch, dass der EC Wert des Wassers / Mediums auch nochmal die Werte verfälscht, wenn man es mit Leitungswasser kalibriert, im Vergleich wenn man dann mit Dünger gießt, was meint ihr dazu?

Ich habe aber auch schon die kapazitiven getestet und als die bei mir waren, haben ich mit dem oberen YouTube Video festgestellt, dass ich die schlechtest möglichen bestellt haben. Die sind leider relativ unbrauchbar, ich weiß nicht, ob die anderen in der Preisklasse wirklich besser sind, aber bei denen war die Streuung der Ergebnisse, auch mit Median von 10 Messungen, sehr hoch, so dass man meiner Meinung nach nur sagen kann, ob die Erde komplett nass oder komplett trocken ist, aber ich würde den Sensoren überhaupt nicht trauen. Die Ergebnisse mit den Metallstäben sahen viel genauer und logischer aus, aber teilt gerne auch eure Ergebnisse, es gibt auch kapazitive für 80€-200€ / stk, aber die sind momentan außerhalb meiner Preisklasse zum Testen.

sensor:
  - platform: adc
    pin: GPIO33
    name: "Soil Moisture"
    unit_of_measurement: "%"
    device_class: MOISTURE
    update_interval: 2s
    attenuation: 11db #required
    accuracy_decimals: 1
    filters:

    - median:  # Hinzufügen eines Median-Filters zur Glättung der Werte
        window_size: 10

    - calibrate_linear:
        - 1.40000 ->  100.00   # 1.07100 mit dem ermittelten Wert anpassen
        - 3.13900 ->  0.00      # 3.12900 mit dem ermittelten Wert anpassen
    - lambda: |
       if (x < 0) return 0;
       else if (x > 100) return 100;
       else return (x);

Ich vermute auch das der EC Wert einen Einfluss ha, er ändert die Leitfähigkeitt.

Die Kapazitiven von AZ-Delivery die ich erhalten habe waren murx.
Hab mal bei einem anderen Händler auf eBay welche bestellt, im Artikel war es passend beschrieben. Um Dienstag hab ich vermutlich mehr Infos.

Alles in allem hätte ich von AZ mehr Qualität erwartet als Sensoren für die Tonne…

Wahrscheinlich muss man im verwendeten Medium Kalibrieren, und oder sich die Werte entsprechend ableiten.
Geeichte Werte wird man mit den einfachen Sensoren ohnehin nicht bekommen.d:-)
Die teuren sind keine Option ohne entsprechenden Goldesel.

Die Zeit wird zeigen wie haltbar die mit den Metallstäben sind.

Ich habe heute meine kapazitiven Sensoren “kalibriert”. Im Letzten Jahr hatte ich welche mit dem Aufdruck 2.0 und klein in der Nähe zur Elektronik 20210603 HW-390 - gekauft über Amazon. Die sind vgl. dem Video “gut”.

Neu hinzugekommen sind nun welche bestellt über Ali: alle mit dem Aufdruck 1.2 sonst nichts. Die sind deutlich dünner von der PCB her und haben alle den “falschen” NE555. Beim Testen/kalibrieren zeigten die sich unauffällig. Schnelle Reaktion von trocken auf nass. Die Werte lagen in der gleichen Range (alle trocken/Luft hängend ca.2,4 V; alle nass/Wasser ca 0.9V).

Ob sich die Mühe des Kalibrierens gelohnt hat, werde ich sehen, wenn diese bei meinen Tomaten & Gurken die Feuchte aufnehmen. Im letzten Jahr hatte ich die Daten in V aus den Sensoren direkt im HA verarbeitet (und nicht vorverarbeitet im ESP32) → dadurch musste ich den Mittelwert aus 5 min heranziehen → erst dadurch konnte ich einen Trend sehen / bei der direkten Auswertung war das Rauschen zu groß.

Hallo,
ich habe obiges Beispiel mal ausprobiert.
Bei mir bleibt der Wert aber nicht gleich oder ähnlich sondern steigt kontinuierlich.
Ist das ein Problem des AZ Sensors?

[11:04:25][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51100 V with 0 decimals of accuracy
[11:04:33][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51200 V with 0 decimals of accuracy
[11:04:41][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51200 V with 0 decimals of accuracy
[11:04:49][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51300 V with 0 decimals of accuracy
[11:04:57][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51300 V with 0 decimals of accuracy
[11:05:05][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51400 V with 0 decimals of accuracy
[11:05:13][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51400 V with 0 decimals of accuracy
[11:05:21][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51600 V with 0 decimals of accuracy
[11:05:29][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.51600 V with 0 decimals of accuracy
[11:05:37][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52300 V with 0 decimals of accuracy
[11:05:45][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52400 V with 0 decimals of accuracy
[11:05:53][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52400 V with 0 decimals of accuracy
[11:06:01][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52100 V with 0 decimals of accuracy
[11:06:09][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52400 V with 0 decimals of accuracy
[11:06:17][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52400 V with 0 decimals of accuracy
[11:06:25][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52400 V with 0 decimals of accuracy
[11:06:33][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52400 V with 0 decimals of accuracy
[11:06:41][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.52600 V with 0 decimals of accuracy
[11:06:49][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53000 V with 0 decimals of accuracy
[11:06:57][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53100 V with 0 decimals of accuracy
[11:07:05][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53300 V with 0 decimals of accuracy
[11:07:13][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53400 V with 0 decimals of accuracy
[11:07:21][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53500 V with 0 decimals of accuracy
[11:07:29][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53400 V with 0 decimals of accuracy
[11:07:37][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53400 V with 0 decimals of accuracy
[11:07:45][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53400 V with 0 decimals of accuracy
[11:07:53][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53600 V with 0 decimals of accuracy
[11:08:01][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53900 V with 0 decimals of accuracy
[11:08:09][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53900 V with 0 decimals of accuracy
[11:08:17][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53900 V with 0 decimals of accuracy
[11:08:25][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53900 V with 0 decimals of accuracy
[11:08:33][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53900 V with 0 decimals of accuracy
[11:08:41][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.53900 V with 0 decimals of accuracy
[11:08:49][D][sensor:094]: 'Bodenfeuchte kalibrierung': Sending state 1.54100 V with 0 decimals of accuracy

Servus,

hatte mir die folgenden auf Ebay Kapazitive bestellt:
[Bodenfeuchtesensor, Version 2.0 | 5V 3.3V Kapazitiver Feuchtigkeitssensor v2.0 | eBay](https://Bodenfeuchtesensor, Version 2.0 | 5V 3.3V Kapazitiver Feuchtigkeitssensor v2.0)

Von der Bestückung waren die besser.

Generell bin ich akutell auf die mit den zwei Stabsonden von AZ zurück. Ein großer Punkt ist für mich der Gedanke dass sie nicht wie die Kapazitiven so groß sind, also dem Wurzelwachstum nicht im Weg sind. Oder im schlimmsten Fall diese sogar durchtrennen wenn man die Sensoren in die Erde steckt. Ob sie im laufe der Zeit auf Grund der Elektrolyse ungenauer werden kann ich noch nicht beobachten.

Die Werte schwanken, aber ohne Nachkommastellen in % lässt sich damit arbeiten. Ich benötige eh nur die Näherungswerte um zu sehen wenn Wässern / Zeit für ne Pushover nachricht versendet wird.
Muss halt zu beginn das ganze ne Weile beobachten, um seine Werte abzuleiten, selbst wenn kalibriert.

Zu wurde auch mein Daumen zu einem Grünen Daumen d:-)

[15:43:56][D][sensor:094]: 'Bodenfeuchte S1': Sending state 31.08716 % with 0 decimals of accuracy
[15:43:57][D][sensor:094]: 'Bodenfeuchte S2': Sending state 22.56728 % with 0 decimals of accuracy
[15:44:06][D][sensor:094]: 'Bodenfeuchte S1': Sending state 31.17700 % with 0 decimals of accuracy
[15:44:07][D][sensor:094]: 'Bodenfeuchte S2': Sending state 22.67082 % with 0 decimals of accuracy
[15:44:16][D][sensor:094]: 'Bodenfeuchte S1': Sending state 31.17700 % with 0 decimals of accuracy
[15:44:17][D][sensor:094]: 'Bodenfeuchte S2': Sending state 22.56728 % with 0 decimals of accuracy
[15:54:16][D][sensor:094]: 'Bodenfeuchte S1': Sending state 31.08716 % with 0 decimals of accuracy
[15:54:17][D][sensor:094]: 'Bodenfeuchte S2': Sending state 22.77433 % with 0 decimals of accuracy
[15:54:26][D][sensor:094]: 'Bodenfeuchte S1': Sending state 31.17700 % with 0 decimals of accuracy
[15:54:27][D][sensor:094]: 'Bodenfeuchte S2': Sending state 22.56728 % with 0 decimals of accuracy

Auch sollte man sich nicht zu sehr auf die Technik verlassen. ab und zu mal ein Auge drauf zu haben ist erforderlich.

1 „Gefällt mir“

Hallo, ich hab das gleiche Problem, er zeigt mir egal ob im oder außerhalb vom Wasser einen Wert von 1,05100V an, ich habe auch schon mehrere Kapazitive Sensoren getestet.
Wie hast du das Problem gelöst?
An meinen ESP8266 funktionieren sie, ich wollte aber auf ESP32 Nodemcu umsteigen, weil bei den 8266 der Deepsleep nicht richtig funktioniert.
Mit dem Multimeter messe ich aber eine Spannung von 3,32V am VCC Pin. Kann der Pin nur Max 1V messen?

[16:31:27][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:29][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:31][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:33][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:35][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:36][D][sensor:094]: 'Soil Moisture': Sending state 0.00000 % with 0 decimals of accuracy
[16:31:37][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:39][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:41][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:43][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:45][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:46][D][sensor:094]: 'Soil Moisture': Sending state 0.00000 % with 0 decimals of accuracy
[16:31:47][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:49][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:51][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:53][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:55][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:56][D][sensor:094]: 'Soil Moisture': Sending state 0.00000 % with 0 decimals of accuracy
[16:31:57][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:31:59][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:01][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:03][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:05][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:06][D][sensor:094]: 'Soil Moisture': Sending state 0.00000 % with 0 decimals of accuracy
[16:32:07][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:09][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:11][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:13][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:15][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:16][D][sensor:094]: 'Soil Moisture': Sending state 0.00000 % with 0 decimals of accuracy
[16:32:17][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:19][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:21][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy
[16:32:23][D][sensor:094]: 'Plant - Sensor Voltage': Sending state 1.05100 V with 5 decimals of accuracy

Hast du bei deinem ESP32 die “attenuation” berücksichtigt?
Siehe: Analog To Digital Sensor — ESPHome
(und vielleicht noch https://www.youtube.com/watch?v=WH-Pv2e6ZsI)

Hallo,

bei diesen Bodenfeuchtesensoren scheint es “gute” und “funktionsuntüchtige” Teile zu geben. Ich selber hatte auch schon festgestellt, dass mal ein Sensor funktioniert und der nächte wieder nicht.

Bei der Suche nach der Erklärung bin ich wie Elektromat oben geschrieben hat auch über das folgende Video gestoßen:

Das erklärt sehr gut, worauf man beim Sensorkauf achten muss und erklärt welche Typen von Sensoren nicht zu gebrauchen sind.

Die wichtigen Punkte aus dem Video hier kurz zusammengefasst:

  • V1.2 und V2.0 sind identisch
  • es sollte ein 662k Spannungsregler verbaut sein:
  • der verwendete Timerchip sollte ein TLC555C oder TLC555I sein:
  • Layout der Leiterplatte:
    es sollte eine Verbindung der Masse vgl. dieses Prüfaufbaus bestehen:

    Dies kann auch an der Position der Durchkontaktierung geprüft werden:

    (Duko zwischen den beiden Bauteilen, nicht versetzt darunter).

Ich habe mich bei der Beschaffung meiner Sensoren an diese Hinweise aus dem Video gehalten - ich konnte bei den “guten” Sensoren bisher keine Auffälligkleiten finden.

Bei mir liegen die Spannungswerte zwischen:

~0,9V für 100% Feuchte (Sensor im Glas Wasser)

und

~ 2,4V für 0 % Feuchte (Sensor an Luft)

die genauen Werte habe ich für jeden Sensor einzeln ermittelt und dann im ESP-Home angepasst.

Bei mir sieht der Code wie folgt aus:

captive_portal:
    
one_wire:
- platform: gpio
  pin: GPIO26
  

sensor:
  - platform: adc
    name: "Sensor_Bodenfeuchte_A1_1"
    id: Humidity_A1_1
    pin: GPIO32
    update_interval: 5s # andere haben 2 sec
    attenuation: 11dB
    unit_of_measurement: "%"
    device_class: MOISTURE
   
    filters:
    - median:  # Hinzufügen eines Median-Filters zur Glättung der Werte
        window_size: 10
    - calibrate_linear:
        - 0.94000 ->  100.00   # den ermittelten Wert anpassen
        - 2.40100 ->  0.00      # den ermittelten Wert anpassen
    - lambda: |
       if (x < 0) return 0;
       else if (x > 100) return 100;
       else return (x);
    accuracy_decimals: 0
2 „Gefällt mir“

Hallo,

vielen Dank für die Antworten, bei mir hats an der “attenuation” gelegen. Ich habe sie auf 12 anstatt 11 db gestellt, bzw. auch mal “auto” getestet, dann hat es sofort funktioniert :wink:

wow super, das erklärt einiges, ich hatte die mal in Fertigteilen und die Werte waren “erratisch” (harmlos ausgedrückt).

1 „Gefällt mir“