Portão automatico com sonoff SV

Boas malta, como já tinha prometido partilhar o meu projecto aqui vai ele, só não partilhei mais cedo por falta de disponibilidade, então cá vai. Eu escolhi o sonoff SV porque este pode ser alimentado desde os 5V ate aos 24v, que normalmente está na media de voltes que os comandos usam.
Então começamos por flashar o sonoff SV conforme tutorial do nosso membro @RodolfoVieira já explicou.
Depois disso vamos alterar o sonoff para dry contact. Vamos então eliminar os seguintes componentes…

https://drive.google.com/file/d/1iSvYaWoJrCBAcpLpG7XrrTXnhgRTYPgP/view?usp=sharing

https://drive.google.com/file/d/1z9imJT1vSEsST-ZLubWMAKGNiGiunlyW/view?usp=sharing

Depois disso temos de fazer um chante nos seguintes contactos.

https://drive.google.com/file/d/1j_63cbYUmsCSJSWmIFpMywcXIWbc0OkD/view?usp=sharing

https://drive.google.com/file/d/1bLlj_9gnzxYNIg_tPVr30_W-sgEz8fo7/view?usp=sharing

Agora temos de abrir o comando do portão e soldar 2 fios aos contactos do botão que queremos usar.

https://drive.google.com/file/d/1YITjlMGVXPemzfPVFMcdp0aAYDl_4mdw/view?usp=sharing

Após isso feito vamos ligar ao sonoff.

https://drive.google.com/file/d/1z20N_EUjRCeELGOCb5dBu2tEK5KRxDg4/view?usp=sharing

Quem quiser ligar um segundo botão ao sonoff que foi o meu caso acabei por seguir este fantastico tutorial do @RodolfoVieira que está cá no nosso forum. Não se esqueçam que também têm de configurar o pulsetime 1 10 que cria um impulso de 1 segundo que reflete o precionar do botão.

Ficando com este aspecto final. Não está muito bonito mas futuramente irei tentar criar uma caixa para ficar mais protegido.

https://drive.google.com/file/d/1iYM9FKGsYnBq5aDRwinqEHwCj6PbA1Ny/view?usp=sharing

Agora vamos as configurações por parte do HA, partindo do principio que já têm configurado o MQTT.

homeassistant:

###############################################################################
#                                                                             #
#                           C U S T O M I Z E                                 #
#                                                                             #
###############################################################################   
  customize:
    switch.abrir_portao_pequeno:
      friendly_name: Abrir Portão Pequeno
      icon: mdi:garage
    switch.abrir_portao_grande:
      friendly_name: Abrir Portão Grande
      icon: mdi:garage
    switch.fechar_portao:
      friendly_name: Fechar Portão
      icon: mdi:garage
    script.portao_pequeno:
      friendly_name: Portão Pequeno Automático
      icon: mdi:garage
    script.portao_grande:
      friendly_name: Portão Grande Automático
      icon: mdi:garage
    binary_sensor.door_window_sensor_158d0002729eba:
      friendly_name: Portão de Entrada
      icon: mdi:door-open
    switch.iluminacao_das_garagens:
      friendly_name: Interrutor das Garagens
      icon: mdi:power

###############################################################################
#                                                                             #
#                               S E N S O R                                   #
#                                                                             #
############################################################################### 
sensor:
  - platform: template
    sensors:
      portao_entrada:
        friendly_name: "Portão entrada"
        value_template: >-
          {% if is_state('binary_sensor.door_window_sensor_158d0002729eba', 'on') %}
            Aberto
          {% else %}
            Fechado
          {% endif %}
        icon_template: >-
          {% if is_state('binary_sensor.door_window_sensor_158d0002729eba', 'on') %}
            mdi:garage-open
          {% else %}
            mdi:garage
          {% endif %}
###############################################################################
#                                                                             #
#                         S W I T C H  S O N O F F                           #
#                                                                             #
###############################################################################       
switch:
  - platform: mqtt
    name: "Abrir portão grande"
    state_topic: "stat/comandoportao/POWER"
    command_topic: "cmnd/comandoportao/power"
    availability_topic: "tele/comandoportao/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"

  - platform: mqtt
    name: "Abrir portão pequeno"
    state_topic: "stat/comandoportao/POWER2"
    command_topic: "cmnd/comandoportao/power2"
    availability_topic: "tele/comandoportao/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"

  - platform: mqtt
    name: "Fechar Portão"
    state_topic: "stat/comandoportao/POWER2"
    command_topic: "cmnd/comandoportao/power2"
    availability_topic: "tele/comandoportao/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"

  - platform: mqtt
    name: "Iluminação das Garagens"
    state_topic: "stat/iluminacao_garagem/POWER"
    command_topic: "cmnd/iluminacao_garagem/power"
    availability_topic: "tele/iluminacao_garagem/LWT"
    payload_available: "Online"
    payload_not_available: "Offline"
    qos: 1
    payload_on: "ON"
    payload_off: "OFF"

###############################################################################
#                                                                             #
#                         S C R I P T S                                       #
#                                                                             #
###############################################################################      
script:
  portao_grande:
    sequence:
      - service: switch.turn_on
        entity_id: switch.abrir_portao_grande
      - delay: '00:00:50'
      - service: switch.turn_on
        entity_id: switch.fechar_portao

  portao_pequeno:
    sequence:
      - service: switch.turn_on
        entity_id: switch.abrir_portao_pequeno
      - delay: '00:00:50'
      - service: switch.turn_on
        entity_id: switch.fechar_portao

  portao_30:
    sequence:
      - service: switch.turn_on
        entity_id: switch.abrir_portao_pequeno
      - delay: '00:00:06'
      - service: switch.turn_on
        entity_id: switch.fechar_portao
###############################################################################
#                                                                             #
#                           A U T O M A Ç Õ E S                               #
#                                                                             #
###############################################################################   
automation:

#automation zigbee switch

  - alias: Interruptor para abrir portao pequeno single
    initial_state: true
    trigger:
      - platform: event
        event_type: xiaomi_aqara.click
        event_data:
          entity_id: binary_sensor.switch_158d00015aa37d
          click_type: single
    action:
      - service: switch.toggle
        data:
          entity_id: switch.abrir_portao_pequeno


  - alias: Interruptor para abrir portao grande double
    initial_state: true
    trigger:
      - platform: event
        event_type: xiaomi_aqara.click
        event_data:
          entity_id: binary_sensor.switch_158d00015aa37d
          click_type: double
    action:
      - service: switch.toggle
        data:
          entity_id: switch.abrir_portao_grande

  - alias: Interruptor para abrir portão sair a pé
    initial_state: true
    trigger:
      - platform: event
        event_type: xiaomi_aqara.click
        event_data:
          entity_id: binary_sensor.switch_158d00015aa37d
          click_type: long_click_press
    action:
      - service: script.turn_on
        data:
          entity_id: script.portao_30

#automation ilumination garage

  - alias: Ligar Iluminação da garagem
    initial_state: true
    trigger:
      platform: state
      entity_id: binary_sensor.door_window_sensor_158d0002729eba
      from: 'off'
      to: 'on'
    condition:
      condition: or
      conditions:
      - condition: sun
        after: sunset
        after_offset: "+00:15:00"
      - condition: sun
        before: sunrise
    action:
      - service: switch.turn_on
        entity_id: switch.iluminacao_das_garagens

  - alias: Desligar Iluminação da garagem
    initial_state: true
    trigger:
      platform: state
      entity_id: binary_sensor.door_window_sensor_158d0002729eba
      to: 'off'
      for:
        minutes: 2
    action:
      - service: switch.turn_off
        data_template:
          entity_id: switch.iluminacao_das_garagens

#portao esquecido aberto

  - alias: Fechar portão esquecido aberto de manha
    initial_state: true
    trigger:
      platform: state
      entity_id: binary_sensor.door_window_sensor_158d0002729eba
      to: 'on'
      for:
        minutes: '6'
    condition:
      - condition: time
        after: '07:00:00'
        before: '07:40:00'
    action:
      service: switch.turn_on
      entity_id: switch.fechar_portao

  - alias: Fechar portão esquecido aberto noite
    initial_state: true
    trigger:
      platform: state
      entity_id: binary_sensor.door_window_sensor_158d0002729eba
      to: 'on'
      for:
        minutes: '6'
    condition:
      - condition: time
        after: '21:00:00'
        before: '23:00:00'
    action:
      service: switch.turn_on
      entity_id: switch.fechar_portao

#notificações

  - alias: Abertura do portão pequeno
    initial_state: false
    trigger:
      platform: state
      entity_id: script.portao_pequeno
      from: 'off'
      to: 'on'
    action:
      service: notify.telegram
      data:
        message: 'Portão pequeno foi aberto'

  - alias: Abertura do portão grande
    initial_state: false
    trigger:
      platform: state
      entity_id: script.portao_grande
      from: 'off'
      to: 'on'
    action:
      service: notify.telegram
      data:
        message: 'Portão grande foi aberto'

  - alias: Portão Aberto
    initial_state: true
    trigger:
      platform: state
      entity_id: binary_sensor.door_window_sensor_158d0002729eba
      from: 'off'
      to: 'on'
    action:
      service: notify.telegram
      data:
        message: 'Portão Está Aberto'

  - alias: Portão Fechado
    initial_state: true
    trigger:
      platform: state
      entity_id: binary_sensor.door_window_sensor_158d0002729eba
      from: 'on'
      to: 'off'
    action:
      service: notify.telegram
      data:
        message: 'Portão Está Fechado'

#desligar notificações

  - alias: Desligar Notificações portão quando em casa
    initial_state: true
    trigger:
      - platform: state
        entity_id: device_tracker.bruno_melo
        from: 'not_home'
        to: 'home'
    condition:
    - condition: time
      after: '06:50:00'
      before: '07:59:00'
    action:
      - service: automation.turn_off
        entity_id: 
          - automation.portao_aberto
          - automation.portao_fechado

  - alias: Ligar Notificações portão quando fora casa
    initial_state: true
    trigger:
      - platform: state
        entity_id: device_tracker.bruno_melo
        from: 'home'
        to: 'not_home'
    condition:
    - condition: time
      after: '08:00:00'
    action:
      - service: automation.turn_on
        entity_id: 
          - automation.portao_aberto
          - automation.portao_fechado

###############################################################################
#                                                                             #
#                         G R O U P S                                         #
#                                                                             
###############################################################################      
group:

  Abrir e Fechar Manualmente:
    control: hidden
    entities:
       - switch.abrir_portao_grande
       - switch.abrir_portao_pequeno
       - switch.fechar_portao

  Abrir e Fechar Automático 40s:
    control: hidden
    entities:
       - script.portao_grande
       - script.portao_pequeno

  Interruptor Abrir Fechar Portão:
    control: hidden
    entities:
      - automation.interruptor_para_abrir_portao_pequeno_single
      - automation.interruptor_para_abrir_portao_grande_double
      - automation.interruptor_para_abrir_portao_sair_a_pe

  Notificar Abertura Portão:
    control: hidden
    entities:
      - automation.portao_aberto
      - automation.portao_fechado
      - automation.abertura_do_portao_pequeno
      - automation.abertura_do_portao_grande
      - automation.desligar_notificacoes_portao_quando_em_casa
      - automation.ligar_notificacoes_portao_quando_fora_casa

  Automação Portão:
    control: hidden
    entities:      
      - automation.fechar_portao_esquecido_aberto_de_manha
      - automation.fechar_portao_esquecido_aberto_noite
      - automation.ligar_iluminacao_da_garagem
      - automation.desligar_iluminacao_da_garagem

  Interruptor do Portão:
    control: hidden
    entities:
      - binary_sensor.switch_158d00015aa37d

  Interruptor das Garagens:
    control: hidden
    entities:
      - switch.iluminacao_das_garagens

  Estado do Portão Entrada:
    control: hidden
    entities:      
      - binary_sensor.door_window_sensor_158d0002729eba

  portao:
    view: yes
    icon: mdi:gate
    name: Portão
    entities:
      - group.estado_do_portao_entrada
      - group.abrir_e_fechar_manualmente
      - group.abrir_e_fechar_automatico_40s
      - group.interruptor_das_garagens
      - group.interruptor_abrir_fechar_portao
      - group.notificar_abertura_portao
      - group.interruptor_do_portao
      - group.automacao_portao

Malta, esqueci-me do lovelace, aqui está ele.

  - badges: []
    cards:
      - entities:
          - entity: sensor.portao_entrada
        theme: Backend-selected
        title: Portão de Entrada
        type: glance
      - entities:
          - switch.abrir_portao_grande
          - switch.abrir_portao_pequeno
          - switch.fechar_portao
        title: Abrir e Fechar Manualmente
        type: glance
      - entities:
          - script.portao_grande
          - script.portao_pequeno
        title: Abrir e Fechar Automático 40s
        type: glance
      - entities:
          - entity: switch.iluminacao_das_garagens
            icon: 'mdi:lightbulb-on'
            name: Iluminação
            tap_action:
              action: toggle
        title: Garagens
        type: glance
      - columns: 2
        entities:
          - automation.portao_aberto
          - automation.portao_fechado
          - automation.abertura_do_portao_pequeno
          - automation.abertura_do_portao_grande
          - automation.desligar_notificacoes_portao_quando_em_casa
          - automation.ligar_notificacoes_portao_quando_fora_casa
        title: Notificar Abertura Portão
        type: glance
      - columns: 2
        entities:
          - automation.fechar_portao_esquecido_aberto_de_manha
          - automation.fechar_portao_esquecido_aberto_noite
          - automation.ligar_iluminacao_da_garagem
          - automation.desligar_iluminacao_da_garagem
        title: Automação Portão
        type: glance
    icon: 'mdi:gate'
    panel: false
    path: Portão
    title: Portão

E como queria saber o estado do portão coloquei um sensor da xiaomi no mesmo. Depois acabei por colocar um sonoff t1 na garagem que ao abrir o portão acende as luzes da garagem.
Acho que não me estou a esquecer de nada.
Espero que este projeto vos inspire.

3 Curtiram

Muito obrigado pela partilha.

1 Curtiu

@maxcalavera , conseguias hospedar novamente as imagens deste tutorial?
Obrigado

Olá, pois. Isso vai ser um problema. Tenho que ver se ainda tenho as fotos. Logo que consiga vou tentar procurar novamente.


Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade