Avançar para o conteúdo

SmartHome – controle de ventilação dependente da umidade

Tempo de leitura 3 minutos

Atualizado - janeiro 8, 2025

O controle de ventilação dependente da umidade evita a formação de condensação. Os modelos Niessmann-Bischof Flair geralmente possuem persiana frontal. Isto mantém o frio muito bem do lado de fora e garante uma diferença de temperatura de cerca de 14 °C (por exemplo, 4 °C entre a persiana e a janela frontal, 18 °C na sala atrás da persiana).

A vantagem desta boa separação de isolamento entre a área de estar e a área do pára-brisas é que o calor na área de estar permanece efetivamente concentrado no interior. A desvantagem, no entanto, é que se forma condensação no pára-brisas como resultado da grande diferença de temperatura e da humidade significativamente mais elevada associada.

Minimizar ou mesmo prevenir isto é o objetivo da função de ventilação automatizada aqui apresentada através do ventilador integrado do veículo (variante Fiat Ducato 244).

Mas esta solução inteligente também pode ser utilizada em casa para evitar o bolor, por exemplo, nas caves, quer para ativar uma ventoinha e/ou um aquecedor para evitar que o ponto de orvalho seja atingido.

cabeamento

Paralelamente ao cabo branco-preto da conexão do ventilador na chave seletora no painel do veículo, um cabo é puxado para um dos quatro contatos de relé livres de potencial do módulo de relé de 4 vias Homematic. O segundo contato de relé associado está conectado ao positivo da bateria.

Se o relé for ativado programaticamente quando um valor crítico de umidade for excedido, o primeiro estágio do ventilador do veículo liga e desliga novamente quando um valor não crítico é alcançado.

Hardware necessário

O hardware a ser instalado está limitado a dois componentes Homematic:

programação

O programa mostrado salva a umidade do ar atualmente medida e a temperatura do sensor de temperatura-umidade na cabine do motorista nas variáveis F_FH e T_FH, bem como a temperatura e umidade do termostato de parede nas variáveis T_WT e F_WT. Os valores calculados a partir disso resultam, em última análise, na recomendação “ar" ou "não ventile“. que é armazenado na variável Ventilação.

De acordo com o resultado, por exemplo: Canal 1 do módulo de relé quádruplo ou o motor do ventilador no nível 1 está ligado.

O programa:

Programa para recomendações de ventilação / prevenção de condensação

O código:

real T_WT = dom.GetObject("T_actual_WT").Value();
WriteLine("T_actual_WT / T_WT");WriteLine(T_WT);
real F_WT = dom.GetObject("F_actual_WT").Value();
WriteLine("F_actual_WT / F_WT");WriteLine(F_WT);

real T_FH = dom.GetObject("T_actual_FH").Value();
WriteLine("T_actual_FH / T_FH");WriteLine(T_FH);
real F_FH = dom.GetObject("F_actual_FH").Value();
WriteLine("F_actual_FH / F_FH");WriteLine(F_FH);

var Airing = dom.GetObject("Airing").Value();

inteiro rF_WT = F_WT; ! umidade relativa em % dentro
inteiro rF_FH = F_FH; ! umidade relativa em % externa

real r = (17,62 * T_WT) / (243,12 + T_WT);WriteLine("r (WT)");WriteLine(r);
real e = r.Exp()*611.2;WriteLine("e (WT)");WriteLine(e);
eSat real = e * rF_WT;WriteLine("eSat (WT)");WriteLine(eSat);
F_WT real = ((eSat / 461,51 * (T_WT+273,15))10).ToString(2);WriteLine("F_WT");WriteLine(F_WT); WriteLine("abs. umidade dentro e (WT): " + F_WT);

real r = (17,62 * T_FH) / (243,12 + T_FH);WriteLine("r (FH)");WriteLine(r);
real e = r.Exp()*611.2;WriteLine("e (FH)");WriteLine(e);
eSat real = e * rF_FH;WriteLine("eSat (FH)");WriteLine(eSat);
real F_FH = ((eSat / 461,51 * (T_FH+273,15))10).ToString(2);WriteLine("F_FH");WriteLine(F_FH); WriteLine("abs. umidade externa e: " +F_FH);

! Umidade absoluta - dentro
se (T_WT < 0,0) {T_WT = 0,0;}
se (T_WT < 10,0)
{ F_WT = (3,78 + (0,29 * T_WT) + (0,0046 * T_WT * T_WT) + (0,00051 * T_WT * T_WT * T_WT)) * 0,01 * rF_WT;
WriteLine("F_WT abs.F se T_WT < 10,0");WriteLine(F_WT);
}
outro
{ F_WT = (7,62 + (0,51 * (T_WT-10,0)) + (0,0143 * (T_WT-10,0) * (T_WT-10,0)) + (0,00045 * (T_WT-10,0) * (T_WT-10,0) * (T_WT- 10,0))) * 0,01 * rF_WT;
WriteLine("F_WT abs.F else");WriteLine(F_WT);
}

! Umidade absoluta - externa
se (T_FH < 0,0) {T_FH = 0,0;}
se (T_FH < 10,0)
{ F_FH = (3,78 + (0,29 * T_FH) + (0,0046 * T_FH * T_FH) + (0,00051 * T_FH * T_FH * T_FH)) * 0,01 * rF_FH;
WriteLine("F_FH abs.F se T_FH < 10,0");WriteLine(F_FH);
}
outro
{ F_FH = (7,62 + (0,51 * (T_FH-10,0)) + (0,0143 * (T_FH-10,0) * (T_FH-10,0)) + (0,00045 * (T_FH-10,0) * (T_FH-10,0) * (T_FH- 10,0))) * 0,01 * rF_FH;
WriteLine("F_FH abs.F else");WriteLine(F_FH);
}
WriteLine(" ");
WriteLine("Temperatura interna: (T_WT)" + T_WT);
WriteLine("umidade relativa interna (rF_WT)%: " + rF_WT);
WriteLine("abs. umidade interna: F_WT)" + F_WT);
WriteLine("Temperatura externa: (T_FH)" + T_FH);
WriteLine("umidade relativa externa (rF_FH)%: " + rF_FH);
WriteLine("abs. umidade externa: (F_FH)" + F_FH);

! Saturação (0,5 g/kg a histerese de 0,7 K)
if ((F_FH <= (F_WT - 0,8)) && (T_FH <= (T_WT - 1,0)) && (T_WT > 20,7))
{Lueften.State(true);}
outro
{ if ((F_FH >= (F_WT - 0,3)) || (T_FH >= (T_WT - 0,3)) || (T_WT <= 20,0))
{Lueften.State(falso);}
}

WriteLine(“Exibição”); WriteLine(Exibição);

As variáveis são lidas dos respectivos sensores de temperatura/umidade em um programa externo e assim repassadas para todos os outros programas sem a necessidade de consultar novamente o sensor (para minimizar o Ciclos de serviçoe utilizado neste programa para calcular a recomendação “ventilar” ou “não ventilar”.

Como sempre: todos WriteLine As instruções podem ser seguidas por um teste funcional com um “! “pode ser comentado ou excluído.

Quem quiser que a base de cálculo seja explicada com mais detalhes, aqui encontrei.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

pt_PTPortuguese