Automatização da rega do jardim


(Bruno Melo) #1

Boa tarde, hoje vou cá deixar o meu projecto que realizei para a automação da rega do meu jardim.
O material usado foi: um sonoff 4ch pro r2, um transformador, caixa de um quadro eletrico e as eletroválvulas que já cá existiam.
Então comecei por flashar o sonoff conforme toturial da casa (📑 Como flashar de forma simples qualquer ESP).
Depois comecei por chantar as ligacões,

https://www.dropbox.com/s/2g8a9nkkuhs9w4z/IMG_20181122_124814.jpg

https://www.dropbox.com/s/n4l5vfwbcsdb111/IMG_20181122_125436.jpg

Depois instalei a caixa de quadro em que o sonoff tem apoios para la encaixar e tudo.

https://www.dropbox.com/s/f3go9dsbttcptd5/IMG_20181125_114446.jpg

depois das ligações feitas ficou com este aspecto.

https://www.dropbox.com/s/a0xaf167dksyxd5/IMG_20181125_115958.jpg

https://www.dropbox.com/s/7gaevxengams87h/IMG_20181125_120503.jpg

Agora vamos as configurações da parte do HASSIO:
primeiro criei os switch

switch:

  - platform: mqtt
    name: "zona 1"
    state_topic: "stat/rega/POWER1"
    command_topic: "cmnd/rega/power1"
    availability_topic: "tele/rega/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    
    
  - platform: mqtt
    name: "zona 2"
    state_topic: "stat/rega/POWER2"
    command_topic: "cmnd/rega/power2"
    availability_topic: "tele/rega/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true
    
  - platform: mqtt
    name: "zona 3"
    state_topic: "stat/rega/POWER3"
    command_topic: "cmnd/rega/power3"
    availability_topic: "tele/rega/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true
    
  - platform: mqtt
    name: "zona 4"
    state_topic: "stat/rega/POWER4"
    command_topic: "cmnd/rega/power4"
    availability_topic: "tele/rega/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"
    retain: true

Depois como uso packages criei um ficheiro rega.yaml com a seguinte automação:

homeassistant:

###############################################################################
#                                                                             #
#                           C U S T O M I Z E                                 #
#                                                                             #
###############################################################################

###############################################################################
#                                                                             #
#                           S C R I P T S                                     #
#                                                                             #
###############################################################################
script:
  zona_rega_1:
    sequence:
      - service: switch.turn_on
        entity_id: switch.zona_1
      - delay: '00:20:00'
      - service: switch.turn_off
        entity_id: switch.zona_1
        
  zona_rega_2:
    sequence:
      - service: switch.turn_on
        entity_id: switch.zona_2
      - delay: '00:20:00'
      - service: switch.turn_off
        entity_id: switch.zona_2
        
  zona_rega_3:
    sequence:
      - service: switch.turn_on
        entity_id: switch.zona_3
      - delay: '00:20:00'
      - service: switch.turn_off
        entity_id: switch.zona_3
        
  zona_rega_4:
    sequence:
      - service: switch.turn_on
        entity_id: switch.zona_4
      - delay: '00:20:00'
      - service: switch.turn_off
        entity_id: switch.zona_4

###############################################################################
#                                                                             #
#                         INPUT   BOOLEAN                                     #
#                                                                             #
###############################################################################      

###############################################################################
#                                                                             #
#                           A U T O M A Ç Õ E S                               #
#                                                                             #
###############################################################################   
automation:

  - alias: Regar Zona 1
    trigger:
      - platform: time
        at: '06:00:00'
    condition:
      - condition: time
        weekday:
          - mon
          - wed
          - fri
          - sun
    action:
      - service: script.turn_on
        data:
          entity_id: script.zona_rega_1
          
  - alias: Regar Zona 2
    trigger:
      - platform: time
        at: '06:20:02'
    condition:
      - condition: time
        weekday:
          - mon
          - wed
          - fri
          - sun
    action:
      - service: script.turn_on
        data:
          entity_id: script.zona_rega_2
          
  - alias: Regar Zona 3
    trigger:
      - platform: time
        at: '06:40:04'
    condition:
      - condition: time
        weekday:
          - mon
          - wed
          - fri
          - sun
    action:
      - service: script.turn_on
        data:
          entity_id: script.zona_rega_3
          
  - alias: Regar Zona 4
    trigger:
      - platform: time
        at: '07:00:06'
    condition:
      - condition: time
        weekday:
          - mon
          - wed
          - fri
          - sun
    action:
      - service: script.turn_on
        data:
          entity_id: script.zona_rega_4
   
###############################################################################
#                                                                             #
#                           L U Z E S                                         #
#                                                                             #
###############################################################################  

###############################################################################
#                                                                             #
#                         G R O U P S                                         #
#                                                                             #
###############################################################################      

group:

  Switch Rega:
    control: hidden
    entities:
      - switch.zona_1
      - switch.zona_2
      - switch.zona_3
      - switch.zona_4
      
  Scripts Rega:
    control: hidden
    entities:
      - script.zona_rega_1
      - script.zona_rega_2
      - script.zona_rega_3
      - script.zona_rega_4
      
  Automações:
    control: hidden
    entities:
      - automation.Regar_Zona_1
      - automation.Regar_Zona_2
      - automation.Regar_Zona_3
      - automation.Regar_Zona_4
      
    
  Rega do jardim:
    view: yes
    name: Rega do Jardim
    entities:
      - group.switch_rega
      - group.scripts_rega
      - group.automacoes

E pronto, espero que vos seja util.


(Jorge Assunção) #2

@maxcalavera está um óptimo trabalho!

Apenas a apontar que o transformador deveria estar dentro do quadro eléctrico para ficar mais protegido.


(Luís Miguel Andrade) #3

@maxcalavera

Fico satisfeito por ver que os esclarecimentos da thread que colocaste na categoria das dúvidas obteve resultados.

Obrigado por partilhares o teu projeto!


(Rodolfo) #4

Bom trabalho @maxcalavera vejo que estás empenhado, agora com o HA, essas árvores já vão dar mais fruto, e a relva vai crescer muito mais :wink:


(Bruno Melo) #5

@j_assuncao, obrigado pela dica pois não pensei nisso. Mas com certeza irei fazer isso sem dúvidas. @Luis_Andrade sim é verdade, agradeço-te desde já toda a ajuda prestada.
@RodolfoVieira sim, tento fazer os meus máximos para aprender mais e melhor, embora isto das automações não seja assim tão facil…hihihihihi.
Quero deixar um agradecimento ao fórum por toda a ajuda e paciência disponibilizada para comigo. Sem vocês nunca tinha conseguido realizar este projecto. Muito obrigado por tudo pessoal. Abraço


(Jorge Assunção) #6

Estamos cá para ajudar no que pudermos e soubermos.

Venham daí mais projectos!


(Bruno Melo) #7

Boas malta, entretanto lembrei-me de um importante pormenor que foi o que me levou a concretizar este projecto, “SENSOR DE CHUVA”.
Estava a pensar integrar com o sensor de inundações da xiaomi mas estou aberto a novas sugestões. Se alguem tier uma sugestão melhor!!!
Obrigado e cumps


(Rodolfo) #8

Tens aqui uma ideia.


(Bruno Melo) #9

Está muito fixe @RodolfoVieira, estava com medo que o sensor ao sol resequisse os plásticos e se desfizesse. Assim dá-me outra ideia interessante… Obrigado pela sugestão. Já agora sabes onde poderei comprar uma placa daquelas? Achas que este dá?

https://m-pt.gearbest.com/other-accessories/pp_609049.html?wid=1433363&currency=EUR&vip=14577034&gclid=Cj0KCQiAuf7fBRD7ARIsACqb8w4YOakKTVibdtl7diK1e_jiEvglnSqXyDQOO_GsjsQQk39-EK8AdYUaAvwqEALw_wcB


(Rodolfo) #10

Sim dá. esse dá perfeitamente.


(Bruno Melo) #11

Obrigado @RodolfoVieira, já fiz a compra. Depois posto o resultado final.


(Ricardo Reis) #12

O que é que acontece se o sonoff perder ligação com o mqtt broker durante a rega? Fica a rega ligada até obter ligação?
Aconselho a determinares o pulsetime para cada zona de rega. Assim chegando aquele tempo, tendo o comando para desligar ou não ele desliga.


(Bruno Melo) #13

@ricreis394, ainda bem que pensaste nisso. De facto se a net falha é provável que a rega continue a regar. Vou mesmo criar um pulsetime para cada relé. Já agora, o pulsetime tem de ser convertido para milisegundos ou posso configurar em segundos?


(Ricardo Reis) #14

Set PulseTime for relay<x> with 1 seconds increment starting with 12 seconds (add 100 to desired interval in seconds, e.g. 113 = 13 seconds and 220 = 120 seconds)

pelo que entendo. A partir dos 12 segundos para cima, tens de acrescentar 100 ao valor que queres. Por exemplo, se queres 20 minutos, equivale a 1200 segundos. Acrescentando 100 = 1300
Penso que é isto


(Bruno Melo) #15

Obrigado @ricreis394, vou testar a ver o que sai daqui. E se calhar sendo assim não vou necessitar dos scripts. Tenho também de alterar o código. Obrigado pela dica.


(Ricardo Reis) #16

Aconselho usar o script, assim cada vez que precisares de alterar alguma configuração, fazes sempre num só sistema. O pulsetime é apenas uma segurança.

Há uns meses atrás também dediquei parte do meu tempo a programar um sistema de rega no HA. Entretanto ficou parado devido a falta de motivação e outros projetos meteram-se à frente.

Mas deixo aqui uma print para teres uma ideia:

Em vez das configurações de tempo e etc estarem no código, coloquei inputs para ser mais user friendly.

Usei um wemos d1 mini com 4 relés a ligar diretamente às electroválvulas.


(Bruno Melo) #17

@ricreis394 isso que aí tens está brutal, mas eu ainda não cheguei a esse nível. Não faço ideia de como configurar isso tudo… Hihihihihihi
Já agora só uma observação, em caso de falha de net o HA não continua a trabalhar na mesma por estar dentro da rede embora sem net? Nesse caso não seria necessário o pulsetime… Estou a pensar mal?


(Ricardo Reis) #18

O google ajuda nisso tudo :smiley:

O problema não é a net exterior falhar, e se o AP por alguma razão deixa de funcionar. Ou se o servidor onde está o HA perde a ligação à LAN?


(Bruno Melo) #19

Realmente há vários fatores em torno disso. Acho que vou mesmo seguir o teu conselho só por segurança.
Já agora, não me queres seder o teu yaml para eu estudar essa configuração? :grin:


(system) fechado #20

Este tópico foi automaticamente fechado 90 dias após a última resposta. Novas respostas não são permitidas.