Aller au contenu

Régulation De L'humidité D'une Pièce


Krikroff

Messages recommandés

Le matériel:

 

1x Déshumidificateur Zibro D510

1x Everspring ST814 Temperature / Humidity Detector

1x Wallplug Fibaro

 

La scène en LUA (le code n'est pas optimisé, ce n'est pas un Best Pratictice :ph34r: mais utilisable sans risque  :))

 

Le paramétrage:

 

humidityTargetValue : Représente l'humidité relative désirée.

Le node 18 est ici le ST814

Le node 35 est le Wall plug

Le script est en fonction tous les jours de 11h à  19h

post-3-0-70834900-1388416445_thumb.png

--[[
%% autostart
%% globals
--]]

-- Regulating humidity in a room with a dehumidifier.
-- Copyright © 2013 Jean-christophe Vermandé

fibaro:debug("HC2 start script at " .. os.date());

-- check script instance count in memory
if (fibaro:countScenes() > 1) then
  fibaro:debug("Script already running.");
  fibaro:abort();  
end

local sourceTrigger = fibaro:getSourceTrigger();
local hysteresis = 2;
local sensorValueCorrection = -8;
local humidityTargetValue = 60;
local _dtLastIgnition;

function deviceControl(targetValue)
  local humidityValue = tonumber(fibaro:getValue(18, "value")) + sensorValueCorrection;
  local deviceState = tonumber(fibaro:getValue(35, "value"));
  --fibaro:debug("device state: " .. deviceState .. " relative humidity: " .. humidityValue);  
  if (humidityValue > targetValue) then
    -- TURN ON
    if (deviceState==0) then
      fibaro:call(35, "turnOn");
      fibaro:debug("Date of the last ignition is " .. (_dtLastIgnition or "unknown."));
      _dtLastIgnition = os.date();
      fibaro:debug(_dtLastIgnition .. " - device state: " .. deviceState .. 
        " relative humidity: " .. humidityValue .. 
        " -> device turned On");
    end
  elseif (humidityValue < targetValue) then
    -- TURN OFF
    if (deviceState==1) then
      fibaro:call(35, "turnOff");
      fibaro:debug(os.date() .. " - device state: " .. deviceState .. 
        " relative humidity: " .. humidityValue .. 
        " -> device turned Off");
    end
  end
end

if (sourceTrigger["type"] == "autostart") then
  while true do
    local currentTime = tonumber(os.date("%H%M"));
    if ((currentTime >= tonumber(string.format("%02d%02d", "11", "00"))) and (currentTime <= tonumber(string.format("%02d%02d", "19", "00")))) then
      deviceControl(humidityTargetValue);
    else 
      if (tonumber(fibaro:getValue(35, "value"))==1) then
        fibaro:call(35, "turnOff");
        --fibaro:debug("force turnOff");
      end
    end    
    fibaro:sleep(5*60*1000);
  end
else
  local currentTime = tonumber(os.date("%H%M"));
  local startSource = fibaro:getSourceTrigger();
  if ( ((currentTime >= tonumber(string.format("%02d%02d", "11", "00"))) and (currentTime <= tonumber(string.format("%02d%02d", "19", "00")))) or startSource["type"] == "other") then
    deviceControl(humidityTargetValue);   
  end
end

Une autre scène nous préviens grâce à  la mesure de consommation du wall plug lorsque le déshumidificateur est plein :mellow:

  • Upvote 4
Lien vers le commentaire
Partager sur d’autres sites

Il va finir dans mon cellier pour la régulation avec petite évacuation dans le vide sanitaire et hop ! Bon pour cela il faut que je finisse les travaux de rénovation ...

Lien vers le commentaire
Partager sur d’autres sites

Une autre scène nous préviens grâce à  la mesure de consommation du wall plug lorsque le déshumidificateur est plein :mellow:

 

 

Salut

à‡a se traduit comment ? Il consomme plus quand il est plein ?

Tu fais une correction de -8, c'est pour ton capteur d'humidité qui n'est pas bien calibré ?

L’hystérésis, ça sert à  quoi ?

Merci

Lien vers le commentaire
Partager sur d’autres sites

C'est exactement cela, la variable sensorValueCorrection corrige le ST814 et hysteresis n'est pas utilisé pour le moment dans le script, son usage sera de limiter les "start/stop".

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...

Bonjour Krikroff,

 

As-tu modifié ton script avec l'intervention de l'hysteresis ? car j'aime bien l'idée du script, mais je pense que dans mon cas, le déshumidificateur va démarrer et s'arrêter toutes les 5 minutes.

 

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Non pas encore :rolleyes: , après tu utilises quoi comme détecteur d’humidité et dans quelle pièce ? Moi je l'utilise actuellement dans une grande chambre et j'ai 1 a 2 déclenchements par jour en hivers et presque pas en belle saison :) je ne ressens donc pas le besoin du hysteresis actuellement. Après le paramétrage de mon ST814 aide peut-être aussi, il est long àla détente le petit !

Lien vers le commentaire
Partager sur d’autres sites

Sinon, c'est vite fait

 

if (humidityValue > (targetValue + hysteresis)) then
et

elseif (humidityValue < (targetValue - hysteresis)) then
Ainsi si la targetValue est de 60% et l'hysteresis de 2% le système s'enclenchera quand on sera à  62% et s’arrêtera à  58%.

C'est une gestion très simpliste de l’hystérésis mais largement suffisant.

Krikroff es-tu d'accord avec cela ?

Lien vers le commentaire
Partager sur d’autres sites

Pièce : Au sous sol (dont 1 partie légèrement enterrée).

 

Déshumidificateur : EDS50 ( WOODS - Deshumidificateur professionnel Blanc - ED50 ). il a la particularité de vider directement dehors et d'avoir une sonde dite mécanique. En gros on ne perd jamais la valeur après coupure de courant.

​

Sonde : ST814, et oui je suis complètement d'accord avec toi, il faut obligatoirement les décaler car comparer à  des Oregon il y a au moins 8 à  10% d'écart à  environ 60% d'hygrométrie. J'ai fait un paquet de test, je dois avoir 4x ST814 et une dizaine d'Oregon. Il n'y a pas photo, je serais Oregon, je me mettrais au Z-Wave.

 

En gros en ce moment, c'est une pièce d'écoute/ciné et le déshumidi se déclenche toutes les 30 minutes pendant 5 minutes car je n'ai pas la possibilité de lui changer sa différence d'intervention.

 

Je pense que l'hysteresis me permettrait de lui dire de démarrer à  + de 65% et de s'arrêter à  55% et non de démarrer à  61% et de s'arrêter à  59%. Je pense que tu as compris l'idée.

Lien vers le commentaire
Partager sur d’autres sites

  • 7 mois après...

Outch, déterrage de post...

 

@Arnaud78, non il n'y a pas de confusion, targetValue n'est disponible que dans la fonction deviceControl et humidityTargetValue la variable à  configurer

 

@forumAD, le code fonctionne logiquement ;)

 

JC

Lien vers le commentaire
Partager sur d’autres sites

@krikroff;  Merci beaucoup.

Je me met à  l’Å“uvre; Tout ton script a été adapté à  mon cas

 

Avant de commencer j'aimerais encore m'assurer si mon déshumidificateur pourra faire l'affaire;

Dans le manuel, voici ci-dessous, ce qui m'inquiète un peu:

-----

5.2 Hygrostat
L'appareil dispose d'un hygrostat permettant de régler une valeur d'humidité souhaitée.

L'hygrostat actionne le déshumidificateur lorsque l'humidité ambiante dépasse la valeur réglée. Si la valeur d'humidité passe en dessous de cette valeur, l'hygrostat arrête l'appareil.
L'hygrostat permet de régler les modes de fonctionnement suivants :
• Marquage min (zone bleue) : l'appareil se trouve en mode de fonctionnement minimal.
• Marquage éco (zone verte) : l'appareil se trouve en mode de fonctionnement normal.
• Marquage max (zone rouge) : l'appareil se trouve en mode de fonctionnement permanent.

-----

Je joins le manuel du déshumidificateur.

Tu crois qu'il y a une adaptation à  faire dans le code?

 

Merci de ton précieux support;

Manual secco30.pdf

Lien vers le commentaire
Partager sur d’autres sites

Il faut mettre l'appareil en mode de fonctionnement permanent et c'est le HC2 qui décidera d'allumer ou d'éteindre le deshumidificateur en fonction du retour de la sonde du ST814.

Envoyé de mon iPhone àl'aide de Tapatalk

Lien vers le commentaire
Partager sur d’autres sites

@krikroff;; Encore une fois, Merci pour ton support;

 

J'ai un autre besoin qui ressemble pas mal à  celui-ci (J'avais déjà  lancé le sujet sur un post "Pilotage Ventilateur Helios M1/100Nc":)

 

J'aimerais sur la base de ton script en lua faire ma même chose mais avec un ventilateur de salle de bain.
 
En effet, j'aimerais en fonction du taux d'humidité dans la salle de bain (contrôle par le ST814), déclencher la ventilation.
Par exemple:
A chaque fois que  Tx > 85% alors Ventilateur en marche jusqu'à  Tx < 65%.
 
Un "nice to have" serait aussi de pouvoir mêttre en marche manuellement  indépendemment de la scène depuis l'application Fibaro sur iphone;
 
Pour çette appli, j'aimerais utiliser :
node-13 : FGS-211 "Relay Switch 1x3kW" (qui sera plaçer dans l'interrupteur de commande de la ventilation Helios)
node-4: 1x ST814
 
Tout ceci indépendamment du jour ou de l'heure.
 
Merci d'avance;
Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...