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

+7 495 204-27-80

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

ТЕМА: Пульт KEYFOB и 10+ сцен на одной кнопке! Vera

Пульт KEYFOB и 10+ сцен на одной кнопке! Vera 07 Сен 2014 23:12 #8927

  • am7dm7
  • am7dm7 аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 20
  • Спасибо получено: 7
  • Репутация: 3
День добрый!
Думаю все кто сталкивался с пультом Z-Wave.Me Key Fob либо с другими пультами в 4 кнопки, было желание расширить функционал?! Вот и задался этим вопросом и представляю на ваш суд следующий сценарий. В примере я использую одну кнопку на Z-Wave.Me Key Fob, одну сцену с LUUP кодом, 3 виртуальных выключателя и RGB подсветку Fibaro . Создаем сцену, пихаем LUUP код (он ниже), меняем переменные на свои, привязываем её к кнопке на пульте. Смысл сцены прост - "Перечисление". То есть: нажимаем кнопку №1 - запускается сценарий №1, нажимаем кнопку №1 - запускается сценарий №2 и ещё раз нажимаем кнопку №1 - запускается сценарий №3 и так далее. Разъясню по коду LUUP: При срабатывании сцены она проверяет виртуальные переключатели и если все три в положении 0, то она переключает первый в положение 1 и включает красные светодиода на 40% а остальные диоды опускает до 0. При повторном запуске сцена снова проверяет статусы виртуальных выключателей и видит что первый из них в положении 1, тогда она переводит второй выключатель в положение 1 и включает уже зеленые светодиоды на 40, а остальные гасит и так далее. Можно активировать выполнение готовых сцен LUUP кодом, можно просто привязать сцены к вирт. выключателям. Количество сцен ограничено лишь возможностью Vera. Как я думаю основное применение это освещение.
Вообщем прошу профессионалов проверить и поделится своими наработками в этом направлении (в частности расширение функционала пультов сценам). Так же есть вопрос - Как избавится от вирт. выключателей? Например можно ли задать какие то глобальные переменные, которые потом менять сценой, но что бы они сохранялись?

ВНИМАНИЕ: Спойлер! [ Нажмите, чтобы развернуть ]
Спасибо сказали: Acute, Neos, empenoso

Пульт KEYFOB и 10+ сцен на одной кнопке! Vera 08 Сен 2014 23:51 #8933

  • Neos
  • Neos аватар
  • Вне сайта
  • Давно я тут
  • Сообщений: 77
  • Спасибо получено: 11
  • Репутация: 0
local t = os.date('*t')
Лишнее!

Пульт KEYFOB и 10+ сцен на одной кнопке! Vera 09 Сен 2014 15:18 #8939

  • am7dm7
  • am7dm7 аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 20
  • Спасибо получено: 7
  • Репутация: 3
:cheer: переменная из другого скрипта - автоматическое включение света (для таймера короче). CopyPaste - зло.
Вы пробовали алгоритм который я предлагаю? Мне интересно по отзывам как быстро вера обрабатывает такую сцену конкретно у вас? У меня занимает порядка 2-3 секунд.
Последнее редактирование: 09 Сен 2014 15:27 от am7dm7.

Пульт KEYFOB и 10+ сцен на одной кнопке! Vera 09 Сен 2014 16:45 #8942

  • Acute
  • Acute аватар
  • Вне сайта
  • Администратор
  • Сообщений: 3104
  • Спасибо получено: 459
  • Репутация: 70
Надо будет проверить на досуге с пультом minimote... Идея интересная
Группа форума в Telegram t.me/zwaveforum

Пульт KEYFOB и 10+ сцен на одной кнопке! Vera 10 Сен 2014 00:34 #8947

  • Neos
  • Neos аватар
  • Вне сайта
  • Давно я тут
  • Сообщений: 77
  • Спасибо получено: 11
  • Репутация: 0
Есть идеи как сделать по количеству кликов? Если кликнул 3 раза в течении пяти секунд запустилась сцена номер 1, если 5 раз сцена номер 6 итд.

Пульт KEYFOB и 10+ сцен на одной кнопке! Vera 10 Сен 2014 07:14 #8948

  • am7dm7
  • am7dm7 аватар
  • Вне сайта
  • Осваиваюсь на форуме
  • Сообщений: 20
  • Спасибо получено: 7
  • Репутация: 3
Neos пишет:
Есть идеи как сделать по количеству кликов? Если кликнул 3 раза в течении пяти секунд запустилась сцена номер 1, если 5 раз сцена номер 6 итд.

Идея то есть. Собственно логику вы уже сами изложили. Но без виртуального выключателя тоже не обойтись (слабое место)
В сцене можно указать следующее - При нажатии на кнопку1 если Вирт.Выкл.1 в статусе 0(off) то перевести Вирт.Выкл.1 в статус 1 (on). и luup.call_delay вернуть выключателю значение 0 (off) через 5 секунд и сделать проверку статусов всех вирт.выключателей. и в зависимости от статусов выпольнить то или иное действие. А уже при следующем нажатии будет срабатывать условие: Если Вирт.Выкл.1 в статусе 1(on) то перевести Вирт.Выкл.2 в статус 1 (on) а если Вирт.Выкл.1 и Вирт.Выкл2 в статусе 1 (on), то перевести Вирт.Выкл.3 в статус 1 (on) и так далее. Попытаюсь сегодня набросать. Самым главным вопросом остается - как избавится от вирт. выключателей? Почему то мне кажется что вера при проверке большого количества статусов будет жутко тупить, так как проще проверять и изменять какие то глобальные переменные либо таблицы.

Пульт KEYFOB и 10+ сцен на одной кнопке! Vera 10 Сен 2014 09:38 #8949

  • Neos
  • Neos аватар
  • Вне сайта
  • Давно я тут
  • Сообщений: 77
  • Спасибо получено: 11
  • Репутация: 0
am7dm7 пишет:
Neos пишет:
Есть идеи как сделать по количеству кликов? Если кликнул 3 раза в течении пяти секунд запустилась сцена номер 1, если 5 раз сцена номер 6 итд.

Идея то есть. Собственно логику вы уже сами изложили. Но без виртуального выключателя тоже не обойтись (слабое место)
В сцене можно указать следующее - При нажатии на кнопку1 если Вирт.Выкл.1 в статусе 0(off) то перевести Вирт.Выкл.1 в статус 1 (on). и luup.call_delay вернуть выключателю значение 0 (off) через 5 секунд и сделать проверку статусов всех вирт.выключателей. и в зависимости от статусов выпольнить то или иное действие. А уже при следующем нажатии будет срабатывать условие: Если Вирт.Выкл.1 в статусе 1(on) то перевести Вирт.Выкл.2 в статус 1 (on) а если Вирт.Выкл.1 и Вирт.Выкл2 в статусе 1 (on), то перевести Вирт.Выкл.3 в статус 1 (on) и так далее. Попытаюсь сегодня набросать. Самым главным вопросом остается - как избавится от вирт. выключателей? Почему то мне кажется что вера при проверке большого количества статусов будет жутко тупить, так как проще проверять и изменять какие то глобальные переменные либо таблицы.



Вот накидал по быстрому! но срабатывает если запустить 2 раза и 3! нужно разобратся! Кстати в вашем случаи с перечеслением можно обойтись и без виртуальных выключателей! у вас же есть фиксированные параметры RGB можно от них и плясать!

local lul_click = luup.variable_get("urn:upnp-org:serviceId:VContainer1","Variable1", 185)
luup.variable_set("urn:upnp-org:serviceId:VContainer1","Variable1",tonumber(lul_click)+1, 185)
 
luup.call_delay("check", 4, "")
 
function check()
 
if (lul_click == "1") then
luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{ newTargetValue="1" },180)
end
 
if (lul_click == "2") then
luup.call_action("urn:upnp-org:serviceId:SwitchPower1","SetTarget",{ newTargetValue="0" },180)
end
 
luup.variable_set("urn:upnp-org:serviceId:VContainer1","Variable1",0, 185)
end

Хотя можно не заморачиваться и сделать так:
if (lul_click == "0") then -- 1 клик
if (lul_click == "1") then --2 клика
if (lul_click == "2") then --3 клика
итд
Последнее редактирование: 10 Сен 2014 10:57 от Neos.
Время создания страницы: 0.179 секунд