Red (обсуждение | вклад) Нет описания правки |
Red (обсуждение | вклад) Нет описания правки |
||
| Строка 20: | Строка 20: | ||
[[Файл:Vkl_harakteristik_mqtt.png|563x563пкс]] | [[Файл:Vkl_harakteristik_mqtt.png|563x563пкс]] | ||
=== Создание виртуального устройства и привязка 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|800x800пкс]] | |||
Например, наш топик - "'''Sprut.hub-D7BCB0C79CD23D5B_1/accessories/105/13/15'''" | |||
Теперь необходимо написать правило, которое создаст виртуальное устройство в Wiren Board и свяжет его с этим топиком. | |||
Переходим в интерфейс WirenBoard, редактор правила, создать новое. <syntaxhighlight lang="json">(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> | |||
Версия от 13:23, 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" считаем, что движение есть
);
})();