Реле tongou zigbee свойство выключателя state

При интеграции с Алисой для включния реле можно выбрать только тип Switch а у данного устройства выключатель State имеет тип text (ON/OFF)

Интересно что web интерфейс работы с zigbee2mqttt работает нормально ,

Подскажите как сделать преобразование типа для работы с Алисой?

Здравствуйте. Если коротко, то через виртуальное устройство с помощью wb-rules.

Подробнее разбиралось здесь.

Если что-то останется не ясно или появятся дополнительные вопросы - дайте знать.

Прописал виртуальное устройство

использую у него переключатель - смотрю каналы mqqt - меняется с on на off

но выключатель так и не срабатывает :frowning:

видимо есть что-то еще не смог найти

модель эта https://tongousmart.com/products/wifi-zigbee-smart-switch-to-q-sy2-adjustable-with-metering

Покажите правило вирт устройства. Не переживайте, оживим :slight_smile:



// 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' .");
        }
    }
});

Т.е. при управлении этим виртуальным устройством не переключается ваш контактор? верно понял проблему?

физически не переключается - да

хорошо, значит, проблема на уровне управления Zigbee устройством. Покажите, пожалуйста, каналы MQTT, которые создал z2m. Вы же через него работаете?

Управление для 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' .");
        }
    }
});

Прошу попробовать

Заработало !
Спасибо !
Теперь вопрос :slight_smile: - что я делал не так ?
И почему нужно было добавить вот это : publish(“zigbee2mqtt/Svetilniki Sad/set”, JSON.stringify({ state: “ON” }), 2, false);

Мы всегда рекомендуем изучать документацию…там это и сказано…дублирую ссылку:

Спасибо, изучу :slight_smile: !