nkstep
January 31, 2026, 5:43pm
1
При интеграции с Алисой для включния реле можно выбрать только тип Switch а у данного устройства выключатель State имеет тип text (ON/OFF)
Интересно что web интерфейс работы с zigbee2mqttt работает нормально ,
Подскажите как сделать преобразование типа для работы с Алисой?
Здравствуйте. Если коротко, то через виртуальное устройство с помощью wb-rules .
Подробнее разбиралось здесь.
Если что-то останется не ясно или появятся дополнительные вопросы - дайте знать.
nkstep
February 2, 2026, 2:38pm
4
Прописал виртуальное устройство
использую у него переключатель - смотрю каналы mqqt - меняется с on на off
но выключатель так и не срабатывает
видимо есть что-то еще не смог найти
модель эта https://tongousmart.com/products/wifi-zigbee-smart-switch-to-q-sy2-adjustable-with-metering
Покажите правило вирт устройства. Не переживайте, оживим
nkstep
February 2, 2026, 3:26pm
6
// 1. Определение нового виртуального устройства, которое будет содержать переключатель
defineVirtualDevice("virtual_tongousad_control", {
title: "Виртуальный переключатель cветильники сад",
cells: {
toggle_switch: {
type: "switch",
value: false // false = Закрыть (по умолчанию), true = Открыть
}
}
});
// 2. Правило автоматизации:
// При изменении виртуального переключателя отправляем команды реальному устройству
defineRule("sync_virtual_switch_tongousad", {
whenChanged: "virtual_tongousad_control/toggle_switch",
then: function (newValue, devName, cellName) {
log("Виртуальный переключатель '" + cellName + "' изменен на: " + (newValue ? "ON" : "OFF"));
if (newValue === true) {
dev["Svetilniki Sad/state"] = "ON";
log("-> Отправлена команда 'On' .");
} else {
dev["Svetilniki Sad/state"] = "OFF";
log("-> Отправлена команда 'OFF' .");
}
}
});
Т.е. при управлении этим виртуальным устройством не переключается ваш контактор? верно понял проблему?
nkstep
February 2, 2026, 3:33pm
8
физически не переключается - да
хорошо, значит, проблема на уровне управления Zigbee устройством. Покажите, пожалуйста, каналы MQTT, которые создал z2m. Вы же через него работаете?
Because
February 2, 2026, 3:56pm
11
Управление для Zigbee устройств выглядит следующим образом:
// 1. Определение нового виртуального устройства, которое будет содержать переключатель
defineVirtualDevice("virtual_tongousad_control", {
title: "Виртуальный переключатель cветильники сад",
cells: {
toggle_switch: {
type: "switch",
value: false // false = Закрыть (по умолчанию), true = Открыть
}
}
});
// 2. Правило автоматизации:
// При изменении виртуального переключателя отправляем команды реальному устройству
defineRule("sync_virtual_switch_tongousad", {
whenChanged: "virtual_tongousad_control/toggle_switch",
then: function (newValue, devName, cellName) {
log("Виртуальный переключатель '" + cellName + "' изменен на: " + (newValue ? "ON" : "OFF"));
if (newValue === true) {
publish("zigbee2mqtt/Svetilniki Sad/set", JSON.stringify({ state: "ON" }), 2, false);
log("-> Отправлена команда 'On' .");
} else {
publish("zigbee2mqtt/Svetilniki Sad/set", JSON.stringify({ state: "OFF" }), 2, false);
log("-> Отправлена команда 'OFF' .");
}
}
});
Прошу попробовать
nkstep
February 2, 2026, 4:07pm
12
Заработало !
Спасибо !
Теперь вопрос - что я делал не так ?
И почему нужно было добавить вот это : publish(“zigbee2mqtt/Svetilniki Sad/set”, JSON.stringify({ state: “ON” }), 2, false);
Because
February 2, 2026, 4:08pm
13
Мы всегда рекомендуем изучать документацию…там это и сказано…дублирую ссылку: