Giter Site home page Giter Site logo

wb-mqtt-astra's Introduction

Что это?

Этот репозиторий служит для разработки и распространения драйвера для интеграции устройств серии систем безопасности "Астра" и контроллеров автоматизации WirenBoard.

Проверена работоспособность драйвера совместно со следующими устройствами:

  1. Wiren Board 5 rev 5.8
  2. Wiren Board 3.5
  3. Астра РИ-М РР с прошивкой RRs-rim-av3_0
  4. Различные извещатели

Преверена работа с единственным Астра РИ-М на канале. Теоретически драйвер должен работать с любым количеством РИ-М на канале (в пределах 250 штук, в связи со спецификой протокола), а так же с Астра-Z и любыми извещателями от Теко, совместимыми с Астра РИ-М и Астра-Z.

FYI: Рекомендую покупать Астра-Z, а не Астра РИ-М, из-за того, что у последнего есть небольшая путаница в радиорежимах (например если вы захотите использовать датчик протечки и датчик температуры — ничего не выйдет, т.к. первому нужен радиорежим 1, а второму — 2), в то же время для Астра-Z нет (и не будет) датчика изменения положения (впрочем и сам этот датчик для РИ-М снят с производства).

Перед началом работы

Устройства Астра-РИ-М выходят с завода в режиме "автономный", он не предполагает работу в качестве ведомого устройства на линии RS-485, в связи с этим необходимо переключить РИ-М в режим "системный". Делается это заменой прошивки, для чего потребуется загрузить и установить ПО ПКМ Астра Pro (во время установки убедитесь, что среди модулей ПКМ активирована галочка рядом с модулем смены ПО), и далее следуйте документации из Инструкции пользователя, раздел "Смена ПО на РР для работы в режиме «Системный»".

NB После обновления прошивки не забудьте обновить прошивку радиомодуля. И уже после прошивки радиомодуля необходимо сделать очистку памяти, согласно документации (очистка памяти требует сноровки и ловкости рук — может понадобиться несколько попыток, прежде чем у вас получится это сделать).

Использование

Установка

Для удобства установки и обновления, с помощью сервиса packagecloud.io был создан репозиторий, после настройки которого вы сможете установить пакет как обычно, с помощью команды apt-get install wb-mqtt-astra.

Так же можно установить всё вручную, из текущего репозитория: найдите последнюю версию драйвера в разделе Releases и загрузите её на WirenBoard командой (не забудьте заменить ссылку на корректную)

wget https://github.com/andrey-yantsen/wb-mqtt-astra/releases/download/v0.1/wb-mqtt-astra_0.1_armel.deb

Затем установите (имя файла определяется в результате выполнения предыдущей команды):

dpkg -i wb-mqtt-astra_0.1_armel.deb

Настройка

Отредактируйте файл /etc/default/wb-mqtt-astra в соответствии с вашей установкой: для корректной работы драйвера достаточно указать опции serial (по умолчанию /dev/ttyAPP4) и address (при наличии нескольких устройств Астра РИ-М на одной шине нужно указывать адреса в таков формате: -address 1 -address 2 -address 3). Если вы ещё не регистрировали РИ-М (т.е. не изменяли стандартный адрес), то значение адреса можно выбрать любое, в диапазоне от 1 до 250. Чтобы работать с РИ-М, который подключен к порту /dev/ttyAPP3 и имеет (или будет иметь) адрес 5 — необходимо установить переменную ASTRA_OPTIONS='-serial /dev/ttyAPP3 -address 5'. После задания настроек запустите фоновый процесс: invoke-rc.d wb-mqtt-astra start.

Привязка Астра РИ-М и извещателей

Откройте раздел Devices в вэб-интерфейсе WirenBoard и найдите блок с заголовком astra_1 (где 1 — адрес устройства, указанный при настройке). Переключите триггер register в положение on, чтобы зарегистрировать РИ-М. При успешной регистрации триггер delete перейдёт в off, а register станет чекбоксом с установленной галочкой.

По умолчанию РИ-М будет работать в частоте "1" (соответстует извещателям с пометкой лит. 1), чтобы изменить канал — необходимо переключить контрол l2_channel в желаемое положение. При изменении частоты все зарегистрированные извещатели будут забыты.

После регистрации РИ-М можно привязывать извещатели, для этого в том же интерфейсе нужно активировать триггер register_l2, дождаться, пока на РИ-М замигает светодиод радиосеть и установить аккумулятор в регистрируемый извещатель. После регистрации извещатель появится в списке устройств, а триггер register_l2 переключится в состояние off.

При регистрации нового извещателя в MQTT публикутеся минимальное количество контроллов (в интерфейсе WB будет видно только delete), для получения полного списка необходимо заставить извещатель сработать — намочить датчик протечки, передвинуть датчик изменения положения и т.д.

Видео-инструкция доступна по ссылке http://take.ms/xpOEm.

Часть контролов отображаются в 2 экземплярах — "подтверждённая" и "не подтверджённая" тревога, например Channel1 и Channel1_confirmed для датчика протечки. "Подтверждённая" тревога меняет своё состояние через несколько секунд после изменения "не подтверждённой". К сожалению мне не удалось добиться стабильной отправки с извещателей событий об изменении состояния подтверждённой тревоги, в связи с этим я рекомендую её игнорирвать.

MQTT

Обработка и заполнение MQTT происходит в соответствии с соглашением WirenBoard. Список контроллов и описание выполняемых ими действий доступны в файле controls.md.

Удаление зарегистрированого РИ-М / Z

Чтобы удалить устройство с адресом 1 запустите следующую команду в консоли:

wb-mqtt-astra -address 1 -serial /dev/ttyAPP4 -delete-device

После удаления РИ-М / Z перестают отвечать по зарегистирированному ранее адресу и отвечают только на широковещательные запросы (поиск устройств, регистрация). После удаления необходимо очистить MQTT, удалив как информацию об удалённом РИ-М, так и данные о всех связанных извещателях (не забудьте подставить корректный адрес РИ-М и номер извещателя, и повторите вторую команду необходимое количество раз, в зависимости от количества зарегистрированных извещателей):

mqtt-delete-retained '/devices/astra_1/#'
mqtt-delete-retained '/devices/astra_1_sensor_1/#'

Troubleshooting (оформление ошибок)

При возникновении нештатных ситуаций (вылетает демон, не работают какие-то функции, и т.п.) необходимо правильно составить баг-репорт, в противном случае помочь вам в решении данной проблемы у меня не получится.

  1. В первую очередь обновите демон до последней версии и убедитесь, что проблема всё ещё не исправлена
  2. Проверьте корректность подключения Астра РИ-М / Z и WirenBoard
  3. Выполните очистку памяти РИ-М / Z согласно документации (только при проблемах связи между Астра и WB)
  4. Если после выполнения первых 3 пунктов проблема не устранилась, то остановите демоны wb-mqtt-serial и wb-mqtt-astra:
invoke-rc.d wb-mqtt-serial stop
invoke-rc.d wb-mqtt-astra stop
  1. Запустите демон wb-mqtt-astra в отладочном режиме, с записью лога в файл: . /etc/default/wb-mqtt-astra && wb-mqtt-astra -debug ${ASTRA_OPTIONS} >astra-debug.log 2>&1. После того, как в интерфейсе проделаны все действия для повторения проблемы — завершите процесс нажатием Ctrl+C. Просмотрите получившийся лог-файл astra-debug.log и убедитесь, что проблема вызвана не ошибкой конфигурирования
  2. Опубликуйте полученный лог-файл в виде gist
  3. Создайте issue с детальным описанием проблемы (как минимум — полностью опишите все шаги, проделанные для воспроизведения проблемы, так же опишите, что должно было получиться в результате выполнения этих действий, и что на самом деле получилось) и добавьте ссылку на gist из предыдущего пункта.

wb-mqtt-astra's People

Contributors

andrey-yantsen avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

odinvolk

wb-mqtt-astra's Issues

Некорректная работа пульта РПДК в РИ-М

Добрый день! А подключали ли вы к РИМ пульт РПДК? Вот такой:
https://support.wirenboard.com/uploads/default/original/2X/c/cc6b08859e410d52e81a95ccad0226e7e6203f0c.jpeg
После подключения устройство имеет такой вид:
https://support.wirenboard.com/uploads/default/original/2X/9/97a3b826b2eb55d31107fc02a42eb672cfaeef0c.png
После я нажимал все три кнопки сверху вниз, и вот что появлялось:
https://support.wirenboard.com/uploads/default/original/2X/3/3c4e157ad85e392b266ce586e5c24d06a0b68367.png
https://support.wirenboard.com/uploads/default/original/2X/a/ab5eb9187c5fcb467262b9e96067b70e7cbb74f3.png
https://support.wirenboard.com/uploads/default/original/2X/e/e48481b8ed779f224e5db545f74b7b484ed09247.png
Но теперь нажимай не нажимай на кнопки, никакие чекбоксы не изменяются, ничего не происходит, только в RSSI цифры меняются, как быть то?
https://gist.github.com/well3n41k/7066e420eba151a5bcf7ab1dd0676143

astra после перезагрузки не отвечает

<script src="https://gist.github.com/Deepinsideyou/259439e74596592786c766743c6bf4d4.js"></script>

после перезагрузки опять таже проблема - датчики астры не видно. состояние last event меняется, но channel 1 не срабатывает

Бесконечно постит состояния всех зарегистрированных датчиков

Сегодня случился интересный случай, на Wirenboard 3.5 перестали работать датчики 1w, радио модуль, и не менялись состояния датчиков wb-mqtt-astra.
Подписался на все топики - оказалось что wb-mqtt-astra беспрерывно постит состояние всех датчиков с такой скоростью, что WB не справился с их обработкой и перестали работать другие службы WB.
Перезапуск wb-mqtt-astra не помог, помогла только перезагрузка Астра-РИ-М по питанию.

Проблема с астрой РИМ

Добрый день!

Проблема с AStra. до определенного момента все работало хорошо. начал копаться с wb-mqtt-serial - проблемы со связью одного блока wb-mr14 и отвалились все датчики. Думал сбил канал - провобовал во всех вариантах 1-2-3, перезапускал - не работают датчики... что посоветуете?

<script src="https://gist.github.com/Deepinsideyou/293f8ae9026bb7f3ffff8a78df33c1bf.js"></script>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.