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

+7 495 204-27-80

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

ТЕМА: Мучаю Aeotec 4in1

Мучаю Aeotec 4in1 02 Нояб 2013 18:28 #4315

  • MixaSP
  • MixaSP аватар
  • Вне сайта
  • Z-Wave мастер
  • Развиваю развиваясь
  • Сообщений: 1513
  • Спасибо получено: 246
  • Репутация: 52
Доброго времени суток, коллеги.

мучаю датчик от Aeon, пытаюсь заставить его включать свет по достижении определенного уровня освещения. Ну в смысле, чтобы свет включался от движения только в том случае, если освещенность в помещении ниже определенного уровня. чет у меня никак не получается это сделать...

кто пробовал, подскажите как удалось это сделать?

Заранее благодарю.
Hardware: MCV Vera3 1.5.622; 4х Fibaro FGS211; 3x Fibaro FGS221; 1x Fibaro FGD211; 1x Fibaro Wall Plug; 3x Everspring SP814 (Motion); 1x Everspring ST814 (Temp/Hum); 2x Minimote; 1x Aeon Multisensor 4in1; 3x TKB TZ68G; 1х Everspring ST812 (Flood)...

Plugins: PLEG; Wunderground; Power Arithmetic; dataMine; DayOrNight; Ping Sensor; VeraAlerts.

In progress: [][][][][][][][][].. 95% complete

In future: 1x Wall Plug; 1x Remotec ZXT120

Re: Мучаю Aeotec 4in1 04 Нояб 2013 16:27 #4317

  • OB
  • OB аватар
  • Вне сайта
  • Завсегдатай
  • Сообщений: 273
  • Спасибо получено: 14
  • Репутация: 4
Инструкция гласит:"The Multisensor can report temperature, humidity, and luminance to a Z-Wave gateway or controller when requested. If this function is supported by the gateway/controller, the data will be displayed in the user interface of the gateway/controller." т.е для обработки этих данных надо использовать контроллер.

Re: Мучаю Aeotec 4in1 04 Нояб 2013 16:36 #4318

  • MixaSP
  • MixaSP аватар
  • Вне сайта
  • Z-Wave мастер
  • Развиваю развиваясь
  • Сообщений: 1513
  • Спасибо получено: 246
  • Репутация: 52
вполне логично.
есть Vera3 в нее приходят данные об освещенности. делаем сцену возможностями веры.
на включение света получается два триггера. первый триггер, если есть движение = свет включить.
второй триггер, когда уровень освещенности падает до заданного порога = свет включить.

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

именно для этого начал изучать PLEG и пока победить его не получается. об этом я отдельную тему создал.
Hardware: MCV Vera3 1.5.622; 4х Fibaro FGS211; 3x Fibaro FGS221; 1x Fibaro FGD211; 1x Fibaro Wall Plug; 3x Everspring SP814 (Motion); 1x Everspring ST814 (Temp/Hum); 2x Minimote; 1x Aeon Multisensor 4in1; 3x TKB TZ68G; 1х Everspring ST812 (Flood)...

Plugins: PLEG; Wunderground; Power Arithmetic; dataMine; DayOrNight; Ping Sensor; VeraAlerts.

In progress: [][][][][][][][][].. 95% complete

In future: 1x Wall Plug; 1x Remotec ZXT120

Re: Мучаю Aeotec 4in1 24 Нояб 2013 07:53 #4469

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Сделал небольшим вкраплением luup-кода :)

Re: Мучаю Aeotec 4in1 24 Нояб 2013 13:50 #4472

  • MixaSP
  • MixaSP аватар
  • Вне сайта
  • Z-Wave мастер
  • Развиваю развиваясь
  • Сообщений: 1513
  • Спасибо получено: 246
  • Репутация: 52
осознание того, что для выполнения такой примитивной функции необходимо "вкрапление luup кода" бросает меня в дрожь... мне очень сложно даются технические науки, я гуманитарий. мне оказалось проще изучить как работает PLEG и с его помощью я срежессировал то, что мне было нужно.
Hardware: MCV Vera3 1.5.622; 4х Fibaro FGS211; 3x Fibaro FGS221; 1x Fibaro FGD211; 1x Fibaro Wall Plug; 3x Everspring SP814 (Motion); 1x Everspring ST814 (Temp/Hum); 2x Minimote; 1x Aeon Multisensor 4in1; 3x TKB TZ68G; 1х Everspring ST812 (Flood)...

Plugins: PLEG; Wunderground; Power Arithmetic; dataMine; DayOrNight; Ping Sensor; VeraAlerts.

In progress: [][][][][][][][][].. 95% complete

In future: 1x Wall Plug; 1x Remotec ZXT120

Re: Мучаю Aeotec 4in1 24 Нояб 2013 18:29 #4473

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Поверьте, это не так сложно. :) Логика проста, однажды потратив несколько часов, теперь это делаю за пару минут.

Re: Мучаю Aeotec 4in1 10 Апр 2016 21:53 #16665

  • woof
  • woof аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 21
  • Репутация: 0
И хоть бы кто выложил решение этой проблемы. Тоже столкнулся с аналогичной задачей.

Re: Мучаю Aeotec 4in1 10 Апр 2016 21:59 #16666

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
This code will enable you to set a range of light level within which your scene will, or will not, be run. Set lLow and lHigh to define the range. As with previous generic examples, the variable allow determines whether to allow or block the scene when the current light level is within the specified range.

Generic Light Level Range:
Code: [Select]
local dID = 30 -- Device ID of your light sensor
local lLow = 0 -- Lowest level of range
local lHigh = 20 -- Highest level of range
local allow = true -- true runs scene when in range, false blocks it
local lCurrent = tonumber((luup.variable_get("urn:micasaverde-com:serviceId:LightSensor1","CurrentLevel",dID)))
return (((lCurrent >= lLow) and (lCurrent <= lHigh)) == allow)

Re: Мучаю Aeotec 4in1 10 Апр 2016 22:04 #16667

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Либо так
local lightLevel = luup.variable_get("urn:micasaverde-com:serviceId:LightSensor1","CurrentLevel", ID)
local curlightlevel = tonumber(lightLevel)
if (curlightlevel <= xxx) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "xx"}, ID)
else return false
end

Re: Мучаю Aeotec 4in1 10 Апр 2016 23:13 #16668

  • woof
  • woof аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 21
  • Репутация: 0
Mobilniy пишет:
Либо так
local lightLevel = luup.variable_get("urn:micasaverde-com:serviceId:LightSensor1","CurrentLevel", ID)
local curlightlevel = tonumber(lightLevel)
if (curlightlevel <= xxx) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "xx"}, ID)
else return false
end
Добрый вечер. Спасибо Вам за ответ. Понравился именно этот вариант, так как он нагляднее и позволяет вносить коррективы. про шу подсказать, как дальше можно откорректировать.
Можно ли значении ХХХ в условии "curlightlevel <= xxx" задавать через интерфейс Vera3, желательно со смартфона?
Можно ли значение "newLoadlevelTarget = "xx" менять с шагом 20% через каждые 20 секунд, если яркость не соответствует заданному выше параметру?

Re: Мучаю Aeotec 4in1 11 Апр 2016 00:21 #16669

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Менять яркость в коде/переменной через интерфейс с какой целью? Если только писать плагин, но он не будет доступен со смартфона.
В принципе можно сделать цикл, который будет выполнять задачу, пока не доведет до нужного уровня, или сцену, срабатывающую каждые 20 секунд, но надо будет датчик ставить на постоянное питание.
Распишите, плиз, задачу поточнее.woof пишет:
Добрый вечер. Спасибо Вам за ответ. Понравился именно этот вариант, так как он нагляднее и позволяет вносить коррективы. про шу подсказать, как дальше можно откорректировать.
Можно ли значении ХХХ в условии "curlightlevel <= xxx" задавать через интерфейс Vera3, желательно со смартфона?
Можно ли значение "newLoadlevelTarget = "xx" менять с шагом 20% через каждые 20 секунд, если яркость не соответствует заданному выше параметру?

Re: Мучаю Aeotec 4in1 11 Апр 2016 00:43 #16670

  • woof
  • woof аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 21
  • Репутация: 0
Mobilniy пишет:
Менять яркость в коде/переменной через интерфейс с какой целью? Если только писать плагин, но он не будет доступен со смартфона.
В принципе можно сделать цикл, который будет выполнять задачу, пока не доведет до нужного уровня, или сцену, срабатывающую каждые 20 секунд, но надо будет датчик ставить на постоянное питание.
Распишите, плиз, задачу поточнее.
Задача: автоматизировать освещение в помещении согласно заданных параметров.
Исходные данные: есть диммер, мультисенсор 4в1, шторы с электроприводом. Мультисенсор сейчас уже подключен с питанием по miniUSB и передачей уровня освещенности раз в 10 секунд.
Переменные: либо выбирается режим сон\работа, либо выбирается яркость в lux через интерфейс(желательно, чтобы было доступно также со смартфона)
Реализация. Этап 1. К примеру, задано, что освещенность в комнате должна быть 100 lux. Контроллер смотрит текущее время.Если выбран режим сон-шторы полностью закрыты\освещение не работает, если режим работа - идем дальше. Если время >9 и <20 часов, то ведется управление шторой. Открывается и закрывается до достижения заданного уровня яркости. Механизация штор - дело решаемое и я уже этим занимаюсь.
Этап 2. Если выбран режим сон, то закрываем шторы и выключаем диммер, если режим работа - идем дальше. Если время >20 и <9 часов, то автоматически шторы закрываются и происходит пошаговая регулировка яркости с обратной связью через датчик освещенности в мультисенсоре.

Если с введением переменного уровня освещенности сложно, то давайте примем уровень освещенности за 100 lux для простоты.
P.S. Подскажите, пожалуйста, где толково почитать про язык программирования под Vera3? Желательно на русском и с примерами.

Re: Мучаю Aeotec 4in1 11 Апр 2016 01:03 #16671

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Сон/работа - это просто, можно использовать VirtualSwitch или его аналог MultiSwitch.
С остальным тоже никаких проблем, кроме переменного уровня освещенности через интерфейс смартфона, это надо подумать, может использовать AutoVera и т.п. программы.
Единственное что меня смущает в реализации - частое срабатывание механизма управления шторой. При 20 секундах он, скорее всего, будет постоянно так и кататься туда-сюда, если не сделать пределы или же более реже опрос/дельту отклонения от текущего параметра в самом датчике, при варианте дельты в самом датчике можно поставить срабатывание сцены на изменение переменной яркости, а не просто каждый 20 секунд, дабы не тратить процессорное время лишний раз.
На русском с примерами к сожалению не знаю, надо гуглить. Офиц. сайт - lua.org.woof пишет:
Задача: автоматизировать освещение в помещении согласно заданных параметров.
Исходные данные: есть диммер, мультисенсор 4в1, шторы с электроприводом. Мультисенсор сейчас уже подключен с питанием по miniUSB и передачей уровня освещенности раз в 10 секунд.
Переменные: либо выбирается режим сон\работа, либо выбирается яркость в lux через интерфейс(желательно, чтобы было доступно также со смартфона)
Реализация. Этап 1. К примеру, задано, что освещенность в комнате должна быть 100 lux. Контроллер смотрит текущее время.Если выбран режим сон-шторы полностью закрыты\освещение не работает, если режим работа - идем дальше. Если время >9 и <20 часов, то ведется управление шторой. Открывается и закрывается до достижения заданного уровня яркости. Механизация штор - дело решаемое и я уже этим занимаюсь.
Этап 2. Если выбран режим сон, то закрываем шторы и выключаем диммер, если режим работа - идем дальше. Если время >20 и <9 часов, то автоматически шторы закрываются и происходит пошаговая регулировка яркости с обратной связью через датчик освещенности в мультисенсоре.

Если с введением переменного уровня освещенности сложно, то давайте примем уровень освещенности за 100 lux для простоты.
P.S. Подскажите, пожалуйста, где толково почитать про язык программирования под Vera3? Желательно на русском и с примерами.

Re: Мучаю Aeotec 4in1 11 Апр 2016 01:07 #16672

  • woof
  • woof аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 21
  • Репутация: 0
Mobilniy пишет:
Сон/работа - это просто, можно использовать VirtualSwitch или его аналог MultiSwitch.
С остальным тоже никаких проблем, кроме переменного уровня освещенности через интерфейс смартфона, это надо подумать, может использовать AutoVera и т.п. программы.
Единственное что меня смущает в реализации - частое срабатывание механизма управления шторой. При 20 секундах он, скорее всего, будет постоянно так и кататься туда-сюда, если не сделать пределы или же более реже опрос/дельту отклонения от текущего параметра в самом датчике, при варианте дельты в самом датчике можно поставить срабатывание сцены на изменение переменной яркости, а не просто каждый 20 секунд, дабы не тратить процессорное время лишний раз.
На русском с примерами к сожалению не знаю, надо гуглить. Офиц. сайт - lua.org.woof пишет:
Задача: автоматизировать освещение в помещении согласно заданных параметров.
Исходные данные: есть диммер, мультисенсор 4в1, шторы с электроприводом. Мультисенсор сейчас уже подключен с питанием по miniUSB и передачей уровня освещенности раз в 10 секунд.
Переменные: либо выбирается режим сон\работа, либо выбирается яркость в lux через интерфейс(желательно, чтобы было доступно также со смартфона)
Реализация. Этап 1. К примеру, задано, что освещенность в комнате должна быть 100 lux. Контроллер смотрит текущее время.Если выбран режим сон-шторы полностью закрыты\освещение не работает, если режим работа - идем дальше. Если время >9 и <20 часов, то ведется управление шторой. Открывается и закрывается до достижения заданного уровня яркости. Механизация штор - дело решаемое и я уже этим занимаюсь.
Этап 2. Если выбран режим сон, то закрываем шторы и выключаем диммер, если режим работа - идем дальше. Если время >20 и <9 часов, то автоматически шторы закрываются и происходит пошаговая регулировка яркости с обратной связью через датчик освещенности в мультисенсоре.

Если с введением переменного уровня освещенности сложно, то давайте примем уровень освещенности за 100 lux для простоты.
P.S. Подскажите, пожалуйста, где толково почитать про язык программирования под Vera3? Желательно на русском и с примерами.

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

Re: Мучаю Aeotec 4in1 11 Апр 2016 01:15 #16673

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Про дельту я немного не то имел ввиду, некоторые датчики имеют возможность отправлять данные контроллеру при изменении параметра на указанное количество %, тем самым датчик сам рассчитывает дельту и решает отсылать ли ему обновленные данные или нет, но 4in1 этого не умеет, фибаровский глаз вроде может, это было бы самым лучшим решением, т.к. датчик не отсылал бы изменение и сцена бы не запускалась лишний раз. С кодом постараюсь помочь на днях с пояснениями.woof пишет:
Полагаю, что надо просто задать дельту в коде, чтобы не было ложных срабатываний на проходящую маленькую тучку. И дельту как по времени, так и по яркости. поможете с кодом?

Мучаю Aeotec 4in1 11 Апр 2016 13:12 #16674

  • aov
  • aov аватар
  • Вне сайта
  • Живу я здесь
  • Сообщений: 1145
  • Спасибо получено: 87
  • Репутация: 5
Я использую для подобных задач плагин "Heliotrope" И пока вообще не пользуюсь датчиками освещённости. :unsure:

Положение солнца над/под горизонтом позволит точнее рулить шторами в условиях меняющейся продолжительности дня в зависимости от времени года. Не дергаясь от лишних тучек. :)
А азимут + температура + освещённость может, например, притенять комнату в жаркое время.
Играюсь...
Сейчас: Vera Edge, Vera Plus, Hubitat, MiHome, Tuya, Алиса, Alexa, Google Home

Мучаю Aeotec 4in1 11 Апр 2016 17:13 #16675

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Woof,
писал на бегу, поэтому надо проверить, отладить и причесать.
тестировать начинайте с больших значений (не менее Ваших 20 секунд)

Предисловие:
Сразу договоримся, что "XXX" - данные, "YYY" - номер сцены, а "ID" - номер устройства

ПОДГОТОВИТЕЛЬНАЯ РАБОТА:

1). Устанавливаем плагин Virtual Switch, кнопка "ON" будет у нас за "Работу", а "OFF" за "Сон"
Аналогичным образом можно установить MultiSwitch на 8 устройств сразу.

2). ЭТА ФУНКЦИЯ НЕОБЯЗАТЕЛЬНА И ПРИ НАЧАЛЬНОМ ТЕСТИРОВАНИИ ДОЛЖНА БЫТЬ ЗАМЕНЕНА НА ЗАПУСК СЦЕНЫ ОСНОВНОГО СКРИПТА (НИЖЕ) КАЖДЫЕ N Секунд.

Прописывание в Startup Lua следующего:
-- Функция, которая следит за изменением данных, как только данные меняются - "выстреливает" сцена.
 
-- таблица всех устройств, за которыми надо следить { "ServiceID", "VariableName", DeviceNo, SceneNo }
-- После запятой сможем прописывать нужное количество устройств в строках
watchTable = {	
		{"urn:micasaverde-com:serviceId:LightSensor1", "CurrentLevel", ID, YYY},
	     }
-- Устанавливаем слежку за переменными
--
function setWatch()
	for n,t in ipairs(watchTable) do
		luup.variable_watch("catchWatch",t[1],t[2],t[3])
	end
end
--
-- При изменении данных, запускаем нужную сцену (здесь менять ничего не требуется)
--
function catchWatch(lul_device, lul_service, lul_variable, lul_value_old, lul_value_new)
	for n,t in ipairs(watchTable) do
		if ( (t[3] == lul_device) and (t[1] == lul_service) and (t[2] == lul_variable) ) then
			luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = t[4]}, 0)
		end
	end
end
 
-- делаем задержку на 30 секунд, пока контроллер не проинициализируется, после рестарта Lua Engine
luup.call_delay("setWatch",30)
 
ОСНОВНОЙ СКРИПТ (делаем сцену с запуском вручную или же каждые N-секунд в случае, если мы пропустили 2-ой пункт подготовительной работы):
 
-- прописываем понятия времени (вместо времени можно будет поставить "восход/заход солнца" или данные с плагина Heliotrope, указанные выше форумчанином aov, и т.п. есть над чем подумать):
 
local t = os.date('*t')
local current_time = t.hour * 3600 + t.min * 60 + t.sec
local Morning_Starts = 9 * 3600 + 00 * 60   -- Утро начинается в 9:00
local Evening_Starts = 20 * 3600 + 00 * 60   -- Вечер начинается в 20:00
 
-- прописываем Virtual Switch (наш переключатель Сон/Работа)
local VSwitch = luup.variable_get("urn:upnp-org:serviceId:VSwitch1", "Status", ID)
 
-- прописываем функции задержки на изменение
function rollTime()
local lightLevel = luup.variable_get("urn:micasaverde-com:serviceId:LightSensor1","CurrentLevel", ID)
local curlightlevel = tonumber(lightLevel)
local rollLevel = luup.variable_get("urn:upnp-org:serviceId:Dimming1", "LoadLevelStatus", ID)
local currollLevel = tonumber(rollLevel)
if (curlightlevel < XXX) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "(currollLevel + 5)"}, ID)
luup.call_delay("rollTime",XXX)
elseif (curlightlevel > XXX) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "(currollLevel - 5)"}, ID)
luup.call_delay("rollTime",XXX)
else return false
end
 
function dimTime()
local lightLevel = luup.variable_get("urn:micasaverde-com:serviceId:LightSensor1","CurrentLevel", ID)
local curlightlevel = tonumber(lightLevel)
if (curlightlevel < XXX) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "(currollLevel + 5)"}, ID)
luup.call_delay("dimTime",XXX)
elseif (curlightlevel > XXX) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "(currollLevel - 5)"}, ID)
luup.call_delay("dimTime",XXX)
else return false
end
 
-- прописываем основные условия работы 1-го этапа
if (VSwitch == "0") and (rollLevel == 0)
then return false
elseif (VSwitch == "0") and (rollLevel > 0)
then luup.call_action("urn:upnp-org:serviceId:WindowCovering1", "Down", {}, ID)
elseif (((current_time >= Morning_Starts) and (current_time <= Evening_Starts)) and ((curlightlevel < XXX) or (curlightlevel > XXX)))
then rollTime()
else return false
end
-- прописываем основные условия работы 2-го этапа
if ((VSwitch == "1") and ((current_time <= Morning_Starts) or (current_time >= Evening_Starts)) and ((curlightlevel < XXX) or (curlightlevel > XXX)))
then dimTime()
else return false
end
Последнее редактирование: 12 Апр 2016 00:13 от Acute. Причина: положил код в контейнер
Спасибо сказали: woof

Мучаю Aeotec 4in1 11 Апр 2016 22:35 #16679

  • woof
  • woof аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 21
  • Репутация: 0
Уважаемый @Mobilniy, я лучше лишний раз задам глупый для уверенных пользователей вопрос, чем буду спрашивать, что мне делать с кирпичом.

Вопрос1. Где Startup Lua?
Вопрос2. поставил плагин Switch и подумалось мне, что при создании сцены можно условием это выражение LUA записать, где идет проверка на время. Я прав?
Последнее редактирование: 12 Апр 2016 00:09 от Acute. Причина: Объясните мне зачем в ответ цитировать весь пост?

Мучаю Aeotec 4in1 12 Апр 2016 11:33 #16681

  • Mobilniy
  • Mobilniy аватар
  • Вне сайта
  • Академик
  • Сообщений: 827
  • Спасибо получено: 92
  • Репутация: 8
Woof,
1. В интерфейсе UI7: Apps > Develop apps > Edit Startup Lua
Startup Lua отвечает за код, выполняющийся сразу после перезагрузке контроллера или Lua Engine.
2. Конечно можно прописать условием, если четко известно "время сна".
У меня, например, сном считается ночная постановка на охрану и там Virtual Switch как нельзя кстати, он привязан к выходу охранной системы.
Последнее редактирование: 12 Апр 2016 11:35 от Mobilniy.

Мучаю Aeotec 4in1 16 Апр 2016 21:00 #16733

  • woof
  • woof аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 21
  • Репутация: 0
Уважаемый @Mobilniy, чуть подредактировал код и решил пока поиграть только с лампами без штор. Модифицировал код до такого, прописав ID устройства, значения и сцену (взял от балды 001). Система выдает ERROR : Error in lua for scenes and events
watchTable = {	
		{"urn:micasaverde-com:serviceId:LightSensor1", "CurrentLevel", 34, 001},
	     }
 
function setWatch()
	for n,t in ipairs(watchTable) do
		luup.variable_watch("catchWatch",t[1],t[2],t[3])
	end
end
 
function catchWatch(lul_device, lul_service, lul_variable, lul_value_old, lul_value_new)
	for n,t in ipairs(watchTable) do
		if ( (t[3] == lul_device) and (t[1] == lul_service) and (t[2] == lul_variable) ) then
			luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = t[4]}, 0)
		end
	end
end
 
luup.call_delay("setWatch",30)
 
local t = os.date('*t')
local current_time = t.hour * 3600 + t.min * 60 + t.sec
local Morning_Starts = 9 * 3600 + 00 * 60  
local Evening_Starts = 20 * 3600 + 00 * 60   
 
local VSwitch = luup.variable_get("urn:upnp-org:serviceId:VSwitch1", "Status", 36)
 
function dimTime()
local lightLevel = luup.variable_get("urn:micasaverde-com:serviceId:LightSensor1","CurrentLevel", 34)
local curlightlevel = tonumber(lightLevel)
if (curlightlevel < 40) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "(currollLevel + 5)"}, 31)
luup.call_delay("dimTime",10)
elseif (curlightlevel > 100) then
luup.call_action("urn:upnp-org:serviceId:Dimming1", "SetLoadLevelTarget", {newLoadlevelTarget = "(currollLevel - 5)"}, 31)
luup.call_delay("dimTime",10)
else return false
end
 
if ((VSwitch == "1") and ((current_time <= Morning_Starts) or (current_time >= Evening_Starts)) and ((curlightlevel < 40) or (curlightlevel > 100)))
then dimTime()
else return false
end
Последнее редактирование: 16 Апр 2016 21:02 от woof.
  • Страница:
  • 1
  • 2
Время создания страницы: 0.352 секунд