Прошу помощи в написании сценария экономии света
Модератор: immortal
-
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
- Благодарил (а): 16 раз
- Поблагодарили: 13 раз
Прошу помощи в написании сценария экономии света
Господа, помогите нубу! Имею систему на МегаД, датчики движения в каждой комнате, требуется: при включенном свете, после отсутствия движения в данной комнате в течении 5 минут автоматом выключать свет. Ну а если, соответственно, датчик движения подаст признаки оживления, то счётчик отключения электроэнергии обнулить. Весь форум перерыскал - но так и не нашел (вроде хорошо смотрел), тяжело дается мне система, не программер я, что поделать?'
- savenko_egor
- Сообщения: 705
- Зарегистрирован: Вс авг 03, 2014 8:17 pm
- Откуда: Украина, Запорожье
- Благодарил (а): 108 раз
- Поблагодарили: 147 раз
- Контактная информация:
Re: Прошу помощи в написании сценария экономии света
Я так понял что проблема именно в написании алгоритма. Если так, то:
1. Создайте свойство. Например: LightTimer
2. В oneMinute добавьте код что в случае если детектор движения не сработал(проверяем какое-то свойство, какое у Вас используется), добавлять в свойство "LightTimer" 1. И тут же сделайте проверку, если свойство набрало определённое количество, например 5 = 5 минут, то отключаем свет.
3. При срабатывании датчика движения, Вам необходимо сбрасывать значение свойства "LightTimer" в 0. То есть что бы оно шло заново.
Это самый простой и банальный вариант который приходит на ум.
1. Создайте свойство. Например: LightTimer
2. В oneMinute добавьте код что в случае если детектор движения не сработал(проверяем какое-то свойство, какое у Вас используется), добавлять в свойство "LightTimer" 1. И тут же сделайте проверку, если свойство набрало определённое количество, например 5 = 5 минут, то отключаем свет.
3. При срабатывании датчика движения, Вам необходимо сбрасывать значение свойства "LightTimer" в 0. То есть что бы оно шло заново.
Это самый простой и банальный вариант который приходит на ум.
- За это сообщение автора savenko_egor поблагодарил:
- Amarok (Пн дек 14, 2015 9:45 am)
- Рейтинг: 1.16%
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Прошу помощи в написании сценария экономии света
У меня вот так в холле подсветка работает по датчику движенияAlexiy2 писал(а):Господа, помогите нубу! Имею систему на МегаД, датчики движения в каждой комнате, требуется: при включенном свете, после отсутствия движения в данной комнате в течении 5 минут автоматом выключать свет. Ну а если, соответственно, датчик движения подаст признаки оживления, то счётчик отключения электроэнергии обнулить. Весь форум перерыскал - но так и не нашел (вроде хорошо смотрел), тяжело дается мне система, не программер я, что поделать?'
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Прошу помощи в написании сценария экономии света
Фуфуфу.... oneMinute как обычно перегружают кодом, а потом циклы почему то вроде как падают, а на самом деле просто еле ворочаются...warik писал(а):2. В oneMinute добавьте код
Вот хороший вариант.Jager писал(а):У меня вот так в холле подсветка работает по датчику движения
Код: Выделить всё
callMethod('LightHall.turnOn');
SetTimeOut("LightHallOffTimer", "callMethod('LightHall.turnOn')", 5*60);
...
Последний раз редактировалось zelevova Вт дек 15, 2015 11:31 am, всего редактировалось 1 раз.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 708
- Зарегистрирован: Сб авг 18, 2012 10:21 am
- Благодарил (а): 26 раз
- Поблагодарили: 183 раза
Re: Прошу помощи в написании сценария экономии света
Хм, добавил у себя эту строчку, ничего не изменилось в поведении. Пока есть движение свет горит, после последнего срабатывания датчика гаснет через указанное время.zelevova писал(а):Код: Выделить всё
ClearTimeOut("LightHallOffTimer"); // Строка сбрасывающая предыдущий отчет если он есть. Если не сбрасывать, то свет выключается через 5 минут после каждого срабатывания датчика по одноименным таймерам :) ...
Я и так думал что при повторном запуске одноименного таймера он сбрасывается сам.
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Прошу помощи в написании сценария экономии света
Оказывается в обновлении от 31 мая 2013 года при установки нового таймера, старый одноименный удаляется первым делом. Так что мои рекомендации не актуальны чуточку. Можете возвращать все в зад.
Отредактировал рекомендацию что бы ни кого в заблуждение не вводить.
Отредактировал рекомендацию что бы ни кого в заблуждение не вводить.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
- Благодарил (а): 16 раз
- Поблагодарили: 13 раз
Re: Прошу помощи в написании сценария экономии света
Господа! Данный код превосходно работает! А может кто подскажет, как реализовать такие хотелки: к Одной из МЕГ подключен датчик освещенности. Пока хватает уличного освещения-свет в некоторых солнечных комнатах не должен включаться, но бывают такие моменты, что просто необходимо включить свет (его можно как то включать принудительно по длительному нажатию на кнопку включения?).
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Прошу помощи в написании сценария экономии света
А вот с этого момента начинаются чудеса... Тут уже нужно переходить на объектный уровень ООП.
Есть независимые объекты: датчики движения, датчик освещенности, источники света
У меня у объектов отвечающих за источники света есть свойства:
* status - "1" = включена, "0" = выключена,
* modeAuto - режим автоматического управления, "0" - четко выключено, "1" - четко включено, "-1" - управляется автоматикой в том числе по датчикам движения
Далее по каким то событиям выполняются методы соответствующих событий. В общих чертах:
При срабатывания датчика движения проверяется что modeAuto нужной лампы = "-1" и выполняем код с таймерами приведенный выше.
При превышении определенного порога данных с датчика освещенности переключаем нужные лампы в modeAuto = "0", при переходе этого порога обратно переключаем нужные лампы в modeAuto = "-1".
При изменении modeAuto вызывается метод который при необходимости меняет status и включает/выключает свет.
Ну и при необходимости выделяем физическую кнопку которая меняет свойство modeAuto на "1" или "-1" или "0" в зависимости от своего состояния и данных с датчика освещенности.
Ну и если надо сами выставляем modeAuto = "1" и свет горит пока не измениться режим по освещенности или не выключим сами.
В интерфейсе для отображения в меню объектов источников света использую радио-боксы, привязываюсь к свойству modeAuto.
Вместо датчика освещенности можно использовать время восхода и заката получаемое с интернет ресурсов или рассчитываемое локальными алгоритмами.
Есть независимые объекты: датчики движения, датчик освещенности, источники света
У меня у объектов отвечающих за источники света есть свойства:
* status - "1" = включена, "0" = выключена,
* modeAuto - режим автоматического управления, "0" - четко выключено, "1" - четко включено, "-1" - управляется автоматикой в том числе по датчикам движения
Далее по каким то событиям выполняются методы соответствующих событий. В общих чертах:
При срабатывания датчика движения проверяется что modeAuto нужной лампы = "-1" и выполняем код с таймерами приведенный выше.
При превышении определенного порога данных с датчика освещенности переключаем нужные лампы в modeAuto = "0", при переходе этого порога обратно переключаем нужные лампы в modeAuto = "-1".
При изменении modeAuto вызывается метод который при необходимости меняет status и включает/выключает свет.
Ну и при необходимости выделяем физическую кнопку которая меняет свойство modeAuto на "1" или "-1" или "0" в зависимости от своего состояния и данных с датчика освещенности.
Ну и если надо сами выставляем modeAuto = "1" и свет горит пока не измениться режим по освещенности или не выключим сами.
В интерфейсе для отображения в меню объектов источников света использую радио-боксы, привязываюсь к свойству modeAuto.
Вместо датчика освещенности можно использовать время восхода и заката получаемое с интернет ресурсов или рассчитываемое локальными алгоритмами.
- За это сообщение автора zelevova поблагодарил:
- timurufa86 (Пн мар 26, 2018 11:09 am)
- Рейтинг: 1.16%
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311
-
- Сообщения: 104
- Зарегистрирован: Вт май 12, 2015 9:59 pm
- Благодарил (а): 16 раз
- Поблагодарили: 13 раз
Re: Прошу помощи в написании сценария экономии света
А как нибудь кусок кода увидеть возможно? Свет у меня так же привязан к статусу 1 или 0. У Вас CONNECT пуст, поэтому приходится просить. А как Вы на автоматику выставили статус -1?
-
- Сообщения: 291
- Зарегистрирован: Вт ноя 18, 2014 11:43 pm
- Откуда: Краснодарский край
- Благодарил (а): 32 раза
- Поблагодарили: 68 раз
Re: Прошу помощи в написании сценария экономии света
Перезаполнил коннект. Там теперь есть куски кода.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
CONNECT: http://connect.smartliving.ru/profile/311