[Настройка] Автоматическое управление освещением в комнате

Описание настройки чего либо

Модераторы: immortal, newz20

maksim
Сообщения: 22
Зарегистрирован: Чт сен 07, 2017 10:14 pm
Благодарил (а): 1 раз
Поблагодарили: 3 раза

[Настройка] Автоматическое управление освещением в комнате

Сообщение maksim » Пт апр 06, 2018 1:47 pm

Самое основное предназначение умного дома это управление освещением, так как взаимодействовать с выключателем в течении дня приходится очень много раз, если конечно он не один в доме (квартире). И так с самого начала. Мажор новая версия стоит на Винде 10, одна подопытная комната, спальня в ней установлен
1. Выключатель Xiaomi aqara с нулевой линией (лапухнулся и перепутал он не имеет функции отвязки реле от клавиш, для этого надо без нулевой линии) Сам по себе выключатель прикольный, сделан качественно, но когда установил его то выглядит сие чудо как хрен знает что. и релюшки клацают слышно хорошо
20180329_163843.jpg
20180329_163843.jpg (1.48 МБ) 8084 просмотра
2. Датчик движения Xiaomi aqara с датчиком освещенности, установлен на потолке в левом дальнем углу от входной двери, при высоте потолка 2,8м не срабатывает на 1/3 комнаты маловат угол обзора, но зато не ловит когда лежишь на кровати встаешь срабатывает в данном случае плюс а вообще минус. ну а так в целом девайсик очень даже достойный маленький аккуратненький.
20180329_163901.jpg
20180329_163901.jpg (999.05 КБ) 8084 просмотра
3. Шлюз Xiaomi gateway 2. служит ночником ну и шлюзом по совместительству
4. Датчик температуры Xiaomi aqara. Тоже очень достойная вещь, выглядит круто показания у моего 100% никакие есп с датчиками температуры рядом не стояли. так компактно и привлекательно самому собрать за эти деньги не получится.
А теперь програмная часть. точнее ее начало я с php на Вы и делаю все исходя из примеров. надеюсь сообща допилить до нужного вида.
И так в ОБЕКТЫ создаем новый класс "ReleSensors" название как душе угодно.
В нем добавляем объекты "Spalnj", "Hol" столько в скольких комнатах надо управлять освещением.
Далее в свойства добавляем
1 - AvtoOn время включения автоматического управления светом
2 - AvtoOff время выключения автоматического управления светом
3 - AvtoTurnOff автоматичесское управление светом
4 - SwitchMotionOff выключения освещения при отсутствии движения
5 - SwitchMotionOn включение освещения по датчику движения
6 - delayPower время задержки выключения освещения
7 - AvtoTurnOffNicha автоматическое управление подсветкой в нишах ( при наличии дополнительной группы)
8 - NotDisturb ктото спит должно выключить все свет и отключить все автоматическое управление
Screenshot_2018-04-06-11-06-11.png
Screenshot_2018-04-06-11-06-11.png (186.46 КБ) 8084 просмотра
Далее в Меню управление 》Управление комнатами 》 1 Спальня, 2 коридор, итд.
В "Спальня" добавляем дочерние пункты в них в объект добавляем Spalnj а в свойство добавляем нужное
Кто то спит / switch/ 110
Светом управляет: "Алиса" / switch/ 90
Подсветкой ниш управляет: Алиса / switch/ 80
Включение света по движению / switch/ 70
Выключение света без движения / switch/ 60
Задержка выключения / sliderbox/ 50
Запрет управления светом Алисе / timebox/ 40
Разрешение управлять светом Алисе / timebox/ 30
Подсветка ниш / switch/ 20
Свет / switch/ 10спальня
Screenshot_2018-04-06-12-12-40.png
Screenshot_2018-04-06-12-12-40.png (876.73 КБ) 8084 просмотра
Далее переходим к Сценариям
создаем сценарий включения светом TurnOnSwet для выключателя aqara callMethod("Relay03.turnOn");
аналогично для подсветки ниш TurnOnSwetNicha только указываем номер реле который им управляет Relay(Х)
ну и сценарий управления подсветки SwitchAvtoAlisa

Код: Выделить всё

if ((timeBetween((gg('Spalnj.AvtoOn')),(gg('Spalnj.AvtoOff')))) && (getGlobal('Spalnj.AvtoTurnOff')) && (getGlobal('Spalnj.SwitchMotionOn')) && (getGlobal('Motion01.status')) && (getGlobal('Spalnj.NotDisturb') =="0") && (getGlobal('Relay03.status') =="0") =="1"){
 runScript('TurnOnSwet');
   say("Включила свет",2);}
   // Включение подсветка ниш если:время больше текущего - разрешено светом управлять алисе - время разрешения управление - включать свет по движению

if ((timeBetween((gg('Spalnj.AvtoOn')),(gg('Spalnj.AvtoOff')))) && (getGlobal('Spalnj.AvtoTurnOffNicha')) && (getGlobal('Spalnj.SwitchMotionOn')) && (getGlobal('Motion01.status')) && (getGlobal('Relay04.status') =="0") =="1"){
   runScript('TurnOnSwetNicha');
    say("Включила подсветку в нишах",2);} 
Создаем Скрипт для запуска скрипа SwitchAvtoAlisa каждую секунду ( но както работает странно думаю код надо переместить в onNewMinute. сам код

Код: Выделить всё

runScript('SwitchAvtoAlisa');
setTimeOut("timer_Sp_timeout", "runScript('timer_Sp');", 1);

А теперь о багах. оказалось что когда я подхожу и выключаю свет выключателем в это время срабатывает датчик и Алиса включает свет , я выключаю она включает (короче жена сказала что в доме должна быть одна женщина) предполагаю что надо добавить какой нибудь таймер когда сработал выключатель на временное выключения сценария SwitchAvtoAlisa но у меня на это пока не хватает знаний, куда и какой вставить.
Также не смог реализовать выключения освещения без движения. хочу разделить его на 3 вида. 1 это общий который будет выключать забытый свет через ХХ время скажем 20мин (с возможностью выставлять его из меню а голосом еще лучше) а второй это когда я зашел свет включился я вышел свет выключился через 2 мин, применительно для коридора, ванны, да и просто зашел что нибудь взять. и третий это когда я захожу допустим в ванну включаю свет выключателем (тем самым даю понять системе что я буду долго там находится) должен отключится таймер N2. жду помощи от гуру и надеюсь информация будет полезна новичкам таким как я.
Вложения
20180329_163901.jpg
20180329_163901.jpg (999.05 КБ) 8102 просмотра
Последний раз редактировалось maksim Пт апр 06, 2018 2:09 pm, всего редактировалось 6 раз.
За это сообщение автора maksim поблагодарил:
Denis_k (Пт апр 06, 2018 2:32 pm)
Рейтинг: 1.18%
skysilver
Сообщения: 3000
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 397 раз
Поблагодарили: 1724 раза
Контактная информация:

Re: Автоматическое управлерие освищением в комнате

Сообщение skysilver » Пт апр 06, 2018 1:52 pm

Фоток нет :|

upd. О, уже есть. ) Но какие-то все одинаковые. )
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
maksim
Сообщения: 22
Зарегистрирован: Чт сен 07, 2017 10:14 pm
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Автоматическое управлерие освищением в комнате

Сообщение maksim » Пт апр 06, 2018 1:55 pm

да щас подправлю чето прыгает все
Dicont
Сообщения: 112
Зарегистрирован: Вс дек 17, 2017 11:24 pm
Благодарил (а): 34 раза
Поблагодарили: 11 раз

Re: Автоматическое управлерие освещением в комнате

Сообщение Dicont » Вс апр 08, 2018 1:08 am

Что бы не включался свет, добавь проверку в код датчика движения, и включай только когда 1:
$motion02 = gg('Motion02.status');
if ($motion02 == 1 )
{sg('Relay03.status', 1);}

Но тут тоже есть "баг" - пока не пройдет 10 секунд и свойство не перейдет в 0, срабатывать повторно в течении 10 сек не будет.
Нужно включать кнопкой, зато сам не включиться, если выключить.
Включение света, после выключения это нормальное явление, идет повторная проверка что датчик движения доступен, и свойство обновляется в некоторых случаях.
maksim
Сообщения: 22
Зарегистрирован: Чт сен 07, 2017 10:14 pm
Благодарил (а): 1 раз
Поблагодарили: 3 раза

Re: Автоматическое управлерие освещением в комнате

Сообщение maksim » Вс апр 08, 2018 10:24 am

у меня в спальне выключатель стоит внутри, и получается что я выключил и начинаю уходить и закрывать дверь он увидел движение и включил, а вот если щелкнуть и убежить он не успевает сработать
Chainik
Сообщения: 1357
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 223 раза
Поблагодарили: 426 раз

Re: Автоматическое управлерие освещением в комнате

Сообщение Chainik » Вс апр 08, 2018 12:35 pm

В плане алгоритмов можно сделать 2 режима: один условно "ручной", где свет будет включаться и выключаться посредством выключателя (и выключаться автоматом только когда его забыли выключить), а другой алгоритм, когда свет будет включаться/выключаться по датчику движения. И переключаться между этими режимами (https://ab-log.ru/forum/viewtopic.php?f ... 440#p28440).
Аватара пользователя
mazahaka7sk
Сообщения: 54
Зарегистрирован: Сб фев 20, 2016 8:46 am
Откуда: Усть-Каменогорс
Благодарил (а): 8 раз
Поблагодарили: 10 раз
Контактная информация:

Re: [Настройка] Автоматическое управление освещением в комнате

Сообщение mazahaka7sk » Вт янв 22, 2019 8:26 pm

Ну что допилили скрипты ? Получилось все настроить ? Если да напишите
CONNECT |Группа в VK| ЮТУБ КАНАЛ
Система стоит на Raspberry pi 3b v3.31
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
lihodeev
Сообщения: 146
Зарегистрирован: Ср июл 25, 2018 10:37 pm
Благодарил (а): 41 раз
Поблагодарили: 8 раз

Re: [Настройка] Автоматическое управление освещением в комнате

Сообщение lihodeev » Сб мар 30, 2019 6:03 pm

Ребят, а кто то может сказать как реализовать ручное управление при данном - свет в комнате управляется скриптом -
sg('pirHAL.status', 1);
if(timeBetween('18:00', '23:59')){
SetTimeOut("MS2ActTimer","sg('pirHAL.status', 0);",0);
getURL("http://192.168.1.37/?Hai0=1", 0);
//run timer on 10 minuts
clearTimeOut("lightOffTimer5");
SetTimeOut("lightOffTimer5","getURL('http://192.168.1.37/?Hai0=0', 0);",60*10);}
все вроде чудесно,НО если скажем лег спать до 12 ночи, и не удачно повернулся или датчик движения увидел активность то Алиса добросовестно отрабатывает включение света, чего не очень то хотелось. Как сделать так, чтобы при пусть голосовой команде типа *я ложусь спать* этот скрипт блокировался до утра или до момента восхода солнца?
Raspberry 3, AMS 16, arduinka 2560, Orange pi Zero, Broadlink RM3, Xiaomi Mi Robot Vacuum SKV4000GL
Аватара пользователя
xor
Сообщения: 1739
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 212 раз
Поблагодарили: 521 раз

Re: [Настройка] Автоматическое управление освещением в комнате

Сообщение xor » Сб мар 30, 2019 6:29 pm

lihodeev писал(а):
Сб мар 30, 2019 6:03 pm
Ребят, а кто то может сказать как реализовать ручное управление при данном - свет в комнате управляется скриптом -
sg('pirHAL.status', 1);
if(timeBetween('18:00', '23:59')){
SetTimeOut("MS2ActTimer","sg('pirHAL.status', 0);",0);
getURL("http://192.168.1.37/?Hai0=1", 0);
//run timer on 10 minuts
clearTimeOut("lightOffTimer5");
SetTimeOut("lightOffTimer5","getURL('http://192.168.1.37/?Hai0=0', 0);",60*10);}
все вроде чудесно,НО если скажем лег спать до 12 ночи, и не удачно повернулся или датчик движения увидел активность то Алиса добросовестно отрабатывает включение света, чего не очень то хотелось. Как сделать так, чтобы при пусть голосовой команде типа *я ложусь спать* этот скрипт блокировался до утра или до момента восхода солнца?
сделать флаг Enable и проверять его при запуске скрипта, а флагом управлять шаблоном, да и из планировщика какого-нибудь по времени
Chainik
Сообщения: 1357
Зарегистрирован: Вс янв 10, 2016 11:05 am
Благодарил (а): 223 раза
Поблагодарили: 426 раз

Re: [Настройка] Автоматическое управление освещением в комнате

Сообщение Chainik » Сб мар 30, 2019 6:41 pm

lihodeev писал(а):
Сб мар 30, 2019 6:03 pm
...
все вроде чудесно,НО если скажем лег спать до 12 ночи, и не удачно повернулся или датчик движения увидел активность то Алиса добросовестно отрабатывает включение света, чего не очень то хотелось. Как сделать так, чтобы при пусть голосовой команде типа *я ложусь спать* этот скрипт блокировался до утра или до момента восхода солнца?
Можно попробовать использовать доп.свойство аля "лег_спать". Если свойство = "1", код исходного скрипта запускаться не будет. После восхода солнца и срабатывания датчика движения свойству "лег_спать" присвоится значение "0". Только надо проверить, что в ThisComputer.SunRise время восхода устанавливается правильно.

Код: Выделить всё

if(timeBetween('ThisComputer.SunRiseTime', '17:59')){
sg("ОБЪЕКТ.Свойство_лег_спать', 0);
}
if(gg("ОБЪЕКТ.Свойство_лег_спать") == "0"){
ИСХОДНЫЙ КОД СКРИПТА
}
Последний раз редактировалось Chainik Сб мар 30, 2019 8:53 pm, всего редактировалось 2 раза.
За это сообщение автора Chainik поблагодарил:
lihodeev (Сб мар 30, 2019 7:46 pm)
Рейтинг: 1.18%
Ответить