Aller au contenu
Krikroff

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

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Si tu tire un tuyau jusqu'a l'égout du coup tu t'en fou  :lol:

Pas mal ce désumid !

Partager ce message


Lien à poster
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 ...

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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".

Partager ce message


Lien à poster
Partager sur d’autres sites

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.

Partager ce message


Lien à poster
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 !

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
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.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven : Désolé j'étais en train de rédiger et n'ai pas vu ton message. Mais ouais c'est exactement ce que je recherche.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Steven, oui c'est exactement cela la mise en œuvre de l'hystérésis ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de le mettre en place, je vous ferais par de mon expérience d'ici quelques jours.

 

Merci à  tous les deux.

Partager ce message


Lien à poster
Partager sur d’autres sites

Heu?! C'est moi, ou il y a un problème de nom de variable entre targetValue et humidyTargetValue ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Malheureusement que ce post intéressant s'est arrêté.

Quelqu'un peut nous fournir le script qui fonctionne?

Merci àvous

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

@krickroff, merci; donc je peux utiliser le code que tu as mis dès le début ?

Ou tu as apporté quelques améliorations?

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux utiliser le code

Envoyé de mon iPhone àl'aide de Tapatalk

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
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;

Partager ce message


Lien à poster
Partager sur d’autres sites

Il n'y a pas de problème c'est tout àfait faisable

Envoyé de mon iPhone àl'aide de Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

×