Страница 1 из 3

Система защиты от протечек на ESP 8266

Добавлено: Пт янв 11, 2019 12:30 pm
JackOfShadows
Здравствуйте.

Система защиты от протечек. Одна esp - датчик протечки, вторая - с реле для управления краном. Желательно раз в день провернуть - чтобы не закисало.

Это делается через простые устройства? С указанием айпи каждой esp? Для обращения к esp вида http://192.168.1.122/sec/?pt=1 её код/вебсервер пишем сами?

Re: Система защиты от протечек на ESP 8266

Добавлено: Пт янв 11, 2019 1:54 pm
skysilver
Имхо, завязывать систему от протечек на сервер очень опрометчиво. Контроллер должен быть автономен и сам принимать решения о перекрытии воды по данным с датчиков без участия сервер. Сервер только для внешнего управления по каким-либо сценариям.

По существу все можно сделать через ПУ двух типов - датчик протечки и управляемое реле. Методы turnOff и turnOn у ПУ реле нужно дополнить кодом, который будет выполнять ГЕТ-запросы к нужной ЕСП для смены состояния ее GPIO.

Re: Система защиты от протечек на ESP 8266

Добавлено: Пт янв 11, 2019 2:04 pm
JackOfShadows
Спасибо. Автономная система уже имеется и работает, мысль оставить всю логику в ней есть. Вопрос в интеграции:
1. Как из мажордомо дёргать веб-методы по http? (закрыть, открыть, получить состояние)
2. Как из esp уведомлять мажордомо об аварии? Можно мажордомой опрашивать периодически, но хотелось бы иметь двустороннюю связь.

Re: Система защиты от протечек на ESP 8266

Добавлено: Пт янв 11, 2019 2:09 pm
skysilver
JackOfShadows писал(а):
Пт янв 11, 2019 2:04 pm
1. Как из мажордомо дёргать веб-методы по http? (закрыть, открыть, получить состояние)
Встроенная функция getURL() Описание в БЗ, примеры там же, а также на форуме и в Коннекте.
JackOfShadows писал(а):
Пт янв 11, 2019 2:04 pm
2. Как из esp уведомлять мажордомо об аварии? Можно мажордомой опрашивать периодически, но хотелось бы иметь двустороннюю связь.
Опрос со стороны сервера - это крайний вариант. Правильный - силами прошивки отправлять на сервер данные через HTTP API (см. БЗ) или MQTT.

Re: Система защиты от протечек на ESP 8266

Добавлено: Вс янв 13, 2019 7:24 pm
JackOfShadows
skysilver писал(а):
Пт янв 11, 2019 2:09 pm
Встроенная функция getURL() Описание в БЗ
Не нашёл именно описания, на https://kb.smartliving.ru/vstroennie-v- ... o-funkcii/ его нет. Синтаксис понятен, кеширование тоже - но надо бы и описание, наверное.

Re: Система защиты от протечек на ESP 8266

Добавлено: Вс янв 13, 2019 9:15 pm
Pacific
JackOfShadows писал(а):
Пт янв 11, 2019 2:04 pm
2. Как из esp уведомлять мажордомо об аварии? Можно мажордомой опрашивать периодически, но хотелось бы иметь двустороннюю связь.
Чтобы ответить на это вопрос, надо знать, чем вы прошиваете ЕСПшку.
Если, как и я, используете WiFi Iot, то могу рассказать, как это делаю я

Re: Система защиты от протечек на ESP 8266

Добавлено: Пн янв 14, 2019 9:09 am
JackOfShadows
Спасибо. У меня не WiFi Iot, но интеграция через http api должна быть аналогичной.

Есть esp с подключенным датчиком протечки и реле для мотора. Она постоянно мониторит состояние датчика, если он залит - перекрывает воду. Раз в сутки проворачивает мотор, чтобы краны не закисали.
В esp заливается .ino, в нём вебсервер на 80 порту.
В esp заливается .html, который возвращает вебсервер - отображается состояние (открыто, закрыто, авария, время запуска, лог) и кнопки - открыть, закрыть, провернуть.

Для отображения состояния в мажордомо:
Создать класс-объект esp c полями isOpen, isClose, isOpening, isClosing.
Создать веб-переменную ThisComputer.esp, опрашивать http://ESP_IP/getValues раз в минуту, "действие при изменении" - парсить json и раскладывать по полям объекта esp.

Для управления esp со стороны мажордомо:
Создать кнопки открыть/закрыть, ими через getUrl вызывать http://ESP_IP/open и http://ESP_IP/close

Если хочется уведомлять о потопе со стороны esp:
Добавить свойство ThisComputer.потоп. Из esp обращаться к http://MAJORDOMO_IP/objects/?op=set&object=ThisComputer&p=потоп&v=true
Если true - уведомлять голосом/в мыло/телеграм, однократно телеграм



Я правильно понимаю majordomo-way?

Re: Система защиты от протечек на ESP 8266

Добавлено: Пн янв 14, 2019 1:26 pm
Pacific
JackOfShadows писал(а):
Пн янв 14, 2019 9:09 am
Если хочется уведомлять о потопе со стороны esp:
Добавить свойство ThisComputer.потоп. Из esp обращаться к http://MAJORDOMO_IP/objects/?op=set&object=ThisComputer&p=потоп&v=true
Если true - уведомлять голосом/в мыло/телеграм, однократно телеграм
Я делал по другому, но ваш вариант мне кажется рабочим, но не масштабируемым.
Только мне не понятно, как ЕСП может напрямую изменить конкретное свойство объекта.
У меня ЕСП сообщает свое состояние (датчики + входы) по заданному интервалу или по прерыванию. Скрипт МЖД принимает, парсит, анализирует конкретные входы ЕСП.
Но запускал свою систему еще до появления Простых Устройств и ESPeasy. Сейчас, наверно, всё придумано за нас.

Re: Система защиты от протечек на ESP 8266

Добавлено: Пн янв 14, 2019 5:06 pm
JackOfShadows
Pacific писал(а):
Пн янв 14, 2019 1:26 pm
Я делал по другому, но ваш вариант мне кажется рабочим, но не масштабируемым.
Как именно Вы делали, и в чём у меня немасштабируемость?
Только мне не понятно, как ЕСП может напрямую изменить конкретное свойство объекта.
https://kb.smartliving.ru/http-ssilki-d ... majordomo/

/objects/ -- работа с объектами, сценариями и т.п.
/objects/?op=get&object=<OBJECT>&p=<PROPERTY> -- получить значение свойства объекта
/objects/?op=set&object=<OBJECT>&p=<PROPERTY>&v=<VALUE> -- установить значение свойства объекта

Или я не прав?
У меня ЕСП сообщает свое состояние (датчики + входы) по заданному интервалу или по прерыванию. Скрипт МЖД принимает, парсит, анализирует конкретные входы ЕСП.
Как сообщает?

Вопрос дискуссионный - мажордомо запрашивает состояние или esp сообщает его. Первый вариант мне нравится больше - он ближе к отображению html-страницы на клиенте.
Но запускал свою систему еще до появления Простых Устройств и ESPeasy. Сейчас, наверно, всё придумано за нас.
"При создании Простого устройства - для устройств автоматически создаются классы, свойства, методы, объекты (не надо заморачиваться вообще что это такое)." - не особо понял преимуществ, посмотрю.

Re: Система защиты от протечек на ESP 8266

Добавлено: Пн янв 14, 2019 5:22 pm
skysilver
JackOfShadows писал(а):
Пн янв 14, 2019 9:09 am
В esp заливается .ino, в нём вебсервер на 80 порту.
А также в есп д.б. реализован http-клиент, который будет GET-запросами слать не сервер все данные.
JackOfShadows писал(а):
Пн янв 14, 2019 9:09 am
Создать веб-переменную ThisComputer.esp, опрашивать http://ESP_IP/getValues раз в минуту, "действие при изменении" - парсить json и раскладывать по полям объекта esp.
Плохой вариант. Есп должна сама слать на сервер данные либо с указанным периодом, либо по факту их изменения.
JackOfShadows писал(а):
Пн янв 14, 2019 9:09 am
Если хочется уведомлять о потопе со стороны esp:
Добавить свойство ThisComputer.потоп. Из esp обращаться к http://MAJORDOMO_IP/objects/?op=set&object=ThisComputer&p=потоп&v=true
Если true - уведомлять голосом/в мыло/телеграм, однократно телеграм
Не только о потопе, но и, как написал выше, любые данные контроллер должен сам засылать на сервер.

Можно прямо в конкретное свойство объекта писать. Но как сказали выше, это не гибко и не масштабируемо.
На стороне МДМ делается один сценарий, который принимает данные от всех имеющихся ЕСП, и затем распихивает по нужным свойствам объектов, делая при необходимости обработку поступающих данных (фильтрацию, округление и т.п.). На стороне ЕСП в конфиге скетча прописывается только IP сервера и имя нужного сценария - один раз, для всех ЕСП, единая точка, на которую они шлют данные.

Чтобы не изобретать свой велосипед в части именования метрик можно взять за основу АПИ проекта wifi-iot. При этом на стороне МДМ можно будет вообще воспользоваться штатным модулем из маркета.

https://wifi-iot.com/p/wiki/24/ru/