MQTT: различия между версиями

Нет описания правки
Строка 103: Строка 103:
==== Управление устройствами из командной строки ==== <!--T:20-->
==== Управление устройствами из командной строки ==== <!--T:20-->


<!--T:21-->
Для управления устройством (изменения значения канала), необходимо отправить сообщение в топик "/devices/<device-id>/controls/<control-id>/on" (обратите внимание на /on в конце).
Как следует из написанного выше, для управления устройством (изменения значения канала), необходимо отправить сообщение в топик "/devices/<device-id>/controls/<control-id>/on" (обратите внимание на /on в конце).
Это делается с помощью консольной команды mosquitto_pub . Пример:
Это легко сделать с помощью консольной команды mosquitto_pub . Пример:
 
<!--T:22-->
<pre>
<pre>
mosquitto_pub -t "/devices/wb-gpio/controls/Relay_1/on" -m "1"
mosquitto_pub -t "/devices/wb-gpio/controls/Relay_1/on" -m "1"
</pre>
</pre>
команда включает реле 1 (канал "Relay_1" устройства "wb-gpio").
==== Подписка на топик ==== <!--T:11-->
<!--T:12-->
Клиенты, которые хотят следить за значением температуры, "подписываются" на этот топик, и им приходят все новые сообщения - меняющиеся значения температуры. Один из таких клиентов - веб-интерфейс.


<!--T:23-->
<!--T:13-->
команда включает реле 1 (канал "Relay_1" устройства "wb-gpio").
Подписаться на сообщения можно и из консоли Linux при помощи утилиты '''mosquitto_sub''' (полное описание утилиты смотрите на [http://mosquitto.org/man/mosquitto_sub-1.html]):
<pre>
root@wirenboard:~# mosquitto_sub -t '/devices/wb-w1/controls/28-000004a7d3f9' -v
/devices/wb-w1/controls/28-000004a7d3f9 20.312000 //в этой строке и ниже - вывод утилиты, полученные сообщения
/devices/wb-w1/controls/28-000004a7d3f9 20.312000
/devices/wb-w1/controls/28-000004a7d3f9 20.375000
</pre>
Подписаться можно не только на один топик, но и на группу по wildcard:
<pre>
root@wirenboard:~# mosquitto_sub -t '/devices/wb-w1/#' -v
/devices/wb-w1/meta/name 1-wire Thermometers
/devices/wb-w1/controls/28-000004a7d3f9 23.312000
/devices/wb-w1/controls/28-000004a7d3f9/meta/type temperature
/devices/wb-w1/controls/28-000004a7d3f9 23.312000
/devices/wb-w1/controls/28-000004a7d3f9 23.312000
</pre>
, где ''#'' - означает любое количество топиков. Соответственно, вывелись не только значения с "контрола" устройства, но и топики с метаданными - название драйвера устройства и тип "контрола" - ''temperature''.


==== Очистка очереди сообщений ==== <!--T:26-->
==== Очистка очереди сообщений ==== <!--T:26-->