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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

pruwait
Сообщения: 42
Зарегистрирован: Ср ноя 07, 2018 3:05 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение pruwait » Вс ноя 24, 2019 11:01 pm

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

Как такое прописать?
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

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

Сообщение freesh » Вс ноя 24, 2019 11:30 pm

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

Как такое прописать?
Через планирование
https://kb.mjdm.ru/planirovanie-zadach/
Raspberry pi3, xiaomi, sonoff rf.
pruwait
Сообщения: 42
Зарегистрирован: Ср ноя 07, 2018 3:05 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение pruwait » Пн ноя 25, 2019 12:53 pm

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

Нельзя ли поэтапно расписать, где и что нужно подредактировать, чтобы работало именно так?
pruwait
Сообщения: 42
Зарегистрирован: Ср ноя 07, 2018 3:05 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение pruwait » Пн ноя 25, 2019 12:56 pm

Предполагаю, что одна из причин слабой распространенности умных домов в чрезмерной сложности реализации казалось бы обыденных вещей. Должно быть как-то проще все. Пара галочек в дружественном интерфейсе - и все работает как надо.
Аватара пользователя
tarasfrompir
Сообщения: 3216
Зарегистрирован: Ср мар 02, 2016 8:18 pm
Откуда: Украина Пирятин
Благодарил (а): 223 раза
Поблагодарили: 815 раз

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

Сообщение tarasfrompir » Пн ноя 25, 2019 1:00 pm

pruwait писал(а):
Пн ноя 25, 2019 12:56 pm
Предполагаю, что одна из причин слабой распространенности умных домов в чрезмерной сложности реализации казалось бы обыденных вещей. Должно быть как-то проще все. Пара галочек в дружественном интерфейсе - и все работает как надо.
Вы просто не предстевляете сколько вариантов и сложностей возникает при том что каждому нужно свое...
Спасибо нам ПОМОЖЕТ..!
pruwait
Сообщения: 42
Зарегистрирован: Ср ноя 07, 2018 3:05 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение pruwait » Пн ноя 25, 2019 1:33 pm

Каждому нужно свое - тут разговоров нет.
Ну разве не обыденная хотелка - включение света в темное время суток по датчику движения? Или когда кто-то дома.
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

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

Сообщение freesh » Пн ноя 25, 2019 1:38 pm

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() подставляете свои, которые включают и выключают свет.
Raspberry pi3, xiaomi, sonoff rf.
Chainik
Сообщения: 1462
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 260 раз
Поблагодарили: 454 раза

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

Сообщение Chainik » Пн ноя 25, 2019 11:23 pm

Несложно кодом накрутить любую логику.
https://ab-log.ru/forum/viewtopic.php?f ... 440#p28440
Вам все равно придется хотя бы чуть-чуть разобраться в PHP.
pruwait
Сообщения: 42
Зарегистрирован: Ср ноя 07, 2018 3:05 pm
Благодарил (а): 2 раза
Поблагодарили: 0

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

Сообщение pruwait » Ср ноя 27, 2019 3:45 pm

Как прописать в коде "включить лампу через полчаса после заката"?
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

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

Сообщение freesh » Ср ноя 27, 2019 3:49 pm

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 если он включается
Raspberry pi3, xiaomi, sonoff rf.
Ответить