Page 1 sur 3
Calcul rendement VMC double flux
Publié : 16 avr. 2019, 21:32
par gaston
Bonjour à toutes / tous
Alors voila, je récupère les températures de ma VMC double flux sous Domoticz via un plugin Modbus dans l'onglet "Mesures" (températures: intérieur, extérieur, extraction et soufflage ).

(Bon, pour le coup, les T° sont toutes égales ... ce n'est pas un bug, la maison n'étant pas chauffée, elle vient de "tomber en équilibre :p )
J'ai pour idée de calculer (par un script) et afficher (par un "virtual device") le rendement de la VMC.
Le calcul empirique est simple: R=(T°soufflage-T°ext)/(T°int-T°ext)
J'arrive à récupérer la valeur de la T° intérieur (et autres) avec la commande:
Mais c'est là que je coince... Comment faire simple...
Certe, un script qui recherche dans le (les) json ou bien il existe un truc simple à base des IDX que je connais ?
En gros, besoin d'aide pour m'orienter vers le bon chemin... Quel langage choisir pour ce genre de calcul ?
Merci d'avance,
Gaston
Re: Calcul rendement VMC double flux
Publié : 16 avr. 2019, 22:44
par papoo
je suis en train de faire une chose similaire
je te propose mon script vmc.lua à placer dans le répertoire /home/pi/domoticz/scripts/dzVents/scripts/
modifie les variables
local T_soufflage =
local T_reprise =
local T_exterieure =
local rendement_vmc =
avec le nom de tes devices existants
Code : Tout sélectionner
--[[
-- Avec des températures mesurée au niveau de l'échangeur
-- - t1 : température soufflage
-- - t2 : température reprise
-- - t3 : température extérieure
-- et débit extrait = débit insufflé
-- Rendement = (t1-t3) / (t2-t3)
La formule utilisée pour le calcul du gain est la suivante :
Gain : 0.34 * rendement * Débit * (T_Insuf – T_Aspi) * Temps / 1000
0,34 : capacité thermique volumique de l'air en Wh/m3 °C
rendement théorique de l’échangeur =0.9 ou calcul du rendement réel
Débit : débit de l’air en m3/h
T_Insuf : température de l’air insufflé dans les pièces
T_Aspi : température de l’air aspiré en entrée de la VMC
Temps : exprimé en heure
/1000 : pour le calcul en KWh
--]]
local scriptName = 'VMC'
local scriptVersion = '1.0'
local T_soufflage = 'Temperature soufflage Vmc' --device température de soufflage vmc
local T_reprise = 'Temperature reprise Vmc' --device température de reprise vmc
local T_exterieure = 'Temperature air neuf Vmc' --device température air neuf vmc
local rendement_vmc = 'Rendement Vmc' --device température de soufflage vmc nil si inutilisé
local debit = 90 -- débit de l’air en m3/h
return {
active = true,
--on = { timer = {'at 21:52 on mon'}},
on = { timer = {'every minute'}},
logging = { --level = domoticz.LOG_DEBUG,
-- level = domoticz.LOG_INFO, -- Seulement un niveau peut être actif; commenter les autres
-- level = domoticz.LOG_ERROR, -- Only one level can be active; comment others
-- level = domoticz.LOG_MODULE_EXEC_INFO,
marker = scriptName..' v'..scriptVersion },
execute = function(domoticz)
local function logWrite(str,level) -- Support function for shorthand debug log statements
domoticz.log(tostring(str),level or domoticz.LOG_DEBUG)
end
T_soufflage = domoticz.utils.round(domoticz.devices(T_soufflage).temperature,1)
T_reprise = domoticz.utils.round(domoticz.devices(T_reprise).temperature,1)
T_exterieure = domoticz.utils.round(domoticz.devices(T_exterieure).temperature,1)
-- print('coucou')
logWrite('T_soufflage vmc : '..T_soufflage..'°C', domoticz.LOG_DEBUG)
logWrite('T_reprise vmc : '..T_reprise..'°C', domoticz.LOG_DEBUG)
logWrite('T exterieure vmc : '..T_exterieure..'°C', domoticz.LOG_DEBUG)
if T_soufflage ~=nil and T_reprise ~=nil and T_exterieure ~=nil then
local rendement = domoticz.utils.round((tonumber(T_soufflage) - tonumber(T_exterieure)) / (tonumber(T_reprise) - tonumber(T_exterieure)),1)
logWrite('rendement vmc : '..rendement..'%', domoticz.LOG_DEBUG)
if rendement_vmc ~= nil and domoticz.devices(rendement_vmc).percentage ~= rendement then
domoticz.devices(rendement_vmc).updatePercentage(rendement)
logWrite('mise à jour rendement vmc', domoticz.LOG_DEBUG)
end
end
end -- execute function
}
Re: Calcul rendement VMC double flux
Publié : 17 avr. 2019, 00:06
par le belge
Bonjour ,
je m'incruste.....autant pour les t° une simple sonde peut faire l'affaire ,mais pour le débit , vous faites comment ?
merci à vous
Re: Calcul rendement VMC double flux
Publié : 17 avr. 2019, 07:11
par papoo
C’est une valeur indicative donnée par le constructeur de ma VMC
Je n’ai pour l’instant pas cherché à mesurer le débit réel en continu
Re: Calcul rendement VMC double flux
Publié : 17 avr. 2019, 22:28
par gaston
Bonsoir,
Merci Papoo pour ce script qui m'oriente plus que bien

Par contre, j'ai un petit soucis ... Ça ne fonctionne pas ...
Mais je pense savoir pourquoi, mes mesures de températures n'en sont pas vraiment ... Ce sont des types "général", custom device et non pas des capteurs de température.
Donc, la commande
Code : Tout sélectionner
T_soufflage = domoticz.utils.round(domoticz.devices(T_soufflage).temperature,1)
semble planter car un capteur "général" n'a pas de température ...
J'ai testé 2 ou 3 trucs venants de là :
https://www.domoticz.com/wiki/DzVents:_ ... tom_sensor mais rien de concluant...
Donc question: Sais tu comment formuler la bonne "question" pour relever la valeur d'un capteur "general" ?
Ou bien, comment transformer mes capteurs "general" en "température" ? (le scripte fonctionne si à la place des idx de la vmc je met des idx de sondes de T° de la maison, le device rendement est bien affiché)
Les capteurs sont générés par le plugin modbus venant
D'ICI, tu récupère tes température comment d'ailleurs ?
@ le belge, c'est un registre modbus qui me donne le débit qui est, je suppose, la valeur de consigne de la régulation.
Re: Calcul rendement VMC double flux
Publié : 17 avr. 2019, 22:40
par papoo
remplace temperature par state dans le cas d'un custom sensor
Code : Tout sélectionner
T_soufflage = domoticz.utils.round(domoticz.devices(T_soufflage).state,1)
Re: Calcul rendement VMC double flux
Publié : 17 avr. 2019, 23:15
par gaston
Super, ça fonctionne
Certe, le rendement est ... bof ... mais pas de chauffage, je n'y habite pas encore, je fais pour le moment toutes les modifs par vpn, c'est pratique
Par contre, peux tu me dire ou trouver la documentation qui explique le "state" et autres car je n'ai pas vu ça sur le wiki de domoticz ...
N'hésite pas aussi à me dire quelle est ta config de VMC, pour ma part:
-
VMC Domeo 210 DHU
-
passerelle Modbus RTU=> Modbus TCP
-
Plugin Modbus pour domoticz
* pas de pub, c'est là ou j'ai acheté / téléchargé les equipements
edit:
Le script qui fonctionne:
Code : Tout sélectionner
--[[
-- Avec des températures mesurée au niveau de l'échangeur
-- - t1 : température soufflage
-- - t2 : température reprise
-- - t3 : température extérieure
-- et débit extrait = débit insufflé
-- Rendement = (t1-t3) / (t2-t3)
La formule utilisée pour le calcul du gain est la suivante :
Gain : 0.34 * rendement * Débit * (T_Insuf – T_Aspi) * Temps / 1000
0,34 : capacité thermique volumique de l'air en Wh/m3 °C
rendement théorique de l’échangeur =0.9 ou calcul du rendement réel
Débit : débit de l’air en m3/h
T_Insuf : température de l’air insufflé dans les pièces
T_Aspi : température de l’air aspiré en entrée de la VMC
Temps : exprimé en heure
/1000 : pour le calcul en KWh
--]]
local scriptName = 'VMC'
local scriptVersion = '1.0'
local T_soufflage = 35 --device température de soufflage vmc
local T_reprise = 32 --device température de reprise vmc
local T_exterieure = 33 --device température air neuf vmc
local rendement_vmc = 42 --device température de soufflage vmc nil si inutilisé
local debit = 90 -- débit de l’air en m3/h
return {
active = true,
--on = { timer = {'at 21:52 on mon'}},
on = { timer = {'every minute'}},
logging = { -- level = domoticz.LOG_DEBUG,
-- level = domoticz.LOG_INFO, -- Seulement un niveau peut être actif; commenter les autres
-- level = domoticz.LOG_ERROR, -- Only one level can be active; comment others
-- level = domoticz.LOG_MODULE_EXEC_INFO,
marker = scriptName..' v'..scriptVersion },
execute = function(domoticz)
local function logWrite(str,level) -- Support function for shorthand debug log statements
domoticz.log(tostring(str),level or domoticz.LOG_DEBUG)
end
T_soufflage = domoticz.utils.round(domoticz.devices(T_soufflage).state,1)
T_reprise = domoticz.utils.round(domoticz.devices(T_reprise).state,1)
T_exterieure = domoticz.utils.round(domoticz.devices(T_exterieure).state,1)
-- print('coucou')
logWrite('T_soufflage vmc : '..T_soufflage..'°C', domoticz.LOG_DEBUG)
logWrite('T_reprise vmc : '..T_reprise..'°C', domoticz.LOG_DEBUG)
logWrite('T exterieure vmc : '..T_exterieure..'°C', domoticz.LOG_DEBUG)
if T_soufflage ~=nil and T_reprise ~=nil and T_exterieure ~=nil then
local rendement = domoticz.utils.round((tonumber(T_soufflage) - tonumber(T_exterieure)) / (tonumber(T_reprise) - tonumber(T_exterieure)),1)
logWrite('rendement vmc : '..rendement..'%', domoticz.LOG_DEBUG)
if rendement_vmc ~= nil and domoticz.devices(rendement_vmc).percentage ~= rendement then
domoticz.devices(rendement_vmc).updatePercentage(rendement)
logWrite('mise à jour rendement vmc', domoticz.LOG_DEBUG)
end
end
end -- execute function
}
Re: Calcul rendement VMC double flux
Publié : 18 avr. 2019, 07:27
par papoo
J’ai une duolix pro qui a 10ans non communicante (elle a une télécommande radio en 868mhz protocole propriétaire) je l’ai équipé de sonde de température et d’une commande pour passer en sur débit
State est dans le wiki mais bien caché au tout début dans les paramètres communs à tous les devices il me semble
Lorsque tu as un doute utilise la fonction dump() pour lister l’ensemble des données disponible de ton device
Re: Calcul rendement VMC double flux
Publié : 18 avr. 2019, 17:55
par le belge
@papoo
j'ai aussi une duolix max , à part mettre des sondes dans la vmc , pas possible de récupérer les infos ?? dommage ...
tu n'as pas été embêtée avec les axes des servos qui cassent (sur ventil et by-pass)
Re: Calcul rendement VMC double flux
Publié : 18 avr. 2019, 21:19
par papoo
le fabricant ne souhaite pas donner d’infos sur le protocole utilisé, c'est bien dommage
Pour l’instant je touche du bois pas d’axe cassé