Skip to content

Целью проекта является поддержка приема сигналов от различных радиоустройств диапазона 433.92 (метеодатчики, пульты и т.п.) с помощью радиомодуля RFM69 и ядерного linux драйвера, эмулирующего lirc устройство

License

wirenboard/rfsniffer

 
 

Repository files navigation

rfsniffer

Целью проекта является поддержка приема сигналов от различных радиоустройств диапазона 433.92 (метеодатчики, пульты и т.п.) с помощью радиомодуля RFM69 и ядерного linux драйвера, эмулирующего lirc устройство

Сборка пакета

До сборки

Для сборки требуется Docker контейнер из http://contactless.ru/wiki/index.php/%D0%9A%D0%B0%D0%BA_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%B0%D1%82%D1%8B%D0%B2%D0%B0%D1%82%D1%8C_%D0%9F%D0%9E_%D0%B4%D0%BB%D1%8F_Wiren_Board (если контейнере нет пакетов dh-exec и dh-autoreconf, то устанавливаем (./wbdev_additional_installs.sh))

Сборка deb-пакета

Сборка deb-пакета:

  • #./build_deb.sh Или же вручную:
  • #dpkg-buildpackage -rfakeroot -us -uc (в корне проекта)

Если возникают странные ошибки полезно сделать

  • #dpkg-buildpackage -T clean

При разработке не обязательно пересобирать пакет

  • #make clean && make -j<core_number>

Будьте готовы, сборка идет довольно долго.

Сборка исполняемых файлов (отдельно)

Сборка исполняемых файлов:

  • autoreconf -fvi
  • ./configure
  • make

В результате получается 2 нужных файла:

  • wb-homa-rfsniffer-test (tests/)
  • wb-homa-rfsniffer (rfsniffer/)

Необходимо скопировать wb-homa-rfsniffer и wb-homa-rfsniffer-test куда-либо на устройство

Полезные флаги запуска

  • -g gpio - set custom DIO0 GPIO number
  • -s spi_device - set custom SPI device
  • -l lirc_device - set custom lirc device. If it is set with '/dev/null' driver will not read from it but still will not exit
  • -m mqtt_host - set custom mqtt host
  • -W - write all data from lirc device to file until signal from keyboard
  • -w - like -W but simultaneously do normal work of driver
  • -r rssi - reset RSSI Threshold after each packet with given value
  • -f mode - Use OokFixedThresh with fixed level
  • -T - disable pedantic check of lirc character device (may use pipe instead). Disable using SPI and RFM, do specific test output
  • -c configfile - specify config file (parameters in config file are priority). Also you can put config itself.

Установка

Как обычный deb-пакет. Неочевидный момент, исполняемый файл - /usr/bin/wb-homa-rfsniff (это связано с ограничениями на максимальную длину имени исполняемого файла для start-stop-daemon).

Json config

Большинство настроек можно передавать испольняемому файлу через json config. Пример в rfsniffer/rfsniffer.json. Использование конфига делается через -c <config.json> (в deb пакете нужный файл с настройками будет установлен автоматически) Из полезных настроек, там можно задать:

  • Активные протоколы. Это влияет на производительность и может разрешить случаи неправильного определения устройств.
  • Активные функции. Например, передача радиосообщений.
  • Показывать ли все устройства, от которых приходят сообщения, или только те про которые это явно сказано
  • Для каждого устройства можно задать политику - показывать или скрывать это устройство, кроме этого можно сказать, что если, например, от устройства нет сигналов в течение 2 минут, то стоит выдать ошибку. (При изменении политики само устройство не исчезнет, делаем mqtt-delete-retained /devices/noolite_rx_0x14e5/#, только с нужным названием устройства)

Поддерживаемые устройства

rfsniffer слушает эфир через RFM69 и

  • При приеме данных от сенсора RST создает устройство(или обновляет показания) RST_{id сенсора} с двумя контролами (температура, влажность)

  • При приеме данных от сенсора Oregon (поддерживаются V2.1 и V3.0) создает устройство(или обновляет показания) oregon_rx_{тип сенсора}{id сенсора}{канал} Поддерживаемые устройства (уверенно 1D20, вполне вероятно 1D30, F824, F8B4, EC40, C844, EC70, D874, 1994, 1984, 2914, 2D10, 5D60)

  • При приеме данных от сенсора NooLite создает устройство noolite_rx_... (поддерживаются PT111, PM111, PM112)

  • При приеме данных от передатчика X10 создает устройство X10 (или обновляет последнюю команду)

  • При приеме данных от пультов Livolo или Raex создает устройство Remotes(или обновляет) с контролами Raex и Livolo, содержащими последнюю команды

  • Устройства на чипах HS1527, HS2241 (скорее всего и других из этой линейки). Имя hs24bits_{msg}_{channel}

  • Устройства на чипах EV1527 (VHome и безымянные). Имя ev1527_...

  • Устройства VHome (работает только при отключенном ev1527, так как использует тот же протокол, при этом исопльзует более удобный формат). Имя vhome_...

  • Пока не работает передача команд от устройст Noolite TX 0xd61 (61, 63) из интерфейса wirenboard

При необходимости могут быть добавлены почти любые устройства, использующие для обмена OOK модуляцию на частоте 433.92Mhz.

Сообщить об ошибке

  • Стоит приложить /run/wb-homa-rfsniffer.log
  • Или, чтобы дать больше информации запустить вручную /usr/bin/wb-homa-rfsniff -c /etc/wb-homa-rfsniffer.conf и приложить его вывод.
  • При проблемах с поддержкой устройства нужно запустить /usr/bin/wb-homa-rfsniff -W, подождать получения плохо обрабатываемых сигналов и потом скопировать все файлы .rcf и приложить. В них записаны все полученные сообщения. Это позволит смоделировать ситуацию и исправить ошибки.

About

Целью проекта является поддержка приема сигналов от различных радиоустройств диапазона 433.92 (метеодатчики, пульты и т.п.) с помощью радиомодуля RFM69 и ядерного linux драйвера, эмулирующего lirc устройство

Resources

License

Stars

Watchers

Forks

Languages

  • C++ 77.8%
  • Jupyter Notebook 10.4%
  • C 8.9%
  • Shell 1.5%
  • Python 1.3%
  • M4 0.1%