[DzVents] Calcul de puissance thermique et de COP sur pompe à chaleur

Vous avez créé un script LUA dont vous êtes fier, un .sh génial, un programme Python hors du commun, un Tuto, c'est ici que vous pouvez les partager.
TurboX
Messages : 83
Inscription : 25 oct. 2019, 13:10

[DzVents] Calcul de puissance thermique et de COP sur pompe à chaleur

Message par TurboX »

Bonjour,

Voici un petit code que j'utilise depuis quelques années pour suivre les performances de ma PAC.
Pour cela, il est nécessaire d'avoir la mesure de température d'entrée et de sortie d'eau ainsi que la puissance consommée.
J'utilise des capteurs aqara pour la température (un peu modifiés avec un SHT31 déporté + pate thermique) et un capteur de puissance Aeotec.
PXL_20211013_1810319081.jpg
PXL_20211013_1810319081.jpg (343.84 Kio) Consulté 637 fois
PXL_20211013_1806461691.jpg
PXL_20211013_1806461691.jpg (203.79 Kio) Consulté 637 fois
En général, ce qu'il manque est le débit. Il faut le connaitre, l'estimer ou le mesurer via un débitmètre.
Pour ma part, mon débit est constant (delta P constant sur plancher chauffant), j'ai une nourrice qui me donne les débit par zone. J'ai pu vérifier que mon estimation de débit était correct par le COP qui est conforme à la datasheet de ma PAC.

Si vous n'arrivez pas à avoir le bon débit, cela permettra quand même de suivre les performances de la PAC au cours des années (voir si cela se dégrade) et voir aussi à partir de quelles basses températures ses performances dégringolent.

Je me base sur la formule suivante:
P = qv × 1,16 × ΔT
Avec:
- P en [W]
- qv en [l/h]
- ∆T: Ecart de température reçu ou perdu par l’eau en [K]

Il vous faudra créer deux capteurs virtuels: 1 compteur de consommation kwh (pour la puissance thermique) et un custom sensor pour le cop.
Le code dont il vous faudra adapter le nom des capteurs et le débit:

Code : Tout sélectionner

return {
	on = {
		timer = {
			'every 5 minutes',
		}
    },
	execute = function(domoticz)
		local Td = domoticz.devices('9 - PAC départ eau')
		local Tr = domoticz.devices('10 - PAC retour eau')
	--	local PuissanceCalo = 0.77*1.16*(Td.temperature-Tr.temperature)
		local Puissancethermique = 0.77*1.16*(Td.temperature-Tr.temperature)*1000
		print('-------------------------puissance thermique calculée: ' .. Puissancethermique)
        if (Puissancethermique>100) then
		--	domoticz.devices('Puissance calo PAC'). updateCustomSensor(PuissanceCalo)
			domoticz.devices('Puissance thermique PAC').updateElectricity(Puissancethermique)
        else
		--	domoticz.devices('Puissance calo PAC'). updateCustomSensor(0)
			domoticz.devices('Puissance thermique PAC').updateElectricity(0)
        end
        local Pw = domoticz.devices('PAC kWh')
        local Pt = domoticz.devices('Puissance thermique PAC')
        print('-------------------------puissance wattH: ' .. Pw.WhActual)
        print('-------------------------old puissance thermH: ' .. Pt.WhActual)
        if (Pw.WhActual>65) then
            --local COP = Pt.WhActual/Pw.WhActual
            local COP = Puissancethermique/Pw.WhActual
            if COP >= 5 then
                print('-------------------------Overload COP ' .. COP .. ', decreased to 5')
                COP = 5
            end
            if (COP>0) then
                domoticz.devices('COP PAC').updateCustomSensor(COP)
                print('-------------------------nouveau COP: ' .. COP)
            end
        else
            domoticz.devices('COP PAC').updateCustomSensor(0)
            print('-------------------------nouveau COP: 0')
        end
	end
}
Répondre