-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChauffageRetourVacances
82 lines (78 loc) · 3.85 KB
/
ChauffageRetourVacances
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
$scenario->setLog( '----------------------- chaudiere : retour de congés ------------------------------');
$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('ChaudiereRetourVacances'); // mode de commutation retour vacances
if($szMode=='') {
$scenario->setLog('mode de commutation départ vacances 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();
}
}
// on est en retour de vacances, il faut 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();
}
}
$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;
if ($szModeChaudiere ==$szCommuterVers) // si le mode est déjà réglé, inutile de le renvoyer
$scenario->setLog( 'le mode est déjà réglé, on ignore la commande');
else {
$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');
$scenario->setData('ChaudiereProchainCycleHeure','-');
$scenario->setData('ChaudiereProchainCycleMode','attente prochain cycle');
// on est en retour de vacances, il faut activer la programmation
$scProgramme = $scenario->byObjectNameGroupNameScenarioName('Aucun','Chauffage','ChauffageProgrammation');
if ($scProgramme ==NULL) {
log::add('scenario','debug','scenario de programmation non trouvé, on saute');
} else
{
if ($scProgramme->getIsActive()==0) {
log::add('scenario','debug','activation du programmateur');
$scProgramme->setIsActive(1); $scProgramme->save();
}
}
}
}
}