Страница 1 из 2

Автоматизация включения света

Добавлено: Вс ноя 24, 2019 11:01 pm
pruwait
Затрудняюсь автоматизировать следующий сценарий:
Если датчик движения зафиксировал активность, при этом прошло более 30минут со времени заката - включить свет на нескольких выключателях для работы в течение 10 минут.
Если до сработки датчика движения свет был включен вручную - не нужно его выключать.
Иначе выключить через 10 минут.

Как такое прописать?

Re: Автоматизация включения света

Добавлено: Вс ноя 24, 2019 11:30 pm
freesh
pruwait писал(а):
Вс ноя 24, 2019 11:01 pm
Затрудняюсь автоматизировать следующий сценарий:
Если датчик движения зафиксировал активность, при этом прошло более 30минут со времени заката - включить свет на нескольких выключателях для работы в течение 10 минут.
Если до сработки датчика движения свет был включен вручную - не нужно его выключать.
Иначе выключить через 10 минут.

Как такое прописать?
Через планирование
https://kb.mjdm.ru/planirovanie-zadach/

Re: Автоматизация включения света

Добавлено: Пн ноя 25, 2019 12:53 pm
pruwait
freesh писал(а):
Вс ноя 24, 2019 11:30 pm
Через планирование
https://kb.mjdm.ru/planirovanie-zadach/
Это достаточно общее направление.

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

Re: Автоматизация включения света

Добавлено: Пн ноя 25, 2019 12:56 pm
pruwait
Предполагаю, что одна из причин слабой распространенности умных домов в чрезмерной сложности реализации казалось бы обыденных вещей. Должно быть как-то проще все. Пара галочек в дружественном интерфейсе - и все работает как надо.

Re: Автоматизация включения света

Добавлено: Пн ноя 25, 2019 1:00 pm
tarasfrompir
pruwait писал(а):
Пн ноя 25, 2019 12:56 pm
Предполагаю, что одна из причин слабой распространенности умных домов в чрезмерной сложности реализации казалось бы обыденных вещей. Должно быть как-то проще все. Пара галочек в дружественном интерфейсе - и все работает как надо.
Вы просто не предстевляете сколько вариантов и сложностей возникает при том что каждому нужно свое...

Re: Автоматизация включения света

Добавлено: Пн ноя 25, 2019 1:33 pm
pruwait
Каждому нужно свое - тут разговоров нет.
Ну разве не обыденная хотелка - включение света в темное время суток по датчику движения? Или когда кто-то дома.

Re: Автоматизация включения света

Добавлено: Пн ноя 25, 2019 1:38 pm
freesh
pruwait писал(а):
Пн ноя 25, 2019 12:53 pm
freesh писал(а):
Вс ноя 24, 2019 11:30 pm
Через планирование
https://kb.mjdm.ru/planirovanie-zadach/
Это достаточно общее направление.

Нельзя ли поэтапно расписать, где и что нужно подредактировать, чтобы работало именно так?
Не изменить а написать ручками используя встроенные функции.
Ну т.е. пример - в методе срабатывающем при обнаружении движения в комнате, например MotionSensor.StatusChanged (я не знаю какие у Вас железки и метды) проверяем если свет в комнате выключен и уже темно (свойство isDark) то надо включить свет
If (gg('LivingRoom.LightIsOff')==0) && (gg('thisComputer.isDark')==1) {
turnonlight(); //сюда пишем где включаем свет (в каких комнатах)
}
ClearTimeOut("TurnOffTheLight"); // в этом же методе сбрасываем таймер выключения
SetTimeOut("TurnOffTheLight","turnofflight();",600); //устанавливаем новый таймер на 10 мин.


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

Переменная LivingRoom.LightIsOff:
В методе включения света:
setGlobal('LivingRoom.LightIsOff',1);

В методе выключения света:
setGlobal('LivingRoom.LightIsOff',0);

Соответсвенно посмотреть если в Timer.OnNewMinute - поднимается флаг isDark

Ну как-то так, подробнее проще отвечать на вопросы и использовать интрукции :)

Соответсвенно методы turnonlight() и turnonlight() подставляете свои, которые включают и выключают свет.

Re: Автоматизация включения света

Добавлено: Пн ноя 25, 2019 11:23 pm
Chainik
Несложно кодом накрутить любую логику.
https://ab-log.ru/forum/viewtopic.php?f ... 440#p28440
Вам все равно придется хотя бы чуть-чуть разобраться в PHP.

Re: Автоматизация включения света

Добавлено: Ср ноя 27, 2019 3:45 pm
pruwait
Как прописать в коде "включить лампу через полчаса после заката"?

Re: Автоматизация включения света

Добавлено: Ср ноя 27, 2019 3:49 pm
freesh
pruwait писал(а):
Ср ноя 27, 2019 3:45 pm
Как прописать в коде "включить лампу через полчаса после заката"?
Наверное как-то так.

SetTimeOut("TurnOnTheLamp","Lamp.TurnOn;",1800); //устанавливаем новый таймер отработки метода Lamp.TurnOn; на 30 мин.

Но лучше сделать сценарий например lampTurnOnAfterDark
В нем проверять, а не включили ли мы уже лампу сами, на всякий случай
if (gg('Lamp.Status')==0){
CallMethod(Lamp.TurnOn);
}

И планировать уже этот сценарий
SetTimeOut("TurnOnTheLamp","lampTurnOnAfterDark;",1800); //устанавливаем новый таймер отработки метода Lamp.TurnOn; на 30 мин.


А куда это засунуть решай сам, можно в onNewMinute, где у тебя флаг заката поднимается, или в DarknessMode.Activate если он включается