Índice:
- Etapa 1: como funciona um termostato
- Etapa 2: Preparando o Sonoff Basic
- Etapa 3: NodeRED
- Etapa 4: Conclusão
Vídeo: ANINHE seu termostato antigo: 4 etapas (com fotos)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:38
O sistema de aquecimento da minha casa é provavelmente tão antigo quanto a própria casa. Tem cerca de 30 anos, o que é bom em termos de anos de casa, mas praticamente preso na era do gelo no que diz respeito à tecnologia. Existem 2 problemas principais com soluções comerciais:
- preços proibitivos
- produto como serviço
Todos nós nos lembramos do que aconteceu com Revolv e não estou muito interessado em que isso aconteça comigo no meio do inverno. Com isso em mente, apresento-lhe um controlador NEST-Alike de aparência incrivelmente suspeita, mas funcional para seu antigo termostato. Não se preocupe, estou planejando um gabinete muito melhor para ser adicionado em breve!
Recursos:
- capacidade de usar um termostato existente (no caso de a esposa reclamar)
- acesso remoto
- Modo AWAY
- indicador de temperatura ideal
- Funciona com Alexa
Em breve (verifique aqui as atualizações)
- Página inicial do Google
- calendário do Google
- Sensores Múltiplos
- Controles do radiador
- Integrações IFTT
- Suporte Tasker
- Solicitações
- Um gabinete muito mais bonito
Etapa 1: como funciona um termostato
O termostato provavelmente está conectado à ALTA TENSÃO! Não tente fazer nada a menos que tenha certeza de que o circuito está desligado. Você pode se machucar e causar danos ao equipamento conectado. Considere consultar um eletricista qualificado para garantir sua segurança
O termostato Honeywell é uma unidade montada na parede, alimentada pela rede elétrica (o básico do Sonoff precisa de 90 V, meu circuito tem 230 V). A caixa é conectada à unidade de controle principal (que é uma caixa mais avançada) e envia o sinal quando a temperatura cai abaixo do nível desejado. Embora sua unidade possa ser diferente, o princípio provavelmente é o mesmo. Se você tiver 3 fios e nenhuma conexão de rádio entre a unidade montada na parede - este é o tutorial para você.
Eu sei como os termostatos de 3 fios funcionam em um princípio, o que não me impediu de queimar um fusível por curto-circuito em 2 fios por acidente! Tenho 3 fios conectados à unidade (sendo o 4º o terra). Meu termostato Honeywell não é sem fio, então, para mudar o sinal, posso usar o Sonoff Basic. É hora de desmontá-lo e ver como o sinal é enviado para a unidade. Após uma inspeção mais detalhada, o terminal é conectado da seguinte maneira:
- (azul) - Terrestre
- (amarelo) - sinal, quando puxado para cima o aquecimento está ligado
- fora de uso
- (vermelho) - o fio energizado usado para puxar o sinal alto
Para atingir meu objetivo, tenho que colocar o fio energizado em curto com o fio de sinal quando quiser que o aquecimento seja ligado. Se você tiver um termostato conectado de forma semelhante, você está com sorte, pois o Sonoff Basic será suficiente para fazer o truque.
Etapa 2: Preparando o Sonoff Basic
Antes de começarmos a conectar os fios, temos que adicionar um sensor de temperatura (DHT11) à mistura. Certifique-se de ter o firmware Tasmota atualizado para seu dispositivo Sonoff (eu tenho um excelente guia de atualização aqui) e seu Sonoff habilitado para Tasmota está configurado corretamente (também já abordado por mim). Agora, tudo o que resta é conectar o sensor DHT11 ao Sonoff e configurá-lo para relatórios de temperatura.
O DHT11 vem com 3 pinos conectados: Sinal - GPIO14Vcc - 3.3VGND - GND
Eu abri um buraco, não estou incomodado com a aparência agora, tudo que preciso é a prova de conceito e a validação. Farei uma caixa bonita e brilhante assim que minha impressora 3D chegar. Prestei atenção extra em como faço a fiação do Sonoff, pois preciso ter certeza de que o fio ativo se conecta ao fio de sinal na outra extremidade do dispositivo Sonoff. A unidade Honeywell tem o resistor de carga (R) embutido que limita a corrente. Embora o circuito seja protegido pelo fusível 3A, é inteligente combinar a mesma resistência para proteção extra. Depois de preparar os fios, era hora de desligar a alimentação principal e conectar o Sonoff de volta.
Sonoff Tasmota - termostato Honeywell
INPUT Live - 4º terminal Live
INPUT GND - 1º terminal GND
Sinal de SAÍDA - Sinal do 2º terminal
Eu mencionei antes, por enquanto, não vou me estressar com a aparência disso. A esposa foi convencida e posso me concentrar na funcionalidade e na eliminação de quaisquer bugs que possam acontecer. O bom é que o termostato original ainda está funcionando. Se eu aumentar, ele substituirá o baseado em Sonoff Tasmota. Este deve ser um ótimo backup para quaisquer eventos inesperados.
Etapa 3: NodeRED
Observe que o vídeo pode conter referências NodeRed mais antigas, estou constantemente trabalhando para melhorar o design. Estas são pequenas alterações e os arquivos do artigo são mantidos atualizados
Eu encontrei este design online. Parece ótimo, no entanto, após uma inspeção cuidadosa, o widget não é realmente adequado para NodeRED. Ele precisa de 5 cargas úteis para ser definido, o que não é como o design semelhante a nós funciona. Levei algum tempo para descobrir a melhor maneira de passar todas essas informações para atualizar o widget e mantê-lo funcional. Tenho certeza de que com o tempo passarei mais tempo no design para que possa enviar todas as atualizações necessárias com um único objeto msg. Por enquanto, é o que é.
Fluxo de temperatura
O DHT11 reporta a cada X segundos de volta ao servidor NodeRED. Aumentei essa frequência através do console do Tasmota. Basta executar o comando para definir a frequência em segundos:
TelePeriod Definir período de telemetria entre 10 e 3600 segundos
Isso é feito principalmente para testes, já que não quero esperar minutos para ver se minhas correções de bug funcionaram. Manter a frequência alta fará com que o aquecimento seja acionado com mais frequência por períodos mais curtos de tempo, portanto, evite configurá-lo para 10 segundos para fins que não sejam de teste. O nó MQTT extrai os dados de:
sonoff / tele / SENSOR
e mantém os dados mais úteis nos seguintes objetos:
msg.payload. DHT11. Temperature msg.payload. DHT11. Humidity
Para limitar os erros, adicionei o nó suave para calcular a média dos resultados e atualizei a variável de fluxo: NodeRED:
Nó de função - Atualizar o 'TempAmbient'
flow.set ('TempAmbient', msg.payload. DHT11. Temperature); return msg;
Atualização de widget
Decidi que 5 segundos é uma boa taxa de atualização, portanto, estou empurrando todos os valores necessários com esta frequência. A única exceção é o controle deslizante, que por motivos óbvios responde instantaneamente.
Cada nó correspondente envia a carga útil com o tópico atribuído ao widget semelhante ao ninho.
- cor (aquecimento | resfriamento * | desligado e hvac_state)
- folha (true | false & has_leaf)
- ausente (verdadeiro | falso e ausente)
- Temperatura ambiente (número e temperatura_ambiente)
- Temperatura alvo (número e temperatura_alvo)
*fora de uso
NodeRED: Nó de Função - Atualização de Widget
cor
x = flow.get ('TempTarget'); // targetz = flow.get ('TempAmbient'); //ambiente
if (z = x) {
flow.set ('heatState', "desligado"); flow.set ('heatSwitch', "OFF"); } msg.payload = z; msg.topic = "temperatura_ambiente"; return msg;
Folha
x = flow.get ('TempAmbient'); if (x> 17 && x <23) {flow.set ('folha', verdadeiro); msg.payload = true; msg.topic = "has_leaf"; return msg; } else {flow.set ('folha', falso); msg.payload = false; msg.topic = "has_leaf"; return msg; }
Substituição de cor
x = flow.get ('ausente'); if (x === true) {msg.topic = "hvac_state"; msg.payload = "desligado"; return msg; }
msg.topic = "hvac_state";
msg.payload = flow.get ('heatState');
return msg;
Longe
x = flow.get ('ausente'); if (x === true) {flow.set ('heatingSwitch', "OFF"); flow.set ('heatState', "desligado"); }
msg.topic = "ausente";
msg.payload = flow.get ('ausente'); return msg;
Temp alvo
if (msg.topic === "update") {msg.topic = "target_temperature"; msg.payload = flow.get ('TempTarget'); return msg; }
if (msg.command === "SetTargetTemperatureRequest") {
flow.set ('ausente', falso); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }
if (msg.topic === "slider") {
flow.set ('ausente', falso); msg.topic = "target_temperature"; flow.set ('TempTarget', msg.payload); }
if (msg.command === "GetTemperatureReadingRequest") {}
return msg;
Como você pode ver, optei por não usar as variáveis de fluxo, para que pudesse me lembrar do valor a qualquer momento. Eu tenho um fluxo de depuração que basicamente lê todos os valores armazenados.
- ‘TempAmbinet’ - armazena a temperatura atual
- ‘TempTarget’ - mantém o valor da meta de temperatura
- ‘Folha’ - exibe folha se necessário
- 'Ausente' - exibe o status ausente, se necessário
- ‘HeatState’ - muda a cor da tela
- ‘HeatSwitch’ - controla o estado do relé.
O desafio era realmente ter certeza de que as informações são atualizadas na “atualização” e quando solicitadas por outros meios (Alexa, etc). É por isso que você verá condições diferentes no JavaScript. Cada vez que os valores são atualizados, são enviados para a variável de fluxo e o widget é atualizado.
Slider
O teste revelou que uma atualização adicional do controle deslizante (o controle deslizante empurra a temperatura desejada) é necessária. O controle deslizante envia a carga útil (número) com o tópico associado controle deslizante) quando é movido. Além disso, quero que o controle deslizante fique na posição correta se várias interfaces da web estiverem instaladas. Para fazer isso, a cada 5 segundos, simplesmente atualizo a posição do controle deslizante para a temperatura desejada atual.
NodeRED: Nó de Função - Atualizar controle deslizante '
msg.payload = flow.get ('TempTarget'); mensagem de retorno;
Controle de relé
O controlador de relé é simples, leva (por enquanto) duas entradas. Alexa é verdadeiro | falso e a interação que segue uma atualização para a variável de fluxo "Chave de aquecimento". Não há necessidade de uma ação instantânea, portanto, pela simplicidade, ele é executado na mesma frequência de atualização de 5 segundos que o resto do fluxo.
O relé é conectado via MQTT. O Node está postando comandos ON | OFF no tópico:
sonoff / cmnd / POWER1
O nó de função aceita o verdadeiro | falso de Alexa e também altera o estado da entrada de acordo com a variável de fluxo ‘heatingSwitch’.
NodeRED: Nó de Função - Relé de Controle '
if (msg.command === "TurnOffRequest") {msg.payload = "OFF"; return msg; }
if (msg.command === "TurnOnRequest") {
msg.payload = "ON"; flow.set ('TempTarget', 21); return msg; } if (msg.topic === "update") {msg.payload = flow.get ('heatingSwitch'); } return msg;
Integração Alexa
Este é o primeiro dispositivo que tive que desligar o “reconhecimento automático”. Em vez de assumir automaticamente uma resposta, gerei uma, pois desejo a capacidade de consultar a temperatura definida. Em princípio, msg.payload = true | false indica se a solicitação foi bem-sucedida e os modelos encontrados aqui fazem o resto. Se você é novo no Alexa e no NodeRed, certifique-se de ler isto.
Resolvi passar os agradecimentos em separado (sei que não é a melhor forma) para poder controlar tudo um pouco melhor. Cada resposta deve ser dada corretamente no final da cadeia de comando. O meu é arriscar não retornar erros, caso isso aconteça. Observe que, para ser consistente, eu apenas atualizo as variáveis, enquanto o loop de atualização envia os novos valores para o widget.
NodeRED: Nó de função - Respostas do processo Alexa '
// Qual é a temperatura desejada do termostatoif (msg.command === "GetTemperatureReadingRequest") {x = flow.get ('TempTarget'); msg.extra = {"temperatureReading": {"value": x}, "applianceResponseTimestamp": new Date (). toISOString ()}; msg.payload = true; return msg; } // Defina a temperatura para (não inferior a 10 ou superior a 30) if (msg.command === "SetTargetTemperatureRequest") {if (msg.payload 30) {var range = {min: 10.0, max: 30.0} msg.payload = false; msg.extra = intervalo; } else {msg.extra = {targetTemperature: {value: msg.payload}}; msg.payload = true; } return msg; } // Ativar if (msg.command === "TurnOnRequest") {msg.payload = true; flow.set ('ausente', falso); flow.set ('TempTarget', 21); return msg; } // Desativa if (msg.command === "TurnOffRequest") {msg.payload = true; flow.set ('ausente', verdadeiro); return msg;
Etapa 4: Conclusão
Se você expor o painel do NodeRED à WAN, todo o sistema de aquecimento pode ser controlado remotamente. Recomendo que você leia os artigos a seguir para se familiarizar com a segurança do NodeRED e do NodeRED.
- NodeRED para iniciantes
- Segurança NodeRED
Além disso, se você deseja se informar sobre as atualizações deste projeto - considere me seguir na plataforma de sua escolha:
- Youtube
E se você tiver vontade de me comprar um café ou me apoiar de uma forma mais contínua:
- Paypal
- Patreon
Espero que tenham gostado do projeto!
Recomendado:
Como fazer um mini-ventilador pessoal de mesa com um computador antigo - cabe no seu bolso: 6 etapas
Como fazer um mini-ventilador pessoal de mesa com um computador antigo - cabe no seu bolso: Eu mostrarei como fazer um mini-ventilador pessoal de mesa com um computador antigo. Um bônus é que cabe até no bolso. Este é um projeto muito simples, portanto, não é necessária muita experiência ou especialização. Então, vamos começar
Steam Punk seu UPS para obter horas de atividade para seu roteador Wi-fi: 4 etapas (com fotos)
Steam Punk seu UPS para obter horas de atividade para seu roteador Wi-fi: Há algo fundamentalmente desagradável em ter seu UPS convertendo sua bateria de 12 V DC em 220 V AC para que os transformadores que executam seu roteador e fibra ONT possam convertê-la de volta em 12 V DC! Você também está lutando contra o [normalmente
Faça seu próprio termostato de aquecimento conectado e economize com aquecimento: 53 etapas (com fotos)
Faça seu próprio termostato de aquecimento conectado e economize com o aquecimento: Qual é a finalidade? Aumente o conforto aquecendo sua casa exatamente como você deseja Economize e reduza as emissões de gases de efeito estufa aquecendo sua casa apenas quando você precisa Mantenha o controle do aquecimento onde quer que esteja
Converta a bateria do seu laptop antigo em um banco de energia: 4 etapas (com imagens)
Converta a bateria de seu laptop antigo em um banco de energia: Neste projeto, mostrarei como converter uma bateria de um laptop antigo em um banco de energia que pode carregar um telefone comum de 4 a 5 vezes com uma única carga. Vamos começar
Reciclando seu interruptor de dimmer antigo como um controle de temperatura variável para seu ferro de soldar: 7 etapas
Reciclando seu interruptor de dimmer antigo como um controle de temperatura variável para seu ferro de soldar: Eu vi muitos controles de temperatura variável profissional para ferro de solda, mas muito caros. Então eu faço um com um interruptor dimmer antigo, tomada, placa de conexão e plugue que já era lixo e alguma caixa de interruptor de PVC velha que veio com ele e então