-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChauffageSortieNormale
67 lines (64 loc) · 3.21 KB
/
ChauffageSortieNormale
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
$scenario->setLog( '----------------------- chaudiere : sortie pendant les périodes normales ------------------------------');
$szNomEquipementChaudiere = $scenario->getData('ChaudiereThermostat'); // nom de l'équipement Thermostat
if($szNomEquipementChaudiere=='') {
$scenario->setLog('nom équipement chaudière introuvable, lancement le scenario pour évaluation des variables avant svp');
$scList = $scenario->byObjectNameGroupNameScenarioName('Aucun','Chauffage','ChauffageEvalVariables');
if ($scList ==NULL) {
$scenario->setLog('scenario non trouvé, arrêt'); $scenario->stop();
} else
{
$scenario->setLog('scenario évaluation des variables déclenché');
$scList->execute('','lancement par '.$scenario->getName());
$scenario->stop();
}
}
// récupère le mode de commutation
$szMode = $scenario->getData('ChaudiereSortieNormale'); // mode de commutation sortie normale
if($szMode=='') {
$scenario->setLog('mode de commutation sortie normale non trouvé, lancement le scenario pour évaluation des variables avant svp');
$scList = $scenario->byObjectNameGroupNameScenarioName('Aucun','Chauffage','ChauffageEvalVariables');
if ($scList ==NULL) {
$scenario->setLog('scenario non trouvé, arrêt'); $scenario->stop();
} else
{
$scenario->setLog('scenario évaluation des variables déclenché');
$scList->execute('','lancement par '.$scenario->getName());
$scenario->stop();
}
}
$scenario->setLog( 'lecture mode chaudière '.'#'.$szNomEquipementChaudiere . '[Mode]#');
$cmd = cmd::byString('#'.$szNomEquipementChaudiere . '[Mode]#');
$szModeChaudiere = $cmd->execCmd();
$scenario->setLog( 'lecture mode chaudière retour=' . $szModeChaudiere);
if ($szModeChaudiere =='Off')
$scenario->setLog( 'chaudière arrêtée manuellement, on ignore la reprogrammation');
else {
$bPeriodeChauffe = $scenario->getData('ChaudierePeriodeChauffe');
if ($bPeriodeChauffe =='')
$scenario->setLog( 'période de chauffe non calculée, lancez évaluation des variables svp');
else
if ($bPeriodeChauffe ==0)
$scenario->setLog( 'En dehors des périodes de chauffe, on ignore la reprogrammation');
else {
// par défaut on remet le mode confort pour une meilleure montée en température avant l'arrivée
$szCommuterVers = $szMode;
$scenario->setLog( 'En période de chauffe, on change le mode vers '.$szCommuterVers);
$cmd = cmd::byString('#'.$szNomEquipementChaudiere . '['.$szCommuterVers.']#');
$cmd->execCmd($szCommuterVers);
$scenario->setLog( 'commutation en mode ' . $szCommuterVers.' envoyée');
// une fois la commutation effectuée, il faut bloquer la consigne pour éviter un retour à la valeur normale
$cmd = cmd::byString('#'.$szNomEquipementChaudiere . '[lock]#');
$cmd->execCmd();
}
}
// on est en sortie normale, il faut avant de sortir réactiver la programmation
$scProgramme = $scenario->byObjectNameGroupNameScenarioName('Aucun','Chauffage','ChauffageProgrammation');
if ($scProgramme ==NULL) {
$scenario->setLog('scenario de programmation non trouvé, arrêt'); $scenario->stop();
} else
{
if ($scProgramme->getIsActive()==0) {
$scenario->setLog('activation du programmateur');
$scProgramme->setIsActive(1); $scProgramme->save();
}
}