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.