ESP32 garden watering

Hi!

I’m building a garden watering system with 6 sprinklers and magnatic valves.
The hardware is already done, but I need some help with the code.

I found one in the web:

The only problem is that I dont wnat a switch to turn it on or off. I want to enter a time for watering on each day of the week.
How do I have to change the code???


Preformatted text

esphome:
  name: bewcmp
  friendly_name: bewcmp

esp8266:
  board: d1_mini

# Enable logging
logger:

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

ota:
  password: "XXXXXXXXXXXXXXXXXXXXXXXXXXX"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Bewcmp Fallback Hotspot"
    password: "OFD81nQudVj7"

captive_portal:
    
switch:
  - platform: gpio
    name: "Relay 1"
    pin: D1
    # Stellt sicher, dass die Relais beim neustart des ESPs ausgeschaltet sind
    restore_mode: ALWAYS_OFF
    id: rasen_sprinkler_valve
    # Schaltet sicherheitshalber den GPIO-Switch nach 10 Minuten aus. Im Bearfsfall die Dauer anpassen ;)
    on_turn_on:
    - delay: 600s
    - switch.turn_off: rasen_sprinkler_valve
  - platform: gpio
    name: "Relay 2"
    pin: D2
    restore_mode: ALWAYS_OFF
    id: blumenwiese_sprinkler_valve
    on_turn_on:
    - delay: 600s
    - switch.turn_off: blumenwiese_sprinkler_valve
  - platform: gpio
    name: "Relay 3"
    pin: D3
    restore_mode: ALWAYS_OFF
    id: gemuese_sprinkler_valve
    on_turn_on:
    - delay: 600s
    - switch.turn_off: gemuese_sprinkler_valve
  - platform: gpio
    name: "Relay 4"
    pin: D4
    restore_mode: ALWAYS_OFF
    id: himbeeren_sprinkler_valve
    on_turn_on:
    - delay: 600s
    - switch.turn_off: gemuese_sprinkler_valve

sensor:
  - platform: wifi_signal # Reports the WiFi signal strength/RSSI in dB
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    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: 5s
    valves:
      - valve_switch: "Rasen Oben"
        enable_switch: "Aktiviere Rasen oben"
        run_duration_number: "Rasen oben Laufzeit"
        valve_switch_id: rasen_sprinkler_valve
      - valve_switch: "Blumenwiese"
        enable_switch: "Aktiviere Blumenwiese"
        run_duration_number: "Blumenwiese Laufzeit"
        valve_switch_id: blumenwiese_sprinkler_valve
      - valve_switch: "Gemüse"
        enable_switch: "Aktiviere Gemüse"
        run_duration_number: "Gemüse Laufzeit"
        valve_switch_id: gemuese_sprinkler_valve
      - valve_switch: "Himbeeren"
        enable_switch: "Aktiviere Himbeeren"
        run_duration_number: "Himbeeren Laufzeit"
        valve_switch_id: himbeeren_sprinkler_valve        

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

Have a look at the Time component docs. You find few examples how to do time based automations.

1 Like

Already written yesterday on another topic.

1 Like