Счетчики
Модератор: immortal
-
- Сообщения: 1473
- Зарегистрирован: Сб окт 12, 2013 11:03 pm
- Благодарил (а): 49 раз
- Поблагодарили: 327 раз
Re: Счетчики
Я забыл что мегадевайс не спит и debunce можно делать программно. Mysensor сигнал сидит на прерывании
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Счетчики
Да, жаль, что тема остановилась на полпути. А я так ждал результата. 
Недождавшись, реализовал у себя такой алгоритм работы с счетчиками воды на базе МегаД.
В основе лежат следующие способы получения и обработки данных:
1. МегаД сам сообщает MajorDoMo, что на вход пришел импульс от счетчика. Метод в MajorDoMo при этом просто делает приращение свойства, в котором хранится общее число импульсов счетчика за все время работы. Таким образом получаем по сути общие показания счетчика. Одновременно обновляются пара других свойств, в которых хранятся общий расход в литрах и м.куб.
2. Метод в MajorDoMo раз в час делает запрос к МегаД, получает количество импульсов от счетчиков за час и сбрасывает (обнуляет) внутренний счетчик МегаД. Значения сохраняются в свойство, имеющее историю значений (для графика почасового расхода воды). Также каждый час идет подсчет общих показаний счетчиков на основе данных из базы данных. Т.е. имеется два варианта общих показаний счетчика, которые в идеале должны быть равны. Но бывает, что появляется расхождения, и тогда приходится корректировать показания вручную.
3. Раз в сутки вызывается метод, который делает выборку по базе данных и сохраняет значение суточного расхода в свойство, имеющее историю значений (для графика суточного расхода воды). В этом же методе делается проверка на последний день месяца - если месяц закончился, то сохраняется значение месячного расхода.
Про подсчет оставшегося времени до следующей поверки счетчиков, или перевода расхода воды в рубли, даже не говорю - это довольно просто.
Конечно, такой алгоритм имеет свои точки отказа. Но меня пока и в таком виде устраивает. Желательно бы еще сделать проверку на наличие в базе предыдущих значений суточного и месячного расхода перед записью в нее текущего значения, чтобы не было пропусков.
А если стремиться к идеалу, то надо вообще делать аппаратный логгер со встроенной энергонезависимой памятью для истории значений и батареей на случай отключения электричества. Но как по мне, дак это уже слишком.

Недождавшись, реализовал у себя такой алгоритм работы с счетчиками воды на базе МегаД.
В основе лежат следующие способы получения и обработки данных:
1. МегаД сам сообщает MajorDoMo, что на вход пришел импульс от счетчика. Метод в MajorDoMo при этом просто делает приращение свойства, в котором хранится общее число импульсов счетчика за все время работы. Таким образом получаем по сути общие показания счетчика. Одновременно обновляются пара других свойств, в которых хранятся общий расход в литрах и м.куб.
2. Метод в MajorDoMo раз в час делает запрос к МегаД, получает количество импульсов от счетчиков за час и сбрасывает (обнуляет) внутренний счетчик МегаД. Значения сохраняются в свойство, имеющее историю значений (для графика почасового расхода воды). Также каждый час идет подсчет общих показаний счетчиков на основе данных из базы данных. Т.е. имеется два варианта общих показаний счетчика, которые в идеале должны быть равны. Но бывает, что появляется расхождения, и тогда приходится корректировать показания вручную.
3. Раз в сутки вызывается метод, который делает выборку по базе данных и сохраняет значение суточного расхода в свойство, имеющее историю значений (для графика суточного расхода воды). В этом же методе делается проверка на последний день месяца - если месяц закончился, то сохраняется значение месячного расхода.
Про подсчет оставшегося времени до следующей поверки счетчиков, или перевода расхода воды в рубли, даже не говорю - это довольно просто.
Конечно, такой алгоритм имеет свои точки отказа. Но меня пока и в таком виде устраивает. Желательно бы еще сделать проверку на наличие в базе предыдущих значений суточного и месячного расхода перед записью в нее текущего значения, чтобы не было пропусков.
А если стремиться к идеалу, то надо вообще делать аппаратный логгер со встроенной энергонезависимой памятью для истории значений и батареей на случай отключения электричества. Но как по мне, дак это уже слишком.

MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 50
- Зарегистрирован: Пт окт 03, 2014 9:04 am
- Благодарил (а): 2 раза
- Поблагодарили: 14 раз
Re: Счетчики
Для меня проблемой был сброс счетчика мегадевайса при пропадании электричества. Пока повесил мегу на бесперебойник.
Тоже думаю об аппаратном счетчике с независимым питанием. Есть вариант на 1-wire http://dom-v-provodah.ru/post/50.
Тоже думаю об аппаратном счетчике с независимым питанием. Есть вариант на 1-wire http://dom-v-provodah.ru/post/50.
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1754 раза
- Контактная информация:
Re: Счетчики
С учетом цены на модуль двухканального счетчика (на базе DS2423), который приведен в статье по ссылке, имхо гораздо целесообразнее приобрести ИБП на 12В, который используют в охранных системах и системах видеонаблюдения. Профита от такого вложения средств будет больше. 

MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram