Bonjour,
J’ai un peu de mal avec la syntaxe YAML…
Sous ESP-Home je souhaite réaliser un programmateur d’arrosage. Après m’être inspiré de ce qui existait déjà j’ai réussi a avoir quelque chose de fonctionnel :
esphome:
name: progpotager
friendly_name: progPotager
esp32:
board: esp32dev
framework:
type: arduino
# Enable logging
logger:
# Enable Home Assistant API
api:
encryption:
key: "XXXXX"
ota:
password: "XXXXX"
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
manual_ip:
static_ip: 192.168.0.43
gateway: 192.168.0.1
subnet: 255.255.255.0
dns1: 192.168.0.1
fast_connect: true
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "ProgPotager Hotspot"
password: "XXXXX"
captive_portal:
web_server:
port: 80
ota: false
# WIFI / Systeme
time:
- platform: sntp
id: sntp_time
timezone: Europe/Paris
servers:
- ntp.laas.fr
- ntp1.onecert.fr
- ntp.univ-rennes2.fr
on_time:
- seconds: 0
minutes: 20
hours: 6
days_of_week: 1-7
then:
- sprinkler.start_full_cycle: sprinkler_ctrlr
text_sensor:
- platform: template
name: "Current time"
lambda: |-
char str[17];
time_t currTime = id(sntp_time).now().timestamp;
strftime(str, sizeof(str), "%Y-%m-%d %H:%M", localtime(&currTime));
return { str };
update_interval: 60s
binary_sensor:
- platform: status
name: "ProgJardin Status"
number:
- platform: template
name: "Heure"
optimistic: true
min_value: 0
max_value: 23
step: 1
id: heure_prog
- platform: template
name: "Minutes"
optimistic: true
min_value: 0
max_value: 59
step: 1
id: minute_prog
- platform: template
name: "Durée circuit 1"
optimistic: true
min_value: 0
max_value: 59
step: 1
id: duree_circuit_1
- platform: template
name: "Durée circuit 2"
optimistic: true
min_value: 0
max_value: 59
step: 1
id: duree_circuit_2
- platform: template
name: "Durée circuit 3"
optimistic: true
min_value: 0
max_value: 59
step: 1
id: duree_circuit_3
- platform: template
name: "Durée circuit 4"
optimistic: true
min_value: 0
max_value: 59
step: 1
id: duree_circuit_4
- platform: template
name: "Durée circuit 5"
optimistic: true
min_value: 0
max_value: 59
step: 1
id: duree_circuit_5
sensor:
# Qualité du signal
- platform: wifi_signal
name: "Signal Wifi"
update_interval: 60s
# Temps de fonctionnement
- platform: uptime
name: "Allumé depuis (s)"
id: uptime_sec
- platform: adc
pin: GPIO36
name: "Tension Panneau"
filters:
- multiply: 3.5
update_interval: 60s
- platform: adc
pin: GPIO39
name: "Tension Batterie"
filters:
- multiply: 3
update_interval: 60s
switch:
# Bouton de redémarrage
- platform: restart
name: "Redémarrage"
# GPIO vers Relais : switches
- platform: gpio
name: "ProgJardin Relay 1"
pin: GPIO15
inverted: True
internal: True
id: switch_r1
- platform: gpio
name: "ProgJardin Relay 2"
pin: GPIO2
inverted: True
internal: True
id: switch_r2
- platform: gpio
name: "ProgJardin Relay 3"
pin: GPIO4
inverted: True
internal: True
id: switch_r3
- platform: gpio
name: "ProgJardin Relay 4"
pin: GPIO16
inverted: True
internal: True
id: switch_r4
- platform: gpio
name: "ProgJardin Relay 5"
pin: GPIO17
inverted: True
internal: True
id: switch_r5
- platform: gpio
name: "ProgJardin Relay 6"
pin: GPIO5
inverted: True
internal: True
id: switch_r6
- platform: gpio
name: "ProgJardin Relay 7"
pin: GPIO18
inverted: True
internal: True
id: switch_r7
- platform: gpio
name: "ProgJardin Relay 8"
pin: GPIO19
inverted: True
internal: True
id: switch_r8
# Programateur
sprinkler:
- id: sprinkler_ctrlr
main_switch: "Sprinklers"
auto_advance_switch: "Sprinklers Auto Advance"
standby_switch: "StandBy"
valve_overlap: 1s
valves:
- valve_switch: "Circuit gauche"
enable_switch: "Active circuit Gauche"
run_duration: 10s
valve_switch_id: switch_r1
- valve_switch: "Circuit droit"
enable_switch: "Active circuit Droit"
run_duration: 10s
valve_switch_id: switch_r2
- valve_switch: "Circuit Courges"
enable_switch: "Active circuit Courges"
run_duration: 10s
valve_switch_id: switch_r3
- valve_switch: "Circuit Pergola"
enable_switch: "Active circuit Pergola"
run_duration: 10s
valve_switch_id: switch_r4
- valve_switch: "Circuit Patates"
enable_switch: "Active circuit Patates"
run_duration: 10s
valve_switch_id: switch_r5
Pour résumer le fonctionnement, j’ai 5 circuits d’arrosage (jusqu’a 8 possibles). Une fois l’heure de début d’arrosage atteinte les 5 circuits s’activent les uns aprés les autres.
Par contre maintenant j’aimerais pouvoir régler l’heure de début d’arrosage dans l’interface ainsi que la durée de chaque circuit.
Par exemple avec 2 input_number (1 pour l’heure l’autre pour les minutes) et 1 input_number par circuit.
Mais je n’ai aucune idée de comment « lier » les inputs_numbers avec les variables minute,hour ou run_duration.
François