Red (обсуждение | вклад) Нет описания правки |
Bigmanekb (обсуждение | вклад) Нет описания правки |
||
| (не показаны 3 промежуточные версии 1 участника) | |||
| Строка 6: | Строка 6: | ||
После этого spruthub сможет отправлять данные своих устройств в брокер Wiren Board. | После этого spruthub сможет отправлять данные своих устройств в брокер Wiren Board. | ||
[[Файл:Most_mqtt_add.png|центр|обрамить]] | |||
[[Файл:Most_mqtt_add.png| | |||
=== Включение отправки данных в MQTT брокер === | === Включение отправки данных в MQTT брокер === | ||
| Строка 18: | Строка 17: | ||
После включения параметров их значения начнут публиковаться в MQTT, и Wiren Board сможет их принимать и использовать, например, в виртуальных устройствах или правилах автоматизации. | После включения параметров их значения начнут публиковаться в 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-топик от SprutHub | |||
updateDeviceFromMQTT( | |||
'Sprut.hub-D7BCB0C79CD23D5B_1/accessories/105/13/15', | |||
'Motion', | |||
'boolean', | |||
'true' // при значении "true" считаем, что движение есть | |||
); | |||
})();</syntaxhighlight>По итогу, в интерфейсе '''Wiren Board''' мы получаем '''виртуальный переключатель (switch)''', который отображает состояние датчика движения, но '''не управляется вручную''', так как для него указано свойство: '''readonly: true''' | |||
По аналогии можно создать '''любое другое устройство''' — будь то '''бинарные сенсоры''' (датчики открытия, протечки, присутствия), '''реле''', или устройства, передающие '''числовые значения''' (например, температуру, влажность, давление и т.д.). | |||
Достаточно изменить: | |||
* тип данных (switch, alarm, temperature, rel_humidity, value и т.д.), | |||
* MQTT-топик | |||
Таким образом, можно гибко интегрировать устройства из '''spruthub''' в '''Wiren Board.''' | |||
Текущая версия от 17:19, 7 октября 2025
Первое, что необходимо сделать — подключить MQTT Wiren Board в мостах spruthub.
- Откройте Мосты в интерфейсе spruthub.
- Нажмите «+» → Добавить расширение → MQTT →Мосты → Добавить.
- Укажите параметры подключения к MQTT-брокеру Wiren Board (IP-адрес, порт, логин и пароль, если используется), после чего включаем Мост.
После этого spruthub сможет отправлять данные своих устройств в брокер Wiren Board.

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

Создание виртуального устройства и привязка MQTT-топиков в Wiren Board
Вторым шагом необходимо написать правило (rule) в Wiren Board, которое создаст виртуальное устройство и свяжет его с MQTT-топиками, активированными в первом пункте.
🔍 Определяем нужные топики
Проще всего получить список топиков с помощью MQTT-клиента — например, MQTT Explorer.
- Скачайте и установите MQTT Explorer (доступен для Windows, macOS и Linux).
- Подключитесь к MQTT-брокеру Wiren Board:
- IP: адрес вашего контроллера WB
- Порт: 1883 (по умолчанию)
- После подключения вы увидите структуру всех доступных топиков. Найдите те, что начинаются с префикса, например, 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.