MQTT: различия между версиями
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 103: | Строка 103: | ||
==== Управление устройствами из командной строки ==== <!--T:20--> | ==== Управление устройствами из командной строки ==== <!--T:20--> | ||
Для управления устройством (изменения значения канала), необходимо отправить сообщение в топик "/devices/<device-id>/controls/<control-id>/on" (обратите внимание на /on в конце). | |||
Это делается с помощью консольной команды mosquitto_pub . Пример: | |||
Это | |||
<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--> | ||
Подписаться на сообщения можно и из консоли 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--> |