Aller au contenu

Messages recommandés

Posté(e)

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
Posté(e)

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 ...

Posté(e)
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

Posté(e)

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".

  • 3 mois après...
Posté(e)

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.

Posté(e)

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 !

Posté(e)

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 ?

Posté(e)

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.

Posté(e)

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

  • 7 mois après...
Posté(e)

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

Quelqu'un peut nous fournir le script qui fonctionne?

Merci àvous

Posté(e)

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

Posté(e)

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

Ou tu as apporté quelques améliorations?

Posté(e)

Tu peux utiliser le code

Envoyé de mon iPhone àl'aide de Tapatalk

Posté(e)

@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

Posté(e)

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

Posté(e)

@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;
Posté(e)

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

Envoyé de mon iPhone àl'aide de Tapatalk

×
×
  • Créer...