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

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

Материал из Sprut.hub Wiki
Нет описания правки
Нет описания правки
Строка 73: Строка 73:
     'true' // при значении "true" считаем, что движение есть
     'true' // при значении "true" считаем, что движение есть
   );
   );
})();</syntaxhighlight>
})();</syntaxhighlight>По итогу, в интерфейсе '''Wiren Board''' мы получаем '''виртуальный переключатель (switch)''', который отображает состояние датчика движения, но '''не управляется вручную''', так как для него указано свойство: '''readonly: true'''
 
По аналогии можно создать '''любое другое устройство''' — будь то '''бинарные сенсоры''' (датчики открытия, протечки, присутствия), '''реле''', или устройства, передающие '''числовые значения''' (например, температуру, влажность, давление и т.д.).
 
Достаточно изменить:
 
* тип данных (switch, alarm, temperature, rel_humidity, value и т.д.),
* MQTT-топик
 
Таким образом, можно гибко интегрировать устройства из '''spruthub''' в '''Wiren Board.'''

Версия от 13:29, 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.