Страница 1 из 1

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

Добавлено: Пт июн 19, 2015 3:00 pm
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 КБ) 167 скачиваний
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 тик и начальное значение счётчика. Начальное значение счётчика нужно чтобы исправлять показания не пере запуская датчик (Если он в трудно доступном месте)

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

Добавлено: Сб июн 20, 2015 12:02 pm
geor
Сделал по Вашему мануалу, счетчик воды аналогичный. Счетчик воды не хочет работать с прерываниями. Попробовал скетч отсюда http://forum.mysensors.org/topic/1282/w ... w-sensor/4 - счетчик работает. Не могу понять в чем моя ошибка?

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

Добавлено: Сб июн 20, 2015 2:23 pm
Ivan
Включите отлалку и смотрите что пишет

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

Добавлено: Вс июн 21, 2015 4:55 pm
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 -не прокатило.

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

Добавлено: Вс июн 21, 2015 10:31 pm
Ivan
У вас был отправлен запрос предыдущих покащаний. Проверьте привязан ли REQ к свойстру объекта req. И стоить ли на свойстве выполнение метода doreq при изменении свойства req. Напишите в личку могу посмотреть удаленно что у вас получается