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

+7 495 204-27-80

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

ТЕМА: Выключить всё при уходе из дома HowTo

Выключить всё при уходе из дома HowTo 19 Июнь 2017 12:26 #22337

  • Moffus
  • Moffus аватар
  • Вне сайта
  • Живу я здесь
  • VeraPlus
  • Сообщений: 469
  • Спасибо получено: 54
  • Репутация: 8
Люди спрашивают. Рассказываю.
В Z-Wave почти любую кнопку можно использовать расширенно. Например - двойными, тройными щелчками, либо длительными удержаниями.
МеханизЬм называется "высылать ID сцены".

В Vera есть мощный понятийный механизЬм - режим дома. Четыре предопределённых:
1. День (дома)
2. "Все ушли"
3. "Ночь"
4. "Уехали надолго".
(обратите внимание на нумерацию - она именно такая!)

Для каждого из режимов настраивается:
Что включить, что выключить, что не трогать (по умолчанию), какую температуру установить. Мышкой. В контроллере.

Есть приложение - HouseModes - облегчает переключение между режимами, при обработке событий.

В Vera есть 2 недостатка.
1. В стандартных активаторах сцен нельзя активировать сцену по приходу "Scene ID" от устройства.
2. Мышкой нельзя вызвать сцену.

И так, делаем:
По тройному нажатию на кнопку выключателя переводим дом в режим Away. При включении света в прихожей, - переходим в дневной или ночной. На примере выключателя FGD-211
1. Включаем отправку "тройного клика". Устанавливаем на диммере регистр 41 в значение 1.
2. Обеспечиваем реакцию на 15 событие. (тройной удар)
Apps -> Develop Apps -> Edit startup Lua
-- без угловых скобок, только значение
local HallDimmer = <ID вашего выключателя/диммера>
local TripleClick = "15" 
local modeID = <ID вашего устройства HouseModes>
local modeType = "urn:micasaverde-com:serviceId:HouseModes1"     
 
-- Дёргаемся только если с диммера пришла "спецкоманда" 
luup.variable_watch("SceneActivation","urn:micasaverde-com:serviceId:SceneController1","LastSceneTime",HallDimmer)
 
-- Вот тут и дёргаемся, имя функции, что "дёргается" - строкой выше. Должно совпадать с именем строкой ниже. Все имена таких пар должны быть уникальными.
function SceneActivation()
	local lastSceneID= luup.variable_get("urn:micasaverde-com:serviceId:SceneController1", "LastSceneID",HallDimmer)
	if (lastSceneID==TripleClick) then
		-- set away mode
                  luup.call_action(modeType ,"SetHMode", {newHModeValue= "2"}, modeID )
	end
end
Задача решена. Всё, что вы намышковали в режимах дома, сработает. Включая установленную задержку перехода между режимами.
Теперь не забываем "разбудить" дом, когда вернулись.
Простейший способ - на включение света повесить HouseMode -> home
Но мы можем вернуться ночью....
В таком случае нам надо определить, день это или ночь. Критерии у всех разные. У одних день наступает с рассветом, у меня же - в 7 утра.
А ночь - через четверть часа после полуночи. Разница в том, что "днём" световые приборы работают на всю катушку, а ночью, чтоб не будить никого и тихонечко прокрадываться - не слишком ярко.
Но мы впёрлись в дом, где никого не было, так что нам по барабану :)

И так: Определить день или ночь:
Делаем сцену. Запуск только днём или ночью. По таймеру. В 7:00 и в 00:15
Обратите внимание, внутри скрипта значения со значительным "перехлыстом".
local t = os.date('*t')
local current_second = t.hour * 3600 + t.min * 60 + t.sec   -- number of seconds since midnight
local min_time_in_seconds = 6 * 3600 +  0 * 60             --  6:00
local max_time_in_seconds = 23 * 3600 + 15 * 60             -- 23:00
 
local HmodeID = <ID плагина HouseMode >
local HmodeType = "urn:micasaverde-com:serviceId:HouseModes1"     
 
  if (current_second > min_time_in_seconds) and (current_second < max_time_in_seconds) then
               -- day
                luup.call_action(HmodeType ,"SetHMode", {newHModeValue= "1"}, HmodeID )
  else
               -- night
                luup.call_action(HmodeType ,"SetHMode", {newHModeValue= "3"}, HmodeID )
 end
Можете использовать ваше определение дня/ночи - вам виднее, как вам надо.
Теперь дом можно "будить", ввергая его в свет дня или мрак ночи.
Делаем сцену:
Активация по включению диммера, при режимах дома Away или Vacation (ибо нечего дёргаться напрасно)
В секции Luup:
local NoghtOrDayID="<id сцены-выбиралки дня и ночи>"
luup.call_action("urn:micasaverde-com:serviceId:HomeAutomationGateway1", "RunScene", {SceneNum = NoghtOrDayID}, 0)
Спасибо сказали: Acute, timson, aov, AKatalov, nmatyash, am8374

Выключить всё при уходе из дома HowTo 14 Сен 2017 09:09 #23043

  • Denverus
  • Denverus аватар
  • Вне сайта
  • Завсегдатай
  • Сообщений: 278
  • Спасибо получено: 16
  • Репутация: 1
а Philio pan04 (он же как я понимаю TBK TZ04) можно заставить обрабатывать нажатия кнопок (хотя бы одинарное) для запуска сцены/скрипта без срабатывания реле?

в самом крайнем случае со срабатыванием, в конце сцены проверю условие выставлю как надо

Выключить всё при уходе из дома HowTo 14 Сен 2017 11:25 #23045

  • Moffus
  • Moffus аватар
  • Вне сайта
  • Живу я здесь
  • VeraPlus
  • Сообщений: 469
  • Спасибо получено: 54
  • Репутация: 8
В инструкции к TZ04 я не нашел сценариев.
Значит "ловить" события вкл/выкл.

Логика типа:
2 глобальные переменные. Дата/время и счетчик.

На включение/выключение сценарий:
Если запомненное время нулевое, то присвоить текущее.
Если дата/время в пределах 10 секунд:
Инкремент счётчика.
Иначе
Обнулить счетчик
Запомнить дату/время

Если счетчик >= 4 - вызвать нужную сцену.

Тогда нужно дважды включить/выключить за 10 секунд. и оно сработает.

Выключить всё при уходе из дома HowTo 15 Сен 2017 14:46 #23059

  • Golden
  • Golden аватар
  • Вне сайта
  • Давно я тут
  • Сообщений: 64
  • Спасибо получено: 4
  • Репутация: 0
Как -то слишком сложно мне кажется.
Просто сравниваешь текущее время с временем последнего выключения и в момент включения выключателя, если например больше 10 секунд то первое событие если нет то второе. То что написано выше актуально если делать больше 2-го вкл/выкл.

Выключить всё при уходе из дома HowTo 15 Сен 2017 20:14 #23061

  • Moffus
  • Moffus аватар
  • Вне сайта
  • Живу я здесь
  • VeraPlus
  • Сообщений: 469
  • Спасибо получено: 54
  • Репутация: 8
Со счетчиком уениверсальнее. Можно на любое кол-во смен позиции реагировать.
Время создания страницы: 0.247 секунд