Voici la configuration de ma maison:
- Chalet ossature bois, isolation de 20cm dans les murs en fibre de bois et 24cm au plafond
- Chauffage géothermique d'un constructeur qui a déposé le bilan, platine electronique deffectueuse, j'ai donc pris le controle de ma PAC en domotique. PAC eau/eau, COP de 4.8 environ, 2 zones dans ma maison, zone 1 au rdc d'environ 50m2, zone 2 sur la mezzanine pour la piece bureau et ma chambre de 20m2. La dalle béton a une inertie de 2h entre le lancement de la PAC et la temperature de la piece qui varie. Il y a 3 compresseurs dans ma PAC, d'environ 1500W chacun, je les déclenche avec 3 Fibaro FGS212 indépendants.
- Cheminée dans ma maison, j'ai un detecteur de fumée Fibaro FGD juste en dessous de la poutre du foyer, il est donc aux premières loges en cas de fumée et ressent tous les changements de température.
- Ensemble de capteur Netatmo dans la maison et à l'exterieur avec anémométre, donc je fait un calcul de la température ressentie.
- Consommer le moins possible. Ne déclencher qu'en heure creuses (23h-7h chez moi) sauf extrème
- Tenir compte du mode de la maison (vacances pour descendre la température de consigne)
- Tenir compte de la différence de température entre l'intérieur (s'il fait plus froid, legerement surchauffer à l'interieur)
- Tenir compte du fonctionnement de la cheminée (si elle fonctionne, il faut qu'il fasse vraiment très froid pour que ma géothermie se lance)
- Tenir compte de la température du lendemain (si grand beau, tant pis il va faire frais le matin mais ensuite la maison recupère des calories)
- Avoir un mode ON (1)/OFF (0)/AUTO (2) à ma Pac pour les 2 zones.
- Gestion de la cheminée. Puisque le lancement de ma PAC se fait en fonction de l'etat de la cheminée, il a fallu que je trouve un moyen d'avoir un virtuel "cheminée" indiquant si celle ci fonctionne ou pas, et quelle puissance. Cela a été empirique, mais c'est devenu assez juste. J'ai un virtuel avec qq champs infos:
- temp_now: #[RdC][Detecteur cheminée][Température]#
- temp_last_hour: lastBetween(#[RdC][Detecteur cheminée][Température]#,1 day ago,1 hour ago)
- difference: #[Maison][Cheminée][temp_now]#-#[Maison][Cheminée][temp_last_hour]#
- difference (entre temp piece et capteur): #[Maison][Cheminée][temp_now]#-#[SaM][Netatmo][Température]#
- difference_last_hour (variation de la difference de temperature): averageBetween(#[Maison][Cheminée][difference]#,2 hour ago,1 hour ago)
- variation_piece: #[SaM][Netatmo][Température]#-lastBetween(#[SaM][Netatmo][Température]#,2 hour ago,1 hour ago)
- puissance: j'ai un calcul de la puissance de ma cheminée en me basant sur le fait qu'elle délivre soit disant 10kW, et la plus haute température au capteur avait été 65deg: #[Maison][Cheminée][Etat]#*max(0,#[Maison][Cheminée][m]#*#[Maison][Cheminée][temp_now]#+#[Maison][Cheminée][p]#), donc pour ma fonction affine: m=10000/(65-#[SaM][Netatmo][Température]#-5) et p=10000-#[Maison][Cheminée][m]#*65
Code : Tout sélectionner
SI ((#[Maison][Cheminée][difference]#>#[Maison][Cheminée][difference_last_hour]#)||(#[Maison][Cheminée][variation]#>0.5)||(#[Maison][Cheminée][difference]#>5))&&(#[Maison][Cheminée][difference]#>=3)&&(#timestamp#>variable(fcnmt_maison_cheminee_end,0)+3600) ALORS variable(fcnmt_maison_cheminee)=1 variable(fcnmt_maison_cheminee_start)=#timestamp# FINSI SI (#[Maison][Cheminée][difference]#<4)&&(#[Maison][Cheminée][variation]#<0)&&(#timestamp#>variable(fcnmt_maison_cheminee_start,0)+3600) ALORS variable(fcnmt_maison_cheminee)=0 variable(fcnmt_maison_cheminee_end)=#timestamp# FINSI
- Gestion des modificateurs. Ces modificateurs vont alterer la température de consigne en plus ou en moins en fonction. J'en ai 3:
- mod_delta (prise en compte de la temperature et du vent exterieur): (#[Maison][Chauffage][difference_in_out]#-10)/10+(#[Jardin][Anemometre][Vitesse Vent]#>2)*#[Jardin][Anemometre][Vitesse Vent]#/20
- mod_interne (prise en compte de la cheminée et si je suis en vacance): -(#[chezmoi][Mode maison presence][Mode]#=="Vacances")*2-#[Maison][Chauffage][prise_en_compte_cheminee]#*#[Maison][Cheminée][Puissance]#/2500. "prise en compte cheminée est un booleen dans mon virtuel)
- mod_forecast: est une valeur qui est calculée à partir de la prevision meteo et de la temperature du lendemain. Cette partie est à refaire je n'en suis pas content
- mod_EDF(pour que mac PAC se lance dans la journée que SI il fait vraiment froid): -(#[chezmoi][Heures EDF][HP]#==1)*2
- Derniers champs infos: Il ne me reste plus qu'a avoir un champ "consigne drc" et "consigne etage" géré par slider dans mon virtuel et ensuite avoir un champ consigne_mod_rdc = consigne_rdc + mod1 + mod2 + mod3 + mod4 (mes 4 modificateurs du paragraphe precedent) et pareil à l'étage
- Scenario de lancement.
J'ai un premier niveau de SI pour savoir si le lancement rentre dans ma plage horaire:( en effet, aucun interet de lancer la PAC à 6h du matin etant donné qu'elle met 2h à produire son effet.... Aussi, je ne lance ma PAC que si la maison perd de la chaleur)Code : Tout sélectionner
(#time#<=700-variable(pac_latence)*100 || #time#>=2315) && (#[Maison][Chauffage][variation_interieur]#<=1*0.2) && (#[chezmoi][infos du jour][Saison]#!="Summer")
J'ai ensuite un 2ème niveau de SI pour chacune de mes zones:(J'ai rajouté un garde fou en cas de bug dans les valeurs pour eviter les start/stop innopiné)Code : Tout sélectionner
(#[SaM][Netatmo][Température]#<#[Maison][Chauffage][consigne_rdc_mod]#) &&(#[Maison][PAC][Etat RdC]#==0) &&(#timestamp#-variable(pac_rdc_stop)>3600*6) &&(variable(pac_rdc_mode)==2)
- Scenario d'arret. Simple, basé sur une variable histeresis
Voilà j'espère que cette présentation pourra servir à certain sur tout ou partie....
Code : Tout sélectionner
(#[Maison][PAC][Etat RdC]#==1) && ( ((#time#>=650) && (#time#<=2305)) || (#[Maison][Chauffage][temp_rdc]#>#[Maison][Chauffage][consigne_rdc_mod]#+variable(pac_rdc_histeresis)) ) ||(variable(pac_rdc_mode)==0)
Dispo s'il y a besoin d'expliquer certaines choses.