2485
правок
Admin (обсуждение | вклад) |
Admin (обсуждение | вклад) |
||
Строка 76: | Строка 76: | ||
<!--T:17--> | <!--T:17--> | ||
Подпишемся на сообщения о состоянии | Подпишемся на сообщения о состоянии первого реле подключённого по RS-485 релейного модуля WB-MRM2: | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
root@wirenboard:~# mosquitto_sub -t | root@wirenboard:~# mosquitto_sub -t "/devices/wb-mrm2_130/controls/Relay 1/#" -v | ||
/devices/wb- | /devices/wb-mrm2_130/controls/Relay 1/meta/type switch | ||
/devices/wb- | /devices/wb-mrm2_130/controls/Relay 1/meta/order 1 | ||
/devices/wb- | /devices/wb-mrm2_130/controls/Relay 1 0 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Тут стоит отметить, что MQTT сохраняет часть сообщений (а именно | Тут стоит отметить, что MQTT сохраняет часть сообщений (а именно те, которые при отправке были помечены флагом ''retained'') вечно, поэтому после подписки вы получите даже те сообщения, которые были отправлены раньше, чем вы подписались. | ||
<!--T:18--> | <!--T:18--> | ||
Релейный модуль управляется драйвером [[Драйвер wb-mqtt-serial]]. У него есть соответствующий топик-"канал"("контрол") ''Relay 1''. У него самого есть значение - ''0'' (реле выключено), и есть два подтопика. Один из них - служебный: в ''/meta/type'' записан тип "контрола". Здесь он ''switch'' - выключатель. Второй подтопик ''/on'' - интереснее: в него клиенты пишут то состояние, в которое они хотят установить реле. Заметим, что оно может не совпадать (и обычно не совпадает) с тем состоянием, в котором реле находится. Драйвер при этом ведёт себя следующим образом: при получении сообщения в топик ''/devices/wb-gpio/controls/Relay_1/on'' он физически устанавливает его на реле, а лишь затем записывает новое значение реле в топик ''/devices/wb-gpio/controls/Relay 1''. | |||
<!--T:19--> | <!--T:19--> | ||
Например, если мы сейчас | Например, если мы сейчас нажмём на кнопку реле в веб-интерфейсе (переключим его состояние), то получим новые сообщения: | ||
<pre> | <pre> | ||
/devices/wb- | /devices/wb-mrm2_130/controls/Relay 1/on 1 | ||
/devices/wb- | /devices/wb-mrm2_130/controls/Relay 1 1 | ||
</pre> | </pre> | ||
- веб-интерфейс сначала "даёт указание" включить реле, потом драйвер его включает и | - веб-интерфейс сначала "даёт указание" включить реле, потом драйвер его включает и записывает актуальное состояние в "канал"("контрол"). | ||
==Работа с очередью сообщений== | ==Работа с очередью сообщений== |