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

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

Модератор: immortal

Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm
Благодарил (а): 16 раз
Поблагодарили: 13 раз

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

Сообщение Alexiy2 » Пн дек 14, 2015 4:25 am

Господа, помогите нубу! Имею систему на МегаД, датчики движения в каждой комнате, требуется: при включенном свете, после отсутствия движения в данной комнате в течении 5 минут автоматом выключать свет. Ну а если, соответственно, датчик движения подаст признаки оживления, то счётчик отключения электроэнергии обнулить. Весь форум перерыскал - но так и не нашел (вроде хорошо смотрел), тяжело дается мне система, не программер я, что поделать?'
Аватара пользователя
savenko_egor
Сообщения: 705
Зарегистрирован: Вс авг 03, 2014 8:17 pm
Откуда: Украина, Запорожье
Благодарил (а): 108 раз
Поблагодарили: 147 раз
Контактная информация:

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

Сообщение savenko_egor » Пн дек 14, 2015 4:42 am

Я так понял что проблема именно в написании алгоритма. Если так, то:
1. Создайте свойство. Например: LightTimer
2. В oneMinute добавьте код что в случае если детектор движения не сработал(проверяем какое-то свойство, какое у Вас используется), добавлять в свойство "LightTimer" 1. И тут же сделайте проверку, если свойство набрало определённое количество, например 5 = 5 минут, то отключаем свет.
3. При срабатывании датчика движения, Вам необходимо сбрасывать значение свойства "LightTimer" в 0. То есть что бы оно шло заново.
Это самый простой и банальный вариант который приходит на ум.
За это сообщение автора savenko_egor поблагодарил:
Amarok (Пн дек 14, 2015 9:45 am)
Рейтинг: 1.16%
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Пн дек 14, 2015 10:12 am

Alexiy2 писал(а):Господа, помогите нубу! Имею систему на МегаД, датчики движения в каждой комнате, требуется: при включенном свете, после отсутствия движения в данной комнате в течении 5 минут автоматом выключать свет. Ну а если, соответственно, датчик движения подаст признаки оживления, то счётчик отключения электроэнергии обнулить. Весь форум перерыскал - но так и не нашел (вроде хорошо смотрел), тяжело дается мне система, не программер я, что поделать?'
У меня вот так в холле подсветка работает по датчику движения
Изображение
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

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

Сообщение zelevova » Пн дек 14, 2015 12:53 pm

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

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

callMethod('LightHall.turnOn');
SetTimeOut("LightHallOffTimer", "callMethod('LightHall.turnOn')", 5*60);
...
PS: Ни кого не хотел обидеть, просто лучше поругаться и помочь, чем потом мучатся будете.
Последний раз редактировалось zelevova Вт дек 15, 2015 11:31 am, всего редактировалось 1 раз.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Jager
Сообщения: 708
Зарегистрирован: Сб авг 18, 2012 10:21 am
Благодарил (а): 26 раз
Поблагодарили: 183 раза

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

Сообщение Jager » Вт дек 15, 2015 10:03 am

zelevova писал(а):

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

ClearTimeOut("LightHallOffTimer"); // Строка сбрасывающая предыдущий отчет если он есть. Если не сбрасывать, то свет выключается через 5 минут после каждого срабатывания датчика по одноименным таймерам :)
...
Хм, добавил у себя эту строчку, ничего не изменилось в поведении. Пока есть движение свет горит, после последнего срабатывания датчика гаснет через указанное время.
Я и так думал что при повторном запуске одноименного таймера он сбрасывается сам.
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

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

Сообщение zelevova » Вт дек 15, 2015 11:30 am

Оказывается в обновлении от 31 мая 2013 года при установки нового таймера, старый одноименный удаляется первым делом. Так что мои рекомендации не актуальны чуточку. :oops: Можете возвращать все в зад.
Отредактировал рекомендацию что бы ни кого в заблуждение не вводить.
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm
Благодарил (а): 16 раз
Поблагодарили: 13 раз

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

Сообщение Alexiy2 » Вт дек 15, 2015 12:37 pm

Господа! Данный код превосходно работает! А может кто подскажет, как реализовать такие хотелки: к Одной из МЕГ подключен датчик освещенности. Пока хватает уличного освещения-свет в некоторых солнечных комнатах не должен включаться, но бывают такие моменты, что просто необходимо включить свет (его можно как то включать принудительно по длительному нажатию на кнопку включения?).
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

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

Сообщение zelevova » Вт дек 15, 2015 3:15 pm

А вот с этого момента начинаются чудеса... :) Тут уже нужно переходить на объектный уровень ООП.

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

У меня у объектов отвечающих за источники света есть свойства:
* 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
Alexiy2
Сообщения: 104
Зарегистрирован: Вт май 12, 2015 9:59 pm
Благодарил (а): 16 раз
Поблагодарили: 13 раз

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

Сообщение Alexiy2 » Вт дек 15, 2015 4:44 pm

А как нибудь кусок кода увидеть возможно? Свет у меня так же привязан к статусу 1 или 0. У Вас CONNECT пуст, поэтому приходится просить. А как Вы на автоматику выставили статус -1?
zelevova
Сообщения: 291
Зарегистрирован: Вт ноя 18, 2014 11:43 pm
Откуда: Краснодарский край
Благодарил (а): 32 раза
Поблагодарили: 68 раз

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

Сообщение zelevova » Ср дек 16, 2015 9:32 am

Перезаполнил коннект. Там теперь есть куски кода. ;)
Majordomo (GitHub) на cubietruck + MegaD + 1-wire
CONNECT: http://connect.smartliving.ru/profile/311
Ответить