MySensor счётчики импульсов

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

Модератор: immortal

Ответить
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

MySensor счётчики импульсов

Сообщение Ivan »

Собираем датчик
Электроэнергия - http://www.mysensors.org/build/pulse_power
Вода - http://www.mysensors.org/build/pulse_water
Газовый счётчик по типу водного. подключил обычный геркон

Датчик работает следующим образом
- При подаче питания он проверяет есть ли у него адрес в флэшь памяти. Если нет запрашивает новый адреу с GateWay и сохраняет во флэшь.
- Посылает объявление о типе датчика и версии GateWay (нас это не касается, потому что GateWay под MQTT игнорирует эту информацию)
- Далее датчик делает запрос через GateWay у система о предыдущих показаниях (Если произошёл перезапуск датчика он запросит последние данные)
- Переходит в циклический режим считывания
- Уходит в сон (Пониженное потребление) если работает от батареек. Конфигурируется при прошивке
- Если сработает импульс на сигнальной ноге (Прерывание). Датчик просыпается и добавляет к переменной импульсов 1. Если прошло заданное количество импульсов или время данные отправляются системе через GateWay

Чтобы запустился в системе MajorDomo наш датчик нам нужно сделать следующие действия
1. Создать класс mysensor
SPOILERSPOILER_SHOW
MySensor.zip
Объект MySensor
(1.99 КБ) 166 скачиваний
2. Создаем класс счётчики
SPOILERSPOILER_SHOW
MySCounter.zip
Объект MySCounter
(1018 байт) 175 скачиваний
3. Создаём объект например WaterCounter
4. Далее заполняем его свойства
SPOILERSPOILER_SHOW
Изображение
5. Создаем ссылку запроса предыдущих данных в MQTT
SPOILERSPOILER_SHOW
Изображение
Изображение
6. Включаем датчик. У нас должно появится в MQTT переменная \1\V_VAR2 со значением REQ
Линкуем её к свойству объекта REQ
SPOILERSPOILER_SHOW
Изображение
7. Выключаем и включаем датчик. После этого он должен заработать. И прислать данные о батарейки температуре и импульсах

Всё датчик теперь будет присылать данные

Вся загвоздка заключается в том что MySensor в MajorDomo не предусмотренны (пока). И приходится делать ответы на запросы датчиков по средством скриптов.

Из-за этого пришлось переработать скетчь для датчиков.
Переработанные скетч прилогаю

Также в классах счётчиков предусмотрен подсчёт количества и потока и начального значения. Чтобы не перешивать датчик.
Для этого в свойствах объекта нужно указать коэффициент расхода на 1 тик и начальное значение счётчика. Начальное значение счётчика нужно чтобы исправлять показания не пере запуская датчик (Если он в трудно доступном месте)
Вложения
BathRoomSensor.zip
Скетч для датчика воды
(2.16 КБ) 178 скачиваний
GazCounter.zip
Скетч для датчика газа
(2.76 КБ) 156 скачиваний
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
geor
Сообщения: 83
Зарегистрирован: Сб май 17, 2014 2:52 am
Откуда: Новосибирск

Re: MySensor счётчики импульсов

Сообщение geor »

Сделал по Вашему мануалу, счетчик воды аналогичный. Счетчик воды не хочет работать с прерываниями. Попробовал скетч отсюда http://forum.mysensors.org/topic/1282/w ... w-sensor/4 - счетчик работает. Не могу понять в чем моя ошибка?
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

Re: MySensor счётчики импульсов

Сообщение Ivan »

Включите отлалку и смотрите что пишет
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
geor
Сообщения: 83
Зарегистрирован: Сб май 17, 2014 2:52 am
Откуда: Новосибирск

Re: MySensor счётчики импульсов

Сообщение geor »

log монитора: sensor started, id 27
send: 27-27-0-0 s=255,c=0,t=17,pt=0,l=5,st=ok:1.4.1
send: 27-27-0-0 s=255,c=3,t=6,pt=1,l=1,st=ok:0
read: 0-0-27 s=255,c=3,t=6,pt=0,l=1:M
send: 27-27-0-0 s=255,c=3,t=11,pt=0,l=16,st=ok:Bath Room Sensor
send: 27-27-0-0 s=255,c=3,t=12,pt=0,l=3,st=ok:1.0
send: 27-27-0-0 s=1,c=0,t=21,pt=0,l=5,st=ok:1.4.1
send: 27-27-0-0 s=1,c=1,t=25,pt=0,l=3,st=ok:REQ

"7. Выключаем и включаем датчик. После этого он должен заработать. И прислать данные о батарейки температуре и импульсах"
Это пункт не проходит.
В строке "attachInterrupt(INTERRUPT, onPulse, RISING);" пробовал менять RISING на FALLING -не прокатило.
Ivan
Сообщения: 1474
Зарегистрирован: Сб окт 12, 2013 11:03 pm

Re: MySensor счётчики импульсов

Сообщение Ivan »

У вас был отправлен запрос предыдущих покащаний. Проверьте привязан ли REQ к свойстру объекта req. И стоить ли на свойстве выполнение метода doreq при изменении свойства req. Напишите в личку могу посмотреть удаленно что у вас получается
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Ответить