Страница 1 из 1

Проблема со свойствами в сценарии.

Добавлено: Вс мар 18, 2018 11:13 am
karsotrade
Добрый день. Прошу помощи. Столкнулся с проблемой, ума не приложу в чём дело.
Для примера выкладываю простой сценарий. Ventilacija.TempOtkritija = 22 и DHTSens24.temp = 26.5
СпойлерПоказать
$tempopen=gg('Ventilacija.TempOtkritija');
$now=gg('DHTSens24.temp');
if ($now > $tempopen) {
say("открываем",2);
}
В таком виде не работает (не говорит).
А вот в таком виде (вместо значения свойства подставляю просто число (значение)) всё работает (говорит).
СпойлерПоказать
$tempopen=gg('Ventilacija.TempOtkritija');
$now=gg('DHTSens24.temp');
if (26.5 > $tempopen) {
say("открываем",2);
}
или так, тоже работает
СпойлерПоказать
$tempopen=gg('Ventilacija.TempOtkritija');
$now=gg('DHTSens24.temp');
if ($now > 22) {
say("открываем",2);
}
В чём проблема, не могу понять.

Re: Проблема со свойствами в сценарии.

Добавлено: Вс мар 18, 2018 2:24 pm
fandaymon
Проблема в типе данных - сейчас они у вас строковые. Т.е. сравниваются 2 строки. Когда в условие добавляется число, то строка приводится к числовому виду. Надо что-то типа такого

Код: Выделить всё

$tempopen=(float)gg('Ventilacija.TempOtkritija');
$now=(float)gg('DHTSens24.temp');
if ($now > $tempopen) {
say("открываем",2);
} 

Re: Проблема со свойствами в сценарии.

Добавлено: Вс мар 18, 2018 3:10 pm
karsotrade
Огромное спасибо за помощь! Всё заработало!