MQTT: различия между версиями
PeteK (обсуждение | вклад) (Добавил краткую информацию про подтопик /meta/error) |
|||
Строка 60: | Строка 60: | ||
* ''/wb-w1'' - подтопик, который наполняется драйвером 1-Wire | * ''/wb-w1'' - подтопик, который наполняется драйвером 1-Wire | ||
* ''/controls'' - подтопик, который есть у всех устройств - именно в него записываются все их параметры, которые меняются ("включено-выключено", значение датчика, ...) | * ''/controls'' - подтопик, который есть у всех устройств - именно в него записываются все их параметры, которые меняются ("включено-выключено", значение датчика, ...) | ||
* ''/28-0115a48fcfff'' - непосредственно сам "канал" ("контрол) | * ''/28-0115a48fcfff'' - непосредственно сам "канал" ("контрол") - топик, куда записывается значение с датчика. Его название совпадает с адресом 1-Wire датчика на шине. | ||
Содержание сообщения: | Содержание сообщения: | ||
* ''23.25'' - значение температуры | * ''23.25'' - значение температуры | ||
Строка 66: | Строка 66: | ||
<!--T:141--> | <!--T:141--> | ||
Если вы хотите самостоятельно написать драйвер устройства, и хотите, что оно отображалось на вкладке Devices и его можно было использовать в правилах, вам необходимо придерживаться такой же структуры топиков. | Если вы хотите самостоятельно написать драйвер устройства, и хотите, что оно отображалось на вкладке Devices и его можно было использовать в правилах, вам необходимо придерживаться такой же структуры топиков. | ||
=== Структура сообщения об ошибке опроса устройства === <!--T:139--> | |||
Каждый "канал" ("контрол") имеет "подтопик" ''/meta/error'', в котором содержится информация о наличии ошибок взаимодействия с устройством. Ошибки получения данных (чтения) обозначаются символом '''r''', ошибки записи - '''w'''. | |||
Пример ошибки получения данных: | |||
<pre> | |||
/devices/wb-w1/controls/28-0115a48fcfff/meta/error r | |||
</pre> | |||
Это означает, что не удалось получить температуру термометра с адресом ''28-0115a48fcfff''. | |||
[[Драйвер wb-mqtt-serial]] устанавливает признак '''r''', если не удалось запросить значение параметра устройства, признак '''w''' - не удалось передать значение устройству. | |||
[https://github.com/wirenboard/wb-homa-adc Драйвер wb-mqtt-adc] устанавливает признак '''r''', если не удалось получить значение соотвествующего канала АЦП. | |||
=== Пример подписки === <!--T:113--> | === Пример подписки === <!--T:113--> |