Приветствую вас! Вот всё рассчитываю в каждой последующей статье рассказать о том какой я классный интерфейс замутил. Так нет же. Нифига я не замутил ещё. Всё очень примитивно и не рационально. Стыдно показать. Но сейчас не об этом.Я закончил отдельный блок как конечное устройство которое умеет следующее:
- Перекрывать электроклапан водоснабжения
- Получать сигнал с датчика протечки. О датчике я расскажу в следующей статье. Очень интересное решение.
- Управлять освещением на улице. Когда я подъезжаю к дому свет включается не по геолокации.
- Принимаю показания счётчика воды.
- Измеряю температуру.
- в резерве остаётся ещё одно реле и один входной GPIO.
И так давайте по порядку. для начала фото готового устройства которое расположено непосредственно вблизи всех датчиков и исполнительных устройств.
Электроклапан для водоснабжения.
Я сделаю ударение на программную часть так как аппаратная идентична с предыдущими статьями. Кстати в процессе появления новый устройств в системе я довольно неплохо модернизирую прошлые схемы. В этом варианте добавился новый стабилизатор напряжения и место на плате для JDY-40. Логика работы клапана следующая. Как только датчик протечки регистрирует воду электроклапан закрывается, раздаётся один раз сигнал тревоги голосом системы, так же появляется сообщение в телеграмме и сигнал тревоги на главной сцене. Датчик протечки собран с использования модуля JDY-40. Для этого модуль достаточно запрограммировать в режим передатчика “C1” и вместо кнопки нужно подключить два электрода. Фото датчика протечки и его подробную схемотехнику я опишу в очередной статье. Сигнал с датчика поступает на приёмный модуль а далее на вход GPIO ESP12-E.
То есть всё настраиваем по аналогии как я описал в этой статье но только с некоторыми изменениями. Всё равно я подробно сейчас расскажу процесс настройки датчика протечки. Он отличается от всех датчиков кроме датчика дыма. И так приступим.
Создаём новое устройство (мне через ПУ делать удобнее, хотя можно и просто через объекты), с именем “Датчик протечки-1” Я буду добавлять в своих примерах окончание “-1” так как я уже сделал один такой датчик. Тип(*) “Датчик протечки” Местоположение “Ванная”.
После нажатия кнопки “Добавить” Вы перейдёте в следующее окно в котором просто нажмите кнопку “Сохранить”
Далее добавляем устройство “Реле/управляемый выключатель” в меню”простые устройства” Всё по аналогии с датчиком протечки. вот скрин.
и далее жмём кнопку “Сохранить”
Кстати в последнем скрине можно изменить изображение устройства.
Далее мы переходим в меню Объекты=>Сцены и клацаем по кнопке с изображением карандаша которая расположена в верхнем правом углу экрана.
В открывшемся окне переходим во вкладку “Элементы“.
Нажимаем кнопку “Добавить новый элемент” и заполняем поля следующими данными:
Нажимаем кнопку “Сохранить” и переходим во вкладку “Просмотр/Редактировать” Там в самом верхнем левом углу окна вы увидите ваш созданный элемент. Хватайте его и перетаскивайте в нужное вам место сцены.
я его перетащил, ВРЕМЕННО, в самый низ по серединке.
Теперь этот элемент будет во время тревоги выглядеть вот так:
Но я у себя сделал немного иначе. В виде сообщения опасности. Вот так.
Как я это сделал. В меню “Объекты=>Сцены” Когда добавлял новый элемент в поле “Тип” Я выбрал тип “Уведомление“. Прошу обратить ваше внимание на то, что этот тип в обычном состоянии невидим. Необходимо его активировать любым удобным способом. Я к примеру просто намочил свой датчик и спокойно перетащил изображение. Я не пробовал использовать другие способы но предполагаю , что в меню “Объекты=>Объекты” Выбрав объект “Leak02 Датчик протечкки-1 status: 0; ” и перейдя во вкладку “Свойства” и вписав в поле “1“вы измените состояние элемента на противоположное.
Теперь нам необходимо подключить объект “Датчик протечки-1” к MQTT брокеру в котором мы получаем данные с наших устройств. В моём случае и так же в вашем это устройства ESP-12E. Но перед этим необходимо узнать какое настоящее имя присвоила система к нашему “Датчик протечки-1” Для этого заходим в меню “Объекты=>Объекты” и находим там примерно следующие строки:
Нас интересует последняя строка. Из неё понятно, что имя которое нам нужно искать чуть позже в MQTT это Leak02 Запомним его и переходим в меню “Устройства=>MQTT”. В поле “Фильтр по классу (Все)” выбираем наше ESP-12E по имени которое вы ему присвоили во время настройки. Об этом я писал вот тут . Приведу небольшой скрин этой статьи.
после нажимаем кнопку “Искать” У нас свормируются все доступные данные которые мы можем взять из нашего модуля ESP. Выбираем номер того GPIO к которому вы подключили выход приёмника вашего передатчика датчика протечки (ух как закрутил!). В моём случае это вот эта строчка.
Нажимаем на карандашик “Редактировать” и попадаем вот в такое окно:
В этом окне нам необходимо заполнить всего два поля. В поле “Связанный объект” мы выбираем наш объект с именем Leak02, а в поле “свойство” выбираем “Status“. Нажимаем “Сохранить” Должно получиться что то вроде этого:
Будьте готовы к тому, что система вам срезу будет отсылать в телеграмм сообщения о состоянии датчика, Алиса будет трындеть без остановки. Как от этого избавиться я нашёл один способ. Кстати в группе телеграмм мне не помогли с этим вопросом, а только очень грубо отослали. Ну и пошли они нахрен. И да, мой сайт, что хочу то и пишу. Вот для любопытных ссылка на тот срач который они устроили и наглядный пример того как обращаются с новичками в этой теме. Ну теперь как я решил проблему постоянного отсыла сообщений. Переходим в меню “Объекты=>Объекты” и клацаем по нашему объекту с именем Leak02, и заходим во вкладку “Методы” Там нажимаем на кнопку “Настроить” напротив метода “SLeak-> statusUpdated” и попадаем вот в такое окно:
Ставим точку напротив слова “Код” и слова “Никогда“. Нажимаем кнопку “Обновить“. В итоге получаем вот это:
Теперь нам нужно вписать код в поле “Код” А код у нас будет выглядеть так.
1 2 3 4 5 6 7 8 9 |
if ($params['NEW_VALUE'] == $params['OLD_VALUE']) return; if (getGlobal("Leak02.status") == 1) { say('Тревога. Датчик водыы.!!!', 2); setGlobal('Relay30.status',1); } else { say('Датчик водыы сухой.', 2); setGlobal('Relay30.status',0); } |
Ну и скрин с готовыми изменениями:
Описание строк кода я делать не буду но приведу очень хорошую ссылку на статью которая мне помогла в этом вопросе.
Если вам будет непонятно то я с трудом смогу вам чем либо помочь. Попробуйте оставлять вопросы в коментах и если я найду время то обязательно помогу.
И так первые два пункта поставленной задачи мы с вами разобрали. А именно вот эти пункты. Так как статья сильно затянулась то предлагаю остальные пункты описать в последующих статьях. Надеюсь, что вам нравиться такое представление информации. Конструкцию датчика протечки можно посмотреть тут.
- Перекрывать электроклапан водоснабжения
- Получать сигнал с датчика протечки. О датчике я расскажу в следующей статье. Очень интересное решение.
- Управлять освещением на улице. Когда я подъезжаю к дому свет включается не по геолокации.
- Принимаю показания счётчика воды.
- Измеряю температуру.
- в резерве остаётся ещё одно реле и один входной GPIO.
Уведомление: Настройка сценария освещения. GPS геозона. Использование таймера. — HAM-DMR