Открыть меню
Toggle preferences menu
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

Интеграция устройств из spruthub в WirenBoard: различия между версиями

Материал из Sprut.hub Wiki
Нет описания правки
Нет описания правки
 
(не показано 6 промежуточных версий 1 участника)
Строка 6: Строка 6:


После этого spruthub сможет отправлять данные своих устройств в брокер Wiren Board.
После этого spruthub сможет отправлять данные своих устройств в брокер Wiren Board.
[[Файл:Most mqtt add.png|слева|мини|граница]]
[[Файл:Most_mqtt_add.png|центр|обрамить]]


=== Включение отправки данных в MQTT брокер ===
Чтобы передать конкретное устройство в Wiren Board:


# Откройте нужное устройство в spruthub.
# Нажмите '''значок шестерёнки (настройки)'''.
# Перейдите во вкладку '''Мосты'''.
# Включите переключатели напротив тех характеристик, которые нужно отправлять в MQTT-брокер.
После включения параметров их значения начнут публиковаться в MQTT, и Wiren Board сможет их принимать и использовать, например, в виртуальных устройствах или правилах автоматизации.
[[Файл:Vkl_harakteristik_mqtt.png|центр|обрамить]]


=== Создание виртуального устройства и привязка MQTT-топиков в Wiren Board ===
Вторым шагом необходимо '''написать правило (rule)''' в Wiren Board, которое создаст виртуальное устройство и свяжет его с MQTT-топиками, активированными в первом пункте.


==== 🔍 Определяем нужные топики ====
Проще всего получить список топиков с помощью MQTT-клиента — например, '''MQTT Explorer'''.


# Скачайте и установите MQTT Explorer (доступен для Windows, macOS и Linux).
# Подключитесь к MQTT-брокеру Wiren Board:
#* '''IP:''' адрес вашего контроллера WB
#* '''Порт:''' 1883 (по умолчанию)
# После подключения вы увидите структуру всех доступных топиков.  Найдите те, что начинаются с префикса, например, Sprut.hub-****/accessories.
[[Файл:Mqtt_explorer.png|центр|обрамить]]




Например, наш топик - "'''Sprut.hub-D7BCB0C79CD23D5B_1/accessories/105/13/15'''"


Теперь необходимо написать правило, которое создаст виртуальное устройство в Wiren Board и свяжет его с этим топиком.


Переходим в интерфейс WirenBoard, редактор правила, создать новое. <syntaxhighlight lang="javascript">(function () {
  // Создаём виртуальное устройство для датчика движения SprutHub
  defineVirtualDevice('spruthub_motion', {
    title: { en: "SprutHub Motion", ru: "Датчик движения SprutHub" },
    cells: {
      Motion: {
        title: { en: 'Motion', ru: 'Движение' },
        type: 'switch',
        readonly: true,
        order: 0,
        value: false
      }
    }
  });


  // Функция для обновления значения из MQTT
  function updateDeviceFromMQTT(topic, cell, valueType, compareValue) {
    trackMqtt(topic, function (message) {
      if (valueType === 'boolean') {
        dev.spruthub_motion[cell] = message.value === compareValue;
      } else {
        dev.spruthub_motion[cell] = parseFloat(message.value);
      }
    });
  }


=== Включение отправки данных в MQTT брокер ===
  // Отслеживаем MQTT-топик от SprutHub
Чтобы передать конкретное устройство в Wiren Board:
  updateDeviceFromMQTT(
    'Sprut.hub-D7BCB0C79CD23D5B_1/accessories/105/13/15',
    'Motion',
    'boolean',
    'true' // при значении "true" считаем, что движение есть
  );
})();</syntaxhighlight>По итогу, в интерфейсе '''Wiren Board''' мы получаем '''виртуальный переключатель (switch)''', который отображает состояние датчика движения, но '''не управляется вручную''', так как для него указано свойство: '''readonly: true'''
 
По аналогии можно создать '''любое другое устройство''' — будь то '''бинарные сенсоры''' (датчики открытия, протечки, присутствия), '''реле''', или устройства, передающие '''числовые значения''' (например, температуру, влажность, давление и т.д.).
 
Достаточно изменить:


# Откройте нужное устройство в spruthub.
* тип данных (switch, alarm, temperature, rel_humidity, value и т.д.),
# Нажмите '''значок шестерёнки (настройки)'''.
* MQTT-топик
# Перейдите во вкладку '''Мосты'''.
# Включите переключатели напротив тех характеристик, которые нужно отправлять в MQTT-брокер.


После включения параметров их значения начнут публиковаться в MQTT, и Wiren Board сможет их принимать и использовать, например, в виртуальных устройствах или правилах автоматизации.
Таким образом, можно гибко интегрировать устройства из '''spruthub''' в '''Wiren Board.'''
[[Файл:Vkl harakteristik mqtt.png|слева|безрамки|386x386пкс]]

Текущая версия от 17:19, 7 октября 2025

Первое, что необходимо сделать — подключить MQTT Wiren Board в мостах spruthub.

  1. Откройте Мосты в интерфейсе spruthub.
  2. Нажмите «+» → Добавить расширение → MQTT →Мосты → Добавить.
  3. Укажите параметры подключения к MQTT-брокеру Wiren Board (IP-адрес, порт, логин и пароль, если используется), после чего включаем Мост.

После этого spruthub сможет отправлять данные своих устройств в брокер Wiren Board.

Включение отправки данных в MQTT брокер

Чтобы передать конкретное устройство в Wiren Board:

  1. Откройте нужное устройство в spruthub.
  2. Нажмите значок шестерёнки (настройки).
  3. Перейдите во вкладку Мосты.
  4. Включите переключатели напротив тех характеристик, которые нужно отправлять в MQTT-брокер.

После включения параметров их значения начнут публиковаться в MQTT, и Wiren Board сможет их принимать и использовать, например, в виртуальных устройствах или правилах автоматизации.

Создание виртуального устройства и привязка MQTT-топиков в Wiren Board

Вторым шагом необходимо написать правило (rule) в Wiren Board, которое создаст виртуальное устройство и свяжет его с MQTT-топиками, активированными в первом пункте.

🔍 Определяем нужные топики

Проще всего получить список топиков с помощью MQTT-клиента — например, MQTT Explorer.

  1. Скачайте и установите MQTT Explorer (доступен для Windows, macOS и Linux).
  2. Подключитесь к MQTT-брокеру Wiren Board:
    • IP: адрес вашего контроллера WB
    • Порт: 1883 (по умолчанию)
  3. После подключения вы увидите структуру всех доступных топиков. Найдите те, что начинаются с префикса, например, Sprut.hub-****/accessories.


Например, наш топик - "Sprut.hub-D7BCB0C79CD23D5B_1/accessories/105/13/15"

Теперь необходимо написать правило, которое создаст виртуальное устройство в Wiren Board и свяжет его с этим топиком.

Переходим в интерфейс WirenBoard, редактор правила, создать новое.

(function () {
  // Создаём виртуальное устройство для датчика движения SprutHub
  defineVirtualDevice('spruthub_motion', {
    title: { en: "SprutHub Motion", ru: "Датчик движения SprutHub" },
    cells: {
      Motion: {
        title: { en: 'Motion', ru: 'Движение' },
        type: 'switch', 
        readonly: true,
        order: 0,
        value: false
      }
    }
  });

  // Функция для обновления значения из MQTT
  function updateDeviceFromMQTT(topic, cell, valueType, compareValue) {
    trackMqtt(topic, function (message) {
      if (valueType === 'boolean') {
        dev.spruthub_motion[cell] = message.value === compareValue;
      } else {
        dev.spruthub_motion[cell] = parseFloat(message.value);
      }
    });
  }

  // Отслеживаем MQTT-топик от SprutHub
  updateDeviceFromMQTT(
    'Sprut.hub-D7BCB0C79CD23D5B_1/accessories/105/13/15',
    'Motion',
    'boolean',
    'true' // при значении "true" считаем, что движение есть
  );
})();

По итогу, в интерфейсе Wiren Board мы получаем виртуальный переключатель (switch), который отображает состояние датчика движения, но не управляется вручную, так как для него указано свойство: readonly: true

По аналогии можно создать любое другое устройство — будь то бинарные сенсоры (датчики открытия, протечки, присутствия), реле, или устройства, передающие числовые значения (например, температуру, влажность, давление и т.д.).

Достаточно изменить:

  • тип данных (switch, alarm, temperature, rel_humidity, value и т.д.),
  • MQTT-топик

Таким образом, можно гибко интегрировать устройства из spruthub в Wiren Board.