Índice:

ESPHOME SONOF S26 Luz Temporizada: 11 Passos (com Imagens)
ESPHOME SONOF S26 Luz Temporizada: 11 Passos (com Imagens)
Anonim
ESPHOME SONOF S26 Luz Temporizada
ESPHOME SONOF S26 Luz Temporizada

Dia bom. Portanto, tenho uma luz de aquário que desejo acender e apagar em uma determinada hora do dia. Eu só tinha que complicar para mim mesmo. Quero poder alterar a hora em que ele liga e desliga no painel do meu Assistente Home. Talvez até mais.

Então, vamos ver o quanto mais posso me levar para uma toca de coelho.

Etapa 1: Etapa 1: Preciso de uma maneira de enviar o Assistente de Horários de Casa

Googling ajuda. Arrancar o cabelo ajuda, se você realmente tiver algum: Abra meu complemento Visual Studio Code Editor. Na pasta Config, encontre o arquivo configuration.yaml e copiei e colei algumas coisas que encontrei ocultas em algum fórum. Desculpe se lembrei que daria um agradecimento. Adicionado o código e reiniciado o assistente de casa.

Etapa 2: Etapa 2: adicionado o seguinte código a Configuration.yaml

Etapa 2: adicionado o seguinte código a Configuration.yaml
Etapa 2: adicionado o seguinte código a Configuration.yaml

número de entrada:

ft_start_hr:

nome: FT Light Start Hours

ícone: mdi: início do relógio

min: 0

máx: 23

passo 1

# inicial: 13

A primeira linha será o número de entrada do id da entidade.

Em seguida, precisamos de alguns detalhes para este pequeno cara:

Um nome será incrível: FT Light Start Hours para este P. S. FT é para Fish Tank… Não é o que você estava pensando, certo?

O próximo é um ícone opcional. Há muito por aí para escolher, então enlouqueça … ou não.

Em seguida, podemos inserir um valor mínimo, máximo e passo. Como são horas, escolhi de 0 a 23 com passos simples.

Inicialmente eu tinha um valor inicial e quando o assistente da casa reiniciasse, ele mudaria para este valor inicial. Decidi comentá-lo, pois queria que o Assistente Doméstico tentasse lembrar o último valor que eu havia definido para ele.

Você pode colocar no modo de escolher uma caixa. Mas, por padrão, ele escolhe um bom controle deslizante para você. Eu acho que um controle deslizante servirá por enquanto.

Esteja atento aos recuos, pois eles são muito importantes. Veja a imagem

Então, eles darão a você entidades no assistente de casa para serem capazes de ajustar.

Aqui está um link para mais informações sobre números de entrada:

www.home-assistant.io/integrations/input_n…

Etapa 3: Etapa 3: agora precisamos obter as informações para a API ESPHOME

Etapa 3: agora precisamos obter as informações para a API ESPHOME
Etapa 3: agora precisamos obter as informações para a API ESPHOME

sensor:

- plataforma: modelo

sensores:

ft_start_hr:

value_template: '{{states.input_number.ft_start_hr.state | int}} '

n

Isso dará à ESPHome API a conexão necessária, pois agora é um número inteiro em vez de um controle deslizante de texto extravagante:-P

Aqui, ele pega o estado do número de entrada, converte-o em um número inteiro e armazena-o em um sensor.

Aqui estão mais algumas informações sobre os modelos:

www.home-assistant.io/integrations/templat…

Oh, eu mudei a extensão do arquivo do meu arquivo para texto para que eu possa carregá-lo … Instructables podem ser destrutíveis com um yaml …

Etapa 4: Etapa 4: Configuração do ESPHome do Plug Now

Etapa 4: Configuração do ESPHome do Plug Now
Etapa 4: Configuração do ESPHome do Plug Now

Comecei com uma configuração básica para o plug s-on-off e depois comecei a mexer.

Não vou entrar em detalhes sobre como fazer o flash do plug S26 com ESPHome, pois o Google tem todas as respostas.

Meu arquivo de configuração completo estará disponível para download no final. Da Da Dah …

Então, vamos começar com a parte vinculada ao Home Assistant:

Temos que criar sensores que correspondam aos sensores do assistente residencial para que eles possam se comunicar.

Etapa 5: Etapa 5: Conexão do Assistente Doméstico ESPHome … Beam Me Up Scotty

Etapa 5: Conexão do Assistente Doméstico ESPHome … Beam Me Up Scotty
Etapa 5: Conexão do Assistente Doméstico ESPHome … Beam Me Up Scotty

sensor:

- plataforma: homeassistant

entity_id: sensor.ft_start_hr

id: id_ft_start_hr

Portanto, agora criamos um sensor em ESPHome do tipo homeassistant. Quem teria adivinhado?

O ID da entidade terá que corresponder ao que você configurou no arquivo configuration.yaml.

Eu configurei uma id para que a ESPHome pudesse fazer referência a esse sensor em sua abundância de pensamento.

Etapa 6: Etapa 6: vamos adicionar algum tempo

Etapa 6: vamos adicionar algum tempo
Etapa 6: vamos adicionar algum tempo

Portanto, sendo este um plug cronometrado … Vamos realmente adicionar algum tempo … Ou é subtrair? Agora é passado?

Aqui estão alguns princípios básicos do componente de tempo. Podemos escolher alguns diferentes, mas escolhi homeassistant. Muito fácil?

esphome.io/components/time.html

Etapa 7: Etapa 7: intervalo

Etapa 7: intervalo
Etapa 7: intervalo

Não, não é uma pausa, ou é?

intervalo:

- intervalo: 1seg

então:

- lambda: | -

id (gl_ft_start_hr) = id (id_ft_start_hr).state;

Portanto, defino um intervalo de 1 segundo para gravar o valor do sensor do assistente doméstico na variável global.

Eu só quero fazer isso uma vez por segundo, pois o tempo está passando … tique-taque

Etapa 8: Etapa 8: Portanto, temos tempo e dinheiro … O que vem a seguir?

Etapa 8: Portanto, temos tempo e dinheiro … O que vem a seguir?
Etapa 8: Portanto, temos tempo e dinheiro … O que vem a seguir?

Então, decidi usar um modelo de sensor binário para determinar se é hora de ligar a chave switch switch … relé

Eu criei três opções com os ids: start_time_valid, stop_time_valid e run_time_valid

start_time_valid é verdadeiro quando já passou do tempo configurado para ligar o relé.

Usei instruções if aninhadas para verificar se éramos maiores ou iguais aos segundos necessários, depois aos minutos e finalmente às horas.

stop_time_valid é verdadeiro quando é agora antes do tempo configurado para desligar o switch. Isso é revertido para verificar se agora não passou o tempo necessário para desligar o relé

run_time_valid é verdadeiro quando start_time_valid e stop_time_valid são verdadeiros. Suponho que poderia apenas ter usado um normal e uma condição para este. Acabei de entrar no ritmo das coisas com lambdas.

- plataforma: modelo

nome: "Hora de início válida"

id: start_time_valid

lambda: | -

if (id (homeassistant_time).now (). hour> id (gl_ft_start_hr)) {

return true;

}

else if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&

id (homeassistant_time).now (). minuto> id (gl_ft_start_mn)) {

return true;

}

else if (id (homeassistant_time).now (). hour == id (gl_ft_start_hr) &&

id (homeassistant_time).now (). minute == id (gl_ft_start_mn) &&

id (homeassistant_time).now (). second> = id (gl_ft_start_ss)) {

return true;

}

outro {

retorna falso;

}

Etapa 9: Etapa 9: Agora, para alguns scripts: 'Ser ou Não Ser: Essa é a questão'

Etapa 9: Agora, para alguns scripts: 'Ser ou não ser: essa é a questão'
Etapa 9: Agora, para alguns scripts: 'Ser ou não ser: essa é a questão'

Hmm script errado cara!

Então, se eu conectasse o interruptor … ou a energia da casa simplesmente fosse ligada, eu queria que o interruptor soubesse se deveria estar ligado ou desligado e agir de acordo. (sim, todos nós vamos para aulas de atuação)

O primeiro id de script: checkingstatuson, é verificar se devemos estar ligados e agir de acordo. Também incluí um sinalizador global com o id: trackingon, para garantir que esse script seja executado apenas uma vez e não impeça meus outros scripts de fazerem sua parte na peça.

Isso tem 3 e condições: o relé está desligado, deveria estar ligado e eu ainda não fiz minha parte. Isso desligará todos os outros scripts em execução, ligará o relé e definirá os sinalizadores de rastreamento.

O segundo id de script: checkingstatusoff, é exatamente o oposto do primeiro. Estamos apenas verificando se precisamos fechar as cortinas agora. A bandeira de rastreamento para este é trackingoff

Eu executo esses dois scripts no intervalo de 1 segundo para verificar a cada segundo.

Etapa 10: Etapa 10: Alguns scripts de bônus

Etapa 10: alguns scripts de bônus
Etapa 10: alguns scripts de bônus

Mais duas características que eu gostaria de adicionar eram: se eu desligasse a luz no tanque, ela ligaria novamente após 5 segundos se a luz deveria estar ligada naquele momento. Além disso, se a luz estivesse apagada e eu quisesse acendê-la para ver meus peixinhos e ela estivesse fora do horário programado, acendia por 5 minutos. Sim, 5 minutos é tempo suficiente … Volte ao trabalho.

O primeiro script id: relayisoff acenderá a luz por 5 minutos se ela estiver desligada no horário programado e, em seguida, desligará.

A segunda id do script: relayison é praticamente invertida em relação à primeira e irá acender a luz 5 segundos depois, se for para estar acesa. Quem disse que você pode desligar minha luz senhor!

Aqui estão mais algumas informações sobre scripts:

esphome.io/guides/automations.html

Algumas informações adicionais sobre os scripts são que eles não bloqueiam. A menos que você coloque um atraso em uma lambda. Uh Não Não Não

Etapa 11: Etapa 11: algumas reflexões finais

Etapa 11: algumas reflexões finais
Etapa 11: algumas reflexões finais
Etapa 11: algumas reflexões finais
Etapa 11: algumas reflexões finais

Do assistente doméstico, eu queria que o botão funcionasse da mesma maneira que o botão.

Não coloquei um nome para o switch local do sensor binário, pois não precisava vê-lo sendo pressionado no assistente inicial.

Não coloquei um nome para a chave de retransmissão porque queria usar os scripts para fazer a mudança do assistente de casa.

Criei um switch de modelo com um nome para poder usá-lo para mudar do assistente de casa. Ele executará meus scripts da mesma forma que o switch local no plug.

Não testei se desligar meu assistente doméstico se o plugue ainda funcionar corretamente. Eu espero que sim. Eu vi alguns posts sobre alguns problemas ao perder a conexão com a API do Home Assistant.

Eu realmente espero que este pequeno tutorial ajude você e fique à vontade para me ajudar a torná-lo melhor. Não sou especialista e estou aprendendo muito devagar. Só pensei que algumas coisas que aprendi a fazer podem ajudar alguém que está lutando para descobrir.

Agora, para alterar os horários no assistente doméstico com base no nascer e no pôr do sol … + - alguns

Recomendado: