$status=$this->getProperty("status");
if ($status) {
$this->callMethod('turnOff');
} else {
$this->callMethod('turnOn');
}
Теперь сама проблема:
В Gps_track есть действие когда я вхожу в зону дома и выхожу из зоны дома, нужно включить бойлер но при условии если время вхождения в зону является больше 16:00 если нет то ничего не делаем.
Так вот я создал действия Entering там нужно указать сценарии для его выполнения.
Я создал сценарии и указал его в Entering:
А это точно логика, какая нужна? По этому коду получается так: если время больше Boler.TimeOn, тогда если Boler.status==1, то делаем Boler.status=0. А если время меньше Boler.TimeOn, тогда если Boler.status == 0 делаем Boler.status=1. Так должно быть?
if (timeAfter(getGlobal('Boler.TimeOn')))
{
if (getGlobal('Boler.status')){
setGlobal("Boler.status",0);
callMethod('Boler.switch');
}else{
if (!getGlobal('Boler.status')){
setGlobal("Boler.status",1);
callMethod('Boler.switch');
}
}
}
Шас работает супер, если время ниже указного то Алиса не включит бойлер если выше то включит при условии если я буду в радиусе 500 метров от дома.
DimSun75 писал(а):А это точно логика, какая нужна? По этому коду получается так: если время больше Boler.TimeOn, тогда если Boler.status==1, то делаем Boler.status=0. А если время меньше Boler.TimeOn, тогда если Boler.status == 0 делаем Boler.status=1. Так должно быть?
Ну я шас задал время и запустил сценарии и он отработал как положено.
Я только учу ПХП поэтому могу сделать гдето ошибку в Логике ))
if (timeAfter(getGlobal('Boler.TimeOn')))
{
if (getGlobal('Boler.status')){
setGlobal("Boler.status",0);
callMethod('Boler.switch');
}else{
if (!getGlobal('Boler.status')){
setGlobal("Boler.status",1);
callMethod('Boler.switch');
}
}
}
Шас работает супер, если время ниже указного то Алиса не включит бойлер если выше то включит при условии если я буду в радиусе 500 метров от дома.
Хм, сдается мне, что если время ниже указанного, и бойлер включен (ну так сложилось), то Алиса его выключит. При какой значении Boler.status бойлер включен?