Índice:
- Etapa 1: Etapa 1: Preciso de uma maneira de enviar o Assistente de Horários de Casa
- Etapa 2: Etapa 2: adicionado o seguinte código a Configuration.yaml
- Etapa 3: Etapa 3: agora precisamos obter as informações para a API ESPHOME
- Etapa 4: Etapa 4: Configuração do ESPHome do Plug Now
- Etapa 5: Etapa 5: Conexão do Assistente Doméstico ESPHome … Beam Me Up Scotty
- Etapa 6: Etapa 6: vamos adicionar algum tempo
- Etapa 7: Etapa 7: intervalo
- Etapa 8: Etapa 8: Portanto, temos tempo e dinheiro … O que vem a seguir?
- Etapa 9: Etapa 9: Agora, para alguns scripts: 'Ser ou Não Ser: Essa é a questão'
- Etapa 10: Etapa 10: Alguns scripts de bônus
- Etapa 11: Etapa 11: algumas reflexões finais
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:35
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
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
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
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
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
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
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?
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'
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
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
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:
ESP8266 - Tomada Temporizada e Controle Remoto (Segurança para idosos): 6 Passos
ESP8266 - Tomada Temporizada e Remotamente Controlada (Segurança para idosos): INFORMAÇÕES: Esta montagem é uma verificação contra sobreaquecimento, incêndio e acidentes em caso de esquecimento de aparelhos ligados (principalmente por idosos com Alzheimer). Depois que o botão é acionado, o soquete recebe 110/220 VAC por 5 minutos (outro
Luz do humor animada e luz noturna: 6 etapas (com imagens)
Animated Mood Light & Night Light: Tendo um fascínio que beira a obsessão pela luz, decidi criar uma seleção de pequenos PCBs modulares que poderiam ser usados para criar displays de luz RGB de qualquer tamanho. Tendo feito o PCB modular, tropecei na ideia de organizá-los em um
Luz muito brilhante para bicicleta usando PCBs de painel de luz personalizado: 8 etapas (com imagens)
Luz muito brilhante para bicicleta usando PCBs de painel de luz personalizado: Se você tem uma bicicleta, sabe como os buracos podem ser desagradáveis em seus pneus e em seu corpo. Eu estava farto de estourar meus pneus, então decidi projetar meu próprio painel de led com a intenção de usá-lo como um farol de bicicleta. Aquele que se concentra em ser E
Puxe a luz - Módulo de luz usando Neopixel e puxar para cima: 6 etapas (com imagens)
Puxe a luz - Módulo de luz usando Neopixel e puxe para cima: Recursos do módulo de luz Arduino Uno Hardware & invólucro adquirido na internet Neopixel & Fonte de alimentação emprestada da Escola de Informática & Produto Design Módulo de luz controlado por fonte de alimentação Todas as funções controladas via
Luz reativa para música -- Como tornar uma luz reativa para música super simples para tornar a área de trabalho incrível: 5 etapas (com imagens)
Música reativa luz || Como fazer música super simples luz reativa para tornar a área de trabalho incrível .: Ei, e aí galera, hoje vamos construir um projeto muito interessante. Hoje vamos construir uma luz reativa musical. O led mudará seu brilho de acordo com o baixo, que na verdade é um sinal de áudio de baixa frequência. É muito simples de construir. Vamos