Gartenbewässerungscomputer

Zum Beginn der Sommer Saison, würde es Zeit meine Gartenbewässerung zu überarbeiten. Grundlage hierfür wären die Videos von Simon und die esphome Variante. ich wollte allerdings eine saubere Lösung die in einer kleinen UV untergebracht ist.
Aus diesem Grund, habe ich mir einen Schaltschrank mit 8 Sicherungen geholt, 6 Din-Schienen SSR, AC-AC Trafo, Wandler und die passende ESP8266 Halterung gedruckt.


Am Anfang also erstmal Kabel an die nötigen Pins gelötet. D1-D6, +/- für 6 Magnetventile später.
Damit es ordentlich wird, Adernhülsen nicht vergessen. :wink:

Nach dem anschließen wurde der AC-DC Wandler noch auf 5v eingestellt. Hierzu habe ich einen LM2596HV genommen.

Anschließend wurde der ESP an die Relais angeschlossen und das ganze erstmal getestet. Der minus Pol wird über die rote Schiene gebrückt, was es etwas einfacher macht an zu schließen.

Ich habe alle Relais per Hand durchgeschaltet und dabei Spannung gemessen, erst am DC, danach an der AC Seite. Die 3,2v funktionierten super um AC 24v zu haben, also konnte Testweise auch ein Magnetventil angeschlossen werden.

im Anschluss alles zusammen gebaut und natürlich ist dabei ein Kabel abgebrochen… Also einmal Lötzinn entfernen, Loch wieder frei bekommen und neu anschließen. Der mist hat mich 30 Minuten gekostet!

Als dies dann gefixed war, konnte ich alles wieder sauber zusammen bauen. Der ACDC wurde mit Klebepads am Boden befestigt, das schwarze sind 2 Federklemmen um die 24v AC Phase der Pumpen an zu schließen. Die zusätzliche Sicherung links ist, falls ich mal direkt am Kasten was machen muss. Eigentlich ist aber im Garten noch eine UV mit 10 Sicherungen und FI in der Grillecke, wo alles zusammen läuft.


Einzige Problem gerade noch: die Lampen Leuchten nicht beim schalten, man weiß also nicht welches an ist… Problem habe ich noch nicht gefunden, kommt aber noch.

Jetzt heißt es für mich warten, bis Simon sein neues Video zu Smart irrigation und Bewässerung gemacht hat, damit ich die Automatisierung fertigstellen kann. :rofl: Außerdem muss ich noch Schlauch vergraben und die Ventile richtig einbauen. Also noch bisschen was zu tun, bis der Regen auf hört.

1 „Gefällt mir“

Wollte noch mal ein kleines Update geben, da mittlerweile alles läuft:
Zuerst einmal habe ich in Smart Irrigation 6 Zonen hinzugefügt, eine für jeden Bewässerungskreislauf (Rasen, Teich, Garage, Beet -Links, -Hinten, -Rechs).
Die sind gleich zu meinen Magnetventilen in ESPHome. Der ESP Code ist dann wie folgt:

esphome:
 name: gartenbewasserung
 friendly_name: Gartenbewässerung

esp8266:
 board: d1_mini

# Enable logging
logger:

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

ota:
 - platform: esphome
   password: !secret ota_passwd

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

 # Enable fallback hotspot (captive portal) in case wifi connection fails
 ap:
   ssid: "Gartenbewasserung"
   password: !secret wifi_password

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 Bedarfsfall 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: teich_sprinkler_valve
   on_turn_on:
   - delay: 600s
   - switch.turn_off: teich_sprinkler_valve
 - platform: gpio
   name: "Relay 3"
   pin: D3
   restore_mode: ALWAYS_OFF
   id: garage_sprinkler_valve
   on_turn_on:
   - delay: 600s
   - switch.turn_off: garage_sprinkler_valve
 - platform: gpio
   name: "Relay 4"
   pin: D4
   restore_mode: ALWAYS_OFF
   id: links_sprinkler_valve
   on_turn_on:
   - delay: 600s
   - switch.turn_off: links_sprinkler_valve
 - platform: gpio
   name: "Relay 5"
   pin: D5
   restore_mode: ALWAYS_OFF
   id: hinten_sprinkler_valve
   on_turn_on:
   - delay: 600s
   - switch.turn_off: hinten_sprinkler_valve
 - platform: gpio
   name: "Relay 6"
   pin: D6
   restore_mode: ALWAYS_OFF
   id: rechts_sprinkler_valve
   on_turn_on:
   - delay: 600s
   - switch.turn_off: rechts_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"
       enable_switch: "Aktiviere Rasen"
       run_duration_number: "Rasen Laufzeit"
       valve_switch_id: rasen_sprinkler_valve
     - valve_switch: "Teich"
       enable_switch: "Aktiviere Teich"
       run_duration_number: "Teich Laufzeit"
       valve_switch_id: teich_sprinkler_valve
     - valve_switch: "Garage"
       enable_switch: "Aktiviere Garage"
       run_duration_number: "Garage Laufzeit"
       valve_switch_id: garage_sprinkler_valve
     - valve_switch: "Beet Links"
       enable_switch: "Aktiviere Beet Links"
       run_duration_number: "Beet Links Laufzeit"
       valve_switch_id: links_sprinkler_valve
     - valve_switch: "Beet Hinten"
       enable_switch: "Aktiviere Beet Hinten"
       run_duration_number: "Beet Hinten Laufzeit"
       valve_switch_id: hinten_sprinkler_valve   
     - valve_switch: "Beet Rechts"
       enable_switch: "Aktiviere Beet Rechts"
       run_duration_number: "Beet Rechts Laufzeit"
       valve_switch_id: rechts_sprinkler_valve     

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

(Code Credit an Simon42)
Danach brauchte ich noch 2 Automationen:

alias: Irrigation - Reset Buckets ESPHome
description: ""
triggers:
  - entity_id:
      - switch.gartenbewasserung_garten_sprinkler
    from: "off"
    to: "on"
    for:
      hours: 0
      minutes: 1
      seconds: 0
    enabled: true
    trigger: state
conditions: []
actions:
  - data: {}
    action: smart_irrigation.reset_all_buckets
mode: single

und

alias: Irrigation - Set Time & Run ESPHome
description: ""
triggers:
  - trigger: sun
    event: sunrise
    offset: "-01:00:00"
conditions:
  - condition: or
    conditions:
      - alias: " Rasen Daily Adjusted Run Time is above 60"
        condition: numeric_state
        entity_id: sensor.smart_irrigation_rasen
        above: 60
      - alias: " Teich Daily Adjusted Run Time is above 60"
        condition: numeric_state
        entity_id: sensor.smart_irrigation_teich
        above: 60
      - alias: " Garage Daily Adjusted Run Time is above 60"
        condition: numeric_state
        entity_id: sensor.smart_irrigation_garage
        above: 60
      - alias: " Beet Links Daily Adjusted Run Time is above 60"
        condition: numeric_state
        entity_id: sensor.smart_irrigation_beet_links
        above: 60
      - alias: " Beet Hinten Daily Adjusted Run Time is above 60"
        condition: numeric_state
        entity_id: sensor.smart_irrigation_beet_hinten
        above: 60
      - alias: " Beet Rechts Daily Adjusted Run Time is above 60"
        condition: numeric_state
        entity_id: sensor.smart_irrigation_beet_rechts
        above: 60
actions:
  - data:
      value: "{{states('sensor.smart_irrigation_rasen')}}"
    target:
      entity_id: number.gartenbewasserung_rasen_laufzeit
    action: number.set_value
  - data:
      value: "{{states('sensor.smart_irrigation_teich')}}"
    target:
      entity_id: number.gartenbewasserung_teich_laufzeit
    action: number.set_value
  - data:
      value: "{{states('sensor.smart_irrigation_garage')}}"
    target:
      entity_id: number.gartenbewasserung_garage_laufzeit
    action: number.set_value
  - data:
      value: "{{states('sensor.smart_irrigation_beet_links')}}"
    target:
      entity_id: number.gartenbewasserung_beet_links_laufzeit
    action: number.set_value
  - data:
      value: "{{states('sensor.smart_irrigation_beet_hinten')}}"
    target:
      entity_id: number.gartenbewasserung_beet_hinten_laufzeit
    action: number.set_value
  - data:
      value: "{{states('sensor.smart_irrigation_beet_rechts')}}"
    target:
      entity_id: number.gartenbewasserung_beet_rechts_laufzeit
    action: number.set_value
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - data: {}
    target:
      entity_id: switch.gartenbewasserung_garten_sprinkler
    enabled: true
    action: homeassistant.turn_on
mode: single

(Credits wieder an Simon!)

Last, but not least, will ich natürlich auch nen Dashboard dafür:

views:
  - title: Home
    type: panel
    cards:
      - type: vertical-stack
        cards:
          - type: horizontal-stack
            cards:
              - show_name: true
                show_icon: true
                type: button
                tap_action:
                  action: toggle
                entity: switch.gartenbewasserung_garten_sprinkler
                icon: mdi:hydro-power
                name: Bewässerungscomputer
              - type: horizontal-stack
                cards:
                  - type: gauge
                    entity: sensor.gartenbewasserung_wifi_signal_percent
                    name: WiFi
                  - show_name: false
                    show_icon: true
                    type: button
                    tap_action:
                      action: toggle
                    entity: button.gartenbewasserung_garten_sprinkler_neu_starten
              - type: horizontal-stack
                cards:
                  - type: gauge
                    entity: number.gartenbewasserung_garten_sprinkler_multiplier
                    min: 0
                    max: 5
                    name: Multi
                  - type: gauge
                    entity: number.gartenbewasserung_garten_sprinkler_repeat
                    min: 0
                    max: 5
                    name: Rep.
                  - show_name: false
                    show_icon: true
                    type: button
                    tap_action:
                      action: toggle
                    entity: switch.gartenbewasserung_garten_sprinkler_reverse
                    icon: mdi:keyboard-tab-reverse
          - type: horizontal-stack
            cards:
              - type: horizontal-stack
                cards:
                  - show_name: true
                    show_icon: true
                    type: button
                    tap_action:
                      action: toggle
                    icon: mdi:sprinkler
                    name: Rasen
                    entity: switch.gartenbewasserung_rasen
                  - type: vertical-stack
                    cards:
                      - type: horizontal-stack
                        cards:
                          - type: gauge
                            entity: number.gartenbewasserung_rasen_laufzeit
                            name: Laufzeit
                            min: 30
                            max: 600
                            needle: false
                          - show_name: false
                            show_icon: true
                            type: button
                            tap_action:
                              action: toggle
                            entity: switch.gartenbewasserung_aktiviere_rasen
                            icon: mdi:power
                      - type: horizontal-stack
                        cards:
                          - type: history-graph
                            entities:
                              - entity: switch.gartenbewasserung_rasen
                                name: Verl.
                            hours_to_show: 22
              - type: horizontal-stack
                cards:
                  - show_name: true
                    show_icon: true
                    type: button
                    tap_action:
                      action: toggle
                    icon: mdi:sprinkler
                    name: Teich
                    entity: switch.gartenbewasserung_teich
                  - type: vertical-stack
                    cards:
                      - type: horizontal-stack
                        cards:
                          - type: gauge
                            entity: number.gartenbewasserung_teich_laufzeit
                            name: Laufzeit
                            min: 30
                            max: 600
                            needle: false
                          - show_name: false
                            show_icon: true
                            type: button
                            tap_action:
                              action: toggle
                            entity: switch.gartenbewasserung_aktiviere_teich
                            icon: mdi:power
                      - type: horizontal-stack
                        cards:
                          - type: history-graph
                            entities:
                              - entity: switch.gartenbewasserung_teich
                                name: Verl.
                            hours_to_show: 22
              - type: horizontal-stack
                cards:
                  - show_name: true
                    show_icon: true
                    type: button
                    tap_action:
                      action: toggle
                    icon: mdi:sprinkler
                    name: Garage
                    entity: switch.gartenbewasserung_garage
                  - type: vertical-stack
                    cards:
                      - type: horizontal-stack
                        cards:
                          - type: gauge
                            entity: number.gartenbewasserung_garage_laufzeit
                            name: Laufzeit
                            min: 30
                            max: 600
                            needle: false
                          - show_name: false
                            show_icon: true
                            type: button
                            tap_action:
                              action: toggle
                            entity: switch.gartenbewasserung_aktiviere_garage
                            icon: mdi:power
                      - type: horizontal-stack
                        cards:
                          - type: history-graph
                            entities:
                              - entity: switch.gartenbewasserung_garage
                                name: Verl.
                            hours_to_show: 22
          - type: horizontal-stack
            cards:
              - type: horizontal-stack
                cards:
                  - show_name: true
                    show_icon: true
                    type: button
                    tap_action:
                      action: toggle
                    icon: mdi:sprinkler
                    name: Beet Links
                    entity: switch.gartenbewasserung_beet_links
                  - type: vertical-stack
                    cards:
                      - type: horizontal-stack
                        cards:
                          - type: gauge
                            entity: number.gartenbewasserung_beet_links_laufzeit
                            name: Laufzeit
                            min: 30
                            max: 600
                            needle: false
                          - show_name: false
                            show_icon: true
                            type: button
                            tap_action:
                              action: toggle
                            entity: switch.gartenbewasserung_aktiviere_beet_links
                            icon: mdi:power
                      - type: horizontal-stack
                        cards:
                          - type: history-graph
                            entities:
                              - entity: switch.gartenbewasserung_beet_links
                                name: Verl.
                            hours_to_show: 22
              - type: horizontal-stack
                cards:
                  - show_name: true
                    show_icon: true
                    type: button
                    tap_action:
                      action: toggle
                    icon: mdi:sprinkler
                    name: Beet Hinten
                    entity: switch.gartenbewasserung_beet_hinten
                  - type: vertical-stack
                    cards:
                      - type: horizontal-stack
                        cards:
                          - type: gauge
                            entity: number.gartenbewasserung_beet_hinten_laufzeit
                            name: Laufzeit
                            min: 30
                            max: 600
                            needle: false
                          - show_name: false
                            show_icon: true
                            type: button
                            tap_action:
                              action: toggle
                            entity: switch.gartenbewasserung_aktiviere_beet_hinten
                            icon: mdi:power
                      - type: horizontal-stack
                        cards:
                          - type: history-graph
                            entities:
                              - entity: switch.gartenbewasserung_beet_hinten
                                name: Verl.
                            hours_to_show: 22
              - type: horizontal-stack
                cards:
                  - show_name: true
                    show_icon: true
                    type: button
                    tap_action:
                      action: toggle
                    icon: mdi:sprinkler
                    name: Beet Rechts
                    entity: switch.gartenbewasserung_beet_rechts
                  - type: vertical-stack
                    cards:
                      - type: horizontal-stack
                        cards:
                          - type: gauge
                            entity: number.gartenbewasserung_beet_rechts_laufzeit
                            name: Laufzeit
                            min: 30
                            max: 600
                            needle: false
                          - show_name: false
                            show_icon: true
                            type: button
                            tap_action:
                              action: toggle
                            entity: switch.gartenbewasserung_aktiviere_beet_rechts
                            icon: mdi:power
                      - type: horizontal-stack
                        cards:
                          - type: history-graph
                            entities:
                              - entity: switch.gartenbewasserung_beet_rechts
                                name: Verl.
                            hours_to_show: 22

Und damit ist das Projekt erstmal beendet. :smiley:

Möchte mich hier nochmal bei Simon bedanken für seine Arbeit und das Sharen des Codes, was wirklich eine sehr große Hilfe war!

1 „Gefällt mir“