Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Crédito
Eu praticamente copiei a implementação de Savjee, mas em vez de usar um Shelly, usei um Sonoff Basic. Confira seu site e canal no YouTube!
www.savjee.be/2020/06/make-garage-door-ope…
www.youtube.com/c/Savjee/
Premissas
- Você tem uma instância do Home Assistant em execução e sabe como usá-la
- Você tem uma instância ESPHome em execução e sabe como usá-la
Suprimentos
Sonoff Basic -
Sensor de contato -
USB para serial -
Pistola de calor -
Ferro de soldar -
Tubulação termorretrátil -
Wire -
Manga de fio -
Cabos Dupont -
Programas:
Assistente doméstico -
ESPhome -
ESP Easy -
Etapa 1: Modificando a energia Sonoff RF R2
AVISO LEGAL
Não sou engenheiro elétrico e não pretendo interpretar um na internet. Se você decidir modificar um Sonoff Basic, estará fazendo isso por sua própria conta e risco. Foi assim que modifiquei meu Sonoff Basic, mas não recomendo que você faça o mesmo. Também não estou sugerindo que o estou fazendo corretamente ou com segurança.
Começando
Csongor Varga ressalta em seu vídeo que não é seguro modificar esta versão do Sonoff como a versão anterior, cortando o traço. Veja mais aqui. A conexão de solda para o relé e a conexão de solda para o fusível que fornece energia para o circuito estão muito próximas para fazer o método de rastreamento de corte. Eu contornei isso removendo a maior parte dos vestígios e reposicionando o fusível.
- Localize o fusível que fornece energia para o circuito
- Local onde o fio neutro é soldado na entrada
- Retire o fusível, remova e reserve
- Desolder o fio neutro da entrada e remover
- Corte o traço como visto na foto na etapa cinco
- Corte um entalhe como visto na foto na etapa 6
- Solde o fusível da maneira oposta em que você o tirou e solde a extremidade longa na entrada da linha
- Desencape o fio neutro e solde-o na placa, como pode ser visto na foto da etapa 8
Etapa 2: ESPHome - Criando o software
Um switch para configurar o relé. Isso será interno para que não seja exposto diretamente ao Home Assistant.
trocar:
- plataforma: GPIO pin: 12 id: relay_1 nome: "sonoff_basic_4_switch" interno: verdadeiro Precisaremos de um sensor binário para o sensor de contato que nos dirá se a porta da garagem está fechada ou aberta
binary_sensor:
- plataforma: gpio pin: número: 3 modo: INPUT_PULLUP nome: "Sensor de contato da porta da garagem" id: contact_sensor interno: filtros verdadeiros: delayed_on_off: 500ms Podemos configurar o botão no Sonoff para alternar o relé
- plataforma: gpio
id: button_0 pin: number: 0 inverted: True mode: INPUT_PULLUP on_click: then: - switch.turn_on: relay_1 - atraso: 500ms - switch.turn_off: relay_1 Por fim, uma capa com o atributo garagem
cobrir:
- plataforma: template device_class: nome da garagem: "Garage Door" id: template_cov lambda: | - if (id (contact_sensor).state) {return COVER_OPEN; } else {return COVER_CLOSED; } open_action: - switch.turn_on: relay_1 - atraso: 0,5s - switch.turn_off: relay_1 close_action: - switch.turn_on: relay_1 - delay: 0,5s - switch.turn_off: relay_1 Aqui está o YAML completo
Wi-fi:
ssid: senha: manual_ip: static_ip: gateway: subnet: dns1: dns2: # Habilite ponto de acesso de fallback (portal cativo) em caso de falha de conexão wi-fi ap: ssid: senha: captive_portal: # Habilite registrador de log: # Habilite API do Home Assistant API: ota: substituições: # Modifique variáveis com base em suas configurações hostname: 'sonoff_basic_4' esphome: name: $ hostname plataforma: ESP8266 board: esp01_1m board_flash_mode: dout status_led: pin: number: 13 invertido: True binary_sensor: - plataforma: gpio pin: number: 3 modo: INPUT_PULLUP nome: "Sensor de contato da porta da garagem" id: contact_sensor interno: true filtros: delayed_on_off: 500ms - plataforma: gpio id: button_0 pin: número: 0 invertido: Modo verdadeiro: INPUT_PULLUP on_click: então: - switch.turn_on: relay_1 - atraso: 500ms - switch.turn_off: relay_1 switch: - plataforma: gpio pin: 12 id: relay_1 name: "sonoff_basic_4_switch" interno: true cover: - platform: template device_class: nome da garagem: "Garage Door" id: template_cov lambda: | - if (id (contact_sensor).state) {retu rn COVER_OPEN; } else {return COVER_CLOSED; } open_action: - switch.turn_on: relay_1 - atraso: 0,5s - switch.turn_off: relay_1 close_action: - switch.turn_on: relay_1 - atraso: 0,5s - switch.turn_off: relay_1 sensor: - plataforma: wifi_signal nome: "sonoff_basic_4_wifi_signal" update_interval: 60s - plataforma: nome do tempo de atividade: "sonoff_basic_4_up_time" text_sensor: - plataforma: nome da versão: "sonoff_basic_4_version"
Etapa 3: ESPEasy - Flashing the Sonoff Basic
Você precisará de um adaptador USB para serial para isso.
- O RX no adaptador serial vai para o TX no Sonoff
- O TX no adaptador serial vai para o RX no Sonoff
- Em ESPHome compilar o código
- Baixe o binário
- Copie o arquivo.bin para o diretório ESPEasy
- Conecte seus fios seriais ao Sonoff
- Mantenha pressionado o botão no Sonoff e conecte o adaptador Serial para USB ao seu computador
- No diretório ESPEasy, abra FlashESP8266.exe
- Selecione sua porta COM
- Selecione o.bin
- Clique em Flash
Etapa 4: conectando tudo
Usei cabos duplos e um cabo de alimentação de computador para isso, mas você pode usar o que quiser.
- Solde um fio ao terminal RX no Sonoff
- Solde um fio ao terminal GND no Sonoff
- Conecte os fios aos terminais de linha e neutro de saída
- Coloque o caso Sonoff em
- Corte o lado da entrada de um cabo de extensão, descasque os fios e conecte-o à linha do Sonoff e à entrada neutra
- Aparafuse as tampas do Sonoff para garantir que o fio de entrada esteja seguro
- Teste para se certificar de que o sensor de contato e o relé estão funcionando corretamente
Etapa 5: prenda à porta da garagem
-
Anexe o sensor de contato (eu prendi o meu à polia)
Eu não tinha nenhum fio eletrônico de fio, então usei um pouco de fio de alto-falante e envoltório de cabo para conectar o sensor de contato.
- Prenda o Sonoff em alguma coisa (usei o suporte que segura o abridor da porta da garagem)
- Conecte os cabos
Etapa 6: Automação do Assistente Doméstico - Notificação se a garagem estiver aberta por 2 horas
Gatilho: se a porta da garagem estiver aberta por 2 horas
Ação: enviar notificações para o meu telefone, o telefone da minha namorada e para o meu canal de discórdia doméstico
automations.yaml
- id: notification_if_garage_is_open_for_2_hours
alias: "notificação se a garagem estiver aberta por 2 horas" acionador: plataforma: estado entity_id: cover.garage_door para: aberto por: horas: 2 ação: - serviço: notificar.mobile_app_courtney_s_iphone dados: título: "[?] [?] Garagem deixou aberto!" mensagem: "A porta da garagem está aberta há 2 horas. Fechar?" data: push: category: ios_close_garage - service: notification.mobile_app_pixel_3a data: title: "[?] [?] Garage left open!" mensagem: "A porta da garagem está aberta há 2 horas. Fechar?" dados: ações: - ação: android_close_garage título: Fechar garagem - serviço: notificação.discord dados: mensagem: "[?] [?] A porta da garagem está aberta há 2 horas. Fechar?" alvo: ["SEU ID DO CANAL DE DISCÓRDIO"]
Para obter uma notificação no IOS que tem um botão para fechar a porta da garagem, você precisa adicionar o seguinte ao arquivo configuration.yaml.
configuration.yaml
ios:
push: categories: - name: Close Garage identifier: 'ios_close_garage' actions: - identifier: 'IOS_CLOSE_GARAGE' title: 'Close Garage' activationMode: 'background' authenticationRequired: true # Requer FaceID / TouchID destrutivo: falso comportamento: 'default'
Agora você pode adicionar a automação que é chamada quando você pressiona o botão Fechar porta da garagem na notificação push do IOS.
automations.yaml
- id: 'ios_mobile_app_notification_close_garage_door'
alias: ios mobile app notificação close garagem porta gatilho: plataforma: evento event_type: ios.notification_action_fired event_data: actionName: IOS_CLOSE_GARAGE action: - delay: 00:00:15 - service: cover.close_cover data: entity_id: cover.garage_door
A automação que é chamada quando você pressiona o botão Fechar porta da garagem na notificação push do Android.
automations.yaml
- id: 'android_mobile_app_notification_close_garage_door'
alias: notificação de aplicativo móvel Android fechar gatilho da porta da garagem: - event_data: ação: android_close_garage event_type: mobile_app_notification_action plataforma: ação do evento: - atraso: 00:00:15 - serviço: cover.close_cover data: entity_id: cover.garage_door