Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.
Корзина  (пустая) 0 руб.

+7 495 204-27-80

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

ТЕМА: Virtual Device + LUA (HC2)

Virtual Device + LUA (HC2) 24 Авг 2020 15:16 #28432

  • rybakov_d
  • rybakov_d аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 3
  • Репутация: 0
Всем привет.
Есть проблема в нахождении ошибки в коде для виртуального устройства, прошу помощи.
Дано: Виртуальное устройство со слайдером и ярлыком, в которых задается необходимая температура. Выставленное значение сравнивается с показаниями на датчике температуры и если оно ниже - включается реле, если выше -выключается.
Есть код для слайдера:
function map_range( a1, a2, b1, b2, s )
return math.floor(b1 + (s-a1)*(b2-b1)/(a2-a1))
end
t_cinema = map_range(0, 100, 10, 35, _sliderValue_ )
fibaro:setGlobal('t_cinema', t_cinema)
fibaro:call(452, "setProperty", "ui.Label2.value", t_cinema)

Код основного цикла:
--Temp - температура по датчику
Temp = fibaro:getValue(79, "value");
--отображение текущей температуры по датчику
fibaro:call(452, "setProperty","ui.Label1.value", Temp);
--SetTemp - задаваемая температура с термостата
SetTemp = fibaro:getGlobal('t_cinema');
-- вкл реле если температура меньше задаваемой
if (SetTemp > Temp) then
fibaro:debug("on")
fibaro:call(167, "turnOn")
-- выкл реле если температура больше задаваемой
elseif
(SetTemp <= Temp) then
fibaro:debug("off")
fibaro:call(167, "turnOff")
end

Так вот данный код не работает в момент, когда должно происходить сравнение показаний датчика и выставленного значения.
Отладчик сообщает следующую ошибку: [ERROR] 15:07:52: line 9: attempt to compare string with nil
Самостоятельно не удалось решить проблему. Если кто подскажет, буду очень признателен.
Время создания страницы: 0.114 секунд