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

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

JackOfShadows
Сообщения: 104
Зарегистрирован: Ср янв 09, 2019 8:37 pm
Благодарил (а): 23 раза
Поблагодарили: 26 раз

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

Сообщение JackOfShadows » Пт янв 11, 2019 12:30 pm

Здравствуйте.

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

Это делается через простые устройства? С указанием айпи каждой esp? Для обращения к esp вида http://192.168.1.122/sec/?pt=1 её код/вебсервер пишем сами?
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Пт янв 11, 2019 1:54 pm

Имхо, завязывать систему от протечек на сервер очень опрометчиво. Контроллер должен быть автономен и сам принимать решения о перекрытии воды по данным с датчиков без участия сервер. Сервер только для внешнего управления по каким-либо сценариям.

По существу все можно сделать через ПУ двух типов - датчик протечки и управляемое реле. Методы turnOff и turnOn у ПУ реле нужно дополнить кодом, который будет выполнять ГЕТ-запросы к нужной ЕСП для смены состояния ее GPIO.
За это сообщение автора skysilver поблагодарили (всего 2):
JackOfShadows (Пт янв 11, 2019 2:09 pm) • directman66 (Вс фев 17, 2019 9:05 pm)
Рейтинг: 2.33%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
JackOfShadows
Сообщения: 104
Зарегистрирован: Ср янв 09, 2019 8:37 pm
Благодарил (а): 23 раза
Поблагодарили: 26 раз

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

Сообщение JackOfShadows » Пт янв 11, 2019 2:04 pm

Спасибо. Автономная система уже имеется и работает, мысль оставить всю логику в ней есть. Вопрос в интеграции:
1. Как из мажордомо дёргать веб-методы по http? (закрыть, открыть, получить состояние)
2. Как из esp уведомлять мажордомо об аварии? Можно мажордомой опрашивать периодически, но хотелось бы иметь двустороннюю связь.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Пт янв 11, 2019 2:09 pm

JackOfShadows писал(а):
Пт янв 11, 2019 2:04 pm
1. Как из мажордомо дёргать веб-методы по http? (закрыть, открыть, получить состояние)
Встроенная функция getURL() Описание в БЗ, примеры там же, а также на форуме и в Коннекте.
JackOfShadows писал(а):
Пт янв 11, 2019 2:04 pm
2. Как из esp уведомлять мажордомо об аварии? Можно мажордомой опрашивать периодически, но хотелось бы иметь двустороннюю связь.
Опрос со стороны сервера - это крайний вариант. Правильный - силами прошивки отправлять на сервер данные через HTTP API (см. БЗ) или MQTT.
За это сообщение автора skysilver поблагодарил:
JackOfShadows (Пт янв 11, 2019 4:38 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
JackOfShadows
Сообщения: 104
Зарегистрирован: Ср янв 09, 2019 8:37 pm
Благодарил (а): 23 раза
Поблагодарили: 26 раз

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

Сообщение JackOfShadows » Вс янв 13, 2019 7:24 pm

skysilver писал(а):
Пт янв 11, 2019 2:09 pm
Встроенная функция getURL() Описание в БЗ
Не нашёл именно описания, на https://kb.smartliving.ru/vstroennie-v- ... o-funkcii/ его нет. Синтаксис понятен, кеширование тоже - но надо бы и описание, наверное.
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

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

Сообщение Pacific » Вс янв 13, 2019 9:15 pm

JackOfShadows писал(а):
Пт янв 11, 2019 2:04 pm
2. Как из esp уведомлять мажордомо об аварии? Можно мажордомой опрашивать периодически, но хотелось бы иметь двустороннюю связь.
Чтобы ответить на это вопрос, надо знать, чем вы прошиваете ЕСПшку.
Если, как и я, используете WiFi Iot, то могу рассказать, как это делаю я
За это сообщение автора Pacific поблагодарил:
JackOfShadows (Пн янв 14, 2019 6:30 am)
Рейтинг: 1.16%
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
JackOfShadows
Сообщения: 104
Зарегистрирован: Ср янв 09, 2019 8:37 pm
Благодарил (а): 23 раза
Поблагодарили: 26 раз

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

Сообщение JackOfShadows » Пн янв 14, 2019 9:09 am

Спасибо. У меня не 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?
Pacific
Сообщения: 116
Зарегистрирован: Чт май 28, 2015 9:40 pm
Откуда: Вёска пад Мiнскам
Благодарил (а): 60 раз
Поблагодарили: 7 раз

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

Сообщение Pacific » Пн янв 14, 2019 1:26 pm

JackOfShadows писал(а):
Пн янв 14, 2019 9:09 am
Если хочется уведомлять о потопе со стороны esp:
Добавить свойство ThisComputer.потоп. Из esp обращаться к http://MAJORDOMO_IP/objects/?op=set&object=ThisComputer&p=потоп&v=true
Если true - уведомлять голосом/в мыло/телеграм, однократно телеграм
Я делал по другому, но ваш вариант мне кажется рабочим, но не масштабируемым.
Только мне не понятно, как ЕСП может напрямую изменить конкретное свойство объекта.
У меня ЕСП сообщает свое состояние (датчики + входы) по заданному интервалу или по прерыванию. Скрипт МЖД принимает, парсит, анализирует конкретные входы ЕСП.
Но запускал свою систему еще до появления Простых Устройств и ESPeasy. Сейчас, наверно, всё придумано за нас.
За это сообщение автора Pacific поблагодарил:
JackOfShadows (Пн янв 14, 2019 4:57 pm)
Рейтинг: 1.16%
россыпь датчиков и серв <-> 20+ ESP8266(WiFi-IoT) <-> Malinka Pi3 :)
JackOfShadows
Сообщения: 104
Зарегистрирован: Ср янв 09, 2019 8:37 pm
Благодарил (а): 23 раза
Поблагодарили: 26 раз

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

Сообщение JackOfShadows » Пн янв 14, 2019 5:06 pm

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. Сейчас, наверно, всё придумано за нас.
"При создании Простого устройства - для устройств автоматически создаются классы, свойства, методы, объекты (не надо заморачиваться вообще что это такое)." - не особо понял преимуществ, посмотрю.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1753 раза
Контактная информация:

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

Сообщение skysilver » Пн янв 14, 2019 5:22 pm

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/
За это сообщение автора skysilver поблагодарил:
JackOfShadows (Пн янв 14, 2019 8:24 pm)
Рейтинг: 1.16%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить