Страница 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
СпойлерПоказать
MySensor.zip
Объект MySensor
(1.99 КБ) 152 скачивания
2. Создаем класс счётчики
СпойлерПоказать
MySCounter.zip
Объект MySCounter
(1018 байт) 161 скачивание
3. Создаём объект например WaterCounter
4. Далее заполняем его свойства
СпойлерПоказать
Изображение
5. Создаем ссылку запроса предыдущих данных в MQTT
СпойлерПоказать
Изображение
Изображение
6. Включаем датчик. У нас должно появится в MQTT переменная \1\V_VAR2 со значением REQ
Линкуем её к свойству объекта REQ
СпойлерПоказать
Изображение
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. Напишите в личку могу посмотреть удаленно что у вас получается