Алиса On/Off

В интеграциях с алисой есть Умения On/Off:


И вот тут вопрос: как для шторы обеспечить открытие/закрытие при условии что это 2 разные кнопки устройства

и второй раз умение “закрыть штору” я добавить не могу

Можно написать Виртуальное устройство, а его уже прокидывать в Алису…

А как Вы видите логику виртуального устройства с 1 кнопкой on/off?

Добрый день!

Полагаю, что можно виртуальном устройстве реализовать один переключатель с двумя положениями Закрыть/Открыть. И к нему привязать умение.

Уточнил у коллег, возможность применения только одного умения On/Off для одного устройства связано с особенностями работы УДЯ.
Поэтому выход из этой ситуации: создавать виртуальные устройства на каждую кнопку.

Давайте уточним… Лампочка может находится в 2 состояниях: On или Off. И управляться переключателем из одного состояния в другое… Тут все просто…
Но штора может находться в 100 разных состояниях. И если я хочу закрыть штору с положения например 34 или 67 то чем обудет отличаться от положения 7, 88 и тп когдя хочу штору открыть полностю?
На 1 или даже 2х кнопках УДЯ я не понимаю как реализовать. Умения же одно и то же: ON/OFF и значит менять состояние 1,2 кнопок будут одновременно. А нам же надо на ON одну, на OFF другую. Но такого умения нет.
Или я не прав?

Добрый день.

Не совсем так. Лампочка кроме состояния вкл/выкл может еще и разной яркости быть. Т.е. можно взять диммируемую лампу и использовать как устройство “лампа” с умениями on_off и range (brightness).

И также со шторой. Управлять промежуточным положением можно через умение range (open). А открытие/закрытие сделать через on_off. И тогда в УДЯ корректно будут стандартные Алисовские команды работать.
Просто вам ваши две кнопки надо через виртуальное устройство привести к умению on_off. Например, булевское виртуальное устройство (ВУ), которое может быть только 0 или 1. И если вы нажали закрыть, то ВУ переходит в 0, а если вы нажали открыть, то ВУ переходит в 1.

1 лайк

Лампу или ленту можно включить только свитчем, а управлялки RGB, яркости ее не включают/не выключают…

Ну и идея про ВУ:

ВУ для УДЯ
// 1. Определение нового виртуального устройства, которое будет содержать переключатель
defineVirtualDevice("virtual_curtain_control", {
    title: "Виртуальный переключатель шторы",
    cells: {
        toggle_switch: {
            type: "switch",
            value: false // false = Закрыть (по умолчанию), true = Открыть
        }
    }
});

// 2. Правило автоматизации:
// При изменении виртуального переключателя отправляем команды реальному устройству
defineRule("sync_virtual_switch_to_motor_buttons", {
    whenChanged: "virtual_curtain_control/toggle_switch",
    
    then: function (newValue, devName, cellName) {
        log("Виртуальный переключатель '" + cellName + "' изменен на: " + (newValue ? "ВКЛ" : "ВЫКЛ"));

        if (newValue === true) {
            dev["onviz_mr160_rs485_0x0101/Open"] = newValue;
            log("-> Отправлена команда 'Открыть' на мотор.");

        } else {
            dev["onviz_mr160_rs485_0x0101/Close"] = newValue;; 
            log("-> Отправлена команда 'Закрыть' на мотор.");
        }
    }
});

Проблема та же что и с лампой. Свитч не знает про положение шторы.
И поэтому такой код работает наполоину: если пользоваться только крайними положениями, то ок. Т.е полностью Открыть - Закрыть.
Но вот сценарий: Закрыл шторы. Открыл на 30%. Хочу закрыть.
Все, не выйдет: переключатель и так выключен и дальнейшая логика передачи команды на физическое устройство не уйдет.
Нужен некий трехпозиционный выключатель, возвращающийся в нейтральное значение

А чему (какому типу) из существующих в Яндекс он соответствует?

Так range/open как раз для штор.

предположу On_off | Платформа умного дома Яндекса
в котором Объект parameters split == True

Да, есть такое - ползунок 0-100. Но он не умеет: “Алиса, открой штору, закрой штору”
Надо проговаривать % значения

Действительно. Попробовал сейчас. Странно со стороны Яндекса, что такое очевидное не сделано.
Ну вариант сделать сценарии в самом Яндексе. Если фраза “закрой штору”, то установить на 0%. Ну и “открой штору” - установить на 100%.

Согласен, вариант.
Но было бы лучше полностью раскрыть потенциал интеграции и кажется что у УДЯ такая возможность есть. Ждем что скажет команда WirenBoard по поводу доработки интеграции с АПИ Яндекса для раскрытия всего функционала

Не будет разницы, просто будет писаться в разные топики true.

Вот так и сделано в облачных (прямых) интеграциях штор.

Добрый день!

В настоящий момент в нашей интеграции:

Доступные умения:

  • on_off
  • color_setting (цвет (rgb) или температура цвета)
  • range

Доступные свойства:

  • float

Ваше предложение

Я вот не совсем понимаю каких умений не хватает для реализации управления шторами? Для этого нужен доступ к конкретным дополнительным параметрам?

Так появляется возможность управления разными кнопками физического устройства. Ровно то что и надо. Разве нет?

Из произвольного положения штор выполнить команду закрытия или открытия средствами WB без сценарием УДЯ.


На скрине показана реализация произвольного положения и полного закрытия. Нет полного открытия
Второй раз On/Off нельзя.

Если Вы видите как это можно реализовать уже сейчас, расскажите, пожалуйста.

Как это должно работать, именно в объектах Яндекса?
То есть какой контрол и как должен меняться?

Точнее - что мешает использовать on|off для управлениия “полностью открыто”/полностью закрыто"?

По-моему явно написано в документации что контрол может быть один.

Уточню, как это понял я.
Дано range и on/off для крайних положений.
Моделируем ситуацию:
“Шторы на 50%” - range становится 50%. on/off в предыдущем состоянии.
“Закрой шторы” - range 0%, on/off в off
“Шторы на 50%” - range становится 50%. on/off в состоянии.off
“Закрой шторы” - range все еще 50%, on/off не меняет состояния, так как уже в off. В этот момент у нас не передается события и ничего не происходит. Сработает только процентаж или “открыть”.

Т.е. для открыто/закрыто не достаточно 2 состояния. Нужно 3-е, промежуточное, когда штора не в крайних положениях.

В текущих реалиях вариант только один - “открой и закрой” делать только сценариями на самом яндексе с активацией по фразе, а в wb передавать только range.