График расходы воды.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: График расходы воды.

Сообщение serghei » Ср фев 15, 2017 12:38 pm

blackangel писал(а):В общем хотелось бы реализовать график потребления воды. Что бы по графику можно было увидеть когда был расход воды а когда нет.
У меня есть в системе переменная которая дает импульс при прохождении через счетчик 10л воды.
Мне немного проще , данные передаются ,но цепочка немного сложнее. Сначала Ардуина в качестве сенсора в составе АМС собирает данные двух температур , двух счетчиков ( любых - хоть воды , хоть элекро энергии ) и влажность с DHT , затем по радио передаёт на свой сервер ( на ЕСП или Меге ) а уже АМС передает данные Алисе. Всё работает отлично и очень автономно ( даже у сенсора есть свой LCD экран ) И если все сервера упадут , сенсор на батарейке будет работать 3 дня.
А проблема и вопрос в следующем. С температурами вопросов нет - линейный график показывает наглядно. А вот со счетчиками не все так наглядно. Единицу измерения воды могу сделать хоть 2 грамма , электро энергии 1 ватт/час.Остановился на одном литре ,чтобы ответить на вопрос - сколько литров жрет стиралка и главное сколько раз она полощет. Если график начинается с нуля , то 3-5 ступенек увидеть еще можно. А вот когда расход подойдет к 5 000 литров , то уже не увидеть.
Тут можно средствами МД разделять общий расход за месяц и текущий за день с нуля. Вот только как это сделать я пока не представляю. И если применить сторонние библиотеки для графиков , то не получается прицепить текущее число к этому графику.
Пробую разные варианты - в основном столбики , но ничего не устраивает.....
СпойлерПоказать
Chart.JPG
Chart.JPG (172.03 КБ) 6966 просмотров
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: График расходы воды.

Сообщение blackangel » Ср фев 15, 2017 4:41 pm

Bagir писал(а):Не сложно конечно, весь мой код всегда коннекте, чтобы другие смогли что то для себя найти. Просто нет такого универсального скрипта, да и быть не может. Но мы можем прямо сейчас начать решать эту задачу по шагам.
Если стоит задача не просто посчитать итоги, а построить график, то нам понадобится свойство с историей. Вот с него и начнем.
Есть класс keySensors. В нем могут располагаться объекты разных датчиков. Но не всем им нужно хранить историю. Поэтому изначально у свойства status история не включена. Я предлагаю создать в этом классе подкласс, и назвать его flowmeter.
покажу на примере моего подкласса для температурных датчиковПоказать
Изображение
В этом подклассе у нас будут находиться объекты датчиков, которые что то измеряют. Например воду по импульсам. Добавим в наш подкласс одноименное свойство status. Затем нужно включить историю свойства.
СпойлерПоказать
Изображение
После этого можно через браузер вызнать метод нашего объекта и перейти к написанию его кода Для начала добавим в код метода просто say('Это случилось'); или debmes('Это случилось'); чтобы удостовериться, что код вызываемого метода исполняется.

На пока достаточно, а потом потом перейдем к записи данных в историю свойства status. Жду результатов с картинками.

Спасибо за содействие))) я немного запулся... но попытался сделать как вы написали.

В итоге мои действия:

1. в классе keySensors, создал подкласс flowmeter.
2. в подклассе flowmeter, создал объект status
3. там же создал свойства cold_water и hot_water (эти свойства привязал с модбас, там все гуд)
4. в объекте status есть метод keySensors-> statusChanged, в нем написал код say('Это случилось');
5. при вызове кода, алиса пишет "это случилось"

вопрос: все ли правильно? и мне не понятно как будет вызыватся метод если он не прописан на выполнение в свойствах cold_water и hot_water????
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: График расходы воды.

Сообщение blackangel » Ср фев 15, 2017 4:44 pm

serghei писал(а):
blackangel писал(а):В общем хотелось бы реализовать график потребления воды. Что бы по графику можно было увидеть когда был расход воды а когда нет.
У меня есть в системе переменная которая дает импульс при прохождении через счетчик 10л воды.
Мне немного проще , данные передаются ,но цепочка немного сложнее. Сначала Ардуина в качестве сенсора в составе АМС собирает данные двух температур , двух счетчиков ( любых - хоть воды , хоть элекро энергии ) и влажность с DHT , затем по радио передаёт на свой сервер ( на ЕСП или Меге ) а уже АМС передает данные Алисе. Всё работает отлично и очень автономно ( даже у сенсора есть свой LCD экран ) И если все сервера упадут , сенсор на батарейке будет работать 3 дня.
А проблема и вопрос в следующем. С температурами вопросов нет - линейный график показывает наглядно. А вот со счетчиками не все так наглядно. Единицу измерения воды могу сделать хоть 2 грамма , электро энергии 1 ватт/час.Остановился на одном литре ,чтобы ответить на вопрос - сколько литров жрет стиралка и главное сколько раз она полощет. Если график начинается с нуля , то 3-5 ступенек увидеть еще можно. А вот когда расход подойдет к 5 000 литров , то уже не увидеть.
Тут можно средствами МД разделять общий расход за месяц и текущий за день с нуля. Вот только как это сделать я пока не представляю. И если применить сторонние библиотеки для графиков , то не получается прицепить текущее число к этому графику.
Пробую разные варианты - в основном столбики , но ничего не устраивает.....
СпойлерПоказать
Chart.JPG

в том то и дело, что вы выводите график по своим импульсам, которые суммируются, поэтому и видите эти ступеньки.

Я же хочу что бы массив накапливал импульсы например в течении 15мин, сбрасывал их в другой массив а первый обнулял., тогда график расхода будет понятным, будет видно в какое время какой расход воды был. ну как то так.....
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: График расходы воды.

Сообщение blackangel » Ср фев 15, 2017 4:51 pm

итак... первая проблема, majordomo не успевает увидеть импульс.....

придется наверное писать логику на контроллере.

сейчас для пробы в MD по модбасу передаются 2 значения. 1й это импульс по высокому фронту, который MD не успевает увидеть. и 2й это именно импульс с счетчика (но через контроллер) в MD импульс видно, импульс этот держится пока не пройдет примерно еще 3л воды. т.е. грубо говоря в течении 7л импульс низкого уровня, а в течении 3л импульс высокого уровня.... боюсь что с таким раскладом его не получится использовать....
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: График расходы воды.

Сообщение serghei » Ср фев 15, 2017 5:33 pm

blackangel писал(а):итак... первая проблема, majordomo не успевает увидеть импульс.... боюсь что с таким раскладом его не получится использовать....
Вот в этом вся проблема подсчетов импульсов на СЕРВЕРЕ . Сначала надо его увидеть. Я пол года пытался это сделать и пришел к своей системе - считать надо на контроллере и уже готовое число передавать и обрабатывать на любом сервере. У меня их получается два - АМС и МД. И на любом из них можно просто умножить на цену куба воды или киловатт часа электро энергии и вывести на экран.
Вам похоже надо обработку импульса привязать к фронту или спаду и уточнить насчет дребезга контакта. На ардуине это сделать очень просто. А как на МД ---тут я не помошник (((
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: График расходы воды.

Сообщение blackangel » Ср фев 15, 2017 5:52 pm

serghei писал(а):
blackangel писал(а):итак... первая проблема, majordomo не успевает увидеть импульс.... боюсь что с таким раскладом его не получится использовать....
Вот в этом вся проблема подсчетов импульсов на СЕРВЕРЕ . Сначала надо его увидеть. Я пол года пытался это сделать и пришел к своей системе - считать надо на контроллере и уже готовое число передавать и обрабатывать на любом сервере. У меня их получается два - АМС и МД. И на любом из них можно просто умножить на цену куба воды или киловатт часа электро энергии и вывести на экран.
Вам похоже надо обработку импульса привязать к фронту или спаду и уточнить насчет дребезга контакта. На ардуине это сделать очень просто. А как на МД ---тут я не помошник (((

вопрос теперь в том, какую логику сделать на контроллере? что должно получится? считать импульсы? или как? я пока не пойму.....
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: График расходы воды.

Сообщение serghei » Ср фев 15, 2017 6:11 pm

Ваших контроллеров я не видел и не представляю их возможностей. В идеале видится так - Контроллер сам считает импульсы , желательно запоминает (или питать через батарейку ) и передает уже готовое число. Что с ним делать дальше и как выводить в графики - отдельная песня. Вся беда в том , что при пропадании питания счет пойдет с нуля. Тогда на стороне МД надо написать условие , что если следующее число меньше предыдущего ( обычно 0) , то считать с предыдущего дальше.
Сенсор передает число раз в минуту на сервер. Он уже раз в 20 секунд на МД. Получается такой график расхода эл.энергии ( с водой так же). В качестве теста устраивает , но.......хочется по другому.
Духовка.png
Длинная ступенька - духовка выключена
Духовка.png (6.42 КБ) 6908 просмотров
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: График расходы воды.

Сообщение blackangel » Ср фев 15, 2017 6:28 pm

serghei писал(а):Ваших контроллеров я не видел и не представляю их возможностей. В идеале видится так - Контроллер сам считает импульсы , желательно запоминает (или питать через батарейку ) и передает уже готовое число. Что с ним делать дальше и как выводить в графики - отдельная песня. Вся беда в том , что при пропадании питания счет пойдет с нуля. Тогда на стороне МД надо написать условие , что если следующее число меньше предыдущего ( обычно 0) , то считать с предыдущего дальше.

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

Вот так это лучше сделать, надо решить тут. если совместными усилиями мы решим например что надо так: контроллер подсчитывает импульсы в течение например 15 мин, когда таймер натикает 15 мин, то контроллер сохраняет значение в регистр и это значение улетает в MD, потом контроллер обнуляет его и заново 15 мин.... но есть некоторые но! 1е это: допустим водичка течет (набирается ванна, предположим набирается она за 20мин.) а значит импульсы идут, за 15 мин например набежало 60 импульсов (допустим) (но вода продолжает набираться) так вот, значение 60 передалось, потом оно стало 0.... а еще через 15 мин передалось значение 30 (т.е. водичка после 1й отправки еще минут 10 набиралась и все, кран закрыли) так вот прошли эти еще 15 мин, и прилетело значение 30.... получаем что график будет такого вида: 0-0-0-60-0-30-0-0-0 (тире это промежуток времени равный 15 мин.) при таком раскладе график будет с крутыми обрывами.... вот я и думаю что в итоге то нужно передать в MD что бы реализовать задуманное.

P.S. кстати у госуслуг есть API так что если цель будет достигнута, то уже подумаем как месячный расход передать на портал, автоматически=)))
Аватара пользователя
blackangel
Сообщения: 148
Зарегистрирован: Пт окт 21, 2016 2:00 pm
Благодарил (а): 31 раз
Поблагодарили: 13 раз

Re: График расходы воды.

Сообщение blackangel » Ср фев 15, 2017 6:32 pm

serghei писал(а):Ваших контроллеров я не видел и не представляю их возможностей. В идеале видится так - Контроллер сам считает импульсы , желательно запоминает (или питать через батарейку ) и передает уже готовое число. Что с ним делать дальше и как выводить в графики - отдельная песня. Вся беда в том , что при пропадании питания счет пойдет с нуля. Тогда на стороне МД надо написать условие , что если следующее число меньше предыдущего ( обычно 0) , то считать с предыдущего дальше.
Сенсор передает число раз в минуту на сервер. Он уже раз в 20 секунд на МД. Получается такой график расхода эл.энергии ( с водой так же). В качестве теста устраивает , но.......хочется по другому.
Духовка.png

график увидел уже после того как написал предыдущий пост, поэтому добавляю: тото и оно, то что у вас на графике я тоже могу сделать, но вы правильно подметили не то это..... надо думать какую формулу применить что бы график показывал реальное потребление воды в определенный промежуток времени. Поэтому и предполагаю что нужно скидывать в переменную какие то значения..... в идеале нужно получить переменную в которой будет значение: реальный расход воды л/ч например.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: График расходы воды.

Сообщение serghei » Ср фев 15, 2017 6:43 pm

Для такой математики у Вас чудовищно грубый счетчик ( 10 литров ) . У меня 2 грамма . Тогда можно считать расход в литрах в минуту и передавать его . Но мне этого не надо. Выход наверное только один - поставьте последовательно "счетчик" YF-S-201 ( 4 бакса в китае) и берите показания с него. У меня их 7 штук и можно уловить даже утечку в виде не плотно закрытого крана. Для ардуины обсуждения были ТУТ . Для госуслуг используйте Ваши данные.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить