Projekt:Gartenwassersteuerung: Unterschied zwischen den Versionen

Aus Schaffenburg
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:


==Motivation==
==Motivation==
Für meinen Garten möchte ich wahlweise das Wasser aus der Zisterne, und bei zu niedrigem Stand aus der Hausleitung haben.
Desweiteren möchte ich meine Verbraucher separat ansteuern können.
Dazu benötige ich 8 Relais die ich mit Home Assistant und ESPHome steuern möchte.
==Vorbereitung der Relais==
Es gibt tolle 4er Relais mit direkt verbautem ESP-8266-1.
Da ich acht Relais benötige nehme ich zwei davon.
([https://www.google.com/imgres?imgurl=https://ae01.alicdn.com/kf/HTB139uoazDuK1RjSszdq6xGLpXaM.jpg&imgrefurl=https://de.aliexpress.com/i/32967159754.html&docid=TLFzrkUPBT9-LM&tbnid=ew6in-Owg_e41M:&vet=1&w=1000&h=1000&source=sh/x/im Dort zu sehen])
Die Kugelventile sind dreiadrig, sodaß sie je nachdem welche Ader Strom bekommt offen oder zu sind. (Sie nehmen in Endposition keine Leistung mehr auf)
Meine technischen Mentoren M. und N. sind dann gleich auf die Idee gekommen, das fertig Bauteile ohne Modifizierung nicht einbaufähig sind (wäre ja langweilig)
Zwei ESPs nebeneinander sind ja unnötig. Allerdings ist der ESP-8266-1 sehr beschränkt was die Anzahl der Pins betrifft. Glücklicherweise ist das Board sinnvoll ausgebaut, und nutzt nur einen Pin und übergibt ein rx tx Signal an einen zweiten Microcontroller auf dem Board.
Also schnell mal den zweiten Controller an den zweiten pin des ESP gehängt. (N. hat das ganze dann Softwaremäßig kompensiert)
<gallery heights=200px mode="packed" >
Image:verlötet.jpg|Fertig gelötetes Relaisboard
Image:stromversorgung.jpg|Stromversorgung auf 12V runterziehen
Image:kompl.jpg|Fertiges Bauteil mit Verkabelung rx-tx
</gallery>
Die Ventile werden mit 12V betrieben die nach diesem Umbau vom Board geliefert werden.
Um meine sieben Ventile mit nur einem Relais zu bedienen musste dann noch das Relais so verkabelt werden, dass entweder NO oder NC je nach Schaltzustand Strom haben.

M. hat dann erst mal den Kontakt desCOM Eingang mittels einer Bohrmaschine getrennt. (genialer Einfall)
Danach wurde hinter der Unterbrechung die Masse des Boards an die COM Leitung gelegt.
Vor der Unterbrechung (Bohrung Bild) wurde die Spannung vom Board an COM gelegt.
Dadurch schaltet das Relais jetzt 12v entweder auf NC oder NO.
Danke M.
==Progamm==
Die Programmierarbeit mit ESP Home ist normalerweise leichter als ein Kinderspiel.
als BSP so in etwa:
<code>
sensor:
  - platform: ultrasonic
    unit_of_measurement: "%"
    icon: "mdi:water-percent"
    trigger_pin: D2
    echo_pin: D1
    update_interval: 5s
    name: "Ultrasonic Sensor"
</code>
(mehr ist es nicht - wirklich)
In diesem Fall leider nicht ganz.
Da die Relais über  UART angesprochen werden, muss dem ESP noch gesagt werden, welchen der beiden Pins er jetzt verwenden soll.
Das hat N. grandioses geleistet:
<code>
uart:
  - id: uart1
    baud_rate: 115200 # speed to STC15L101EW
    tx_pin: GPIO1
  - baud_rate: 115200 # speed to STC15L101EW
    id: uart2
    tx_pin: GPIO2
switch:
  - platform: template
    name: "Zisternen Pumpe"
    id: "R1"
    turn_on_action:
      - switch.turn_on: uart_r1_on
    turn_off_action:
      - switch.turn_on: uart_r1_off
    optimistic: true
  - platform: uart
    id: uart_r1_on
    internal: true
    uart_id: uart1
    data: [0xA0, 0x01, 0x01, 0xA2]
  - platform: uart
    id: uart_r1_off
    internal: true
    uart_id: uart1
    data: [0xA0, 0x01, 0x00, 0xA1]
  - platform: template
    name: "Wasserhahn Zisterne"
    id: "R2"
    turn_on_action:
      - switch.turn_on: uart_r2_on
    turn_off_action:
      - switch.turn_on: uart_r2_off
    optimistic: true
  - platform: uart
    id: uart_r2_on
    internal: true
    uart_id: uart1
    data: [0xA0, 0x02, 0x01, 0xA3]
  - platform: uart
    id: uart_r2_off
    internal: true
    uart_id: uart1
    data: [0xA0, 0x02, 0x00, 0xA2]
  - platform: template
    name: "Wasserhahn Mitte"
    id: "R3"
    turn_on_action:
      - switch.turn_on: uart_r3_on
    turn_off_action:
      - switch.turn_on: uart_r3_off
    optimistic: true
  - platform: uart
    id: uart_r3_on
    internal: true
    uart_id: uart1
    data: [0xA0, 0x03, 0x01, 0xA4]
  - platform: uart
    id: uart_r3_off
    internal: true
    uart_id: uart1
    data: [0xA0, 0x03, 0x00, 0xA3]
  - platform: template
    name: "R4"
    id: "R4"
    turn_on_action:
      - switch.turn_on: uart_r4_on
    turn_off_action:
      - switch.turn_on: uart_r4_off
    optimistic: true
  - platform: uart
    id: uart_r4_on
    internal: true
    uart_id: uart1
    data: [0xA0, 0x04, 0x01, 0xA5]
  - platform: uart
    id: uart_r4_off
    internal: true
    uart_id: uart1
    data: [0xA0, 0x04, 0x00, 0xA4]
   
  - platform: template
    name: "R5"
    id: "R5"
    turn_on_action:
      - switch.turn_on: uart_r5_on
    turn_off_action:
      - switch.turn_on: uart_r5_off
    optimistic: true
  - platform: uart
    id: uart_r5_on
    internal: true
    uart_id: uart2
    data: [0xA0, 0x01, 0x01, 0xA2]
  - platform: uart
    id: uart_r5_off
    internal: true
    uart_id: uart2
    data: [0xA0, 0x01, 0x00, 0xA1]
  - platform: template
    name: "R6"
    id: "R6"
    turn_on_action:
      - switch.turn_on: uart_r6_on
    turn_off_action:
      - switch.turn_on: uart_r6_off
    optimistic: true
  - platform: uart
    id: uart_r6_on
    internal: true
    uart_id: uart2
    data: [0xA0, 0x02, 0x01, 0xA3]
  - platform: uart
    id: uart_r6_off
    internal: true
    uart_id: uart2
    data: [0xA0, 0x02, 0x00, 0xA2]
  - platform: template
    name: "R7"
    id: "R7"
    turn_on_action:
      - switch.turn_on: uart_r7_on
    turn_off_action:
      - switch.turn_on: uart_r7_off
    optimistic: true
  - platform: uart
    id: uart_r7_on
    internal: true
    uart_id: uart2
    data: [0xA0, 0x03, 0x01, 0xA4]
  - platform: uart
    id: uart_r7_off
    internal: true
    uart_id: uart2
    data: [0xA0, 0x03, 0x00, 0xA3]
  - platform: template
    name: "R8"
    id: "R8"
    turn_on_action:
      - switch.turn_on: uart_r8_on
    turn_off_action:
      - switch.turn_on: uart_r8_off
    optimistic: true
  - platform: uart
    id: uart_r8_on
    internal: true
    uart_id: uart2
    data: [0xA0, 0x04, 0x01, 0xA5]
  - platform: uart
    id: uart_r8_off
    internal: true
    uart_id: uart2
    data: [0xA0, 0x04, 0x00, 0xA4]
</code>
So können jetzt alle Relais mit nur einem ESP angesprochen werden.
==Endmontage==
Jetzt muss nur noch die Masse vom Kugelventil in den COM geschraubt und die beiden Phasen in NO un NC geschraubt werden.
Dann fängt die fricklei mit Home Assistant Automationen an.

Aktuelle Version vom 10. Juni 2020, 19:28 Uhr

Crystal Clear action run.png
Gartenwassersteuerung

Status: stable

Infobox.jpg
Beschreibung Für Gartenbewässerung el. Kugelventile mit ESP-Relais steuern
Ansprechpartner Pagaty
Version 1.0



Motivation

Für meinen Garten möchte ich wahlweise das Wasser aus der Zisterne, und bei zu niedrigem Stand aus der Hausleitung haben. Desweiteren möchte ich meine Verbraucher separat ansteuern können.

Dazu benötige ich 8 Relais die ich mit Home Assistant und ESPHome steuern möchte.

Vorbereitung der Relais

Es gibt tolle 4er Relais mit direkt verbautem ESP-8266-1. Da ich acht Relais benötige nehme ich zwei davon.

(Dort zu sehen)

Die Kugelventile sind dreiadrig, sodaß sie je nachdem welche Ader Strom bekommt offen oder zu sind. (Sie nehmen in Endposition keine Leistung mehr auf)

Meine technischen Mentoren M. und N. sind dann gleich auf die Idee gekommen, das fertig Bauteile ohne Modifizierung nicht einbaufähig sind (wäre ja langweilig)

Zwei ESPs nebeneinander sind ja unnötig. Allerdings ist der ESP-8266-1 sehr beschränkt was die Anzahl der Pins betrifft. Glücklicherweise ist das Board sinnvoll ausgebaut, und nutzt nur einen Pin und übergibt ein rx tx Signal an einen zweiten Microcontroller auf dem Board. Also schnell mal den zweiten Controller an den zweiten pin des ESP gehängt. (N. hat das ganze dann Softwaremäßig kompensiert)

Die Ventile werden mit 12V betrieben die nach diesem Umbau vom Board geliefert werden.

Um meine sieben Ventile mit nur einem Relais zu bedienen musste dann noch das Relais so verkabelt werden, dass entweder NO oder NC je nach Schaltzustand Strom haben.


M. hat dann erst mal den Kontakt desCOM Eingang mittels einer Bohrmaschine getrennt. (genialer Einfall) Danach wurde hinter der Unterbrechung die Masse des Boards an die COM Leitung gelegt. Vor der Unterbrechung (Bohrung Bild) wurde die Spannung vom Board an COM gelegt.

Dadurch schaltet das Relais jetzt 12v entweder auf NC oder NO.

Danke M.

Progamm

Die Programmierarbeit mit ESP Home ist normalerweise leichter als ein Kinderspiel.

als BSP so in etwa: sensor:

 - platform: ultrasonic
   unit_of_measurement: "%"
   icon: "mdi:water-percent"
   trigger_pin: D2
   echo_pin: D1
   update_interval: 5s
   name: "Ultrasonic Sensor"

(mehr ist es nicht - wirklich)

In diesem Fall leider nicht ganz.
Da die Relais über UART angesprochen werden, muss dem ESP noch gesagt werden, welchen der beiden Pins er jetzt verwenden soll.

Das hat N. grandioses geleistet:

uart:

 - id: uart1
   baud_rate: 115200 # speed to STC15L101EW
   tx_pin: GPIO1
 - baud_rate: 115200 # speed to STC15L101EW
   id: uart2
   tx_pin: GPIO2

switch:

 - platform: template
   name: "Zisternen Pumpe"
   id: "R1"
   turn_on_action:
     - switch.turn_on: uart_r1_on
   turn_off_action:
     - switch.turn_on: uart_r1_off
   optimistic: true
 - platform: uart
   id: uart_r1_on
   internal: true
   uart_id: uart1
   data: [0xA0, 0x01, 0x01, 0xA2]
 - platform: uart
   id: uart_r1_off
   internal: true
   uart_id: uart1
   data: [0xA0, 0x01, 0x00, 0xA1]


 - platform: template
   name: "Wasserhahn Zisterne"
   id: "R2"
   turn_on_action:
     - switch.turn_on: uart_r2_on
   turn_off_action:
     - switch.turn_on: uart_r2_off
   optimistic: true
 - platform: uart
   id: uart_r2_on
   internal: true
   uart_id: uart1
   data: [0xA0, 0x02, 0x01, 0xA3]
 - platform: uart
   id: uart_r2_off
   internal: true
   uart_id: uart1
   data: [0xA0, 0x02, 0x00, 0xA2]
 - platform: template
   name: "Wasserhahn Mitte"
   id: "R3"
   turn_on_action:
     - switch.turn_on: uart_r3_on
   turn_off_action:
     - switch.turn_on: uart_r3_off
   optimistic: true
 - platform: uart
   id: uart_r3_on
   internal: true
   uart_id: uart1
   data: [0xA0, 0x03, 0x01, 0xA4]
 - platform: uart
   id: uart_r3_off
   internal: true
   uart_id: uart1
   data: [0xA0, 0x03, 0x00, 0xA3]
 - platform: template
   name: "R4"
   id: "R4"
   turn_on_action:
     - switch.turn_on: uart_r4_on
   turn_off_action:
     - switch.turn_on: uart_r4_off 
   optimistic: true
 - platform: uart
   id: uart_r4_on
   internal: true
   uart_id: uart1
   data: [0xA0, 0x04, 0x01, 0xA5]
 - platform: uart
   id: uart_r4_off
   internal: true
   uart_id: uart1
   data: [0xA0, 0x04, 0x00, 0xA4]
   
 - platform: template
   name: "R5"
   id: "R5"
   turn_on_action:
     - switch.turn_on: uart_r5_on
   turn_off_action:
     - switch.turn_on: uart_r5_off
   optimistic: true
 - platform: uart
   id: uart_r5_on
   internal: true
   uart_id: uart2
   data: [0xA0, 0x01, 0x01, 0xA2]
 - platform: uart
   id: uart_r5_off
   internal: true
   uart_id: uart2
   data: [0xA0, 0x01, 0x00, 0xA1]


 - platform: template
   name: "R6"
   id: "R6"
   turn_on_action:
     - switch.turn_on: uart_r6_on
   turn_off_action:
     - switch.turn_on: uart_r6_off
   optimistic: true
 - platform: uart
   id: uart_r6_on
   internal: true
   uart_id: uart2
   data: [0xA0, 0x02, 0x01, 0xA3]
 - platform: uart
   id: uart_r6_off
   internal: true
   uart_id: uart2
   data: [0xA0, 0x02, 0x00, 0xA2]
 - platform: template
   name: "R7"
   id: "R7"
   turn_on_action:
     - switch.turn_on: uart_r7_on
   turn_off_action:
     - switch.turn_on: uart_r7_off
   optimistic: true
 - platform: uart
   id: uart_r7_on
   internal: true
   uart_id: uart2
   data: [0xA0, 0x03, 0x01, 0xA4]
 - platform: uart
   id: uart_r7_off
   internal: true
   uart_id: uart2
   data: [0xA0, 0x03, 0x00, 0xA3]
 - platform: template
   name: "R8"
   id: "R8"
   turn_on_action:
     - switch.turn_on: uart_r8_on
   turn_off_action:
     - switch.turn_on: uart_r8_off 
   optimistic: true
 - platform: uart
   id: uart_r8_on
   internal: true
   uart_id: uart2
   data: [0xA0, 0x04, 0x01, 0xA5]
 - platform: uart
   id: uart_r8_off
   internal: true
   uart_id: uart2
   data: [0xA0, 0x04, 0x00, 0xA4]

So können jetzt alle Relais mit nur einem ESP angesprochen werden.

Endmontage

Jetzt muss nur noch die Masse vom Kugelventil in den COM geschraubt und die beiden Phasen in NO un NC geschraubt werden. Dann fängt die fricklei mit Home Assistant Automationen an.