Tags

Related Posts

Share This

Mesurer la consommation de fioul de sa chaudière

Connaître la consommation de fioul de ma chaudière était un des éléments manquant dans les outils utilisés pour diminuer la consommation énergétique globale de mon foyer.

Ce sujet avait déjà occupé mes soirées de recherche sur internet il y a quelques années, mais je n’avais pas trouvé de solution. Puis à l’occasion du remplacement de ma Vera Lite par la Home Center 2 ce sujet est revenu sur le devant de la scène.

C’est à l’occasion de nouvelles recherches que j’ai trouvé un article de guiguiabloc

L’idée présentée et surtout la méthode m’ont alors permis d’envisagé de mettre en place une méthode légèrement alternative chez moi.

Dans son article guiguiabloc envisage d’utiliser une pince ampère-métrique et les commentaires des lecteurs évoque d’utiliser les connecteurs normé des bruleurs récent pour connecter un « appareil » relevant le temps d’allumage du bruleur.

Chez moi a défaut de connaître sa consommation ma chaudière est depuis des années branché sur un module on/off désormais remplacé par un module z-wave (Wall plug Fibaro) avec consommation énérgétique.

Et c’est justement cette consommation électrique qui me permet de savoir qd et combien de temps est allumé le bruleur de ma chaudière.

Le gicleur de ma chaudière est un DELAVAN 0.65 – 60° W. Il consomme donc 0.65 galon à l’heure. 1 gallon = 3,78541178 litres.

Debit Bruleur

Conso l/h

Conso ml/s

0,6

2,271247068

0,630901963333333

0,65

2,460517657

0,683477126944444

Maintenant il suffit de créer un module virtuel qui sera en charge de remonter les informations de consommation (fioul et watt) vers un serveur SQL, et une scène qui scrutera régulièrement l’état du module et principalement sa consommation électrique, en fonction de la consommation en Watt on peut en déduire si le bruleur est allumé ou si seulement la pompe de circulation est allumé ou bien les deux.

Ci-dessous le code LUA de la scène (V1) soyez indulgent c’est le premier script LUA fait pour la HC2.

-------------------------------------------------------<br />--  Scene FiullWatt Notification et Enregistrement   --<br />--	Fichier : Follow-Watt-Bruleur.lua<br />--	version : 1.2<br />-------------------------------------------------------<br />--[[<br />%% autostart<br />%% properties<br />%% globals<br />--]]<br />local deviceRcall = fibaro:getGlobalValue("DeviceVirtuelRcall")<br />local btfioul = fibaro:getGlobalValue("BtFioulChaud")<br />local btwatt = fibaro:getGlobalValue("BtWattChaud")<br />local btpo = fibaro:getGlobalValue("BtPushOver")<br />local deviceChaudiere = fibaro:getGlobalValue("DeviceChaudiere")

–fibaro:call(deviceRcall, « pressButton », btfioul)
–local consoWattChaudiere = fibaro:setGlobal(« WattChaudiere », 100)
local consoWattChaudiere = 0
local consoFioulChaudiere = 0
local consoFioulChaudiereTime = 0
local sleeptime = 30
local nblh = 2.460517657
local nblsleeptime = 0.02050431 –(nblh/3600)*sleeptime

while true do
–fibaro:debug(« os.time() « ..os.time())
–fibaro:debug(« (os.time()/60) « ..math.floor(os.time()/60))
–fibaro:debug(« (1416831960/60) « ..math.floor(1416831960/60))

–local currentDate = os.date(« *t »)
consoWattChaudiere = tonumber(fibaro:getValue(deviceChaudiere, « valueSensor »))
if (
( ( consoWattChaudiere ~= tonumber(fibaro:getGlobalValue(« WattChaudiere »))) )
) then
fibaro:setGlobal(« WattChaudiere », tonumber(fibaro:getValue(deviceChaudiere, « valueSensor »)) )
message = « Consommation Chaudiere ==>  » .. fibaro:getGlobalValue(« WattChaudiere »)
fibaro:call(deviceRcall, « pressButton », btwatt)
if ( (tonumber(fibaro:getValue(deviceChaudiere, « valueSensor »)) > 50) ) then
— consommation de fioul en cours
consoFioulChaudiereTime = consoFioulChaudiereTime + sleeptime
message = message ..  » > 50″
else
if ( (tonumber(fibaro:getValue(deviceChaudiere, « valueSensor »)) > 10) ) then
message = message ..  » > 10″
else
— Valeur non utile !!!
end
fibaro:debug(message)
if ( consoFioulChaudiereTime > 0 ) then
— On calcul la conso total durant le multiple de ‘sleeptime’ puis on remet à 0 le compteur (timer) de conso de fioul
consoFioulChaudiere = (nblh/3600)*consoFioulChaudiereTime
fibaro:setGlobal(« FioulChaudiere », consoFioulChaudiere )
fibaro:debug(« La consommation en fioul durant les ‘ » .. consoFioulChaudiereTime .. « ‘ secondes précédente a été de : « .. (nblh/3600) ..  » *  » .. consoFioulChaudiereTime ..  » =  » .. consoFioulChaudiere)
fibaro:call(deviceRcall, « pressButton », btfioul)
consoFioulChaudiereTime = 0
end
end
–fibaro:debug(message)
–fibaro:setGlobal(« PushoverMsg », message)
–fibaro:call(deviceRcall, « pressButton », btpo)
else
fibaro:debug(« Pas de changement »)
if ( consoFioulChaudiereTime > 0 ) then
fibaro:debug(sleeptime ..  » secondes supplémentaires de consommation de fioul »)
consoFioulChaudiereTime = consoFioulChaudiereTime + sleeptime
end
end
— Wait 30s
fibaro:sleep(sleeptime*1000)
end

Et voici le code des deux boutons du device virtuel, ces boutons sont « activé » par la scène précédente et leur role est de réaliser une connexion HTTP vers un serveur distant sur lequel un scrit PHP fait l’enregistrement dans une DB MySql.

---------------------------------------------------<br />--   Virtuel Device Bouton Fioul RemoteRecord    --<br />---------------------------------------------------<br />local ipserv = fibaro:getGlobalValue("IpServeur")<br />local deviceChaudiere = fibaro:getGlobalValue("DeviceChaudiere")<br />local conso_fioul = fibaro:getGlobal("FioulChaudiere")<br /><br />-- HTTP REQUEST<br />local Web = Net.FHttp(ipserv)<br />local payload = '/ewremote/wservices/fioul/rcall.php?type=add_fioul&amp;value=' .. conso_fioul<br />fibaro:debug("HTTP Call : http://"..ipserv..payload)<br />response, status, errorCode = Web:GET(payload)<br />if tonumber(status) == 200 and tonumber(errorCode) == 0 then<br />  if (response ~= nil) then<br />    -- Actions à effectuer<br />    fibaro:debug("Resultat appel "..response)<br />  else<br />    fibaro:debug('Error : Can not connect to Web server, empty response')<br />  end<br />else<br />  fibaro:debug('Error : Can not connect to Web server, status='..status..', errorCode='..errorCode)<br />end
--------------------------------------------------<br />--   Virtuel Device Bouton Watt RemoteRecord    --<br />--------------------------------------------------<br />local ipserv = fibaro:getGlobalValue("IpServeur")<br />local deviceChaudiere = fibaro:getGlobalValue("DeviceChaudiere")<br />local conso_watt = fibaro:getGlobal("WattChaudiere")<br /><br />-- HTTP REQUEST<br />local Web = Net.FHttp(ipserv)<br />local payload = '/ewremote/wservices/fioul/rcall.php?type=add_watt&amp;value=' .. conso_watt<br />fibaro:debug("HTTP Call : http://"..ipserv..payload)<br />response, status, errorCode = Web:GET(payload)<br />if tonumber(status) == 200 and tonumber(errorCode) == 0 then<br />  if (response ~= nil) then<br />    -- Actions à effectuer<br />    fibaro:debug("Resultat appel "..response)<br />  else<br />    fibaro:debug('Error : Can not connect to Web server, empty response')<br />  end<br />else<br />  fibaro:debug('Error : Can not connect to Web server, status='..status..', errorCode='..errorCode)<br />end

Il reste plus qu’a faire une petite interface pour consulter les chiffres de la consommation, ou de faire simplement des requètes sur la DB dans un premier temps.