MQTT: различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 8: | Строка 8: | ||
<img src="https://docs.google.com/drawings/d/10EKkSP6j3nM2OYGFicYATNuu1m52a-5p6MbMN6UNQes/pub?w=480&h=360"> | <img src="https://docs.google.com/drawings/d/10EKkSP6j3nM2OYGFicYATNuu1m52a-5p6MbMN6UNQes/pub?w=480&h=360"> | ||
Специальные драйверы (отдельный для каждой функции и внешнего устройства) | Специальные "драйверы" (отдельный для каждой функции контроллера и внешнего устройства) транслируют данные с устройства в очередь в виде сообщений специального формата. Сообщения из этой очереди получает веб-интерфейс и движок правил. Они же могут добавлять туда новые сообщения - например, "включить реле" после получения нажатия в интерфейсе или выполнения нужных условий в каком-нибудь правиле. | ||
== Список поддержанных функций и устройств == | == Список поддержанных функций и устройств == |
Версия 14:45, 22 апреля 2015
MQTT - очередь сообщений, использующаяся в Wiren Board. Большая часть встроенных функций контроллера (АЦП, реле, транзисторный выход, watchdog) и внешних совместимых устройств транслируются туда в виде сообщений и реагируют на управляющие сообщения оттуда. Веб-интерфейс работает также через систему сообщений MQTT - нажатие кнопки в интерфейсе вызывает отправку сообщения сообщения в MQTT-брокер, изменение показания датчика, поступившее в систему сообщений, тут же транслируется в веб-интерфейс.
Базовая информация по MQTT - http://en.wikipedia.org/wiki/MQTT. Используемый демон - брокер сообщений Mosquitto.
Краткая схема работы
Архитектура ПО Wiren Board:
<img src="https://docs.google.com/drawings/d/10EKkSP6j3nM2OYGFicYATNuu1m52a-5p6MbMN6UNQes/pub?w=480&h=360">
Специальные "драйверы" (отдельный для каждой функции контроллера и внешнего устройства) транслируют данные с устройства в очередь в виде сообщений специального формата. Сообщения из этой очереди получает веб-интерфейс и движок правил. Они же могут добавлять туда новые сообщения - например, "включить реле" после получения нажатия в интерфейсе или выполнения нужных условий в каком-нибудь правиле.
Список поддержанных функций и устройств
Смотрите https://github.com/contactless/wb-homa-drivers
Использование данных внешними программами
Для многих языков программирования есть библиотеки MQTT.
Существует консольная утилита mosquitto_sub, используя которую можно подписаться на интересующие сообщения. Сообщения будут выводиться в stdout. Описание утилиты: http://mosquitto.org/man/mosquitto_sub-1.html, описание системы подписки: http://mosquitto.org/man/mqtt-7.html.
Система правил
Вы можете написать свои правила на языке Javascript. Подробнее смотрите https://github.com/contactless/wb-rules