github.com/e154/smart-home@v0.17.2-0.20240311175135-e530a6e5cd45/doc/content/ru/docs/plugins/mqtt.md (about)

     1  
     2  ---
     3  title: "MQTT"
     4  linkTitle: "mqtt"
     5  date: 2021-10-20
     6  description: >
     7    
     8  ---
     9  
    10  Плагин "mqtt" является расширенной версией плагина "sensor" и предоставляет возможность работы с протоколом MQTT. 
    11  Вот некоторые настройки, доступные для плагина "mqtt":
    12  
    13  1. `subscribe_topic`: Топик MQTT, на который выполняется подписка для получения данных.
    14  2. `mqtt_login`: Логин для аутентификации при подключении к MQTT-брокеру.
    15  3. `mqtt_pass`: Пароль для аутентификации при подключении к MQTT-брокеру.
    16  
    17  Эти настройки позволяют задать параметры подключения к MQTT-брокеру и определить топик, на который будет выполняться подписка 
    18  для получения данных. Таким образом, плагин "mqtt" обеспечивает интеграцию с MQTT-сообщениями, что позволяет получать данные
    19  с устройств, использующих этот протокол, и использовать их в системе автоматизации или других компонентах.
    20  
    21  Плагин "sensor" также реализует JavaScript-обработчик (handler) под названием `entityAction`. Этот обработчик предназначен
    22  для обработки действий, связанных с устройствами типа "entity" на основе плагина "sensor".
    23  
    24  Пример реализации обработчика `entityAction`:
    25  
    26  ```javascript
    27  entityAction = (entityId, actionName, args) => {
    28    // Код обработки действия
    29  };
    30  ```
    31  
    32  Также реализует JavaScript-обработчик (handler) под названием `mqttEvent`. Этот обработчик предназначен
    33  для обработки действий, связанных с устройствами типа "entity" на основе плагина "sensor".
    34  
    35  Пример реализации обработчика `mqttEvent`:
    36  
    37  ```javascript
    38  function mqttEvent(message) {
    39    // Код обработки действия
    40  };
    41  ```
    42  
    43  Пример использования обработчика mqttEvent:
    44  ```coffeescript
    45  mqttEvent =(message)->
    46    #print '---mqtt new event from plug---'
    47    if !message || message.topic.includes('/set')
    48      return
    49    payload = unmarshal message.payload
    50    attrs =
    51      'consumption': payload.consumption
    52      'linkquality': payload.linkquality
    53      'power': payload.power
    54      'state': payload.state
    55      'temperature': payload.temperature
    56      'voltage': payload.voltage
    57    EntitySetState ENTITY_ID,
    58      'new_state': payload.state
    59      'attribute_values': attrs
    60  ```