Очень интересно, но ничего непонятно!
Re: Очень интересно, но ничего непонятно!
Код $state = substr($state,0,3); "обрезает" ответ Меги (на "вопрос" о состоянии входа) до первых 3-х символов. Поскольку ответ приходит в виде "OFF/Число_срабатываний_входа", а нам нужен только "OFF", который мы дальше обрабатываем.
Вообще, сейчас пришло понимание, что не дребезг контактов там "хулиганит". Т.к. вход у меня настроен как "P&R", остается больше 1,5 секунд в замкнутом или разомкнутом состоянии, то Мега совершенно "штатно" сообщает серверу через 1,5 секунды второй ответ с параметром "m". Соответственно, это вызывает повторный вызов скрипта. Все это, как я уже понял можно "отловить" и учесть на стороне сервера. Вот, можете почитать страницу 65 в соответствующей ветке на Мажордомо (http://majordomo.smartliving.ru/forum/v ... &start=640). Только пока "руки не доходят" сделать это дополнение в связи таким "открытием".
Вообще, сейчас пришло понимание, что не дребезг контактов там "хулиганит". Т.к. вход у меня настроен как "P&R", остается больше 1,5 секунд в замкнутом или разомкнутом состоянии, то Мега совершенно "штатно" сообщает серверу через 1,5 секунды второй ответ с параметром "m". Соответственно, это вызывает повторный вызов скрипта. Все это, как я уже понял можно "отловить" и учесть на стороне сервера. Вот, можете почитать страницу 65 в соответствующей ветке на Мажордомо (http://majordomo.smartliving.ru/forum/v ... &start=640). Только пока "руки не доходят" сделать это дополнение в связи таким "открытием".
Re: Очень интересно, но ничего непонятно!
Спасибо, понял!
Re: Очень интересно, но ничего непонятно!
Нет протечкам! Подключим ДАТЧИК ПРОТЕЧКИ и шаровый кран с электроприводом
Защитой от протечек лучше всего озаботиться еще на этапе прокладки коммуникаций в части электропроводки и труб системы водоснабжения. Если проложены необходимые провода, то предотвратить появление «незапланированной Венеции» в своем жилище с помощью Меги проще простого. Подключим для этого датчик протечки и шаровый кран с электроприводом.
Можно взять заводской датчик протечки. А можно дать волю «очумелым ручкам» и «наколхозить» что-то самостоятельно. Вот, например, мой импровизированный «датчик протечки», сделанный из пары свитых между собой медных проводов. С одной стороны этого кольца с помощью наждака с проводов удалена изоляция.
Вода электропроводна и вход Меги замыкается, если подключенные к нему 2 жилы провода, противоположные концы которых погружены в воду и расположены на расстоянии ближе примерно 5 сантиметров друг от друга. Правда, знатоки говорят, что поскольку во входах Меги «гуляет» пусть и небольшое, но все же напряжение, то такие контакты при повышенной влажности неизбежно будут окисляться. Может быть так и есть, сам «в боевых условиях» не проверял. Однако для теста я возьму свою «самоделку», хотя располагаю заводским датчиком протечки. Так веселее, да и подавать питание на датчик не потребуется.
Подключение «датчика» в моем случае элементарное: 2 жилы провода - во вход P3 исполнительного модуля MegaD-7I7O-R. Режим работы порта установим «P&R». В общем это ничем не будет отличаться от подключения геркона. Для эстетики и удобства подключения воспользуемся наружной интернет-розеткой, смонтированной на стене. От розетки до места расположения датчика дотянемся «хвостом» UTP нужной длины.
Интернет-розетка и «датчик протечки» на фото никуда не подключены, и лишь иллюстрируют «направление мысли» по возможному варианту монтажа «на конечном участке траектории».
Для подключения крана воспользуемся двумя выходами исполнительного модуля MegaD-7I7O-R. В моем шаровом кране с электроприводом три провода:
- открытие (красный);
- закрытие (зеленый);
- общий (черный).
К одному (обязательно перекидному) реле подключим провода, отвечающие за направление вращения крана. Пусть это будет порт P9. С соседнего выхода (P8) будем подавать постоянное напряжение 12В на порт P9 (с помощью перемычки). Общий провод подключается к земле на блоке питания. Замеры с использованием секундомера показали, что открытие/закрытие крана происходит за 16 секунд.
А теперь определимся с логикой работы и «набросаем» интерфейс в Мажордомо.
Работать, по моим представлениям, все это должно так.
1. При срабатывании датчика Мега дает команду на закрытие крана. Причем даже в ситуации, когда сервер недоступен. Поэтому в поле «Act» порта P3 запишем действие по умолчанию:
8:1;p180;8:0
С порта P8 через перемычку будет подаваться напряжение на порт P9 в течение 18 секунд. Передержка в 2 секунды нужна, чтобы кран гарантированно завершил закрытие и не представляет опасности для моего двигателя ввиду наличия в его конструкции концевых выключателей.
В интерфейсе Мажордомо (в меню и на сцене) должна появиться информация о протечке.
2. Мы должны иметь возможность открывать и закрывать кран из интерфейса.
3. Чтобы кран исправно сработал в аварийной ситуации, знающие люди рекомендуют с целью профилактики время от времени открывать и закрывать его, чтобы он не закис от длительного бездействия. Пусть это происходит раз в неделю.
Попробуем воплотить все это в интерфейсе.
1. Для шарового крана создадим виртуальный объект, например, в классе «Relays». Пусть он называется «BallValve1». У созданного объекта уже будет свойство «status», а также методы «turnOn» и «turnOff». Запишем в методы код PHP
В «turnOn»
В «turnOff»
Для датчика протечки создадим виртуальный объект. Сделаем это в классе «keySensors» и назовем его, к примеру, «LeakSensor1». У него уже будет свойство «status» и метод «statusChanged». В метод «statusChanged» запишем
Поскольку у нас установлен режим работы порта «P&R», для «отфильтровывания» повторного запуска скрипта (с параметром m=2) необходимо, чтобы модуль умел этот параметр «отлавливать». С этой целью следует провести «модернизацию» модуля Мажордомо «MegaD» (добавить строчку $params['m']=$m; в файл megad.class.php) и перезагрузить Мажордомо. Подробнее о том, как это сделать, написано в заметке про геркон (в конце поста после подзаголовка «ДОПОЛНЕНИЕ/УТОЧНЕНИЕ» http://ab-log.ru/forum/viewtopic.php?f= ... 309#p28309).
В модуле MegaD на вкладке «Данные» в настройках порта P3 выставим связанный объект «LeakSensor1», связанное свойство «status» и метод «statusChanged». Уже после этого при срабатывании датчика Объект.Свойство «LeakSensor1.status» будет меняться с «0» на «1» и обратно. Еще я всегда ставлю галку в поле «Skip default action», поскольку считаю, что «сервер всему голова».
При протечке на сцене должна появляться информация об этом. Пусть появляется соответствующая анимированная картинка, найденная в Интернете и помещенная в какую-нибудь папку Мажордомо. Я расположил картинку по пути \cms\scenes\styles\images\.
Реализуем задуманное с помощью HTML-блока. Наш элемент на сцене должен иметь как минимум одно состояние (добавляется через поле «State Название»). Назвать состояние можно как угодно, лишь бы оно было. В поле «Код» поместим следующую html-разметку
Структура того, что содержится внутри <div…</div> была позаимствована из примера, который кто-то приводил на форуме. Это я о пользе чтения форумов.
2. Помимо автоматического закрытия в случае протечки, мы должны иметь возможность произвольно открывать и закрывать кран из интерфейса. Можно, конечно, привязать кран к стандартному выключателю и не заморачиваться. Но хотелось бы чего-нибудь поинтереснее.
Те, кто дружит с html/css/ajax/svg/javascript и пр. могут «навоять» себе любую красоту. Мы же «академиев не заканчивали» и попробуем обойтись «малыми архитектурными формами». Хочется иметь активный элемент в меню и на сцене, при нажатии на который происходило бы открытие или закрытие крана, а сам этот элемент видоизменялся бы в зависимости от актуального состояния крана. Еще не хотелось бы, находясь под душем, остаться без воды, когда чьи-то шаловливые ручки случайно эту кнопку заденут. Значит, нам потребуется запрос подтверждения действия. Таким образом, у нас получается 6 возможных состояний кнопки.
0 – кран закрыт;
1 – кран открыт;
2 – кран закрывается;
3 – кран открывается;
4 – подтверждение команды на закрытие крана;
5 – подтверждение команды на открытие крана.
Подберем в Интернете соответствующие иконки и поместим их в какую-нибудь папку Мажордомо (например, сюда \cms\scenes\styles\images\).
???(не нашел открывающегося/закрывающегося вентиля)
Вращающийся вентиль найти не удалось. Но не беда. Спасение утопающих – дело рук самих утопающих! Сделаем gif-анимацию самостоятельно. Берем картинку со статичным вентилем.
Делаем копию этой картинки в нескольких экземплярах, поворачивая изображение каждого следующего экземпляра на небольшой угол, по сравнению с предыдущим. И воспользуемся первым попавшимся бесплатным ресурсом для изготовления gif-анимации
https://ru.toolson.net/GifAnimation
Рекомендуемый разработчиком размер иконок для Мажордомо = 32х32 пикселя. Для «изготовления» вентиля, вращающегося в другом направлении нужно просто выложить подготовленные картинки на приведенный интернет-сервис в обратном порядке.
В итоге получим нужные нам анимированные картинки.
Выложу архив с использованными иконками. Теперь у объекта крана «BallValve1» создадим новый метод, в котором будет определяться поведение нашего элемента. В Мажордомо новые методы можно добавлять только к классу (а не к конкретному объекту внутри класса). Назовем метод, например, «confirmation». Запишем в метод объекта «BallValve1» (а не класса) код
Теперь разместим наш элемент в меню и на сцене. В обоих случаях используем HTML-блок.
Код для меню (ясно, что предварительно в меню надо создать какой-нибудь объект):
Код стиля css «.blink1» был раздобыт за полторы минуты в Интернете и отвечает за плавное мигание надписи рядом со вращающимся вентилем. Вы только не подумайте, что я во всем этом разбираюсь.
Кто желает увидеть, как это все выглядит «в живую», но не имеет Меги, могут просто из кода методов «turnOn» и «turnOff» удалить все, что связано с подачей команд Меге. Ну и таймер 18 секунд уменьшить хотя бы до 10 секунд, чтобы мультик двигался пошустрее. Если анимация не заработает, очистите кэш браузера или попробуйте в другом браузере.
Другими словами, в «turnOn» оставьте только
а в «turnOff» только
Почти такой же код поместим в HTML-блок на сцене (в поле «Код»). Не забудьте предварительно добавить для нашего элемента сцены какое-нибудь состояние.
Выглядеть в результате все будет вот так (правда, статичные картинки нам не предадут анимацию).
А вот и видео. Тут при первом клике на элемент на 3 секунды выскакивает запрос подтверждения действия и только при повторном клике (подтверждение) начинается открытие или закрытие. (Имитировать срабатывание датчика протечки при подготовке видео не стал.)
3. Теперь последний пункт нашей программы - профилактическое закрывание/открывание крана раз в неделю.
Дополним объект «BallValve1» методом «maintenance» со следующим кодом
Осталось запускать этот метод раз в неделю. В Мажордомо есть возможность установить модуль «Cron» и запускать задание из него. Но мы решили придерживаться минимализма. Попробуем реализовать задачу следующим образом.
Запишем в «OnNewMinute» следующий код
В результате выполнения этого кода профилактика крана будет осуществляться ночью каждую неделю по средам в «02:05». (Для воскресенья надо указывать «0».)
Ну где будем делать тестовую «лужу»? В блюдце!
Есть контакт!
Защитой от протечек лучше всего озаботиться еще на этапе прокладки коммуникаций в части электропроводки и труб системы водоснабжения. Если проложены необходимые провода, то предотвратить появление «незапланированной Венеции» в своем жилище с помощью Меги проще простого. Подключим для этого датчик протечки и шаровый кран с электроприводом.
Можно взять заводской датчик протечки. А можно дать волю «очумелым ручкам» и «наколхозить» что-то самостоятельно. Вот, например, мой импровизированный «датчик протечки», сделанный из пары свитых между собой медных проводов. С одной стороны этого кольца с помощью наждака с проводов удалена изоляция.
Вода электропроводна и вход Меги замыкается, если подключенные к нему 2 жилы провода, противоположные концы которых погружены в воду и расположены на расстоянии ближе примерно 5 сантиметров друг от друга. Правда, знатоки говорят, что поскольку во входах Меги «гуляет» пусть и небольшое, но все же напряжение, то такие контакты при повышенной влажности неизбежно будут окисляться. Может быть так и есть, сам «в боевых условиях» не проверял. Однако для теста я возьму свою «самоделку», хотя располагаю заводским датчиком протечки. Так веселее, да и подавать питание на датчик не потребуется.
Подключение «датчика» в моем случае элементарное: 2 жилы провода - во вход P3 исполнительного модуля MegaD-7I7O-R. Режим работы порта установим «P&R». В общем это ничем не будет отличаться от подключения геркона. Для эстетики и удобства подключения воспользуемся наружной интернет-розеткой, смонтированной на стене. От розетки до места расположения датчика дотянемся «хвостом» UTP нужной длины.
Интернет-розетка и «датчик протечки» на фото никуда не подключены, и лишь иллюстрируют «направление мысли» по возможному варианту монтажа «на конечном участке траектории».
Для подключения крана воспользуемся двумя выходами исполнительного модуля MegaD-7I7O-R. В моем шаровом кране с электроприводом три провода:
- открытие (красный);
- закрытие (зеленый);
- общий (черный).
К одному (обязательно перекидному) реле подключим провода, отвечающие за направление вращения крана. Пусть это будет порт P9. С соседнего выхода (P8) будем подавать постоянное напряжение 12В на порт P9 (с помощью перемычки). Общий провод подключается к земле на блоке питания. Замеры с использованием секундомера показали, что открытие/закрытие крана происходит за 16 секунд.
А теперь определимся с логикой работы и «набросаем» интерфейс в Мажордомо.
Работать, по моим представлениям, все это должно так.
1. При срабатывании датчика Мега дает команду на закрытие крана. Причем даже в ситуации, когда сервер недоступен. Поэтому в поле «Act» порта P3 запишем действие по умолчанию:
8:1;p180;8:0
С порта P8 через перемычку будет подаваться напряжение на порт P9 в течение 18 секунд. Передержка в 2 секунды нужна, чтобы кран гарантированно завершил закрытие и не представляет опасности для моего двигателя ввиду наличия в его конструкции концевых выключателей.
В интерфейсе Мажордомо (в меню и на сцене) должна появиться информация о протечке.
2. Мы должны иметь возможность открывать и закрывать кран из интерфейса.
3. Чтобы кран исправно сработал в аварийной ситуации, знающие люди рекомендуют с целью профилактики время от времени открывать и закрывать его, чтобы он не закис от длительного бездействия. Пусть это происходит раз в неделю.
Попробуем воплотить все это в интерфейсе.
1. Для шарового крана создадим виртуальный объект, например, в классе «Relays». Пусть он называется «BallValve1». У созданного объекта уже будет свойство «status», а также методы «turnOn» и «turnOff». Запишем в методы код PHP
В «turnOn»
Код: Выделить всё
//Сначала переключим реле, отвечающее за направление вращения крана
file_get_contents("http://192.168.0.14/sec/?cmd=9:1");
//Сделаем паузу 0,1 сек., давая возможность реле переключиться (с учетом сетевого трафика)
usleep(100000);
//А теперь подадим напряжение. Таким образом, искрить будет только в одном реле, а не в двух
file_get_contents("http://192.168.0.14/sec/?cmd=8:1");
//Напряжение подается на время открытия + 2 сек. для гарантированного закрытия
//Устанавливаем состояние крана 3 (открывается)
sg('BallValve1.status',3);
//Устанавливаем состояние крана 1 (открыт) через 18 сек.
setTimeOut('myTimer_BallValve1','sg("BallValve1.status",1);',18);
sleep(18);
file_get_contents("http://192.168.0.14/sec/?cmd=8:0");
file_get_contents("http://192.168.0.14/sec/?cmd=9:0");
Код: Выделить всё
file_get_contents("http://192.168.0.14/sec/?cmd=9:0");
usleep(100000);
file_get_contents("http://192.168.0.14/sec/?cmd=8:1");
//Устанавливаем состояние крана 2 (закрывается)
sg('BallValve1.status',2);
//Устанавливаем состояние крана 0 (закрыт) через 18 сек.
setTimeOut('myTimer_BallValve1','sg("BallValve1.status",0);',18);
sleep(18);
file_get_contents("http://192.168.0.14/sec/?cmd=8:0");
Код: Выделить всё
if ( $_GET['m'] == "2" ) {
return"";
} else {
$state =file_get_contents("http://192.168.0.14/sec/?pt=3&cmd=get");
$state = substr($state,0,2);
if ($state == "ON") {
cm('BallValve1.turnOff');
say('В тронном зале произошла протечка. Водоснабжение перекрыто.',5);
}
}
В модуле MegaD на вкладке «Данные» в настройках порта P3 выставим связанный объект «LeakSensor1», связанное свойство «status» и метод «statusChanged». Уже после этого при срабатывании датчика Объект.Свойство «LeakSensor1.status» будет меняться с «0» на «1» и обратно. Еще я всегда ставлю галку в поле «Skip default action», поскольку считаю, что «сервер всему голова».
При протечке на сцене должна появляться информация об этом. Пусть появляется соответствующая анимированная картинка, найденная в Интернете и помещенная в какую-нибудь папку Мажордомо. Я расположил картинку по пути \cms\scenes\styles\images\.
Реализуем задуманное с помощью HTML-блока. Наш элемент на сцене должен иметь как минимум одно состояние (добавляется через поле «State Название»). Назвать состояние можно как угодно, лишь бы оно было. В поле «Код» поместим следующую html-разметку
Код: Выделить всё
<div style='display:%LeakSensor1.status|"none;block"%'><img src="\cms\scenes\styles\images\water_leakage.gif" height="32"><font size="3" color=red>Протечка</font></div>
2. Помимо автоматического закрытия в случае протечки, мы должны иметь возможность произвольно открывать и закрывать кран из интерфейса. Можно, конечно, привязать кран к стандартному выключателю и не заморачиваться. Но хотелось бы чего-нибудь поинтереснее.
Те, кто дружит с html/css/ajax/svg/javascript и пр. могут «навоять» себе любую красоту. Мы же «академиев не заканчивали» и попробуем обойтись «малыми архитектурными формами». Хочется иметь активный элемент в меню и на сцене, при нажатии на который происходило бы открытие или закрытие крана, а сам этот элемент видоизменялся бы в зависимости от актуального состояния крана. Еще не хотелось бы, находясь под душем, остаться без воды, когда чьи-то шаловливые ручки случайно эту кнопку заденут. Значит, нам потребуется запрос подтверждения действия. Таким образом, у нас получается 6 возможных состояний кнопки.
0 – кран закрыт;
1 – кран открыт;
2 – кран закрывается;
3 – кран открывается;
4 – подтверждение команды на закрытие крана;
5 – подтверждение команды на открытие крана.
Подберем в Интернете соответствующие иконки и поместим их в какую-нибудь папку Мажордомо (например, сюда \cms\scenes\styles\images\).
???(не нашел открывающегося/закрывающегося вентиля)
Вращающийся вентиль найти не удалось. Но не беда. Спасение утопающих – дело рук самих утопающих! Сделаем gif-анимацию самостоятельно. Берем картинку со статичным вентилем.
Делаем копию этой картинки в нескольких экземплярах, поворачивая изображение каждого следующего экземпляра на небольшой угол, по сравнению с предыдущим. И воспользуемся первым попавшимся бесплатным ресурсом для изготовления gif-анимации
https://ru.toolson.net/GifAnimation
Рекомендуемый разработчиком размер иконок для Мажордомо = 32х32 пикселя. Для «изготовления» вентиля, вращающегося в другом направлении нужно просто выложить подготовленные картинки на приведенный интернет-сервис в обратном порядке.
В итоге получим нужные нам анимированные картинки.
Выложу архив с использованными иконками. Теперь у объекта крана «BallValve1» создадим новый метод, в котором будет определяться поведение нашего элемента. В Мажордомо новые методы можно добавлять только к классу (а не к конкретному объекту внутри класса). Назовем метод, например, «confirmation». Запишем в метод объекта «BallValve1» (а не класса) код
Код: Выделить всё
clearTimeOut('myTimer_BallValve1');
if (gg('BallValve1.status') == "1") {
//Устанавливаем состояние крана 4 (подтверждение закрытия)
sg('BallValve1.status',4);
//Устанавливаем состояние крана 1 (открыт)
setTimeOut('myTimer_BallValve1','sg("BallValve1.status",1);',3);
return"";
}
if (gg('BallValve1.status') == "4") {
cm('BallValve1.turnOff');
return"";
}
if (gg('BallValve1.status') == "0") {
//Устанавливаем состояние крана 5 (подтверждение открытия)
sg('BallValve1.status',5);
//Устанавливаем состояние крана 0 (закрыт)
setTimeOut('myTimer_BallValve1','sg("BallValve1.status",0);',3);
return"";
}
if (gg('BallValve1.status') == "5") {
cm('BallValve1.turnOn');
return"";
}
Код для меню (ясно, что предварительно в меню надо создать какой-нибудь объект):
Код: Выделить всё
<style type="text/css">
.blink1 {
-webkit-animation: blink1 3s linear infinite;
animation: blink1 3s linear infinite;
}
@-webkit-keyframes blink1 {
0% { color: rgba(34, 34, 34, 1); }
50% { color: rgba(34, 34, 34, 0); }
100% { color: rgba(34, 34, 34, 1); }
}
@keyframes blink1 {
0% { color: rgba(34, 34, 34, 1); }
50% { color: rgba(34, 34, 34, 0); }
100% { color: rgba(34, 34, 34, 1); }
}
</style>
<legend>Управление краном</legend>
<div style='display:%BallValve1.status|"none;none;none;none;none;block"%' onClick='callMethod("%BallValve1.confirmation");'><img src="\cms\scenes\styles\images\Animated-exclamation.gif" height="32">Открыть?</div>
<div style='display:%BallValve1.status|"none;none;none;none;block;none"%' onClick='callMethod("%BallValve1.confirmation");'><img src="\cms\scenes\styles\images\Animated-exclamation.gif" height="32">Закрыть?</div>
<div class="blink1">
<div style='display:%BallValve1.status|"none;none;block;none;none;none"%'><img src="\cms\scenes\styles\images\Ventil_Closing.gif"><strong>Закрывается</strong></div>
</div>
<div style='display:%BallValve1.status|"block;none;none;none;none;none"%' onClick='callMethod("%BallValve1.confirmation");'><img src="\cms\scenes\styles\images\kran_closed.jpg">Закрыт</div>
<div class="blink1">
<div style='display:%BallValve1.status|"none;none;none;block;none;none"%'><img src="\cms\scenes\styles\images\Ventil_Opening.gif"><strong>Открывается</strong></div>
</div>
<div style='display:%BallValve1.status|"none;block;none;none;none;none"%' onClick='callMethod("%BallValve1.confirmation");'><img src="\cms\scenes\styles\images\kran_opened.jpg">Открыт</div>
<div style='display:%LeakSensor1.status|"none;block"%'><img src="\cms\scenes\styles\images\water_leakage.gif" height="32"><font size="3" color=red>Протечка</font></div>
Кто желает увидеть, как это все выглядит «в живую», но не имеет Меги, могут просто из кода методов «turnOn» и «turnOff» удалить все, что связано с подачей команд Меге. Ну и таймер 18 секунд уменьшить хотя бы до 10 секунд, чтобы мультик двигался пошустрее. Если анимация не заработает, очистите кэш браузера или попробуйте в другом браузере.
Другими словами, в «turnOn» оставьте только
Код: Выделить всё
//Устанавливаем состояние крана 3 (открывается)
sg('BallValve1.status',3);
//Устанавливаем состояние крана 1 (открыт) через 18 сек.
setTimeOut('myTimer_BallValve1','sg("BallValve1.status",1);',18);
Код: Выделить всё
//Устанавливаем состояние крана 2 (закрывается)
sg('BallValve1.status',2);
//Устанавливаем состояние крана 0 (закрыт) через 18 сек.
setTimeOut('myTimer_BallValve1','sg("BallValve1.status",0);',18);
Код: Выделить всё
<style type="text/css">
.blink1 {
-webkit-animation: blink1 3s linear infinite;
animation: blink1 3s linear infinite;
}
@-webkit-keyframes blink1 {
0% { color: rgba(34, 34, 34, 1); }
50% { color: rgba(34, 34, 34, 0); }
100% { color: rgba(34, 34, 34, 1); }
}
@keyframes blink1 {
0% { color: rgba(34, 34, 34, 1); }
50% { color: rgba(34, 34, 34, 0); }
100% { color: rgba(34, 34, 34, 1); }
}
</style>
<div style='display:%BallValve1.status|"none;none;none;none;none;block"%' onClick='callMethod("%BallValve1.confirmation");'><img src="\cms\scenes\styles\images\Animated-exclamation.gif"><font size="3" color="##FF0000">Открыть?</font></div>
<div style='display:%BallValve1.status|"none;none;none;none;block;none"%' onClick='callMethod("%BallValve1.confirmation");'><img src="\cms\scenes\styles\images\Animated-exclamation.gif"><font size="3" color="##FF0000">Закрыть?</font></div>
<div class="blink1">
<div style='display:%BallValve1.status|"none;none;block;none;none;none"%'><img src="\cms\scenes\styles\images\Ventil_Closing.gif"><font size="4"><strong>Закрывается</strong></font></div>
</div>
<div style='display:%BallValve1.status|"block;none;none;none;none;none"%' onClick='callMethod("%BallValve1.confirmation");'><img src="\cms\scenes\styles\images\kran_closed.jpg"><font size="3" color="##000000">Закрыт</font></div>
<div class="blink1">
<div style='display:%BallValve1.status|"none;none;none;block;none;none"%'><img src="\cms\scenes\styles\images\Ventil_Opening.gif"><font size="4"><strong>Открывается</strong></font></div>
</div>
<div style='display:%BallValve1.status|"none;block;none;none;none;none"%' onClick='callMethod("%BallValve1.confirmation");'><img src="\cms\scenes\styles\images\kran_opened.jpg"><font size="3" color="##000000">Открыт</font></div>
А вот и видео. Тут при первом клике на элемент на 3 секунды выскакивает запрос подтверждения действия и только при повторном клике (подтверждение) начинается открытие или закрытие. (Имитировать срабатывание датчика протечки при подготовке видео не стал.)
3. Теперь последний пункт нашей программы - профилактическое закрывание/открывание крана раз в неделю.
Дополним объект «BallValve1» методом «maintenance» со следующим кодом
Код: Выделить всё
//Если кран закрыт, то профилактическое закрывание/открывание производить не будем
if (gg('BallValve1.status') == 0) {
return"";
} else {
cm('BallValve1.turnOff');
say('Выполняется профилактика крана',1);
//Дадим крану перед открытием 10 секунд "отдохнуть"
setTimeOut('myTimer_ BallValve1_Mts','cm("BallValve1.turnOn");',10);
sleep(30);
say('Профилактика крана выполнена',1);
}
Запишем в «OnNewMinute» следующий код
Код: Выделить всё
$day_num=(int)date('w');
if ($day_num == "3") {
if (timeIs('02:05')) cm('BallValve1.maintenance');}
Ну где будем делать тестовую «лужу»? В блюдце!
Есть контакт!
Последний раз редактировалось Ruslan 08 дек 2019, 19:35, всего редактировалось 2 раза.
Re: Очень интересно, но ничего непонятно!
Добрый день. Провода обязательно окислятся. Как будет себя вести такой датчик через месяц? Через год?Ruslan писал(а):Нет протечкам! Подключим ДАТЧИК ПРОТЕЧКИ и шаровый кран с электроприводом
...
Можно взять заводской датчик протечки. А можно дать волю «очумелым ручкам» и «наколхозить» что-то самостоятельно
...
Есть контакт!
Моё мнение, не нужно на датчиках экономить, может выйти дороже.
Re: Очень интересно, но ничего непонятно!
nihil777, соглашусь с вами. Действительно, контроль протечек - слишком ответственная система, чтобы полагаться на самоделки.
Так что, уважаемые читатели, "в боевых условиях" ставьте заводские решения (герметичный корпус, размыкание сигнальной цепи при срабатывании, эстетичный внешний вид и отдельное питание). Все это может быть и сработает 1-2 раза в жизни, зато убережет от серьезных неприятностей Поэтому должно быть максимально надежным.
Я же в своей заметке в большей степени хотел показать принципы работы. Надеюсь, что получилось.
Так что, уважаемые читатели, "в боевых условиях" ставьте заводские решения (герметичный корпус, размыкание сигнальной цепи при срабатывании, эстетичный внешний вид и отдельное питание). Все это может быть и сработает 1-2 раза в жизни, зато убережет от серьезных неприятностей Поэтому должно быть максимально надежным.
Я же в своей заметке в большей степени хотел показать принципы работы. Надеюсь, что получилось.
Re: Очень интересно, но ничего непонятно!
Это у вас кран Bugatti Pro 12В? У меня такие же, но пока на этапе монтажа всего - даже не подключены. Чтобы их закрыть - вы на какое-то время (16 секунд) подаете напряжение на соответствующий провод? А если подавать не 16 секунд, а минуту например что случится?Ruslan писал(а):Нет протечкам! Подключим ДАТЧИК ПРОТЕЧКИ и шаровый кран с электроприводом
Re: Очень интересно, но ничего непонятно!
Да, кран именно такой. Я подаю напряжение на 18 секунд (16 + 2 секунды для надежности). Если подать на минуту и даже более, думаю, совершенно ничего плохого не случится, поскольку кран оснащен концевыми выключателями, т.е. при достижении крайних положений силовая цепь разрывается (ну, по крайней мере, должна; не проверял). Было дело при тестах, подавал напряжение на 30-40 секунд - ничего страшного не произошло.
Re: Очень интересно, но ничего непонятно!
А бывают ли герконы скрытной установки в двери/окна?
Re: Очень интересно, но ничего непонятно!
Конечно бывают. Например:Genix писал(а):А бывают ли герконы скрытной установки в двери/окна?
http://www.aktivsb.ru/prod-8913.html
https://powercoup.by/kak-eto-ustroeno/g ... tchik.html (в конце статьи)
http://www.sbsar.ru/sig-smk-io-102-15.htm
Единственная сложность с герконами, с которой я лично столкнулся, состояла в том, что некоторые модели могут "залипать". Стукнешь по ним пальцем - разомкнутся. Такие герконы оказываются фактически негодными для установки. А определить заранее, как поведет себя та или иная модель, наверное, невозможно, во всяком случае, я не знаю как. Из 4-х моделей герконов, которые побывали в моих руках, 2 две модели стабильно "залипали" (через раз), а у остальных моделей "залипаний" не было ни разу. Разумеется, все герконы подключались ко входам Меги.
Re: Очень интересно, но ничего непонятно!
А вот еще с али: 10pcs /lot circular Window or Door Contact Wired Magnetic Reed Switch Door Open Alarm system /closed NC Relay Output Ma http://s.aliexpress.com/Er67FvEb. Конкретно эти с мегой протестировалGenix писал(а):А бывают ли герконы скрытной установки в двери/окна?
Re: RE: Re: Очень интересно, но ничего непонятно!
Спасибо за ссылку, похоже то что надо. В окна пластиковые сложно монтировать? Стеклопакеты приходится вынимать?empenoso писал(а):А вот еще с али: 10pcs /lot circular Window or Door Contact Wired Magnetic Reed Switch Door Open Alarm system /closed NC Relay Output Ma http://s.aliexpress.com/Er67FvEb. Конкретно эти с мегой протестировалGenix писал(а):А бывают ли герконы скрытной установки в двери/окна?
Re: Очень интересно, но ничего непонятно!
Сам пока на пластиковые окна не монтировал. Но особых трудностей не предвижу, поскольку планирую использовать "накладные" (вот такие http://www.aktivsb.ru/prod-37.html). Все крепится на мелкие саморезы (или клей) и стеклопакет при этом снимать не нужно.
Слышал, что "оконщики" могут изготовить окна сразу со встроенными герконами (кого беспокоит особая эстетика и внешний вид, наверное, наилучший вариант). Но на практике вопрос не изучал.
Слышал, что "оконщики" могут изготовить окна сразу со встроенными герконами (кого беспокоит особая эстетика и внешний вид, наверное, наилучший вариант). Но на практике вопрос не изучал.
Re: Очень интересно, но ничего непонятно!
С накладными как раз все понятно, вопросов не вызывает. Хочу смонтировать скрытно на стадии ремонта либо думаю не заморачиваться вообщеRuslan писал(а):Сам пока на пластиковые окна не монтировал. Но особых трудностей не предвижу, поскольку планирую использовать "накладные" (вот такие http://www.aktivsb.ru/prod-37.html). Все крепится на мелкие саморезы (или клей) и стеклопакет при этом снимать не нужно.
Слышал, что "оконщики" могут изготовить окна сразу со встроенными герконами (кого беспокоит особая эстетика и внешний вид, наверное, наилучший вариант). Но на практике вопрос не изучал.
Какую роль в охране/автоматизации играют открытые окна?
Re: Очень интересно, но ничего непонятно!
Роль в охране очевидная: через открытые окна могут пробраться "на объект" нежелательные элементы. Кроме того, перед тем, как поставить "объект" на охрану, необходимо убедиться, что все окна закрыты (это, вроде бы даже в договоре на охрану оговаривалось). Многие охранные системы чисто технически не позволят взять объект под охрану, если хотя бы один из герконов не замкнут.Genix писал(а):Какую роль в охране/автоматизации играют открытые окна?
Вот реальный случай из жизни знакомых (речь пройдет о двери, но смысл тот же). Балконная дверь второго выхода из дома была просто плотно прикрыта (геркон замкнут), но не заперта. Все "взялось под охрану" и постояльцы со спокойной душой отправились по своим делам. Вдруг поступает звонок от охраны: "у вас проникновение, гипс снимают, клиент уезжает...". Бросают все, возвращаются домой, там автоматчики с констатацией отсутствия следов взлома, проникновения и факта ложного вызова. Ситуация неприятная, но показывающая, что инструкции пишутся не просто так. В отсутствие хозяев поднялся сильный ветер. Дверь открылась, зашевелилась занавеска, сработал датчик движения и пошел сигнал на охрану.
В частном доме запросто может быть несколько этажей и несколько десятков окон. Перед тем как ставить дом на охрану, удобно, не подходя к охранному пульту знать, где и какие окна открыты. Даже если дом не оборудован охранной системой, перед уходом неплохо было бы сориентироваться, что и где не закрыто. Сильные морозы зимой и интенсивные косые ливни летом еще никто не отменял. В квартире многоэтажки, особенно если она не на 1-м этаже, необходимость герконов на окнах, конечно же, меньше. Тем не менее тоже бывает полезно понимать, почему зимой по какой-то комнате график температуры резко пошел вниз.
Re: Очень интересно, но ничего непонятно!
Казалось бы, именно риск проникновения через окна решается датчиком движения? Тем более, что ничего не мешает разбить стекло и проникнуть сквозь закрытую плотно раму и замкнутый геркон. С дверями уже не все так просто. Да и геркон на дверях может (будет) использоваться для автоматического включения света в зонах тамбура/улице в момент, когда охрана дома декативирована.
Re: Очень интересно, но ничего непонятно!
Можно, конечно, для целей охраны попробовать обойтись только датчиком движения. Единственное, нужно учесть геометрию помещения, т.к. в помещениях со сложной планировкой, когда окна могут выходить сразу на 3 (или даже 4 стороны) может потребоваться сразу несколько датчиков движения.Genix писал(а):Казалось бы, именно риск проникновения через окна решается датчиком движения? Тем более, что ничего не мешает разбить стекло и проникнуть сквозь закрытую плотно раму и замкнутый геркон.
А для контроля целостности стекол есть датчик разбития стекла.
Да, вполне можно использовать, только совместно с датчиком движения, иначе не будет понятно, вошел человек в помещение (и свет надо включить) или вышел (и надо выключить).Genix писал(а):С дверями уже не все так просто. Да и геркон на дверях может (будет) использоваться для автоматического включения света в зонах тамбура/улице в момент, когда охрана дома декативирована.
PS. Если в доме есть животные и есть намерение отказаться от использования герконов в охранных целях, а ограничится только датчиками движения, то надо ставить такие датчики движения, которые на животных не срабатывают (такие в природе существуют).
Re: Очень интересно, но ничего непонятно!
По первому - смотрите фото. Под ИО-102-5 надо по моему сверло 9,0мм. Сквозное отверстие в профиле сделано сверлом меньшим диаметром (почти впритык под UTP 2 pair). Начинать нужно с разметки установки магнита в створке окна, затем уже размечать отверстие в профиле. В самом профиле достаточно места для укладки провода.Genix писал(а):С накладными как раз все понятно, вопросов не вызывает. Хочу смонтировать скрытно на стадии ремонта либо думаю не заморачиваться вообще
Какую роль в охране/автоматизации играют открытые окна?
По второму - вам уже ответили. У меня заложено алгоритмом что если хотя бы одно окно/дверь не закрыты, то выдаем сообщение о нем и на охрану не берем.
Re: Очень интересно, но ничего непонятно!
А на разъем P30 при такой схеме разве не 12в приходить будет?pdmitry2 писал(а):Только что подключил, пока минут 15 работает чётко. У меня MegaD-2561. Подключал к разъему XT2, P30. Плюс питания взял от блока питания меги (+ 12V), землю блока питания, соединил с разъёмом GND на гребёнке XT2 и с разъёмом GND HC-SR501. Разъём "данные" датчика, подключил к разъёму P30 Меги. В настройках порта выставил IN, Mode поставил P&R. Если Mode поставить R, то ничего не работает - в статусе всегда висела единица. А с P&R, статус меняется, единственная разница - при движении статус у нас 0, а при отсутствии движения, получаем единицу, то есть в MDM, обрабатываем 0, а не 1. Всем спасибо за помощь!
Re: Очень интересно, но ничего непонятно!
Имею несколько различных типов датчиков движения:
Working voltage: DC 4.5-20V
Static current: <55uA Trigger mode: Repeated triggering
BLockade time: 2.5S
PCB size: 10 * 23mm
Detective angle: <100° Working temperature: -20---+80℃
И вот такой: http://s.aliexpress.com/uYfUB3aIHC-SR501
1.Working voltage: DC5V to 20V
2. Static consumption: 65 microamps
3. level output: 3.3V high, low 0V
4.Time delay: Adjustable (0.3 seconds to 18 seconds)
5.Blockade of the time: 0.2 seconds
6.Trigger: L can not be duplicated, H can be repeated, the default value of H
7.Sensing range: less than 120 degrees cone angle less than 7 m
8.Working temperature: -15 to +70 degrees
9.PCB Dimensions: 32 * 24mm ,screw pitch 28mm ,screw aperture 2mm, sensor lens Dimensions: (diameter): 23mm (default)
И испытываю проблемы с подключением их ко входу меги.Размеры: 52*65 мм
Тип коммутатора: инфракрасный датчик
Рабочее напряжение Тип: DC12V
Окружающий свет: 3-2000Lux (регулируется)
Номинальная нагрузка: 200 Вт mx. Лампы накаливания; 80 Вт Макс. Флуоресцентный
Угол обнаружения: 140 °
Дальность обнаружения: 5-8 м
Рабочая температура:-10-26 & #8451;
Установка Высота: 2.5 м-3.5 м
Обнаружение Motion скорость: 0.6 ~ 1.5 м/с
Провода соединения: биполярное
Время задержки регулировки: 30-350 s ± 30% (adjuastable)
Установка метод: встроенная
-
- Администратор
- Сообщения: 2196
- Зарегистрирован: 29 май 2015, 21:23
- Откуда: Екатеринбург, Нижний Тагил
Re: Очень интересно, но ничего непонятно!
to empenoso:
1) Про входы, в том числе про датчики SR501: https://ab-log.ru/forum/viewtopic.php?f ... R501#p7074
2) У меня используется с Мегой один такой, я добавил мелкий полевой транзистор 2N7000 (затвором на выход датчика, и резистор 10к с затвора на землю, чтобы он закрывался). Исток транзистора на вход Меги, сток на землю. Всё ОК уже два года.
1) Про входы, в том числе про датчики SR501: https://ab-log.ru/forum/viewtopic.php?f ... R501#p7074
2) У меня используется с Мегой один такой, я добавил мелкий полевой транзистор 2N7000 (затвором на выход датчика, и резистор 10к с затвора на землю, чтобы он закрывался). Исток транзистора на вход Меги, сток на землю. Всё ОК уже два года.