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

Новая страница: «Let's subscribe to the status messages of the first relay connected via RS-485 of the WB-MRM2 relay module: <syntaxhighlight lang="bash"> root@wirenboard:~# mosqu…»
(Новая страница: «=== Message structure commands to change the state of the devices ===»)
(Новая страница: «Let's subscribe to the status messages of the first relay connected via RS-485 of the WB-MRM2 relay module: <syntaxhighlight lang="bash"> root@wirenboard:~# mosqu…»)
Строка 75: Строка 75:
=== Message structure commands to change the state of the devices ===
=== Message structure commands to change the state of the devices ===


Подпишемся на сообщения о состоянии первого реле подключённого по RS-485 релейного модуля WB-MRM2:
Let's subscribe to the status messages of the first relay connected via RS-485 of the WB-MRM2 relay module:
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
root@wirenboard:~# mosquitto_sub -t "/devices/wb-mrm2_130/controls/Relay 1/#" -v
root@wirenboard:~# mosquitto_sub -t "/devices/wb-mrm2_130/controls/Relay 1/#" -v
Строка 82: Строка 82:
/devices/wb-mrm2_130/controls/Relay 1 0
/devices/wb-mrm2_130/controls/Relay 1 0
</syntaxhighlight>
</syntaxhighlight>
Тут стоит отметить, что MQTT сохраняет часть сообщений (а именно те, которые при отправке были помечены флагом ''retained'') вечно, поэтому после подписки вы получите даже те сообщения, которые были отправлены раньше, чем вы подписались.
Note that MQTT keeps part of the messages (namely those that were marked with the flag retained when sending) forever, so after subscribing you will receive even those messages that were sent before you subscribed.


Релейный модуль управляется драйвером [[Драйвер wb-mqtt-serial]]. У него есть соответствующий топик-"канал"("контрол") ''Relay 1''. У него самого есть значение - ''0'' (реле выключено), и есть два подтопика. Один из них - служебный: в ''/meta/type'' записан тип "контрола". Здесь он ''switch'' - выключатель. Второй подтопик ''/on'' - интереснее: в него клиенты пишут то состояние, в которое они хотят установить реле. Заметим, что оно может не совпадать некоторое время (затрачиваемое на процесс переключения) с тем состоянием, в котором реле находится. Драйвер при этом ведёт себя следующим образом: при получении сообщения в топик ''/devices/wb-mrm2_130/controls/Relay 1/on'' он физически включает реле на релейном модуле, а лишь затем записывает новое состояние реле в топик ''/devices/wb-mrm2_130/controls/Relay''.
Релейный модуль управляется драйвером [[Драйвер wb-mqtt-serial]]. У него есть соответствующий топик-"канал"("контрол") ''Relay 1''. У него самого есть значение - ''0'' (реле выключено), и есть два подтопика. Один из них - служебный: в ''/meta/type'' записан тип "контрола". Здесь он ''switch'' - выключатель. Второй подтопик ''/on'' - интереснее: в него клиенты пишут то состояние, в которое они хотят установить реле. Заметим, что оно может не совпадать некоторое время (затрачиваемое на процесс переключения) с тем состоянием, в котором реле находится. Драйвер при этом ведёт себя следующим образом: при получении сообщения в топик ''/devices/wb-mrm2_130/controls/Relay 1/on'' он физически включает реле на релейном модуле, а лишь затем записывает новое состояние реле в топик ''/devices/wb-mrm2_130/controls/Relay''.
12 063

правки