tretyakovsa / Sonoff_WiFi_switch

Прошивка для ESP8266 (Умный дом)-Firmware for ESP8266 (Smart Home)
GNU General Public License v3.0
178 stars 40 forks source link

Предложение... Добавить снятие показаний счетчика расхода воды #142

Open Egor2101 opened 5 years ago

Egor2101 commented 5 years ago

С датчика выходит два контакта. При использовании (n) литров воды они замыкаются ( Импульс ). Нужно посчитать расход воды за месяц. Как вариант - график расхода в день на протяжении месяца.

renat2985 commented 5 years ago

Данные с графиков не сохраняются. В ESP сохранять эти данные тоже не совсем правильно. Была идея использовать USB разъем в роутере. Большинство новых роутеров его имеют и позволяют ПРОСТО реализовать ftp или samba на нем. Кто-то знает красивые компактные решения для ESP позволяющее писать в USB роутера? Это позволит сделать большое хранилище в вашей локальной сети, откроет много возможностей.

А пока возможно вам это поможет: https://github.com/tretyakovsa/Sonoff_WiFi_switch/issues/118 Таким образом вы можете сохранять каждый литр, с временем и датой в excel файл. А потом уже опираясь на эти данные можно самостоятельно создавать графики.

antkachenko commented 5 years ago

Управляющие компании обычно не используют эту возможность потому, что считывающее оборудование может пропускать этот импульс. А можно как-то гарантировать, что импульс будет посчитан?

И давайте начнем с хранения и чтения данных на ftp или tftp, а дальше уже разберемся с другими вариантами... К стати, свой внутренний сервер ftp или tftp можно передавать модулям через настройки в DHCP. Более того, можно вообще любые настройки передавать...

antkachenko commented 5 years ago

С датчика выходит два контакта. При использовании (n) литров воды они замыкаются ( Импульс ). Нужно посчитать расход воды за месяц. Как вариант - график расхода в день на протяжении месяца.

А какие параметры импульса? Или это просто краткосрочное замыкание контактов? Как его обработать с помощью ESP?

antkachenko commented 5 years ago

Есть идея еще лучше: сделать сохранение данных во внешнюю базу MySQL. Сейчас на просторах Интернет полно бесплатных и платных сервисов предоставляющих MySQL хостинг бесплатно.

lalayan089 commented 5 years ago

Поддерживаю идею с SQL. Есть программы которые отображают графики с базы данных и в автоматизации они часто используются.

Egor2101 commented 5 years ago

С датчика выходит два контакта. При использовании (n) литров воды они замыкаются ( Импульс ). Нужно посчитать расход воды за месяц. Как вариант - график расхода в день на протяжении месяца.

А какие параметры импульса? Или это просто краткосрочное замыкание контактов? Как его обработать с помощью ESP?

Просто короткое замыкание контактов.

antkachenko commented 5 years ago

А чего тему-то закрыли? Что Ренат думает про сохранение данных в SQL базу?

lalayan089 commented 5 years ago

InfluxDb + Grafana

Egor2101 commented 5 years ago

Извините. случайно закрыл....

Forldol commented 5 years ago

Так тут думать то ничего не надо, уже всё готово. Выставляем таймер на отправку гет запроса, например каждые по часа. На стороне сервера считываем и сохраняем в БД.

Такой метод подойдет если надо сохранить данные с датчиков. Для счётчик скорее всего не подойдет

renat2985 commented 5 years ago

@Forldol совершенно прав. Проблема в том что большинство подобных сервисов сейчас работают только с https, а наш проект отправляет только http.

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

Отправлять GET по таймеру каждые пол часа, это 48 таймеров. Неудобно. Появилась идея сделать возможность цикличных таймеров. Например если пишем: 20::00 в таком случае таймер будет запускаться каждую минуту с 20:00:00 до 20:59:00. Пример: :00:00 тогда будем запускать каждый час. Пример: : :00 запускаем каждую минуту в 00 секунд. Пример: :30:00 запускаем в каждые 30 минут каждого часа. Пример: : **:30 запускаем в каждые 30 секунд. Как вам?

antkachenko commented 5 years ago

В принципе, это стандартный cron. А какой use case?

renat2985 commented 5 years ago

В таймерах.

Forldol commented 5 years ago

@renat2985 идея отличная, я за реализацию :)

lalayan089 commented 5 years ago

А можно посылать get запросы самому esp и получать значения?

renat2985 commented 5 years ago

@lalayan089 например?

antkachenko commented 5 years ago

Собрал схему с отправкой GET запроса на инкрементацию счетчика. Руками если закорачивать контакты "кнопки" - все работает прекрасно. НО: видимо продолжительность "КЗ" (импульса счетчика) очень большая, а при долговременном "нажатии на кнопку" (TACH) модуль не то виснет, не то отключается. Есть способ борьбы с этим?

tretyakovsa commented 5 years ago

@antkachenko Пишите настройки кнопки и строки сценария для этого счетчика. И какой у вас счетчик. Посмотрю в чем может быть причина.

antkachenko commented 5 years ago

Приветствую,

Модуль ESP-01. Кнопки TACH: 0-0-20-0 2-1-20-0 Счетчик: CГ-15 Алексеевский

Уже пробовал ставить задержку срабатывания 1000мс. Все равно виснет.

tretyakovsa commented 5 years ago

@antkachenko В сценариях что написано?

antkachenko commented 5 years ago

Если состояние кнопки 0 = 1 Сделать GET запрос на страницу http://increment_cold_water_counter

Если состояние кнопки 1 = 1 Сделать GET запрос на страницу http://increment_hot_water_counter

antkachenko commented 5 years ago

Коллеги, доброго времени суток.

Есть новости?

tretyakovsa commented 5 years ago

@antkachenko Расскажите подробнее когда происходит зависание. Если бы я делал, то в первую очередь не вешал бы датчики на GPIO0 GPIO2. И совершенно не ясно каким сервисом пользуетесь http://increment_hot_water_counter - что реально написано в запросе. Как мне попробовать?

antkachenko commented 5 years ago

Сергей,

@antkachenko Расскажите подробнее когда происходит зависание.

Вешаю сборку с модулем на контакты, через какое-то время модуль перестает отвечать. Достаточно отключить контакты модуля от счетчиков - модуль оживает...

Если бы я делал, то в первую очередь не вешал бы датчики на GPIO0 GPIO2.

Поделитесь, как правильно? Очень нужно, так как тема с системой автоматического обновления воды в аквариуме пока открыта, а там будут поплавки, которые будут постоянно закрыты (кнопки нажаты)...

И совершенно не ясно каким сервисом пользуетесь http://increment_hot_water_counter - что реально написано в запросе. Как мне попробовать?

Простой PHP скрипт, который делает запись в mySQL базу - приложил в виде файла, иначе съедается...

update_db.txt

antkachenko commented 5 years ago

Сергей,

Вопрос все еще интересен. Могу рассчитывать на ответ?

tretyakovsa commented 5 years ago

@antkachenko Может вы мне по скайпу позвоните и решим на вашем примере?

antkachenko commented 5 years ago
    Отлично! Меня просто Ренат все время на форум отправлял...
    С уважением,Антон Ткаченко.моб. +7 909 675 81 68e-mail: anton@tkachenki.ru