Добрый день как в Vera 3 сделать зависимость запуска сцены от обоих тригеров? например если уровень освещености меньше 3 и сработал датчик движения то запустить сцену. если освешеность больше 3 едениц то свет не включать?

задан 07 Мар '14, 12:38

alex1010's gravatar image

alex1010
112
процент согласия: 0%

отредактирован 07 Мар '14, 12:42


По-умолчанию, условий AND в вере нет. Для того, чтобы решить эту проблему, есть три пути:

  • создать сцену по срабатыванию датчика движения и в скрипте сцены сделать проверку на уровень освещённости. примеров масса есть в вики micasaverde
  • использовать плагин PLEG. он весьма популярен и позволяет делать сложные условия. учтите, что для его установки нужно также поставить плагин Program Logic Core
  • использовать плагин Combination Switch - простой в использовании плагин, который позволяет делать условия AND
ссылка

отвечен 07 Мар '14, 14:48

azimarev's gravatar image

azimarev
139327
процент согласия: 18%

отредактирован 07 Мар '14, 14:49

Если чуть чуть знаешь как писать код lua то все просто. Создаешь в сцене триггер на срабатывание нужного датчика и там добавляешь код проверки освещенности.

local sensorDeviceNo = 23-- Motion Sensor device number
local lightDeviceNo = 4 -- Light device number

local SS_SID = "urn:micasaverde-com:serviceId:SecuritySensor1" -- Security Sensor Service ID
local SP_SID = "urn:upnp-org:serviceId:SwitchPower1" -- Switch Power Service ID

local Tripped= luup.variable_get (SS_SID, "Armed", sensorDeviceNo) or 0
if (Tripped == "1") then
       luup.call_action (SP_SID, "SetTarget", {["newTargetValue"] = 1}, lightDeviceNo)
end

мой код, которые проверяет в каком режиме находится датчик во время срабатывания триггера и если он режеиме обнаружения, то включает управляемую розетку с лампочкой.

так же можно сделать с освещенностью.

по поводу управления яркостью, можно глянуть мою тему http://ask.z-wave.me/questions/457/

А вот код который висит на таймере в той же сцене и выключает свет если датчик сбросился.

local sensorDeviceNo = 23-- Motion Sensor device number
local lightDeviceNo = 4 -- Light device number
local period = 30-- Seconds
local CountRepeat = 2

local SS_SID = "urn:micasaverde-com:serviceId:SecuritySensor1" -- Security Sensor Service ID
local SP_SID = "urn:upnp-org:serviceId:SwitchPower1" -- Switch Power Service ID

function checkLastTrip()
luup.log("!!!!! Call checkLastTrip !!!!!")

local Tripped= luup.variable_get (SS_SID, "Tripped", sensorDeviceNo) 
if (Tripped ~= "1") then
     luup.call_action (SP_SID, "SetTarget", {["newTargetValue"] = 0}, lightDeviceNo) -- Turn off the light.
 else
      if (CountRepeat > 0) then
         CountRepeat = CountRepeat-1
         luup.call_delay ("checkLastTrip", period) -- Check when the sensor was last tripped every <period> seconds.
     end
 end
end

luup.call_delay ("checkLastTrip", period)

return true

Самовызов в функции нужен для того, чтобы таймер не может быть меньше 1 минуты в сцене.

ссылка

отвечен 07 Мар '14, 19:39

Swat's gravatar image

Swat
2111415
процент согласия: 18%

отредактирован 07 Мар '14, 19:49

Ваш ответ
toggle preview

Следить за этим вопросом

По почте:

Авторизовавшись, здесь Вы сможете подписаться на обновления по этому вопросу.

По RSS:

Ответы

Ответы и комментарии

Основы размётки

  • *курсив* или _курсив_
  • **жирный** или __жирный__
  • ссылка:[текст](http://url.com/ "Суть вопроса")
  • картинка?![alt текст](/path/img.jpg "Суть вопроса")
  • нумерованый список: 1. Foo 2. Bar
  • чтобы добавить перенос строки в тексте, сделайте два переноса строки в редакторе
  • базовые теги HTML также поддерживаются

Теги к вопросу:

×50
×44

Задан: 07 Мар '14, 12:38

Просмотров: 2,810 раз

Отредактирован: 07 Мар '14, 19:49

powered by OSQA