Segundo projecto de rega automática


(Bruno Melo) #41

@cafeoliveira já fizeste as alterações? Agora tem de funcionar… Abraço


(Alexandre Oliveira) #42

ja fiz a alteracao no garden_irrigation.yaml , mas continua sem fazer nada na hora marcada…

a minha config está assim: garden_globals.yaml

#================
#=== Input_Texts
#================
input_text:
  cycle1_current_zone:
    name: Cycle 1 current zone

  cycle2_current_zone:
    name: Cycle 2 current zone


#==================
#=== Input_Selects
#==================
input_select:

  cycle1_watering_days:
    name: Dias de rega ciclo da manhã
    options:
      - 'Diário'
      - 'Alternado'
    icon: mdi:calendar

  cycle2_watering_days:
    name: Dias de rega ciclo da tarde
    options:
      - 'Diário'
      - 'Alternado'
    icon: mdi:calendar

  cycle1_schedule_time:
    name: Horário ciclo de rega da manhã
    options:
      - '04:00'
      - '04:30'
      - '05:00'
      - '05:30'
      - '06:00'
      - '06:30'
      - '07:00'
      - '07:30'
      - '08:00'
    icon: mdi:alarm

  cycle2_schedule_time:
    name: Horário ciclo de rega da tarde
    options:
      - '15:25'
      - '15:30'
      - '15:35'
      - '21:30'
      - '22:00'
      - '22:30'
      - '23:00'
      - '23:30'
    icon: mdi:alarm

#==================
#=== Input_Numbers
#==================
input_number:

  # CYCLE 1
  cycle1_zone1_duration:
    name: Zona 1 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle1_zone2_duration:
    name: Zona 2 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle1_zone3_duration:
    name: Zona 3 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle1_zone4_duration:
    name: Zona 4 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  # CYCLE 2
  cycle2_zone1_duration:
    name: Zona 1 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle2_zone2_duration:
    name: Zona 2 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer  

  cycle2_zone3_duration:
    name: Zona 3 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle2_zone4_duration:
    name: Zona 4 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

#===================
#=== Input_Booleans
#===================
input_boolean:

  cycle1_enable:
    name: Activar rega automática
    icon: mdi:pipe
    
  cycle2_enable:
    name: Activar rega automática
    icon: mdi:pipe

  cycle1_manual_run:
    name: Ligar rega manual
    icon: mdi:arrow-right-drop-circle

  cycle2_manual_run:
    name: Ligar rega manual
    icon: mdi:arrow-right-drop-circle

  cycle1_running:
    name: Ciclo da manhã ligado

  cycle2_running:
    name: Ciclo da tarde ligado


#====================
#=== Input_Datetimes
#====================
input_datetime:
  cycle1_next_run_time:
    has_date: true
    has_time: true

  cycle2_next_run_time:
    has_date: true
    has_time: true

  last_irrigated_time:
    has_date: true
    has_time: true


#===========
#=== timers
#===========
timer:
  cycle1_zone_duration:
    name: Tempo restante

  cycle2_zone_duration:
    name: Tempo restante

#============
#=== Binary Sensor
#============
binary_sensor:
  - platform: mqtt
    state_topic: "rega/zone1_button"
    name: "Zone 1 Button"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    state_topic: "rega/zone2_button"
    name: "Zone 2 Button"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    state_topic: "rega/zone3_button"
    name: "Zone 3 Button"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    state_topic: "rega/zone4_button"
    name: "Zone 4 Button"
    payload_on: "on"
    payload_off: "off"

#============
#=== Sensors
#============
sensor:
  - platform: template
    sensors:
      rain_sensor:
        friendly_name: "Sensor de Chuva"
        value_template: >-
          {% if is_state('binary_sensor.water_leak_sensor_158d00024bc707', 'off') %}       
            Sol
          {% else %}
            Chuva
          {% endif %}
        icon_template: >-
          {% if is_state('binary_sensor.water_leak_sensor_158d00024bc707', 'off') %}      
            mdi:weather-sunny
          {% else %}
            mdi:weather-rainy
          {% endif %}
  - platform: template
    sensors:

      cycle1_next_run_time:
        friendly_name: "Próximo Agendamento"
        value_template: >
          {% if is_state('input_boolean.cycle1_enable', 'on') %}
            {{ (as_timestamp(states.input_datetime.cycle1_next_run_time.state)) | timestamp_custom("%a %d %h at %H:%M") }}
          {% else %}
            Sem Agenda
          {% endif %}
      cycle2_next_run_time:
        friendly_name: "Próximo Agendamento"
        value_template: >
          {% if is_state('input_boolean.cycle2_enable', 'on') %}
            {{ (as_timestamp(states.input_datetime.cycle2_next_run_time.state)) | timestamp_custom("%a %d %h at %H:%M") }}
          {% else %}
            Sem Agenda
          {% endif %}

      cycle1_running:
        friendly_name: "Ciclo da manhã"
        value_template: >
          {% if is_state('input_boolean.cycle1_running', 'on') %}
            A Regar
          {% else %}
            Desligado
          {% endif %}     
        icon_template: >
          {% if is_state('input_boolean.cycle1_running', 'on') %}
            mdi:run
          {% else %}
            mdi:human-handsdown
          {% endif %}     
          
      cycle2_running:
        friendly_name: "Ciclo da tarde"
        value_template: >
          {% if is_state('input_boolean.cycle2_running', 'on') %}
            A Regar
          {% else %}
            Desligado
          {% endif %}     
        icon_template: >
          {% if is_state('input_boolean.cycle2_running', 'on') %}
            mdi:run
          {% else %}
            mdi:human-handsdown
          {% endif %}

      zone1_status:
        friendly_name: "Eletróvalvula Zona 1"
        value_template: >
          {% if is_state('switch.zone1_valve', 'on') %}
            Aberta
          {% else %}
            Fechada
          {% endif %}     
        icon_template: >
          {% if is_state('switch.zone1_valve', 'on') %}
            mdi:pipe
          {% else %}
            mdi:pipe-disconnected
          {% endif %}     
      zone2_status:
        friendly_name: "Eletróvalvula Zona 2"
        value_template: >
          {% if is_state('switch.zone2_valve', 'on') %}
            Aberta
          {% else %}
            Fechada
          {% endif %}     
        icon_template: >
          {% if is_state('switch.zone2_valve', 'on') %}
            mdi:pipe
          {% else %}
            mdi:pipe-disconnected
          {% endif %}     
      zone3_status:
        friendly_name: "Eletróvalvula Zona 3"
        value_template: >
          {% if is_state('switch.zone3_valve', 'on') %}
            Aberta
          {% else %}
            Fechada
          {% endif %}     
        icon_template: >
          {% if is_state('switch.zone3_valve', 'on') %}
            mdi:pipe
          {% else %}
            mdi:pipe-disconnected
          {% endif %}     
      zone4_status:
        friendly_name: "Eletróvalvula Zona 4"
        value_template: >
          {% if is_state('switch.zone4_valve', 'on') %}
            Aberta
          {% else %}
            Fechada
          {% endif %}     
        icon_template: >
          {% if is_state('switch.zone4_valve', 'on') %}
            mdi:pipe
          {% else %}
            mdi:pipe-disconnected
          {% endif %}     

      cycle1_zone_being_watered:
        friendly_name: "Zona a Regar"
        value_template: "{{ states('input_text.cycle1_current_zone') }}" 
        
      cycle2_zone_being_watered:
        friendly_name: "Zona a Regar"
        value_template: "{{ states('input_text.cycle2_current_zone') }}" 

      last_irrigated_time:
        friendly_name: "Último ciclo de rega"
        value_template: >
          {{ (as_timestamp(states.input_datetime.last_irrigated_time.state)) | timestamp_custom("%a %d %h at %H:%M") }}
        
      # Zone Times - templated on history_stats sensors
      zone1_time_today:
        friendly_name: Zona 1, tempo total de rega diária
        value_template: >
          {% set duration = states('sensor.zone1_time') %}
          {{ duration|float|multiply(60)|round }}
        unit_of_measurement: minutes

      zone2_time_today:
        friendly_name: Zona 2, tempo total de rega diária
        value_template: >
          {% set duration = states('sensor.zone2_time') %}
          {{ duration|float|multiply(60)|round }}
        unit_of_measurement: minutes
        
      zone3_time_today:
        friendly_name: Zona 3, tempo total de rega diária
        value_template: >
          {% set duration = states('sensor.zone3_time') %}
          {{ duration|float|multiply(60)|round }}
        unit_of_measurement: minutes
        
      zone4_time_today:
        friendly_name: Zona 4, tempo total de rega diária
        value_template: >
          {% set duration = states('sensor.zone4_time') %}
          {{ duration|float|multiply(60)|round }}
        unit_of_measurement: minutes

  # History sensors
  # Zone Times
  - platform: history_stats
    name: zone1_time
    entity_id: switch.zone1_valve
    state: 'on'
    type: time
    start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
    end: '{{ now() }}'

  - platform: history_stats
    name: zone2_time
    entity_id: switch.zone2_valve
    state: 'on'
    type: time
    start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
    end: '{{ now() }}'

  - platform: history_stats
    name: zone3_time
    entity_id: switch.zone3_valve
    state: 'on'
    type: time
    start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
    end: '{{ now() }}'

  - platform: history_stats
    name: zone4_time
    entity_id: switch.zone4_valve
    state: 'on'
    type: time
    start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
    end: '{{ now() }}'

#=============
#=== Switches
#=============
switch:

  # Zone 1
  - platform: mqtt
    name: "Zone1 valve"
    state_topic: "stat/rega1/POWER"
    command_topic: "cmnd/rega1/power"
    availability_topic: "tele/rega1/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"

  # Zone 2
  - platform: mqtt
    name: "Zone2 valve"
    state_topic: "stat/rega2/POWER"
    command_topic: "cmnd/rega2/power"
    availability_topic: "tele/rega2/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"

  # Zone 3
  - platform: mqtt
    name: "Zone3 valve"
    state_topic: "stat/rega/POWER3"
    command_topic: "cmnd/rega/power3"
    availability_topic: "tele/rega/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"

  # Zone 4
  - platform: mqtt
    name: "Zone4 valve"
    state_topic: "stat/rega/POWER4"
    command_topic: "cmnd/rega/power4"
    availability_topic: "tele/rega/LWT"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    payload_available: "Online"
    payload_not_available: "Offline"

(Alexandre Oliveira) #43

qaundo ativo a rega automatica o estado do ciclo nao devia mudar de estado…???


(Bruno Melo) #44

@cafeoliveira nao. Esse estado só muda depois da rega começar. Deve de estar a arrancar.


(Alexandre Oliveira) #45

e não é que arrancou mesmo…:slight_smile:

parece que ja deu sinais de vida…

vou aqui fazer uns testes…lol

obrigado


(Bruno Melo) #46

Ainda bem que conseguiste. Esse estado indica qual a zona que está a ser regada e o tempo restante para acabar a rega dessa zona e assim sucessivamente. O estado do ciclo passa “A regar” quando a rega é iniciada. O meu proximo agendamento já mudou para quarta feita as 23h


(Bruno Melo) #47

@cafeoliveira

Alexandre Oliveiracafeoliveira

11h

ja fiz a alteracao no garden_irrigation.yaml , mas continua sem fazer nada na hora marcada…

a minha config está assim: garden_globals.yaml

#================
#=== Input_Texts
#================
input_text:
  cycle1_current_zone:
    name: Cycle 1 current zone

  cycle2_current_zone:
    name: Cycle 2 current zone


#==================
#=== Input_Selects
#==================
input_select:

  cycle1_watering_days:
    name: Dias de rega ciclo da manhã
    options:
      - 'Diário'
      - 'Alternado'
    icon: mdi:calendar

  cycle2_watering_days:
    name: Dias de rega ciclo da tarde
    options:
      - 'Diário'
      - 'Alternado'
    icon: mdi:calendar

  cycle1_schedule_time:
    name: Horário ciclo de rega da manhã
    options:
      - '04:00'
      - '04:30'
      - '05:00'
      - '05:30'
      - '06:00'
      - '06:30'
      - '07:00'
      - '07:30'
      - '08:00'
    icon: mdi:alarm

  cycle2_schedule_time:
    name: Horário ciclo de rega da tarde
    options:
      - '15:25'
      - '15:30'
      - '15:35'
      - '21:30'
      - '22:00'
      - '22:30'
      - '23:00'
      - '23:30'
    icon: mdi:alarm

#==================
#=== Input_Numbers
#==================
input_number:

  # CYCLE 1
  cycle1_zone1_duration:
    name: Zona 1 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle1_zone2_duration:
    name: Zona 2 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle1_zone3_duration:
    name: Zona 3 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle1_zone4_duration:
    name: Zona 4 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  # CYCLE 2
  cycle2_zone1_duration:
    name: Zona 1 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle2_zone2_duration:
    name: Zona 2 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer  

  cycle2_zone3_duration:
    name: Zona 3 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

  cycle2_zone4_duration:
    name: Zona 4 duração
    min: 0
    max: 30
    step: 1
    icon: mdi:camera-timer

#===================
#=== Input_Booleans
#===================
input_boolean:

  cycle1_enable:
    name: Activar rega automática
    icon: mdi:pipe
    
  cycle2_enable:
    name: Activar rega automática
    icon: mdi:pipe

  cycle1_manual_run:
    name: Ligar rega manual
    icon: mdi:arrow-right-drop-circle

  cycle2_manual_run:
    name: Ligar rega manual
    icon: mdi:arrow-right-drop-circle

  cycle1_running:
    name: Ciclo da manhã ligado

  cycle2_running:
    name: Ciclo da tarde ligado


#====================
#=== Input_Datetimes
#====================
input_datetime:
  cycle1_next_run_time:
    has_date: true
    has_time: true

  cycle2_next_run_time:
    has_date: true
    has_time: true

  last_irrigated_time:
    has_date: true
    has_time: true


#===========
#=== timers
#===========
timer:
  cycle1_zone_duration:
    name: Tempo restante

  cycle2_zone_duration:
    name: Tempo restante

#============
#=== Binary Sensor
#============
binary_sensor:
  - platform: mqtt
    state_topic: "rega/zone1_button"
    name: "Zone 1 Button"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    state_topic: "rega/zone2_button"
    name: "Zone 2 Button"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    state_topic: "rega/zone3_button"
    name: "Zone 3 Button"
    payload_on: "on"
    payload_off: "off"

  - platform: mqtt
    state_topic: "rega/zone4_button"
    name: "Zone 4 Button"
    payload_on: "on"
    payload_off: "off"

Os teus binary sensores estão bem? É que estão iguais aos meus.


(Alexandre Oliveira) #48

Nestes sensores não mudei nada…

Será assim que deve ficar :?

"rega/zone1_button"


(Alexandre Oliveira) #49

Os meus sonoff são os BASIC…Que são 3


(Bruno Melo) #50

Tens que meter o que tens no topic dos sonoff. Tal é qual como nos switch.


(Alexandre Oliveira) #51

Ainda não entendi para que serve os binary sensor…

O topic que eu tenho nos sonoff é assim:

platform: mqtt
    name: "Zone1 valve"
    state_topic: "stat/rega1/POWER"
    command_topic: "cmnd/rega1/power"
    availability_topic: "tele/rega1/LWT"

(Bruno Melo) #52

@cafeoliveira então tens de usar assim…

binary_sensor:
  - platform: mqtt
    state_topic: "rega1/zone1_button"
    name: "Zone 1 Button"
    payload_on: "on"
    payload_off: "off"

(Bruno Melo) #53

@cafeoliveira já funciona essa rega?


(Alexandre Oliveira) #54

Boas…ontem a noite copiei os teus 2 ficheiros… Alterei apenas os topic, programei para as 23h e funcionou, depois programei para as 6:30 e não deu… Não sei o que se passa.


(Bruno Melo) #55

Tenho de ver melhor isso. Aqui está tudo a funcionar. Não percebo.


(Alexandre Oliveira) #56

Para agendar tem alguma sequência

Tipo marcar primeiro a hora e a duração só depois ativar rega automática… Ou algo do género ou é indiferente…
Tenho agendado novamente para as 20h…vou esperar…


(Bruno Melo) #57

É indiferente. Aqui funciona das 2 formas. Se activares a rega manual ela funciona?


(Alexandre Oliveira) #58

Sim. Fiz agora mesmo e ativa logo a zona 1


(Bruno Melo) #59

E o resto das zonas? Mete 1 minuto em todas as zonas e confirma que ele faz a consequência completa. É muito estranho.


(Alexandre Oliveira) #60

Tudo como programado… Funcionou bem