Управление выключателем (кнопкой)
-
В ваших вариантах получается, что кнопка не подключена к УД и соответственно не может давать ему команды, а УД считывает состояние лампы, что для простого вкл/выкл лампы одно и тоже… Но ограничивает функционал управления , о чём я писал выше...
Ок надо ещё "покурить" эту тему
А скажите пожалуйста как у вас реализовано диммирование лампами, Электрическая часть ?
-
В ваших вариантах получается, что кнопка не подключена к УД и соответственно не может давать ему команды, а УД считывает состояние лампы, что для простого вкл/выкл лампы одно и тоже… Но ограничивает функционал управления , о чём я писал выше...
Ок надо ещё "покурить" эту тему
Надо исходить из задачи. Требуется управление светом независимо от системы Умный дом.
В этом решении мы можем управлять светом просто с выключателя. При этом система знает о состоянии светильника
Конечно в этом решении кнопочный выключатель не обрабатывается системой. Но невозможно сделать автономное управление светом и одновременно навесить дополнительный функционал на кнопку. Хотя, конечно можно что-то накрутить, но не думаю что это будет простым решением. Проще поставить дополнительный 2-4 клавишный выключатель, завести его на входы и обрабатывать различные нажатия. Обычно мы так и делаем. И называется он у нас "Сценарный выключатель". Это потому, что на кнопки этого выключателя можно навесить любые сценарии. Хоть свет, хоть климат, хоть ворота. Что угодно
@chas99:А скажите пожалуйста как у вас реализовано диммирование лампами, Электрическая часть ?
Через Raspberry вероятно только ШИМ для светодиодных светильников. Мы не пробовали. Диммирование делали в проектах с использованием контроллеров. Там варианты Dali, 0-10V
Но мое личное мнение. Спорное но основаное на некотором опыте работы с заказчиками.
Диммеры не нужны Первое время поиграться. Потом уже не интересно.
Лучше сделать несколько групп света.
-
@intrahouse:
Диммеры не нужны Первое время поиграться. Потом уже не интересно.
Лучше сделать несколько групп света.
Считаю также. Однако с развитием технологий интересной изюминкой в освещении являются RGB люстры - это как Ambilight, который прежде был только у ТВ Philips. Утром проснулись включили один свет, вечером другой - по настроению. Может быть и игрушка, но можно автоматизировать - хоть в качестве цветомузыки использовать:). А с помощью RGB-лент, правильно смонтированных в оконных проемах, можно удлинять световой день (читал исследование - для мужчин очень благотворно влияет)!
-
смотрите что у меня получается (в голове) -
1. есть кнопка/выключатель мы её подключаем к GPIO17 через PC817 (для гальванической развязки)… пока логично
2. есть силовые контакты реле управляющие лампой, параллельно им мы подключаем НР контакты импульсного реле (ИР, возьмем на 12в). тут вроде тоже всё логично
3. теперь управление ИР, мы переключателем типа П2К ( УД / Ручное) отключаем от +12в и оно не работает и нам ни как на работу не влияет!
4. остается решить как управлять ИР от кнопки/выключателя... самый простой вариант (на мой взгляд) контакт кнопки через переключатель подключать или к GPIO17 или к управлению ИР.
Раньше часто использовались переключатели П2К (сейчас может уже есть что поновее), но смысл в том, что два фиксируемых положения и достаточное кол-во коммутируемых пар контактов.
В итого получается в одном положении УД (12в отключено от ИР + кнопка подключена к Raspberry), работает УД со всеми прелестями , в другом положении Ручное (12В подключено к ИР, кнопка подключена к управлению ИР
понятно, что я насочинял? или нужно схему нарисовать ?
как вам такой вариант?
-
Дома делая ремонт (давно) понаставил кучу светильников и 6 штук подключил через кнопки-диммеры (Legrand), так вот в спальне у прикроватных бра, диммерами очень часто пользуюсь, почитать с небольшой подсветкой
в зале после замены ламп накаливания на светодиодные, диммерами перестал пользоваться так СД моргают
Купил на пробу одну СД-лампу умеющую работать с диммером, (правда она дорогая по сравнению с обычными СД ~500р) работает…
Когда в комнате одна люстра и больше нет светильников, то диммирование этой люстры востребовано...
Но согласен - что зонирование света и управление через группы - прекрасный вариант
-
понятно, что я насочинял? или нужно схему нарисовать ?
Лучше схема. А вообще на форуме ab-log приводили также рабочие схемы.
П2К - очень не технологичное подключение… мне кажется если есть такие новые кнопки с фиксацией, то к ним все равно надо делать какой-то переходник на клеммники и чтобы это все вставало на DIN-рейку желательно. Представляете весь клубок проводов, который будет приходить на одну кнопку с несколькими группами? По мне - для того же света идеально использовать MegaD - упал сервер УД, контроллер MegaD работает самостоятельно. Сгорел контроллер - отсоединил питание, шлейф, поменял на новый, локально залил на него конфиг (делов на 10 минут). Это проще и намного дешевле чем покупать кучу импульсных реле!
-
По мне - для того же света идеально использовать MegaD - упал сервер УД, контроллер MegaD работает самостоятельно. Сгорел контроллер - отсоединил питание, шлейф, поменял на новый, локально залил на него конфиг (делов на 10 минут). Это проще и намного дешевле чем покупать кучу импульсных реле!
дайте пожалуйста, ссылочку про MegaD почитать (для управления светом) он работает в связке с iH ?
-
дайте пожалуйста, ссылочку про MegaD почитать (для управления светом) он работает в связке с iH ?
ab-log.ru - один из самых лучших сайтов по УД. Там цикл статей про автоматизацию частного дома. Да, с некоторых пор работает.
-
@intrahouse:
v17.01.15.01 - Добавлен шаблон сценария для обработки короткого, длинного и двойного нажатия кнопок
Подскажите пожалуйста, как этим воспользоваться?
-
уважаемые разработчики iH, Хотелось бы иметь механизм создания подобных сценариев
Сделать можно, написав немного скриптов
..
Но, используя механизм сценариев, сделать можно все что угодно:
1. Для бинарного датчика реализуем поведение "Кнопка" с помощью шаблонного сценария, который создаст свойство pressed и будет присваивать значения:
1 - при коротком нажатии, 2 - при двойном нажатии, 3 - при длинном нажатии
..
Такой сценарий мы сделали и включили в обновление.
Он будет появляться при нажатии на кнопку "Поведение" для "Дискретного универсального датчика" (тип=100).
Времена сейчас такие: до 1 сек - короткое нажатие, интервал между кликами для двойного - тоже 1 сек.
При желании можно в файле поменять времена, поэкспериментировать… Файл /opt/intrahouse/server/scenpat/fm_butpress.pat
Можно создать свой шаблон и сохранить под другим именем (кроме имени файла, обязательно поменять и patname), иначе он перезапишется при обновлении.
я правильно понимаю, что такой скрипт уже есть в iH ? вот он…
2. Теперь хотелось бы выполнять разные действия при разных нажатиях, например:
Будем LAMP1 переключать при коротком нажатии, LAMP2 - при двойном, а при длинном мы оба светильника выключим. Все свои действия запишем в журнал.
Для этого напишем сценарий, который работает по событию BUTTON1.pressed
> { > "scenname": "mybut1", > "note": "Сценарии кнопки BUTTON 1", > > "start": { > "event": "BUTTON1", > "if": "(BUTTON1.pressed > 0)" > }, > > "functions": { > "start": [ > { "if": "BUTTON1.pressed == 1", > "exec": { "do": "LAMP1.toggle", "wri": "Короткое нажатие, переключить LAMP1"} }, > { "if": "BUTTON1.pressed == 2", > "exec": { "do": "LAMP2.toggle", "wri": "Двойное нажатие, переключить LAMP2"} }, > { "if": "BUTTON1.pressed == 3", > "exec": { "do": "LAMP1.off,LAMP2.off", "wri": "Длинное нажатие, выключить LAMP1 и LAMP2" } }, > {"exec": {"do": "BUTTON1.pressed:0" } } > ] > } > } > >
Действия устройств: on - включить, off - выключить, toggle - переключить.
Это уже не шаблонный сценарий, который можно применять к различным устройствам, а обычный базовый сценарий, в нем используются имена устройств конкретного проекта, хранятся такие сценарии в папке /opt/intrahouse/base/scenbase.
Если сценарий лежит в папке scenbase, он загружается при старте системы и будет выполняться без всяких привязок.
Файл можно загрузить и просмотреть через интерфейс: PM->Сценарии/ Скрипты/ Скрипты проекта, но редактировать пока нельзя. В ближайшем времени будет добавлен новый формат для сценариев с использованием синтаксиса JavaScript, но пока это голый JSON и в принципе легко ошибиться, не поставив кавычки или запятую.
При интерактивной загрузке выполняется проверка на валидность JSON формата, не валидный файл не загружается.
Проверить синтаксис JSON можно разными способами, в т.ч. online
Я скопировал ваш код в файл test.json и загрузил его в iH, и он в системе
правильно я сделал?но у меня не заработало! я предполагаю, что в сценарии BUTTON1.pressed используется BUTTON1, а у меня в устройствах нет такого ID
а у меня кнопка SENSOR1
Скажите пожалуйста, что я делаю не правильно?
-
но у меня не заработало! я предполагаю, что в сценарии BUTTON1.pressed используется BUTTON1, а у меня в устройствах нет такого ID а у меня кнопка SENSOR1
В своих предположениях Вы абсолютно правы, в сценарии проекта нужно использовать имена устройств конкретного проекта.
Сейчас есть два решения:
1. Отредактировать файл test.json, заменив BUTTON1 на SENSOR1, после этого перезагрузить сервер (сценарии проекта сейчас загружаются на старте сервера).
2. Создать новое устройство, назвать его BUTTON1, т.к. изменить ID устройства можно только при его создании, и привязать шаблонный сценарий "Нажатие кнопки" к нему.
P.S. Идея " ЧАВО (FAQ) для новичка" очень правильная и своевременная, постараемся в ближайшем времени начать публикацию.
-
но у меня не заработало! я предполагаю, что в сценарии BUTTON1.pressed используется BUTTON1, а у меня в устройствах нет такого ID а у меня кнопка SENSOR1
Уважаемый chass99, извините за задержку с ответом
В своих предположениях Вы абсолютно правы, в сценарии проекта нужно использовать имена устройств конкретного проекта.
Сейчас есть два решения:
1. Отредактировать файл test.json, заменив BUTTON1 на SENSOR1, после этого перезагрузить сервер (сценарии проекта сейчас загружаются на старте сервера).
2. Создать новое устройство, назвать его BUTTON1, т.к. изменить ID устройства можно только при его создании, и привязать шаблонный сценарий "Нажатие кнопки" к нему.
P.S. Идея " ЧАВО (FAQ) для новичка" очень правильная и своевременная, постараемся в ближайшем времени начать публикацию.
Ок, спасибо! Заменю, а что дальше ?
Хватит этих двух скриптов/сценариев? По идее нужно ведь ещё привязать ЛАМПЫ к этой кнопке, создав сценарий (PM - сценарии - по событиям устройств), так? А как настроить обработку двойного нажатия и длинного?
-
Хватит этих двух скриптов/сценариев? По идее нужно ведь ещё привязать ЛАМПЫ к этой кнопке, создав сценарий (PM - сценарии - по событиям устройств), так? А как настроить обработку двойного нажатия и длинного?
Обычно сценарий можно создать двумя способами - через интерфейс (PM - сценарии - по событиям устройств) или написать скрипт в виде файла.
Через интерфейс можно только обработать стандартное событие (нажато-отжато), а мы хотим нестандартное
Именно поэтому мы написали скрипт, который вы сохранили как test.json и загрузили в систему.
То есть сценарий по событию создавать НЕ НАДО, вместо него управлять лампами будет скрипт. Посмотрим, как его поменять для себя.
Скрипт стартует, когда шаблонный сценарий "Нажатие кнопки" определил, как именно нажата кнопка и установил свойство BUTTON1.pressed
"start": { "event": "BUTTON1", "if": "(BUTTON1.pressed > 0)" },
Здесь ничего менять не надо.
Дальше будут выполняться действия.
Здесь и нужно прописать то, что вы хотите получить при разных нажатиях BUTTON1.pressed (1-короткое, 2-двойное, 3-длинное).
{ "if": "BUTTON1.pressed == 1", "exec": { "do": "LAMP1.toggle", "wri": "Короткое нажатие, переключить LAMP1"} },
Для отладки делается запись в журнал ("wri") - это должно работать, если оба сценария подключены. Посмотрите, есть ли записи в журнале при нажатиях. Потом можно будет это убрать.
"do": - определяет, что нужно включить.
Сейчас по короткому нажатию переключается LAMP1, по двойному нажатию переключается LAMP2, по длинному обе выключаются.
Если у вас в проекте есть LAMP1 и LAMP2 - это должно работать.
Файл скрипта можно отредактировать любым текстовым редактором, который не добавляет разметку, например, "Блокнот" в Windows и заново загрузить.
Замените строки внутри do на свои команды, например
"do": "RELE1.on" - включить
"do": "VENT3.off" - выключить
"do": "LAMP8.toggle" - переключить
Если нужно выполнить несколько действий, они перечисляются через запятую
"do": "LAMP1.off,LAMP2.on"
Помните, что после редактирования файла сценария требуется перезагрузка сервера intrahouse (кнопка Перезагрузить в PM - Система - Параметры запуска сервера).
Или из консоли:
sudo service intrahouse stop sudo service intrahouse start
-
у меня добавление к предложению http://intrahouse.eu/forum/viewtopic.php?f=7&t=43
давайте ВМЕСТЕ делать " ЧАВО (FAQ) для новичка" или HOW-TO, с примерами решения конкретных ситуаций, чтобы любой желающий/начинающий разбираться с iH мог воспользоваться подготовленными решениями!!!
давайте, дорешаем с этой темой, а решение там опубликуете 8-)
Чтобы любой мог начать знакомство с iH подключив пару СветоДиодов и пару кнопок к Raspberry и настроить управление их взаимодействие, попробовав разные сценарии… :idea:
Спасибо! Предложение принимается
-
2. Создать новое устройство, назвать его BUTTON1, т.к. изменить ID устройства можно только при его создании, и привязать шаблонный сценарий "Нажатие кнопки" к нему.
выбрал вариант 2. предложенный вами
создал по новой -
1.добавил устройство "Датчик бинарный - Датчик универсальный два состояния" с ID BUTTON1
2.[Поведение] добавил Шаблон сценария - "Нажатия кнопки (Короткое, длинное, двойное)"
3.[Железо] привязал к GPIO21, Тип канала "Дискретный вход с подтяжкой pull_up", Инвертировать значение - вкл
в результате - Ура, заработали и кнопка и лампочки!!! :!:
но вылез проклятый "дребезг контактов" Подскажите, пожалуйста, как с ним бороться?
для примера "длинное нажатие" нажал на кнопку и отпустил через пару секунд, а вот что записалось в журнале…
Причем если посмотреть Отладчик - Устройства - Монитор BUTTON1 - то там отображается 0, а при нажатии 1, и нет мерцания "дребезга контактов"…
-
Обычно сценарий можно создать двумя способами - через интерфейс (PM - сценарии - по событиям устройств) или написать скрипт в виде файла.
Через интерфейс можно только обработать стандартное событие (нажато-отжато), а мы хотим нестандартное
Именно поэтому мы написали скрипт, который вы сохранили как test.json и загрузили в систему.
То есть сценарий по событию создавать НЕ НАДО, вместо него управлять лампами будет скрипт. Посмотрим, как его поменять для себя.
….
СПАСИБО за развернутый ответ!
оказывается всё довольно легко и просто (когда понимаешь)
-
Надеюсь поможет эта информация в борьбе с "дребезгом контактов"
Вот логи через Отладчик - Scene Server - Загрузка, старт/стоп сценариев
Это одиночное нажатие кнопки
Это двойное
Это длинное
-
У вас еще работают сценарии по событиям LAMP1 и LAMP2. Что они делают?
-
да, сделал на пробу два сценария, чтобы автоматом выключались лампы, LAMP1 через минуту после включения, LAMP2 через 10сек :oops:
сценарии РАБОТАЮТ!
Лампы выключаются через заданные интервалы, причем не зависимо как включать через физическую кнопку или мышкой на экране…
-
Как у вас проявляется дребезг? В логах не видим.