ESPHome Sonoff TX 3 Gang

Após começar a utilizar o ESPHome, estou cada vez mais identificado com o componente. Meus interruptores que estão chegando da china, já nem coloco mais Tasmota, vou direto colocando o ESPHome.

Nesse tutorial, vou compartilhar como configurei meu interruptor Sonoff T2 (modelo novo touch) com 3 botões (3 gangs).

Se você não sabe como configurar o ESPHome e aplicar o flash, veja o tutorial ESPHome no seu Hass.io

Para iniciar, primeiro criei um arquivo .bin apenas com as configurações básicas para iniciar o flash.

Etapa 1 - Criar arquivo .bin

Acesse o menu ESPHome do Addon instalado no seu HA.

  1. Introduction And Name - Defina um nome para seu ESP

  2. Device Type - Defina um tipo, nesse caso o “Generic ESP8266 (for example Sonoff)
    image

  3. WiFi And Over-The-Air Updates - Coloque as informações da sua rede Wifi

  4. Done! Finalize clicando em Submit
    image

  5. Gere o arquivo .bin
    Primeiro, ignore o circulo rosa que irá criar


    Em seguida, clique nos 3 pontinhos image e nas opções que irá listar, selecione a opção Compile
    image
    Aguarde o processo de compilação finalizar, e clique em DOWNLOAD BINARY

Etapa 2 - Aplicar o flash

Com o arquivo .bin gerado, agora podemos iniciar o flash com o programa ESPHome-Flasher (No meu caso ESPHome-Flasher-1.1.0-windows-x64.exe).

Mas antes, por se tratar de um Sonoff T2, precisamos colocar no modo de programa, para isso precisei ligar a Placa FTDI com os jumpers ligados no 3.3V, RX, TX e GND, além de levar a conexão do GND até o R19 para poder colocar em modo programador.

Por 10 segundos liguei no PC e deixei o jumper no R19, após os 10s você pode soltar, e em seguida abra o arquivo para ESPHome-Flasher iniciar o flash.

Com o esphome-flasher aberto, selecione a porta USB conectada no Sonoff, e no campo Firmware procure o arquivo .bin e clique em Flash ESP.


Se por algum motivo não funcionar, inverta o TX e RX, comigo aconteceu isso, e depois que inverti funcionou.

Agora seu sonoff já está com o firmware do ESP, e com isso você já pode ligar no local desejado na sua residência, pois o resto será configurado tudo através do HA, muito simples até aqui.

Atenção: Se você não tem conhecimento necessário para instalar um interruptor, chame um profissional.

Etapa 3 - Configurando as funções do seu Sonoff com ESP

Agora que seu sonoff já está devidamente instalado na sua residência, vamos acessar o ESP criado no Home Assistant para aplicar as configurações.

Acesse o menu ESPHome no seu HA, e verifique se seu ESP está Online.
image

Se não estiver online tem alguma coisa errada. Ou você digitou os dados da sua rede (SSID ou Senha) incorretamente, ou não ligou o Sonoff ainda. É preciso estar online para poder continuar, você pode realizar o flash novamente se necessário, pode editar e gerar um novo arquivo .bin se for o caso.

Agora, se estiver online, clique em Edit, vai abrir uma tela para poder incluir os códigos de configuração.
image

Coloque o código abaixo:

esphome:
  name: sonoff_cozinha_3gang
  platform: ESP8266
  board: esp01_1m

wifi:
  ssid: "SuaredeWifi" 
  password: "SuaSenhaWifi"

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

################################################
binary_sensor:

  # Botão 1
  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    name: "Interruptor Cozinha - Botão 1"
    on_multi_click:
      - timing:
          - ON for at most 1s
          - OFF for at most 1s
          - ON for at most 1s
          - OFF for at least 0.2s
        then:
          - homeassistant.service:
              service: script.turn_on
              data:
                entity_id: script.power_aromatizador_cozinha
          - logger.log: "Duplo Clique"
      - timing:
          - ON for 3s to 5s
          - OFF for at least 0.5s
        then:
          - homeassistant.service:
              service: script.turn_on
              data:
                entity_id: script.luz_aromatizador_cozinha
          - logger.log: "Clique Longo"
      - timing:
          - ON for at most 1s
          - OFF for at least 0.5s
        then:
          - light.toggle: lightsw_1
          - logger.log: "Clique curto"

  # Botão 2
  - platform: gpio
    pin:
      number: GPIO9
      mode: INPUT_PULLUP
      inverted: True
    name: "Interruptor Cozinha - Botão 2"
    on_press:
      - light.toggle: lightsw_2
    internal: True
  
  # Botão 3
  - platform: gpio
    pin:
      number: GPIO10
      mode: INPUT_PULLUP
      inverted: True
    name: "Interruptor Cozinha - Botão 3"
    on_press:
      - light.toggle: lightsw_3
    internal: True
  
################################################
output:

  # Saída do Botão 1
  - platform: gpio
    pin: GPIO12
    id: relay_1
    power_supply: blue_led_1

  # Saída do Botão 2
  - platform: gpio
    pin: GPIO5
    id: relay_2
    power_supply: blue_led_2

  # Saída do Botão 3
  - platform: gpio
    pin: GPIO4
    id: relay_3
    power_supply: blue_led_3
    
# Mostrar no HA como light ################################################
light:

  # Botão 1
  - platform: binary
    name: "Luz Cozinha"   
    id: lightsw_1
    output: relay_1
    
  # Botão 2
  - platform: binary
    name: "Luz Garagem"   
    id: lightsw_2
    output: relay_2
    
  # Botão 3
  - platform: binary
    name: "Luz Quintal"   
    id: lightsw_3
    output: relay_3
    
    
# Intercala cor dos LEDS ################################################
power_supply:

  # Botão 1
  - id: blue_led_1
    enable_time: 0s
    keep_on_time: 0s
    pin:
      number: GPIO0
      inverted: True
      
  # Botão 2
  - id: blue_led_2
    enable_time: 0s
    keep_on_time: 0s
    pin:
      number: GPIO9
      inverted: True
      
  # Botão 3
  - id: blue_led_3
    enable_time: 0s
    keep_on_time: 0s
    pin:
      number: GPIO10
      inverted: True

Nesse exemplo, para o primeiro botão eu configurei 3 ações:

  • Um clique vai acender a luz
  • Dois clique vai executar um script que liga meu aromatizador
  • Clique de 5 segundos pressionado, liga a luz do aromatizador

Você pode fazer isso em cada botão, e pode colocar qualquer serviço, como enviar uma notificação, ligar outra luz, ligar TV, Ar condicionado, solicitar para informa o valor do Dólar no seu media player, informar a previsão do tempo, etc. Você configura como desejar. E se não quiser colocar 3 ações, basta seguir a mesma estrutura dos outros botões, vai trocar o on_multi_click por on_press.

Após aplicar a configuração, basta salvar em SAVE e em seguida clicar em UPLOAD.

Após concluir o UPLOAD, você precisará acessar o menu Configurações -> Integrações e no item “Descoberto” deve aparecer o seu novo ESP, basta clicar em configurar e em seguida pressionar submit.

Pronto, seus lights já estarão disponíveis em seu Home Assistant, prontos para utilizar.

Você pode ver mais detalhes também no site esphome.io.
https://esphome.io/devices/sonoff_t1_uk_3gang_v1.1.html

image

7 curtidas

Muito bom, Douglas!!

1 curtida

Bom dia, tenho 3 sonoff 3 gangs com tasmota, um deles está com fantasma, sabe se resolve se eu mudar para esphome ?

Algumas alternativas para resolver o problema do fantasma estão nesse vídeo:

Quanto a sua pergunta não sei te dizer. Acredito que não tem problema você testar, o máximo que vai acontecer é não funcionar e você pode voltar para o sonoff.

Pessoal me da um Help…
Fiz o flash e inserir o ESPHome belezinha…conforme o tutorial acima…( Porem fiz uns ajustes)
Tenho um TX de 2 Gang.
Ele funciona blz no HA sem problemas…
Porem ao ligar fisicamente o Gang 1 tenho q abertar 2x para acionar a luz.
(O 2 gang funciona no primeiro toque.)

Segue o codigo pra ver aonde eu errei ou se é problema no hardware.
Vlw.

(…)

binary_sensor:

  # Botão 1
  - platform: gpio
    pin:
      number: GPIO0
      mode: INPUT_PULLUP
      inverted: True
    name: "Luz da Varanda"
    on_press:
      - light.toggle: lightsw_1
    internal: True  

  # Botão 2
  - platform: gpio
    pin:
      number: GPIO9
      mode: INPUT_PULLUP
      inverted: True
    name: "Luz da Arandela"
    on_press:
      - light.toggle: lightsw_2
    internal: True

output:

  # Saída do Botão 1
  - platform: gpio
    pin: GPIO12
    id: relay_1
    power_supply: blue_led_1

  # Saída do Botão 2
  - platform: gpio
    pin: GPIO5
    id: relay_2
    power_supply: blue_led_2
    
# Mostrar no HA como light ######
light:

  # Botão 1
  - platform: binary
    name: "Luz da Varanda"   
    id: lightsw_1
    output: relay_1
    
  # Botão 2
  - platform: binary
    name: "Luz da Arandela"   
    id: lightsw_2
    output: relay_2

# Intercala cor dos LEDS #######
power_supply:

  # Botão 1
  - id: blue_led_1
    enable_time: 0s
    keep_on_time: 0s
    pin:
      number: GPIO0
      inverted: True
      
  # Botão 2
  - id: blue_led_2
    enable_time: 0s
    keep_on_time: 0s
    pin:
      number: GPIO9
      inverted: True

Bom dia, fiz o esphome e não resolveu o problema do fantasma, é idêntico o do tasmota.

Este problema de fantasma eu acho que é hardware, também tenho aqui em casa nestes modelos de interruptores.

Tasmota 8.11 resolveu o fantasma.

Olá, boa noite!
Fiz o flash em 4 desses que tenho e correu tudo bem - apenas fiquei com uma dúvida; em um deles gostaria de colocar uma das teclas com um pulso de 0.5s - uso para controlar um sonoff basic com contato seco no portão - como posso incluir essa condição no código?

Olá Douglas! Gostei do seu post e também pretendo usar o ESPHome no Sonoff.
No início, usei o firmware do tasmota e deu certo e na hora de migrar para o arquivo bin gerado
pelo ESPHome, ora recebo a mensagem de não compatível ou arquivo muito longo.
Teria alguma sugestão para contornar isso? Esse é o primeiro sonoff que estou usando.

Desde já agradeço.

O meu TX está chegando…

Se eu nao falshear, nem tasmota nem ESPhome, deixar o original… o que eu perco?

Sei que deixando original , se nao tiver internet eu n consigo usar…mas há algo alem disso? Nao curto alterar firmware so pq “pode”…quero entender o benefício.

Boa noite! alguem sabe uma forma de fazer a opções de duplo click e click longo serem enviadas do sonoff com esphome em forma de payload para trabalhar essa infomação no node red e home assistant?

Consigo fazer esse esquema dos cliques simples, duplos e longos com o Tasmota?