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

Прошу помощи в написании сценария экономии света

Добавлено: Пн дек 14, 2015 4:25 am
Alexiy2
Господа, помогите нубу! Имею систему на МегаД, датчики движения в каждой комнате, требуется: при включенном свете, после отсутствия движения в данной комнате в течении 5 минут автоматом выключать свет. Ну а если, соответственно, датчик движения подаст признаки оживления, то счётчик отключения электроэнергии обнулить. Весь форум перерыскал - но так и не нашел (вроде хорошо смотрел), тяжело дается мне система, не программер я, что поделать?'

Re: Прошу помощи в написании сценария экономии света

Добавлено: Пн дек 14, 2015 4:42 am
savenko_egor
Я так понял что проблема именно в написании алгоритма. Если так, то:
1. Создайте свойство. Например: LightTimer
2. В oneMinute добавьте код что в случае если детектор движения не сработал(проверяем какое-то свойство, какое у Вас используется), добавлять в свойство "LightTimer" 1. И тут же сделайте проверку, если свойство набрало определённое количество, например 5 = 5 минут, то отключаем свет.
3. При срабатывании датчика движения, Вам необходимо сбрасывать значение свойства "LightTimer" в 0. То есть что бы оно шло заново.
Это самый простой и банальный вариант который приходит на ум.

Re: Прошу помощи в написании сценария экономии света

Добавлено: Пн дек 14, 2015 10:12 am
Jager
Alexiy2 писал(а):Господа, помогите нубу! Имею систему на МегаД, датчики движения в каждой комнате, требуется: при включенном свете, после отсутствия движения в данной комнате в течении 5 минут автоматом выключать свет. Ну а если, соответственно, датчик движения подаст признаки оживления, то счётчик отключения электроэнергии обнулить. Весь форум перерыскал - но так и не нашел (вроде хорошо смотрел), тяжело дается мне система, не программер я, что поделать?'
У меня вот так в холле подсветка работает по датчику движения
Изображение

Re: Прошу помощи в написании сценария экономии света

Добавлено: Пн дек 14, 2015 12:53 pm
zelevova
warik писал(а):2. В oneMinute добавьте код
Фуфуфу.... oneMinute как обычно перегружают кодом, а потом циклы почему то вроде как падают, а на самом деле просто еле ворочаются...
Jager писал(а):У меня вот так в холле подсветка работает по датчику движения
Вот хороший вариант.

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

callMethod('LightHall.turnOn');
SetTimeOut("LightHallOffTimer", "callMethod('LightHall.turnOn')", 5*60);
...
PS: Ни кого не хотел обидеть, просто лучше поругаться и помочь, чем потом мучатся будете.

Re: Прошу помощи в написании сценария экономии света

Добавлено: Вт дек 15, 2015 10:03 am
Jager
zelevova писал(а):

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

ClearTimeOut("LightHallOffTimer"); // Строка сбрасывающая предыдущий отчет если он есть. Если не сбрасывать, то свет выключается через 5 минут после каждого срабатывания датчика по одноименным таймерам :)
...
Хм, добавил у себя эту строчку, ничего не изменилось в поведении. Пока есть движение свет горит, после последнего срабатывания датчика гаснет через указанное время.
Я и так думал что при повторном запуске одноименного таймера он сбрасывается сам.

Re: Прошу помощи в написании сценария экономии света

Добавлено: Вт дек 15, 2015 11:30 am
zelevova
Оказывается в обновлении от 31 мая 2013 года при установки нового таймера, старый одноименный удаляется первым делом. Так что мои рекомендации не актуальны чуточку. :oops: Можете возвращать все в зад.
Отредактировал рекомендацию что бы ни кого в заблуждение не вводить.

Re: Прошу помощи в написании сценария экономии света

Добавлено: Вт дек 15, 2015 12:37 pm
Alexiy2
Господа! Данный код превосходно работает! А может кто подскажет, как реализовать такие хотелки: к Одной из МЕГ подключен датчик освещенности. Пока хватает уличного освещения-свет в некоторых солнечных комнатах не должен включаться, но бывают такие моменты, что просто необходимо включить свет (его можно как то включать принудительно по длительному нажатию на кнопку включения?).

Re: Прошу помощи в написании сценария экономии света

Добавлено: Вт дек 15, 2015 3:15 pm
zelevova
А вот с этого момента начинаются чудеса... :) Тут уже нужно переходить на объектный уровень ООП.

Есть независимые объекты: датчики движения, датчик освещенности, источники света

У меня у объектов отвечающих за источники света есть свойства:
* status - "1" = включена, "0" = выключена,
* modeAuto - режим автоматического управления, "0" - четко выключено, "1" - четко включено, "-1" - управляется автоматикой в том числе по датчикам движения

Далее по каким то событиям выполняются методы соответствующих событий. В общих чертах:
При срабатывания датчика движения проверяется что modeAuto нужной лампы = "-1" и выполняем код с таймерами приведенный выше.
При превышении определенного порога данных с датчика освещенности переключаем нужные лампы в modeAuto = "0", при переходе этого порога обратно переключаем нужные лампы в modeAuto = "-1".
При изменении modeAuto вызывается метод который при необходимости меняет status и включает/выключает свет.
Ну и при необходимости выделяем физическую кнопку которая меняет свойство modeAuto на "1" или "-1" или "0" в зависимости от своего состояния и данных с датчика освещенности.
Ну и если надо сами выставляем modeAuto = "1" и свет горит пока не измениться режим по освещенности или не выключим сами.

В интерфейсе для отображения в меню объектов источников света использую радио-боксы, привязываюсь к свойству modeAuto.

Вместо датчика освещенности можно использовать время восхода и заката получаемое с интернет ресурсов или рассчитываемое локальными алгоритмами.

Re: Прошу помощи в написании сценария экономии света

Добавлено: Вт дек 15, 2015 4:44 pm
Alexiy2
А как нибудь кусок кода увидеть возможно? Свет у меня так же привязан к статусу 1 или 0. У Вас CONNECT пуст, поэтому приходится просить. А как Вы на автоматику выставили статус -1?

Re: Прошу помощи в написании сценария экономии света

Добавлено: Ср дек 16, 2015 9:32 am
zelevova
Перезаполнил коннект. Там теперь есть куски кода. ;)