Aller au contenu
fmplaw

Domotiser mon chauffage électrique

Recommended Posts

Effectivement je n'ai aucun problème sur la 4.102 avec ma HC2.

 

Je viens de créer mon sèche-serviette avec un module virtuel tel que celui-ci :

 

03.png

 

Maintenant de quelle manière puis-je programmer les plages de fonctionnement ? Via une scène ? Vous auriez des conseils ou un exemple à me donner ?

 

Merci :)

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon ce module est très capricieux. Lors de l'inclusion il faut qu'il soit au plus près de la box... j'ai bricolé une prise avec le module branché dessus et ça marche enfin. Mon radiateur était situé trop loin de là box. 

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai un petit peu avancé de mon coté, j'aurais cependant aimé avoir votre avis sur plusieurs points.

 

  • Concernant mon module virtuel, voici ce que font chacun des boutons :
    • Bouton confort : fibaro:call(56, "setValue", "100");
                              fibaro:debug("Chauffage en mode Confort");
    • Bouton ECO :     fibaro:call(56, "setValue", "29");
                              fibaro:debug("Chauffage en mode Eco");
    • Etc....

                 Est il possible d'améliorer les commandes associés aux boutons, en s'assurant que la commande se soit bien passé ?

 

  • Concernant ma scène qui me permet de programmer mon radiateur (en cours d'élaboration). Voici le script :
--[[
%% autostart
%% properties
%% globals
--]]

local day = string.lower(os.date("%A"));
local hour = tonumber(os.date("%H%M"));

while true do
	
	-- Mode Maison
	if (day=="monday") or (day=="friday") or (day=="saturday") or (day=="sunday") then
		if (hour>0700 and hour<1630)
			then
				fibaro:debug("Mode chauffage : Confort")
      			fibaro:call(67, "pressButton", "1")
			else	
				fibaro:debug("Mode chauffage : Eco")
		end
	end
	
	-- Mode Travail
	if (day=="tuesday") or (day=="wednesday") or (day=="thursday") then
		if (hour>0000 and hour<0600)
			then
				fibaro:debug("Mode chauffage : Eco")
		end
		if (hour>0600 and hour<0845)
			then
				fibaro:debug("Mode chauffage : Confort")
		end
		if (hour>0845 and hour<1715)
			then
				fibaro:debug("Mode chauffage : Eco")
		end
		if (hour>1716 and hour<2130)
			then
				fibaro:debug("Mode chauffage : Confort")
		end
		if (hour>2130 and hour<0000)
			then
				fibaro:debug("Mode chauffage : Eco")
		end
	end
fibaro:sleep(300000)
end

Je ne suis pas très fan de la boucle mais je ne sais pas comment exécuter ce script toutes les X minutes... De plus, les variables "day" et "hour" gardent les valeurs de la première exécution du script...

 

Des avis ou conseils ?

 

Merci d'avance !

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a une heure, fmplaw a dit :

                 Est il possible d'améliorer les commandes associés aux boutons, en s'assurant que la commande se soit bien passé ?

 

Pas compris ;-)

 

Sinon, pourquoi ne pas tout mettre dans le meme VD que tes boutons ECO, CONFORT.. ? un bouton RAFRAICHIR avec le code de gestion et dans le Main loop tu vas appuyer sur le bouton toutes les X minutes. 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Ce tuto est juste parfait pour gérer les radiateurs électriques 

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 13 minutes, pepite a dit :

Pas compris ;-)

 

Sinon, pourquoi ne pas tout mettre dans le meme VD que tes boutons ECO, CONFORT.. ? un bouton RAFRAICHIR avec le code de gestion et dans le Main loop tu vas appuyer sur le bouton toutes les X minutes. 

 

 

 

L'idée est de vérifier que la commande a bien été exécuté par mon Quibno. En testant le code erreur par exemple ?

 

Pour intégrer le bouton au VD pourquoi pas, mais l'idée étant d'avoir une scène "programme" dissociée de mes VDs.

 

il y a 8 minutes, Fredric a dit :

Ce tuto est juste parfait pour gérer les radiateurs électriques 

 

 

J'ai lu ce topic avec attention mais je n'ai pas de sonde de température pour le moment...

Modifié par fmplaw

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 2 heures, fmplaw a dit :

 

OK j'ai compris @fmplaw

 

J'aurais tenté quelquechose comme ceci

local semaine = {
    Monday   = true, -- maison
    Tuesday  = false, -- travail
    Wednesday= false, -- travail
    Thursday = false, -- travail
    Friday   = true, -- maison
    Saturday = true, -- maison
    Sunday   = true  -- maison
     }
local hour = tonumber(os.date("%H%M"))
fibaro:debug(hour)
local IdQubino = xx
local response, error, status = api.get("/devices/"..IdQubino)
if (response) then 
    -- Mode Maison
    if (semaine[os.date("%A")] and hour>0700 and hour<1630) then
         fibaro:debug("Mode chauffage : Confort")
          fibaro:call(67, "pressButton", "1")
    else    
        fibaro:debug("Mode chauffage : Eco")
    end

    -- Mode Travail
    if not(semaine[os.date("%A")]) then
        if (hour>0000 and hour<0600) then
            fibaro:debug("Mode chauffage : Eco")
        end
        if (hour>0600 and hour<0845) then
            fibaro:debug("Mode chauffage : Confort")
        end
        if (hour>0845 and hour<1715) then
            fibaro:debug("Mode chauffage : Eco")
        end
        if (hour>1716 and hour<2130) then
        fibaro:debug("Mode chauffage : Confort")
        end
        if (hour>2130 and hour<0000) then
        fibaro:debug("Mode chauffage : Eco")
        end
    end
else
  fibaro:debug("Une erreur est survenue [code=" .. (errorCode or "") .. ", status=".. (status or "") .."]" )
end

Et dans le Main loop

local selfId = fibaro:getSelfId()
-- 1ère fois que le main loop s'exécute, on crée une variable nommée "instance" car elle n'existe pas. Elle existera au 2ème passage donc ne sera pas recrée.
if (not instance) then
    -- on indique la fréquence d'execution souhaitée (en minutes)
    instance = { lastrun = 0, every = 1 }
    fibaro:debug("first run")
end
 
-- on vérifie la différence entre cette exécution et la dernière (stocké dans instance.lastrun)
diff = os.date("*t", os.difftime(os.time(), instance.lastrun))
 
    
-- si la différence en minutes et supérieure ou égale à la fréquence souhaitée (instance.every)
  if (diff.min >= instance.every) then
      fibaro:call(selfId, "pressButton", "xx") -- appui sur le bouton rafraichir
      -- on stock l'heure de la nouvelle exécution
      instance.lastrun = os.time()
      fibaro:debug("executed")
  end

Dommage que tu n'es pas encore de sonde, c'est juste une tuerie le code de Steven, d'ailleurs dans ce que je t'ai mis la plupart vient de lui ;-)

Modifié par pepite

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci @pepite !

 

Pour la sonde c'est prévu, je compte prendre un SRT321 pour chacune de mes pièces, mais c'est un petit budget ;)

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de finir ma prog de chauffage. Voici mon petit script qui fonctionne bien

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

local day = string.lower(os.date("%A"));
local hour = tonumber(os.date("%H%M"));

while true do
	
	--Mode Présence
	while ((tonumber(fibaro:getGlobalValue("Presence_Maison")) == 1) and (tonumber(fibaro:getGlobalValue("Chauffage_Eco")) == 1) and (tonumber(fibaro:getGlobalValue("Nuit")) == 0)) do
		fibaro:debug("Mode Présence : chauffage en confort")
      	fibaro:debug("We are " ..(string.lower(os.date("%A"))).. " and it is " ..(tonumber(os.date("%H%M"))))
      	fibaro:call(67, "pressButton", "1")
		fibaro:sleep(5*60*1000)
	end
		
	
	-- Mode Maison
	if ((string.lower(os.date("%A")))=="monday") or ((string.lower(os.date("%A")))=="friday") or ((string.lower(os.date("%A")))=="saturday") or ((string.lower(os.date("%A")))=="sunday") then
		if (tonumber(os.date("%H%M"))>0700) and (tonumber(os.date("%H%M"))<2130)
			then
				fibaro:setGlobal("Chauffage_Eco", 0)
				fibaro:debug("Mode Maison : chauffage en confort. La variable Chauffage_Eco est à " .. fibaro:getGlobalValue("Chauffage_Eco"))
      			fibaro:debug("We are " ..(string.lower(os.date("%A"))).. " and it is " ..(tonumber(os.date("%H%M"))))
      			fibaro:call(67, "pressButton", "1")
			else	
				fibaro:setGlobal("Chauffage_Eco", 1)
				fibaro:debug("Mode Maison : chauffage en eco. La variable Chauffage_Eco est à " .. fibaro:getGlobalValue("Chauffage_Eco"))
      			fibaro:debug("We are " ..(string.lower(os.date("%A"))).. " and it is " ..(tonumber(os.date("%H%M"))))
      			fibaro:call(67, "pressButton", "4")
		end
	end
	
	-- Mode Travail
	if ((string.lower(os.date("%A")))=="tuesday") or ((string.lower(os.date("%A")))=="wednesday") or ((string.lower(os.date("%A")))=="thursday") then
		if (tonumber(os.date("%H%M"))>0000) and (tonumber(os.date("%H%M"))<0600)
			then
				fibaro:setGlobal("Chauffage_Eco", 1)
				fibaro:debug("Mode Travail : chauffage en eco. La variable Chauffage_Eco est à " .. fibaro:getGlobalValue("Chauffage_Eco"))
      			fibaro:debug("We are " ..(string.lower(os.date("%A"))).. " and it is " ..(tonumber(os.date("%H%M"))))
      			fibaro:call(67, "pressButton", "4")
		end
		if (tonumber(os.date("%H%M"))>0600) and (tonumber(os.date("%H%M"))<0845)
			then
				fibaro:setGlobal("Chauffage_Eco", 0)
				fibaro:debug("Mode Travail : chauffage en confort. La variable Chauffage_Eco est à " .. fibaro:getGlobalValue("Chauffage_Eco"))
      			fibaro:debug("We are " ..(string.lower(os.date("%A"))).. " and it is " ..(tonumber(os.date("%H%M"))))
      			fibaro:call(67, "pressButton", "1")
		end
		if (tonumber(os.date("%H%M"))>0845) and (tonumber(os.date("%H%M"))<1715)
			then
				fibaro:setGlobal("Chauffage_Eco", 1)
				fibaro:debug("Mode Travail : chauffage en eco. La variable Chauffage_Eco est à " .. fibaro:getGlobalValue("Chauffage_Eco"))
      			fibaro:debug("We are " ..(string.lower(os.date("%A"))).. " and it is " ..(tonumber(os.date("%H%M"))))
      			fibaro:call(67, "pressButton", "4")
		end
		if (tonumber(os.date("%H%M"))>1716) and (tonumber(os.date("%H%M"))<2130)
			then
				fibaro:setGlobal("Chauffage_Eco", 0)
				fibaro:debug("Mode Travail : chauffage en confort. La variable Chauffage_Eco est à " .. fibaro:getGlobalValue("Chauffage_Eco"))
      			fibaro:debug("We are " ..(string.lower(os.date("%A"))).. " and it is " ..(tonumber(os.date("%H%M"))))
      			fibaro:call(67, "pressButton", "1")
		end
		if (tonumber(os.date("%H%M"))>2130) and (tonumber(os.date("%H%M"))<0000)
			then
				fibaro:setGlobal("Chauffage_Eco", 1)
				fibaro:debug("Mode Travail : chauffage en eco. La variable Chauffage_Eco est à " .. fibaro:getGlobalValue("Chauffage_Eco"))
      			fibaro:debug("We are " ..(string.lower(os.date("%A"))).. " and it is " ..(tonumber(os.date("%H%M"))))
      			fibaro:call(67, "pressButton", "4")
		end
	end
fibaro:sleep(5*60*1000)
end

Il y a sans doute de l'optimisation à faire, mais il a le mérite de fonctionner !  :)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Super tant mieux si ça fonctionne :-)
Moi suis pas fan des boucles :-)
Petit comm d un gars qui n est pas dev alors a prendre avec du recul sur ce que je vais dire, a voir avec les experts :-)
1- tu declares la variable "hour ms tu ne t en sers pas :-)
2- la gestion de tes jours de semai'e c est un peu lourd je trouve. Dans mon post précédent il y a une table pour les jours des semaines, c est maitre@Steven qui me l a appris :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu as tout a fait raison concernant les variables "hour" et "day". C'est un héritage de mon script d'avant.

 

Je vais me pencher sur les tables alors ;)

 

Concernant un futur achat de plusieurs sondes, tu as des conseils particuliers ? SRT 321, SRT 323, Everspring ST814 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @fmplaw,

 

Ben en fait, ca depend de ce que tu souhaites faire ?

 - les SRT sont faits pour le chauffage, et te permettent donc de jouer sur la temperature de consigne etc

 - le ST814 n'est qu'un capteur de temperature

 

- Il existe aussi le DANFOSS RS

 et plein d'autres capteurs et multifonction :-)  : FGMS : l'oeil, detection de mouvement, temperature...

 

C'est au choix, tout sont bien reconnus mais X capteurs à en moyenne 60 euros, ca chiffre vite.

 

A reflechir en fonction de ton besoin.

 

Tu sais où nous trouver :-)

Partager ce message


Lien à poster
Partager sur d’autres sites

Effectivement, dans l'idée c'est un SRT32X qu'il me faudrait pour le chauffage. L'idée c'est qu'il relève la température et qu'il permette également de l'ajuster.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

je suis en train d'installer mon Qubino - Fil pilote sur le radiateur de ma fille et celui-ci semble hors porté de la box... Effectivement c'est le point le plus loin de la maison, cependant j'ai dans cette même pièce un module FGK qui communique bien. J'ai comme obstacle un mur en pierre de 80 cm, cependant j'ai dans celui-ci une module FGD212 qui devrait servir de relai, non ?

 

Voici un petit schéma :

 

 

maison-zwave.png

 

Dois-je effectuer une manipulation particulière pour que mon Qubino utilise le FGD212 ? Je n'ai rien eu a faire de particulier pour mon FGK102.

 

En vous remerciant.

 

Modifié par fmplaw

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon cela fonctionne finalement... J'ai sans doute été trop impatient.

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens finalement d'installer 2 SRT 321 dans chacune des chambres de mes enfants ! J'ai abandonné mon script afin d'utiliser le panneau de chauffage ce qui semble fonctionner plutôt bien.

 

J'ai cependant quelques questions :

 

  • Lorsque la consigne du panneau de chauffage est 20, et que je change manuellement la température à l'aide du SRT321 à 22 disons. Que se passe-t-il quand le SRT321 se réveil et s'adresse à la HC2 ? La consigne repasse à 20 ?

Je souhaiterais récupérer une fonctionnalité qui me plaisait bien dans mon script : l'allumage du chauffage si une personne est présente et que nous sommes en éco.

 

  • Comment procéderiez vous ? J'ai quelques idées en tête mais cela dépendra de la réponse à ma question plus haut :)

En vous remerciant !

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir, 

 

Le panneau de chauffage reprendra la main dès qu'il sera dans la tranche horaire dans laquelle il a une temperature sauf si tu le passes en manuel. Je n'utilise pas le panneau, attendons un autre avis tout de même 

Tu as un capteur de température ? 

Tu peux :

- detection de mouvement

- tu changes de panneau ou le json du panneau 

 

Le master @Steven a fait une scène pour gérer le chauffage depuis n'importe quelle température liée  au panneau de chauffage

Partager ce message


Lien à poster
Partager sur d’autres sites

En fait si tu donnes une consigne en direct sur le SRT, tu as une dérogation pendant 2 h, après quoi le panneau de chauffage reprend la main.

Partager ce message


Lien à poster
Partager sur d’autres sites

×