Счетчики

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

Модератор: immortal

Ivan
Сообщения: 1473
Зарегистрирован: Сб окт 12, 2013 11:03 pm
Благодарил (а): 49 раз
Поблагодарили: 327 раз

Re: Счетчики

Сообщение Ivan » Пн авг 03, 2015 9:47 am

Я забыл что мегадевайс не спит и debunce можно делать программно. Mysensor сигнал сидит на прерывании
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: Счетчики

Сообщение skysilver » Пн авг 03, 2015 10:48 am

Да, жаль, что тема остановилась на полпути. А я так ждал результата. :)

Недождавшись, реализовал у себя такой алгоритм работы с счетчиками воды на базе МегаД.

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

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

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

А если стремиться к идеалу, то надо вообще делать аппаратный логгер со встроенной энергонезависимой памятью для истории значений и батареей на случай отключения электричества. Но как по мне, дак это уже слишком. :)
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
erandess
Сообщения: 50
Зарегистрирован: Пт окт 03, 2014 9:04 am
Благодарил (а): 2 раза
Поблагодарили: 14 раз

Re: Счетчики

Сообщение erandess » Пн авг 03, 2015 11:31 am

Для меня проблемой был сброс счетчика мегадевайса при пропадании электричества. Пока повесил мегу на бесперебойник.
Тоже думаю об аппаратном счетчике с независимым питанием. Есть вариант на 1-wire http://dom-v-provodah.ru/post/50.
skysilver
Сообщения: 3006
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 400 раз
Поблагодарили: 1754 раза
Контактная информация:

Re: Счетчики

Сообщение skysilver » Пн авг 03, 2015 11:49 am

С учетом цены на модуль двухканального счетчика (на базе DS2423), который приведен в статье по ссылке, имхо гораздо целесообразнее приобрести ИБП на 12В, который используют в охранных системах и системах видеонаблюдения. Профита от такого вложения средств будет больше. :)
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Ответить