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

+7 495 204-27-80

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

ТЕМА: Не срабатывает скрипт незапуска сценария

Не срабатывает скрипт незапуска сценария 05 Янв 2019 15:00 #25689

  • Ulex
  • Ulex аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 17
  • Спасибо получено: 3
  • Репутация: 0
Друзья, подскажите, пожалуйста, куда копать.

Есть мультисенсор MCOHome: http://www.mcohome.com/show_list.php?id=15&sid=51
Контроллером он определяется как 3 разных сенсора: температуры, влажности и CO2.
При этом тип устройства для CO2 датчика определяется как GenericSensor:1.
Значения CO2 передаются в переменную CurrentLevel. Все вроде корректно, Datamine понимает это значение и рисует графики.

Создал сценарий, который каждый час включает реле, от которого работает приточная вентиляция. Для реле настроен запуск на 30 минут, после чего указал выключение реле как "отложенное действие". На этом этапе все работает корректно, каждый час реле включается на 30 минут.

В Lua нужно добавить скрипт, который запрещает запуск сценария в случае, если значение CO2 ниже порога 800. Вот с этим проблемы.
Вот такой простенький скрипт:
===
local co2level = luup.variable_get("urn:schemas-micasaverde-com:device:GenericSensor:1";"CurrentLevel";29)
if tonumber(co2level) >= 800 then
return false
===
Вставляю его в поле "Also, execute the following Luup code:" в настройке сценария, сохраняю. Но ничего не происходит, на работу сценария данный скрипт не влияет никак.
Подскажите, что не так делаю?

Не срабатывает скрипт незапуска сценария 05 Янв 2019 16:04 #25690

  • Ulex
  • Ulex аватар
  • Вне сайта
  • Новый участник
  • Сообщений: 17
  • Спасибо получено: 3
  • Репутация: 0
2 дня пытался разобраться, написал в форум, и почти сразу же нашел решение :)

Были ошибки в коде, переписал его таким образом и настроил на автозапуск каждые 10 минут (не ругайте за некоторую избыточность):
local co2level = luup.variable_get("urn:micasaverde-com:serviceId:GenericSensor1", "CurrentLevel", 29)
if (tonumber(co2level) <= 800) then
luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", {newTargetValue = "0"}, 25)
else
luup.call_action("urn:upnp-org:serviceId:SwitchPower1", "SetTarget", {newTargetValue = "1"}, 25)
end
Последнее редактирование: 05 Янв 2019 16:04 от Ulex.
Время создания страницы: 0.125 секунд