Aller au contenu
Fredric

Gestion Des États De Chauffage

Recommended Posts

Je viens vous parler du mode de gestion que j’ai choisi mon chauffage.

Mon habitation est chauffée à  l’électricité, j’ai donc installé derrière chaque radiateur un FGS 221 qui commande le fils pilote.

 

Je vais juste vous dire comment je change les températures par zones selon les états de la maison.

 

J’ai créé pour chaque radiateur un VD avec 4 ordres « Confort », « Hors gel »,  « Eco » et « Arrêt » comme on peut le trouver un peut partout sur ce forum. (Si vous ne trouvez pas, demandez-moi)

 

J’ai ensuite utilisé le VD de @Steven que vous trouverez ICI et je l’ai « un peut » modifié à  mes besoins.

 

J’ai créé trois variables, une par zone, les chambres, les pièces de vis et « le reste », j’ai appelé ces variables :

RTC_Z1 pour la Zone 1, RTC_Z2 pour la Zone 2 et RTC_Z3 pour la Zone 3 (vous pouvez en créer autant que besoin).

 

En suite, j’ai créé dans le panneau de chauffage, comme indiqué par @Steven dans son tuto, pas un panneau mais 11, selon vos besoin et j'ai relèvé les ID en notant à  quel état ils correspondent.

Exemple, quand je suis au travail, je veux une certaine gestion des mes chauffages, mais aussi quand je suis présent ou en vacances ou si j’ai des invités etc.…

Tous ces états sont dans mes variables que j’utilise déjà  comme beaucoup de monde, état de l’alarme, Travail, Vacances, Absent… (Pareil, pour ceux qui partent de zéro, me demander).

 

J’ai créé une scène qui à  en déclencheurs ces variables d’état. (Je vous poste ma scène qui à  déjà  plus d’un an, je suis en cours de modification de toutes mes scènes pour les optimiser, celle-ci y aura droit aussi mais vu qu’elle fonctionne parfaitement, elle attendra).

J’ai mis les ID de chaque panneau de chauffage dans ma scène pour les associer aux variables (RTC_Z1 pour la Zone 1, RTC_Z2 pour la Zone 2 etc.…) selon les états.

--[[
%% autostart
%% properties
%% events
%% globals
Aujourdhui
AlarmeGenerale
INV
--]]
local idm = { GENERAL = 442 } 
local sourceTrigger = fibaro:getSourceTrigger();
function check()
local startSource = fibaro:getSourceTrigger();
  
 if (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 0 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Active" ) then --travail
    fibaro:debug("Travail / Alarme active")
    fibaro:setGlobal("RTC_Z1", "3"); --ID Chauffage travail ZONE_1 
	fibaro:setGlobal("RTC_Z2", "876"); --ID Chauffage travail Zone_2
	fibaro:setGlobal("RTC_Z3", "3"); --ID Chauffage travail ZONE_1 
	fibaro:setGlobal("RTC_SB", "8"); --ID Chauffage travail SB
	fibaro:setGlobal("RTC_Cellier", "7"); --ID Chauffage Cellier
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 1 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Active" )  then --CP
	fibaro:debug("CP / Alarme active")
    fibaro:setGlobal("RTC_Z1", "881"); --ID Chauffage Sortie Present
	fibaro:setGlobal("RTC_Z2", "881"); --ID Chauffage Sortie Present
	fibaro:setGlobal("RTC_Z3", "881"); --ID Chauffage Sortie Present	
	fibaro:setGlobal("RTC_SB", "8"); --ID Chauffage travail SB	
	fibaro:setGlobal("RTC_Cellier", "7");--ID Chauffage Cellier
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 2 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Active" ) then --Weekend
	fibaro:debug("Weekend / Alarme active")
    fibaro:setGlobal("RTC_Z1", "881"); --ID Chauffage Sortie Present
	fibaro:setGlobal("RTC_Z2", "881"); --ID Chauffage Sortie Present
	fibaro:setGlobal("RTC_Z3", "881"); --ID Chauffage Sortie Present
	fibaro:setGlobal("RTC_SB", "8"); --ID Chauffage travail SB
	fibaro:setGlobal("RTC_Cellier", "7"); --ID Chauffage Cellier
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 3 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Active" ) then --ferie
	fibaro:debug("ferie / Alarme active")
    fibaro:setGlobal("RTC_Z1", "874"); -- id du panneau de chauffage Alarme generale ABS
    fibaro:setGlobal("RTC_Z2", "874"); -- id du panneau de chauffage Alarme generale ABS
    fibaro:setGlobal("RTC_Z3", "874"); -- id du panneau de chauffage Alarme generale ABS
	fibaro:setGlobal("RTC_SB", "874"); -- id du panneau de chauffage Alarme generale ABS
	fibaro:setGlobal("RTC_Cellier", "874"); -- id du panneau de chauffage Alarme generale ABS
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 0 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Inactive" ) and ((fibaro:getGlobalValue("INV")) == "non" ) then --travail
	fibaro:debug("Travail / Alarme Inactive / Pas d'invités")
	fibaro:setGlobal("RTC_Z1", "882"); -- id du panneau de chauffage travail Present
	fibaro:setGlobal("RTC_Z2", "871"); -- id du panneau de chauffage Present
	fibaro:setGlobal("RTC_Z3", "882"); -- id du panneau de chauffage travail Present
	fibaro:setGlobal("RTC_SB", "879"); -- id du panneau de chauffage  Present
	fibaro:setGlobal("RTC_Cellier", "7"); --ID Chauffage Cellier
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 1 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Inactive" ) and ((fibaro:getGlobalValue("INV")) == "non" ) then --CP
	fibaro:debug("CP / Alarme Inactive / Pas d'invités")
	fibaro:setGlobal("RTC_Z1", "6"); -- id du panneau de chauffage Present
	fibaro:setGlobal("RTC_Z2", "871"); -- id du panneau de chauffage Present
	fibaro:setGlobal("RTC_Z3", "6"); -- id du panneau de chauffage Present
	fibaro:setGlobal("RTC_SB", "879"); -- id du panneau de chauffage Present
	fibaro:setGlobal("RTC_Cellier", "7"); --ID Chauffage Cellier
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 2 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Inactive" ) and ((fibaro:getGlobalValue("INV")) == "non" ) then --Weekend
	fibaro:debug("Weekend / Alarme Inactive / Pas d'invités")
	fibaro:setGlobal("RTC_Z1", "6"); -- id du panneau de chauffage Present
	fibaro:setGlobal("RTC_Z2", "871"); -- id du panneau de chauffage Present
	fibaro:setGlobal("RTC_Z3", "6"); -- id du panneau de chauffage Present
    fibaro:setGlobal("RTC_SB", "879"); -- id du panneau de chauffage Present	
	fibaro:setGlobal("RTC_Cellier", "7"); --ID Chauffage Cellier
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 3 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Inactive" ) then --ferie
	fibaro:debug("ferie / Alarme Inactive")
	fibaro:setGlobal("RTC_Z1", "874"); -- id du panneau de chauffage Alarme generale ABS
    fibaro:setGlobal("RTC_Z2", "874"); -- id du panneau de chauffage Alarme generale ABS
    fibaro:setGlobal("RTC_Z3", "874"); -- id du panneau de chauffage Alarme generale ABS
	fibaro:setGlobal("RTC_SB", "874"); -- id du panneau de chauffage Alarme generale ABS
	fibaro:setGlobal("RTC_Cellier", "874"); -- id du panneau de chauffage Alarme generale ABS
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 0 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Inactive" ) and ((fibaro:getGlobalValue("INV")) == "oui" )  then --travail
	fibaro:debug("Travail / Alarme Inactive / Invité present")
	fibaro:setGlobal("RTC_Z1", "875"); -- id du panneau de chauffage Ivités
	fibaro:setGlobal("RTC_Z2", "875"); -- id du panneau de chauffage Ivités
    fibaro:setGlobal("RTC_Z3", "875"); -- id du panneau de chauffage Ivités	
    fibaro:setGlobal("RTC_SB", "875"); -- id du panneau de chauffage Ivités
    fibaro:setGlobal("RTC_Cellier", "7"); --ID Chauffage Cellier
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 1 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Inactive" ) and ((fibaro:getGlobalValue("INV")) == "oui" ) then --CP
	fibaro:debug("CP / Alarme Inactive / Invité present")
	fibaro:setGlobal("RTC_Z1", "875"); -- id du panneau de chauffage Ivités
	fibaro:setGlobal("RTC_Z2", "875"); -- id du panneau de chauffage Ivités
    fibaro:setGlobal("RTC_Z3", "875"); -- id du panneau de chauffage Ivités	
    fibaro:setGlobal("RTC_SB", "875"); -- id du panneau de chauffage Ivités
    fibaro:setGlobal("RTC_Cellier", "7"); --ID Chauffage Cellier
	ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))
	fibaro:sleep(5*1000);
    fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)	
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	elseif (tonumber(fibaro:getGlobalValue("Aujourdhui")) == 2 ) and ((fibaro:getGlobalValue("AlarmeGenerale")) == "Inactive" ) and ((fibaro:getGlobalValue("INV")) == "oui" ) then --Weekend
	fibaro:debug("Weekend / Alarme Inactive / Invité present")
	fibaro:setGlobal("RTC_Z1", "875"); -- id du panneau de chauffage Ivités
	fibaro:setGlobal("RTC_Z2", "875"); -- id du panneau de chauffage Ivités
    fibaro:setGlobal("RTC_Z3", "875"); -- id du panneau de chauffage Ivités	
	fibaro:setGlobal("RTC_SB", "875"); -- id du panneau de chauffage Ivités
	fibaro:setGlobal("RTC_Cellier", "7"); --ID Chauffage Cellier
    ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
    ValeurZ2 = ((fibaro:getGlobal('RTC_Z2')))
    ValeurZ3 = ((fibaro:getGlobal('RTC_Z3')))
    ValeurSB = ((fibaro:getGlobal('RTC_SB')))
    Valeur_Cellier = ((fibaro:getGlobal('RTC_Cellier')))	
	fibaro:sleep(5*1000);
	fibaro:debug("Zone 1: "..ValeurZ1)
    fibaro:debug("Zone 2: "..ValeurZ2)
    fibaro:debug("Zone 3: "..ValeurZ3)
    fibaro:debug("Salle de Bain: "..ValeurSB)
    fibaro:debug("Cellier: "..Valeur_Cellier)
	fibaro:call(idm["GENERAL"], "pressButton", "1")
	
	end
    setTimeout(check, 60*1000)
  end
    local startSource = fibaro:getSourceTrigger();
  if (startSource["type"] == "other") then
    check();
 end
 

Dans chaque pièces dotés d’un radiateur, j’ai mis un VD de @Steven qui commande le premier VD avec 4 ordre de la pièce.

Avec une modification, Au lieu de :

Heating.stefa = 1 -- id du panneau de chauffage 

Je mets :

ValeurZ1 = ((fibaro:getGlobal('RTC_Z1')))
Heating.stefa = ValeurZ1 -- id du panneau de chauffage normal 

Bien sà»r, c’est à  vous de mettre la bonne variable selon la pièce, RTC_Z1 si la pièce est en zone 1.

L’idée, c’est quand votre maison change d’état, je prends la mise sous alarme pour exemple,

La variable « Alarmegeneral » passe de « Inactive » à  « Active » alors la variable « RTC_Z1 prend l’ID « 3 », la RTC_Z2 prend l’ID « 876 » etc.. et les chauffages chauffe en fonction des températures qui sont dans le panneau de chauffage correspondant à  l’ID.

De cette façon, on peut vraiment personnaliser au plus proche de ses besoins.

c'est tout bête mes cela fonctionne très bien.

 

deux captures d'écran pour vous donner une idée:

zone3

scène

 
Enjoy  ;)
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Super tuto !!

 

merciiii

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @pepite, je voulais m'appliquer d'avantage mais j'ai était pris par le temps.

Partager ce message


Lien à poster
Partager sur d’autres sites

×