Info / IoT

Atualizado em 11 mai 2022 17h17

Portão da garagem e social - automatizando com Sonoff 4ch pro

  • URL Curta:
Neste post irei mostrar como automatizar o portão da garagem e social para abrir pela internet ou rede local. Para usar o home assistant pela internet, claro, você deve ter a sua instância exposta na internet.

Uso estes hardwares e configurações já há 2 anos e funciona muito bem, zero abertura acidentais.

Requisitos:
- Portão da garagem e social - sensor aberto/fechado com Sonoff Mini
- Sonoff 4ch pro
- Tasmota
- MQTT
- Home assistant
- Placa de motor rossi
- Fonte 12v.

Posso usar com o firmware original sonoff? Sim, pode mas você deve pegar o manual do mesmo e configurar o inching mode para o respectivo canal. Para o portão da garagem o ideal é entre 0.2-0.5s. O pulso tem que ser rápido, senão o placa do motor fica em loop.

Para o portão social é interessante testar na sua fechadura em quanto tempo ela abre e usar, mas no geral é entre 6-12s.

Posso usar em outras placas de motor? Sim, desde que você ache onde ligar a botoeira e o contato seja seco.

Posso usar os 12v da placa do motor? Sim pode, porém a corrente desta placa é baixa e pelo menos no meu uso, tive que trocar e usar uma fonte de 12v separada de pelo menos 1.5A. Mas tudo depende da instalação de cada casa, tamanho dos fios. Se souber o que está fazendo, teste com os 12v da placa do motor.

Posso usar o sonoff 4ch sem ser o pro ou outro sonoff? Não/Sim, se você transformar os mesmos em contato seco. O uso do sonoff 4ch pro é justamente por ele ter o contato seco. Não use os sonoff com o relé de saída em 127/220v que você irá fritar sua placa de motor e bobina de fechadura.

Instalação
Conforme foto abaixo, a instalação é muito simples:
- Portão de garagem, levar um fio do GND até o COM do sonoff, no canal 4, e do NO levar para a botoeira (BOT).
- Portão social, levar o fio do negativo (-) até o contato da bobina, o positivo (+) até o COM do sonoff, no canal 3, e do NO levar até o outro contato da bobina 12v.

Obs: porquê usar os canais 3 e 4? Por segurança, pois pode acontecer do sonoff 4ch na inicialização ligar o canal 1 (isso pode ocorrer por exemplo se ele perder a config e inicializar como um sonoff basic). Nada impede que use o canal 1 e 2 para lâmpadas ou controlar outros dispositivos.



PowerOnState: por segurança recomendo a configurar o tasmota para inicializar em caso de queda de energia no estado off.
Entrar no web ui do tasmota ir na opção console e digitar o seguinte comando:
PowerOnState 0


Portão da garagem:
Entrar no web ui do tasmota ir na opção console e digitar o seguinte comando:
PulseTime4 10

Esta configuração fará com que o sonoff ligue o canal 4 e imediatamente desligue, dando somente o pulso de 0.10s.

No configuration.yaml (switch:) ou switchs.yaml, configurar o interruptor que irá controlar o portão.

### portao da garagem - botoeira ####
 - platform: mqtt
   name: "portão da garagem"
   state_topic: "stat/4chtopic/RESULT"  
   value_template: "{{ value_json.POWER4 | default }}"
   command_topic: "cmnd/4chtopic/POWER4"
   payload_on: "ON"
   payload_off: "OFF"
   availability_topic: "tele/4chtopic/LWT"
   payload_available: "Online"
   payload_not_available: "Offline"
   qos: 1
   retain: false


No configuration.yaml (cover:) ou covers.yaml, adicionar, lembrar de verificar o nome que você configurou anteriormente para o sensor e colocar o script que você vai usar para abrir e fechar o portão. Se no lugar do script você já quiser chamar o switch para abrir e fechar o portão, fica a critério. O interessante de chamar o script, como vou mostrar é que você pode configurar condições e ações.

### abertura do portao da garagem ###
 - platform: template
   covers:
     portao_da_garagem:
       unique_id: 'cover_portao_da_garagem'
       friendly_name: "portão da garagem"
       device_class: garage
       open_cover:
         service: script.123456789
       close_cover:
         service: script.123456789
       value_template: >-
         {% if is_state('binary_sensor.portao_da_garagem_status', 'on') %}
           open
         {% else %}
           closed
         {% endif %}
       icon_template: >-
         {% if is_state('binary_sensor.portao_da_garagem_status', 'on') %}
           mdi:garage-open
         {% else %}
           mdi:garage
         {% endif %}
       availability_template: >-
         {% if not is_state('binary_sensor.portao_da_garagem_status', 'unavailable') %}
           true
         {% endif %}


No script para o open_cover, você pode configurar o que quiser. Aqui por exemplo eu criei um input_boolean.modo_seguranca_total para usar nas condições para abrir ou não o portão. Uso para viagens e também para ativar notificações via sms.

Configure a seguinte condição:

condition: state
entity_id: cover.portao_da_garagem
state: closed


Agora chame o interruptor do portão da garagem para abrir o portão

service: switch.turn_on
data: {}
target:
 entity_id:
   - switch.portao_da_garagem


Posso configurar para ligar as luzes também? Claro, o céu é o limite. Aqui configuro para ligar as luzes no cover e também com uma automação na abertura dos portões, o motivo é que seu abrir o portão manualmente na chave por exemplo, as luzes irão ligar também através do sensor.

service: light.turn_on
data: {}
target:
 entity_id:
   - light.luz_da_fachada
   - light.luz_da_garagem


Agora, vamos configurar o script para o close_cover. Crie um novo script e configure:

condition: state
entity_id: cover.portao_da_garagem
state: open


Esta condição é importante para o google assistant, pois se você pedir ele para abrir o portão ele vai pedir uma senha, para fechar não pede a senha. Ou seja se alguém gritar "ok google, feche o portão" e ele já estiver fechado, nada vai acontecer, se você não colocar esta condição ele irá abrir, ninguém quer isto correto?

Agora chame o interruptor para fechar o portão:

service: switch.turn_on
data: {}
target:
 entity_id:
   - switch.portao_da_garagem


Portão social:
Entrar no web ui do tasmota ir na opção console e digitar o seguinte comando:
PulseTime3 108

Esta configuração fará com que o sonoff ligue o canal 3 e após 8 segundos desligue. Se quiser configurar outro tempo.
- PulseTime3 106 = 6 segundos
- PulseTime3 110 = 10 segundos
- PulseTime3 112 = 12 segundos

No configuration.yaml (switch:) ou switchs.yaml, configurar o interruptor que irá controlar o portão.

### portao social - fechadura ####
 - platform: mqtt
   name: "portão social"
   state_topic: "stat/4chtopic/RESULT"  
   value_template: "{{ value_json.POWER3 | default }}"
   command_topic: "cmnd/4chtopic/POWER3"
   payload_on: "ON"
   payload_off: "OFF"
   availability_topic: "tele/4chtopic/LWT"
   payload_available: "Online"
   payload_not_available: "Offline"
   qos: 1
   retain: false


No configuration.yaml (cover:) ou covers.yaml, adicionar, lembrar de verificar o nome que você configurou anteriormente para o sensor e colocar o script que você vai usar para abrir e fechar o portão.

### abertura do portao social ###
 - platform: template
   covers:
     portao_social:
       unique_id: 'cover_portao_social'
       friendly_name: "portão social"
       device_class: door
       open_cover:
         service: script.123456789
       close_cover:
         #service: script.open_garage_door
       value_template: >-
         {% if is_state('binary_sensor.portao_social_status', 'on') %}
           open
         {% else %}
           closed
         {% endif %}
       icon_template: >-
         {% if is_state('binary_sensor.portao_social_status', 'on') %}
           mdi:door-open
         {% else %}
           mdi:door-closed
         {% endif %}
       availability_template: >-
         {% if not is_state('binary_sensor.portao_social_status', 'unavailable') %}
           true
         {% endif %}


Criar o script para abertura da fechadura, configure suas condições e seguinte condição:

condition: state
entity_id: cover.portao_social
state: closed


Agora chame o interruptor do portão social para abrir a fechadura 12v.

service: switch.turn_on
data: {}
target:
 entity_id:
   - switch.portao_social


Configure também se você desejar, ligar as luzes, pode usar também o request_location_update, para solicitar a localização dos telefones.


data:
 message: request_location_update
service: notify.mobile_app_fulano


E para fechar o portão social? Neste caso o portão social não tem que acionar pra fechar, visto que temos que fechar manualmente. Na verdade o portão social não abre sozinho, abrimos apenas fechadura de 12v.

E as luzes que ligamos ao abrir e outras ações? Neste caso vamos usar o sensor aberto/fechado para criar automações para desligar estas luzes e o que mais for necessário. O post já está muito extenso, será assunto para o próximo tópico.

© MNDTI - Tecnologia e Informação. Todos Direitos Reservados. Política de privacidade.