Управление выключателем (кнопкой)
-
у меня добавление к предложению 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:
сценарии РАБОТАЮТ!
Лампы выключаются через заданные интервалы, причем не зависимо как включать через физическую кнопку или мышкой на экране…
-
Как у вас проявляется дребезг? В логах не видим.
-
@intrahouse:
Как у вас проявляется дребезг? В логах не видим.
Проявляется - лампочки не понятно как срабатывают по крайней мере не так и не всегда как задумано, одно, двойное , длинное нажатие….
-
Попробуйте убрать все сценарии по событию для LAMP1 и LAMP2 и повторить эксперимент
-
Пробовал… То же самое...
-
Завтра проверим на работе
-
Хорошо, только кнопку подключите напрямую к raspberry
-
Проверили. На разных кнопках. И нашли кнопку где дребезг есть. Собственно это не кнопка, просто замыкал два проводочка.
А раз есть, надо его убирать.
Сделаем обработку дребезга на уровне плагина.
О результате сообщу.
-
-
заменил кнопку, на другую, работать стало гораздо лучше
логика работы не много не устраивает!
двойное нажатие зажигает сразу LAMP2, а вот одиночное нажатие - LAMP1 зажигается с задержкой ~2сек! не удобно…
хотел поиграть с настройкой таймеров - fm_butpress.pat
"timers":[ {"name":"T1","interval":"1", "call":"ontimer1"}, {"name":"T2","interval":"1", "call":"stop"}
изменил на "1" на "0.1", но сохранить изменения не могу - Permission Denied
подскажите, пожалуйста, как изменить и таймер и сохранить?
я хочу поэкспериментировать с задержками…
-
не дождался ответа, пришлось самому разбираться :ugeek:
сделал так, вместо 1 поставил 0.05
"timers":[ {"name":"T1","interval":"0.05", "call":"ontimer1"}, {"name":"T2","interval":"0.05", "call":"stop"}
стало быстрее реагировать!
-
@intrahouse:
Сделаем обработку дребезга на уровне плагина.
О результате сообщу.
Сделали обработку дребезга контактов. Можно обновиться и протестировать.
-
@intrahouse:
Сделали обработку дребезга контактов. Можно обновиться и протестировать.
Потестил, работает стабильно, спасибо!
Работает и как просто кнопка (без Поведения), так и с Поведением (Нажатие Короткое, длинное, двойное) правда для уменьшения задержки при включении LAMP1 изменил значения обоих Таймеров T1 и T2 с 1 на 0.1
"timers":[ {"name":"T1","interval":"0.1", "call":"ontimer1"}, {"name":"T2","interval":"0.1", "call":"stop"} ]
-
@MikrotikEr:
А вот как здесь можно сделать,принцип вроде тот же нажал один раз включилось, нажал второй раз-выключилось?
Можно сделать двумя событийными сценариями.
Первый: при сработке включает светильник если он выключен
Второй: при сработке выключает светильник если он включен