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

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

Добавлено: Пн янв 14, 2019 8:33 pm
Pacific
Собственно, skysilver всё хорошо расписал.
JackOfShadows писал(а):
Пн янв 14, 2019 5:06 pm
Как именно Вы делали, и в чём у меня немасштабируемость?
есть сценарий, который обрабатывает get от ESP
СпойлерПоказать
$idesp=$params['idesp'];
$host=$params['hostname'];
if (!$host) return;
say1("ESP.Host=".$host);
//addClass('ESP8266'); //Создаем класс ESP8266
addClassObject('ESP8266',$host); //Создаёт класс заданного имени дочерним от ParentClass
sg ('ESP8266.'.$host.".idesp",$idesp);
sg ('ESP8266.'.$host.".hostname",$host);
$esp=getObjectsByClass("ESP8266");
foreach($esp as $obj)
{
// say($obj['TITLE']);
// say(gg($obj['TITLE'].".idesp"));
if (gg($obj['TITLE'].".hostname") ==$host) //
{
// say($obj['TITLE']);
if (is_array($params)) {
sg ($obj['TITLE'].".LastUpdate",date("d-m-Y H:i:s",time()));

//если модуль был неактивный, то отмечаем активность
if (gg($obj['TITLE'].".alive")=='false') callMethod($obj['TITLE'].".testAlive");

foreach($params as $k=>$v) {
if ($k!="script") {
sg($obj['TITLE'].".".$k,$v);
}
}
}

$ibutton = $params['ibutton']; //если произошло считывание, то ЕСП передает этот параметр. В обычной периодической посылке этого параметра нет
if ($ibutton != '') {
say($host.".ibutton = ".$ibutton);
cm("keyAccess.iButton_read", array("iButton"=>$ibutton, "iButtonst"=>$params["ibuttonst"]));

}

$wiegandID = $params['wiegand'];

if ($wiegandID != '')
say($host.".Wiegand = ".$wiegandID);

//обработка прерываний
if ($params['gpioint1']==1) {
// getURL('http://192.168.1.218/gpio?st=2&pin=12', 0);
runScript("INT1_received", array("module"=>$host));
say('INT1');

}
if ($params['gpioint2']==1) {
runScript("INT2_received", array("module"=>$host));
say('INT2');

}
}
}
Сценарий обновляет свойства объектов класса ESP8266 плюс реагирует на прерывания на самой ЕСП:

Код: Выделить всё

if ($params['gpioint2']==1) {
      	runScript("INT2_received", array("module"=>$host));
Есть несколько классов, объекты которых ссылаются на тот или иной объект ЕСП : реле, информеры, датчики итд.
Также имеются сценарии, которые циклично (например, раз в минуту) "разносят" данные с объектов ЕСП по связанным объектам реле, датчиков итд и обрабатывают эти данные.
Масштабируемость - в иерархии : на один объект ЕСП могут ссылаться самые разные объекты, ведь ЕСП весьма функциональна.
А у вас всё крутится вокруг одного объекта : ThisComputer. Это оправдано, если датчиков и исполнительных устройств 1, 2, 3... Но у меня сейчас в сети 14 штук ЕСП и добавляются новые.

У меня ЕСП сами инициируют передачу данных на сервак. Я не вижу принципиальных возражений против периодического опроса сервером, но всё равно придется городить механизм, когда ЕСП сама хочет вам сообщить, что воды уже 1мм, а к моменту очередного опроса от сервака воды уже будет по колено.

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

Добавлено: Пн янв 14, 2019 8:38 pm
JackOfShadows
skysilver писал(а):
Пн янв 14, 2019 5:22 pm

Спасибо. Второй драфт:

1. В МДМ создаю класс-объект для моей esp c нужными свойствами.
2. В МДМ создаю сценарий, в "использовать для программирования" - разбор приходящих свойств и раскладка по свойствам объекта.
3. В esp при запуске и на изменения состояния вызываю http://MAJORDOMO_IP/objects/?script=<SCRIPT>&param1=value1&param2=value2

Так?

Где и как в МДМ задать объекту esp его имя/IP, чтобы вызывать методы через getUrl - прописать в свойство в панели управления при добавлении в класс нового объекта?

"Простые устройства" - упрощение работы с классами/объектами или что-то качественно иное? Например, прикрепить пару кнопок к объекту esp - ПУ помогут?

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

Добавлено: Пн янв 14, 2019 8:48 pm
JackOfShadows
Pacific писал(а):
Пн янв 14, 2019 8:33 pm
Есть несколько классов, объекты которых ссылаются на тот или иной объект ЕСП : реле, информеры, датчики итд.
Также имеются сценарии, которые циклично (например, раз в минуту) "разносят" данные с объектов ЕСП по связанным объектам реле, датчиков итд и обрабатывают эти данные.
Масштабируемость - в иерархии : на один объект ЕСП могут ссылаться самые разные объекты, ведь ЕСП весьма функциональна.
А у вас всё крутится вокруг одного объекта : ThisComputer. Это оправдано, если датчиков и исполнительных устройств 1, 2, 3... Но у меня сейчас в сети 14 штук ЕСП и добавляются новые.
Ваш дизайн определяется использованием wifi-iot. У меня МДМ не знает, что это именно esp с gpio. Это просто некий чёрный ящик со своим интерфейсом более высокого уровня - свойства isOpened, isClosed, isOpening, isClosing, isAlarm, log и методы doOpen, doClose, doRotate
У меня ЕСП сами инициируют передачу данных на сервак. Я не вижу принципиальных возражений против периодического опроса сервером, но всё равно придется городить механизм, когда ЕСП сама хочет вам сообщить, что воды уже 1мм, а к моменту очередного опроса от сервака воды уже будет по колено.
Это критично в том случае, если логика "залило-перекрыть" будет на МДМ. Я согласен со skysilver, что эта система должна быть автономной - логика останется в esp, а МДМ будет использоваться только для мониторинга состояния и сигнализации голосом/звуком/светом. Напишет ли МДМ в телеграм через пять минут после того, как esp перекроет воду - менее критично, чем возможность неперекрытия воды из-за зависания циклов МДМ.

Esp сама будет передавать, это логичнее, да.

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

Добавлено: Пн янв 14, 2019 9:24 pm
Pacific
JackOfShadows писал(а):
Пн янв 14, 2019 8:48 pm
Ваш дизайн определяется использованием wifi-iot.
абсолютно верно, от этого и плясал.
JackOfShadows писал(а):
Пн янв 14, 2019 8:48 pm
У меня МДМ не знает, что это именно esp с gpio. Это просто некий чёрный ящик со своим интерфейсом более высокого уровня - свойства isOpened, isClosed, isOpening, isClosing, isAlarm, log и методы doOpen, doClose, doRotate
В моём случае делать "черный ящик" особого смысла не было, а в вашем, почему бы и нет?!
JackOfShadows писал(а):
Пн янв 14, 2019 8:48 pm
Это критично в том случае, если логика "залило-перекрыть" будет на МДМ. Я согласен со skysilver, что эта система должна быть автономной - логика останется в esp, а МДМ будет использоваться только для мониторинга состояния и сигнализации голосом/звуком/светом.
Ну, кроме понятия "критично" есть еще понятие "приятно". Я тоже исповедую принцип автономности ЕСП (вернее, стараюсь). Но, ведь приятней получить сигнал, что открылась калитка и выйти на крыльцо встретить жену, чем получить сигнал, когда уже можно не дёргаться)

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

Добавлено: Вт янв 15, 2019 11:42 pm
skysilver
JackOfShadows писал(а):
Пн янв 14, 2019 8:38 pm
1. В МДМ создаю класс-объект для моей esp c нужными свойствами.
2. В МДМ создаю сценарий, в "использовать для программирования" - разбор приходящих свойств и раскладка по свойствам объекта.
3. В esp при запуске и на изменения состояния вызываю http://MAJORDOMO_IP/objects/?script=<SCRIPT>&param1=value1&param2=value2
Так?
В целом да, вполне рабочий вариант.

Класс, объект, свойства можно не создавать руками, а прописать это в код сценария, тогда все само создастся при первой отправке данных с ЕСП.

Либо вместо своего класса и объектов, можно воспользоваться Простыми устройствами. Тип "Датчик протечки" (и многие другие) там уже есть.
JackOfShadows писал(а):
Пн янв 14, 2019 8:38 pm
Где и как в МДМ задать объекту esp его имя/IP, чтобы вызывать методы через getUrl - прописать в свойство в панели управления при добавлении в класс нового объекта?
Допустим, класс ESP. На уровне класса создаются свойства, общие для все ЕСП, - ip, mac, rssi, uptime. Затем в класс добавляются объекты по мере запуска новых ЕСП-шек - Esp01, Esp02. У всех них уже будут свойства, спущенные с уровня класса. Вот в них уже вписывается тот же ip.

Но повторюсь, руками можно вообще ничего не заполнять, если на стороне прошивки организовать передачу всех нужных метрик.
JackOfShadows писал(а):
Пн янв 14, 2019 8:38 pm
"Простые устройства" - упрощение работы с классами/объектами или что-то качественно иное?
Упрощение. Обертка над существующей концепцией класс-объект-свойство.
JackOfShadows писал(а):
Пн янв 14, 2019 8:38 pm
Например, прикрепить пару кнопок к объекту esp - ПУ помогут?
Помогут. И типовые виджеты для Меню и Сцены сами создадут. А дальше уж можно на них свое "чувство прекрасного" применить. :)

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

Добавлено: Чт янв 17, 2019 2:04 pm
leo_boy
Кому будет интересно мой опыт системы защиты от протечки http://videooko.net/?p=943
На данный момент уже несколько недель в работе.

В последней версии прошивки реализован режим автономности, т.е. сама esp мониторит состояние датчиков и в случае намокания перекрывает вентиль и отправляет письмо с алармом где указываются сработаные датчики. Если есть интернет соединение, то возможно просматривать и управлять через Мажордомо. Также поставил кнопку для ручного отртытия и закрытия задвижки, но если есть хоть один мокрый датчик система не откроет кран даже в ручную.

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

Добавлено: Вт фев 12, 2019 6:22 pm
viktor6
leo_boy писал(а):
Чт янв 17, 2019 2:04 pm
Кому будет интересно мой опыт системы защиты от протечки http://videooko.net/?p=943
На данный момент уже несколько недель в работе.

В последней версии прошивки реализован режим автономности, т.е. сама esp мониторит состояние датчиков и в случае намокания перекрывает вентиль и отправляет письмо с алармом где указываются сработаные датчики. Если есть интернет соединение, то возможно просматривать и управлять через Мажордомо. Также поставил кнопку для ручного отртытия и закрытия задвижки, но если есть хоть один мокрый датчик система не откроет кран даже в ручную.
Обновите ссылки в блоге на али. Некоторые товар не доступны.

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

Добавлено: Ср фев 13, 2019 9:37 am
leo_boy
...обновил

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

Добавлено: Чт фев 14, 2019 11:03 pm
viktor6
А кто еще как реализовал систему защиты от протечки?

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

Добавлено: Пн фев 18, 2019 9:56 pm
samolet
Всем доброго времени суток
я сделал систему на основе прошивки на этом сайте https://wifi-iot.com/p/esp8266/
на али заказал электронику (ниже в картинках)
на основе MCP23017 назначил порты ввода вывода
https://ru.aliexpress.com/item/MCP23017 ... 33edTOzJBs
в коде в статус апдейт прописал код ниже


Код: Выделить всё

 if (gg('Deutechka.status')=='1') {sayReply("Внимание произошла утечка воды в туалете срочно перекройте воду.",5); }
в свойствах назначил откр. закр. электрокрана. управление при помощи реле
https://ru.aliexpress.com/item/1-2-4-8- ... 32727030-3
https://ru.aliexpress.com/item/2-way-wa ... 33ednGxndk
блок питания 12 V для крана купил в строительном

блок питания по ссылке
https://ru.aliexpress.com/item/1PCS-AC- ... 33edTOzJBs
ИзображенияПоказать
1-2-4-8-DC-5.jpg_640x640.jpg
1-2-4-8-DC-5.jpg_640x640.jpg (192.27 КБ) 4046 просмотров
1-2-4-8-DC-5.jpg_640x640.jpg
1-2-4-8-DC-5.jpg_640x640.jpg (192.27 КБ) 4083 просмотра
erg.jpg
erg.jpg (100.68 КБ) 4084 просмотра
11111.jpg
11111.jpg (125.77 КБ) 4086 просмотров
322.jpg
322.jpg (348.3 КБ) 4091 просмотр
5555.jpg
5555.jpg (84.9 КБ) 4091 просмотр
HTB1x5OporArBKNjSZFLq6A_dVXaI.jpg
HTB1x5OporArBKNjSZFLq6A_dVXaI.jpg (50.12 КБ) 4091 просмотр