Majordomo, отрабатываем различные нажатия на кнопку Xiaomi (пример использования в модуле ZigbeeDev)

Октябрь 26, 2021 - Время чтения: 118 минуты

Имеем кнопку Xiaomi WXKG01LM

Задача: в зависимости от количества нажатий отрабатывать различные действия

Реализуем это на примере модуля ZigbeeDev.

Связываем действие "action" c свойством "UpdatedText" нужного объекта "Простых устройств" (в нашем случае это Button1).

В результате чего в это свойство будет записываться соответствующее "Значение".

Далее связываем действия кнопки action:single (Одиночное нажатие) со свойством .status того же объекта (Button01)

Дополнительно связываем действия кнопки action:double (Двойное нажатие) с тем же свойством .status объекта (Button01)

При необходимости аналогичным образом настраиваем тройное, четверное и  т.д. нажатия, а также удержание.

Затем в модуле "Простые устройства" изменяем методы кнопки (Button01), а точнее Метод: pressed:

вставляем туда следующий код

$press_num;
$press_num = getGlobal('Button01'.'.'.'updatedText');
if ($press_num == 'double') {
  say('Свои пришли' . 'Открывай!', 2);
} else {
  say('Чужаки пришли ' . 'Сначала узнай кто.', 2);
}
setGlobal('Button01'.'.'.'updatedText', 'none');

который будет получать значение свойства "UpdatedText" и в зависимости от этого выполнять какие либо действия

PS: для удобства редактирования кода можно воспользоваться инструментом Blockly, ниже пример кода:

Полу(о)умный дом

Делаем вещи умнее...

Посетителей

66