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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
karsotrade
Сообщения: 113
Зарегистрирован: Пт июн 09, 2017 11:18 pm
Благодарил (а): 17 раз
Поблагодарили: 13 раз

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

Сообщение karsotrade » Вс мар 18, 2018 11:13 am

Добрый день. Прошу помощи. Столкнулся с проблемой, ума не приложу в чём дело.
Для примера выкладываю простой сценарий. 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);
}
В чём проблема, не могу понять.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Вс мар 18, 2018 2:24 pm

Проблема в типе данных - сейчас они у вас строковые. Т.е. сравниваются 2 строки. Когда в условие добавляется число, то строка приводится к числовому виду. Надо что-то типа такого

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

$tempopen=(float)gg('Ventilacija.TempOtkritija');
$now=(float)gg('DHTSens24.temp');
if ($now > $tempopen) {
say("открываем",2);
} 
За это сообщение автора fandaymon поблагодарил:
karsotrade (Вс мар 18, 2018 3:09 pm)
Рейтинг: 1.16%
karsotrade
Сообщения: 113
Зарегистрирован: Пт июн 09, 2017 11:18 pm
Благодарил (а): 17 раз
Поблагодарили: 13 раз

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

Сообщение karsotrade » Вс мар 18, 2018 3:10 pm

Огромное спасибо за помощь! Всё заработало!
Ответить