Bewässerungscomputer selber bauen mit ESPHome & Home Assistant

5 „Gefällt mir“

Hi Simon,

vielen Danke für deine ganzen tollen Videos, haben mir schon oft geholfen!

Ich brauchte sowieso neue Bewässerungscomputer und da diese von Gardena gut zu funktionieren scheinen, haben ich mir die selben bestellt.

Aber ich bekomme sie einfach nicht in HA eingebunden.
Mein HA-Host hat kein Bluetooth, sondern ich habe einige Shelly Plus im Einsatz, welche ich als Proxy nutzen wollte.

zum debuggen, habe ich den BTE tracker in der configuration.yaml aktiviert:

device_tracker:
  - platform: bluetooth_le_tracker
    track_new_devices: false
    track_battery: false
    track_battery_interval: 3600

und nach einem HA Neustart hatte ich dann die Datei: known_devices.yaml
in der eine vielzahl von BT Geräten erkannt wurden. gehe also mal davon aus das die BT-Proxy Geschichte läuft.

Unter Geräten tauchen die Computer aber einfach nicht auf, auch nicht wenn ich die Integration manuell hinzufüge. Hier erscheint nur die Meldung:

Keine Geräte im Netzwerk gefunden

Ich habe dann auch mal die App auf dem Handy installiert, hier kann ich die Geräte hinzufügen, konfigurieren und aktualisieren…

Hast du noch eine Idee woran es noch liegen kann?

Danke und schöne Grüße
Max

Update:
Ich habe mir jetzt zu den Shellys einen ESP32 Bluetooth-Proxy eingerichtet.
Nun wurden die Gardena Bewässerungscomputer auch in Home Assistant erkannt.

Scheinbar gibt es ein Problem mit den Shellys und dem Gardena “Water Smart Control” Bluetooth Geräten.
Denn auch wenn die Geräte im HA angelernt sind und ich den ESP32 Bluetooth-Proxy wieder entferne, können die Bewässerungscomputer nicht mehr gesteuert werden.

Parallel dazu habe ich mir den Xiaomi Feuchtigkeitssensor bestellt, dieser kann problemlos über die Shellys angelernt und ausgelesen werden.

Jetzt die Frage, kann ich noch etwas in meinen Shelly/HA Einstellungen anpassen?
Shelly Config:
image

HA Config:
image

Die andere Frage ist, wenn ein Shelly dann dichter dran ist und ein stärkeres Signal sendet, kann ich dann die Geräte noch steuern?

Hallo und

vielen Dank an Simon für deine tollen Beiträge die mich als Anfänger immer einführen und sehr hilfreich sind.
Mein Frühjahrsprojekt ist der Nachbau der Bewässerungsanlage. Leider komme ich an einer Stelle nun nicht weiter. Habe dafür leider auch keine Lösung gefunden. Muss dazu auch sagen das es mein erstes ESP Home Projekt ist.
Folgender Stand und folgendes Problem.
Hardware vorhanden lt. deinen Vorschlägen. Habe allerdings dies Modul, DollaTek 5V SP8266 Vierkanal Wifi Relais IOT Smart Home Handy APP Fernbedienung genutzt. Flashen, Yaml für Identitäten erstellen inkl. anpassen hat geklappt und funktionieren.Nun das Problem: - leider werden die Relais nicht angesteuert, es ist keine klicken zu hören und die LEDs leuchten auch nicht. die Grüne LED blinkt schnell: "LED D6 ( grün ): Anzeige der Arbeitsstatue , genaue Details wie folgt :
(1) Wenn er erlischt, wird er konfiguriert oder vom Router getrennt.
(2) 0,5 s schnelles Blinken bedeutet, dass die Handy-App das WIFI-Konto
und das Passwort für das ESP-01-Modul konfiguriert ". Ich nehme an das im yaml Code etwas fehlt? Kann mir da jemand weiter helfen. Das fehlen mir leider die Kenntnisse. Vielen Dank.

liegt wahrscheinlich daran, dass das Board die Relaise über nur einen Steuerbus ansteuert. In den Kommentaren ist eine funktionierende Steuerung für das Board zu finden:

esphome:
name: relaiskarte
platform: ESP8266
board: esp01_1m

wifi:
...
ap:
...

# Enable logging

logger:
baud_rate: 0

# Enable Home Assistant API
api:
encryption:
key: !secret api_key
ota:
password: !secret ota_password

time:
- platform: homeassistant

uart:
baud_rate: 115200
tx_pin: GPIO1
rx_pin: GPIO3

sensor:
- platform: uptime
name: Relay Uptime

- platform: wifi_signal
name: Relay WiFi Signal
update_interval: 60s

switch:

- platform: restart
name: "Restart"

- platform: template
name: 'Relay 1'
id: relay1
turn_on_action:
- uart.write: [0xA0, 0x01, 0x01, 0xA2]
turn_off_action:
- uart.write: [0xA0, 0x01, 0x00, 0xA1]
optimistic: true

- platform: template
name: 'Relay 2'
id: relay2
turn_on_action:
- uart.write: [0xA0, 0x02, 0x01, 0xA3]
turn_off_action:
- uart.write: [0xA0, 0x02, 0x00, 0xA2]
optimistic: true

- platform: template
name: 'Relay 3'
id: relay3
turn_on_action:
- uart.write: [0xA0, 0x03, 0x01, 0xA4]
turn_off_action:
- uart.write: [0xA0, 0x03, 0x00, 0xA3]
optimistic: true

- platform: template
name: 'Relay 4'
id: relay4
turn_on_action:
- uart.write: [0xA0, 0x04, 0x01, 0xA5]
turn_off_action:
- uart.write: [0xA0, 0x04, 0x00, 0xA4]
optimistic: true

Bitte beachten: Einrückungen sind falsch, da nur copy → paste aus der Rezession

Ich hab das ganze mit einer 16-fach Relaiskarte an einem ESP32 und ESPhome gebaut, funktioniert sehr gut.

Ich kann dir heute abend gerne mal den Config-Snipsel von mir zusenden.

Aktuell will ich noch die neue Version von “Smart Irigation” einbinden - die Version, die Simon mal in einem Video vorgestellt hat, ist veraltet und die neue komplett anders, aber auch einfach einzurichten.

Das wäre super - Vielen Dank dafür. Ich werde dann heute Abend mal ausprobieren ob ich damit weiterkomme. Was bei 16 Relais funktioniert sollte ja irgendwie auch bei 4 klappen.

Nachtrag:
Ich probiere die Steuerung heute Abend mal über den Code zum laufen zu bringen. Danke für die Rückmeldung.

:crayon:by HarryP: Zusammenführung Doppelpost (bitte “bearbeiten” Funktion nutzen)

Hallo,

so hier mal Code-Schnipsel von meiner Relaiskarte für die ersten zwei Kanäle, das ist eine 16-Fach Relaiskarte mit einem aufgestecktem ESP32 extra dafür.
Die GPIO-Pins muss du entsprechend anpassend, weil die bei dem Modul fest verdrahtet sind.

Das ist noch mein Prototyp, daher heissen die Kanäle einfach nur Relais_x

Das Dashboard ist genauso gebaut wie Simon das im Video mal vorgestellt hatte, Codeschnipsel kannst gern auch haben wenn du willst.

switch:
  - platform: gpio
    name: "Relais 01"
    pin: GPIO25
    # Stellt sicher, dass die Relais beim neustart des ESPs ausgeschaltet sind
    restore_mode: ALWAYS_OFF
    id: relais_01
    # Schaltet sicherheitshalber den GPIO-Switch nach 10 Minuten aus. Im Bearfsfall die Dauer anpassen ;)
    on_turn_on:
    - delay: 30s
    - switch.turn_off: relais_01
  - platform: gpio
    name: "Relais 02"
    pin: GPIO33
    restore_mode: ALWAYS_OFF
    id: relais_02
    on_turn_on:
    - delay: 30s
    - switch.turn_off: relais_02
sensor:
  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 120s
    entity_category: "diagnostic"
  - platform: copy # Reports the WiFi signal strength in %
    source_id: wifi_signal_db
    name: "WiFi Signal Percent"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "Signal %"
    entity_category: "diagnostic"
sprinkler:
  - id: garden_sprinkler_ctrlr
    main_switch: "Garten Sprinkler"
    auto_advance_switch: "Garten Sprinkler Auto Advance"
    reverse_switch: "Garten Sprinkler Reverse"
    multiplier_number: "Garten Sprinkler Multiplier"
    repeat_number: "Garten Sprinkler Repeat"
    valve_overlap: 2s
    valves:
      - valve_switch: "Relais_01"
        enable_switch: "Aktiviere Relais_01"
        run_duration_number: "Relais_01 Laufzeit"
        valve_switch_id: relais_01
      - valve_switch: "Relais_02"
        enable_switch: "Aktiviere Relais_02"
        run_duration_number: "Relais_02 Laufzeit"
        valve_switch_id: relais_02

Extra Restart-Button im Dashboard dann

button:
  - platform: restart
    name: "Garten Sprinkler neu starten"

Kurz noch die Info zur Lösung. Letztendlich ist es eine Kombi aus beiden Lösungsvorschlägen (@Tuxtom007 und @metallmanu) geworden. Danke für die Unterstützung. Bei Interesse stelle ich den Code-Schnipsel auch gerne zur Verfügung. Die Integration von Smart-Irrigation hat auch gut funktioniert. Bei mir funktionierte allerdings am Anfang die Berechnung über PyETO und eigene Sensoren leider nicht. Lösung für meinen Aufbau war: “Forecast days” = 0 (nicht leer lassen oder einen anderen Wert) eintragen.

1 „Gefällt mir“

Interresse habe und Screenshots bitte - Danke

Mit Sensoren weiss ich nocht nicht wie ich das mache, ich hab noch paar Bodenfeuchtesensore mit I2C-Bus hier liegen, die hab ich noch nicht versucht , mit ESPHome anzuschliessen.

Zudem komme jetzt noch neue von ELV, die ich testen möchte, haben auch I2C-Bus.

Finde die Idee des in HA gebauten bwcomp genial. Ich habe noch die ältere Hardware-Version gebaut mit Shelly UNIs, Gardena Ventile und diesen gelben Relais. Funktioniert an sich prima - nur noch gar nicht in HA.

Könnte man vergleichbaren Code bauen, der nicht auf esphome basiert? Ok, die Antwort wird wohl ja sein :slight_smile: Hat das schon jemand umgesetzt? Mit

esphome:

kann man ja nicht anfangen. Ich fuchse mich gerne rein, weiß aber gerade nicht, wo mit ich starten müsste …

LG,
nico

Einfach mit der Doku, da steht soviel Beispiel Code für dei unterschiedlichen Sensoren usw. drin um sich das reinzufuchsen.

Hallo zusammen!
Ich habe mit einem D1 mini mal einen Bewässerungscomputer aufgebaut, welcher 8 Relais schaltet. Funktioniert auf dem Dashboard von Homeassistant soweit alles gut, und das steuern haut hin. Als Zusatz habe ich jetzt noch ein Display an den D1 mini gebaut und möchte die Restlaufzeit des geöffneten Ventils anzeigen lassen. Ganz am Ende der Erklärung des “Sprinkler-Controllers” auf der Esphome-Webseite steht was darüber, aber ich bekomme das irgendwie nicht zum laufen.
Hat vielleicht jemand so etwas schon gemacht?
Mir schwebt also vor, auf dem Display des eigentlichen Esp-Bewässerungscomputer die Restlaufzeit des aktiven Ventils und auch welches Ventil ist gerade aktiv, anzeigen zu lassen.

Hallo, ich habe es selber rausgefunden!!!
Habe vergessen, für das Display den zu benutzenden Font anzugeben.
Na ja, als Rentner passiert so was schon mal…
trotzdem Danke für´s lesen.

Cool, das es nun funktioniert.

Ich hab mal angefangen die Beschreibung bei ESPHome zu lesen, weil ich auch eine Bewässerungssteuerung bauen will für den Balkon, allerdings in kleiner Ausführung.

Aber den Fehler kenne ich, hatte am Wochenende was ähnlich mit einer Grafik auf einem ePaper-Display - zwar den Link zur Grafik eingetragen aber nicht die Größe und Position bestimmt.

Frage: was hast du eigentlich für ein Display genommen.
Mit schwebt vor, das ganze mit einem 2,8" Touch-Display aufzubauen, was ich hier noch rumliegen hab, da ist der ESP32 direkt hinten aufgesteckt und wird auch von ESPHome unterstützt.

Da ich das Gerät (wenn fertig) in der Garage montieren will, wollte ich es nicht zu aufwendig gestalten…mein Display ist erstmal ein 1,3" SH1106.
Ja die Anzeige der Restlaufzeit wird mir jetzt zwar auf dem Display angezeigt, allerdings nur in Sekunden. Also bei 30 Minuten Vorwahl zählt er halt von 1800 bis auf 0 runter…finde ich persönlich nicht so schön, wie eine Uhr z.B. “15:25” also 15 Minuten 25 Sekunden wär mir lieber.
Ich weiß allerdings noch nicht, wie ich das wieder umsetzen könnte.

Soweit wie ich die Doku bisher gelesen habe, scheint das nicht zu gehen mit min:sec.

Ich teste gerade auf meinem Demo-Board mit Pumpensteuerung parallen zu den Ventilausgängen.

das funktioniert eigentlich sehr zuverlässig, bei mir ist die Pumpe durchgängig parallel zum Programm an und wird mit dem letzten Ventil dann abgeschaltet!

Du kannst natürlich schon sehr simpel Minuten anzeigen lassen, wenn Du die Anzeige durch 60 teilst. Dann sieht das so aus:
“it.printf(0, 0, “Time left: %u sec.”, id(lawn_sprinkler_ctrlr).time_remaining_active_valve().value()/60);”
Allerdings werden dann die übergeblieben Sekunden in der Anzeige einfach unterschlagen…es werden also nur ganze Minuten angezeigt.

Hallo zusammen!
zum Sprinklercontroller habe ich noch mal eine Frage zur Restlaufzeit.
Auf einem Display des Sprinklercontrollers habe ich mir nach Beschreibung auf der Esphome-Seite eine Restanzeige sowohl für die einzelnen Ventil, als auch für die gesamte Restlauzeit gemacht. Das funktioniert auch sehr gut!
Kann man die Restlaufzeiten irgendwie auch auf dem Dashboard von HA anzeigen lassen, oder muss man sich die per Template ausrechnen? Hat jemand Erfahrung damit, und könnte eventuell helfen?

Moin Zusammen,

hat jemand bitte einen Link zum Schaltplan was Simon im Video präsentiert hat und welches in seiner Doku abgelegt sein soll?

Ich stehe gaaaanz am Anfang des Projektes.
Der Anreiz war für mich folgendes:

Ich nutze einen Hunter Bewässerungskomuter im Zusammenspiel mit einem Regensensor. Dazu soll gesagt werden, ich habe ihn seit 2 J und kann mich an die Logik seiner Programmierung nicht gewöhnen (komme vom Gardena :slight_smile: )
Dazu kommt, dass meine Tomaten ab dem nächsten Jahr im Gewächshaus wachsen, wo es keinen natürlichen Niederschlag geben wird. Somit bekommt der Bewässerungskreis, der fürs Gemüse zuständig ist den falschen Input, gesteuert nach wie vor über den Regensensor der Aussenbedingungen beobachtet…
Daher wollte ich versuchen, das Projekt nachzubauen.
@Tuxtom007
ich bräuchte noch bitte kurz eine Hilfestellung um zu versetzten, was einezelne Programmabschnitte bewirken:


Das ist die Zuordnung der einzelnen Relais den Pins des ESP32

Das ist die Kontrolle des WLANs (nicht zwingend notwendig)
Wie funktioniert denn dieses Teil:

Muss man eine Automation dazu schreiben?
Es wäre toll, wenn Du mir das Algorithmus erklären könntest.

Danke und Gruss

Alex.