Модуль Broadlink - RM | Создание выключателя (Объект.свойство)

Broadlink Комментариев нет

Создание выключателя через Объект.свойство

Собственно инструкция в картинках, по скольку всем лень читать))
Для примера возьмем радиоуправляемый выключатель с командами вкл выкл...

Кнопки

Подготовка объекта

Перво-наперво подготовим объект для наших манипуляций....
Идем в панель управлиния -> объекты, в любом из классов (можно создать новый) создаём пустой объект (назвал его switch1), идём в его свойства, создаём 2 пустых свойства command_off и command_on. Вот как это должно выглядеть

1.jpg
Настройка модуля

Далее идем в модуль бродлинк, записываем команды на включение и выключение, и привязываем к созданным нами свойствам....как то так

2.jpg

Вернемся (на всякий случай), убедимся, что свойства связались с модулем

3.jpg

Использование

В любом месте (реально в любом месте - методы, голосовые шаблоны, скрипты, элементы меню, элементы сцен, и т.д.) создаём код

и

Пример использования в меню
4.jpg
5.jpg

Я для примера создал 2 кнопки в меню - Вкл и Выкл

m1.jpg

Соответственно при нажатии кнопки вкл или выкл - лампа должна включиться или выключиться....

Всё...для новичков на этом всё!! Никаких методов никуда писать не надо...1 команда - 1 свойство - 1 строчка кода - 1 кнопка - 1 действие.

Выключатель

Вы почуствовали себя preintermediate - пользователем?))) Ок, читаем дальше.
Делаем эмуляцию обратной связи, т.е. чтобы система хранила статус лампы, либо включалась/выключалась в зависимости от предыдущего сохраненного статуса....
Нет, это ни в коем случае не обратная связь...если кто-то руками/с пульта включит лампу - состояние уже не будет соответствовать сохраненному.
Итак...для этого нам нужно немного подготовить наш класс...

Подготовка класса

Возвращаемся в класс, идем в методы, и создаём метод (к примеру statusChanged)

6.jpg

Далее идём в свойства класса(!) и создаём классовое свойство status. К свойству привязываем созданный нами метод - statusChanged.

7.jpg
Использование и пример выключателя в меню

Теперь если вы выставите свойство status у объекта switch1 в 1, выполнится команда на включение, если на 0 - на выключение...таким образом к данному свойству можно привязать к примеру элемент меню "выключатель", и никакого дополнительного кода писать не надо.

8.jpg
9.jpg

Теперь при щелчке этим выключателем меню - лампа должна включаться/выключаться...

Если же вы думаете что "правильнее же выполнять метод, а не менять свойство для какого либо действия" или "а можно же в методе прямо присваивать статус и вызывать сразу этот метод с параметрами" и т.д. и т.п. - поздравляю - вы опытный пользователь - и я не знаю зачем вам это было читать))) Да, одну задачу можно выполнить множеством способов...можно прямо в методе менять статус, не связывать статус со свойством, активировать команды вызывая метод с аргументом, создать отдельные методы на вкл и выкл, потом в зависимости от статуса вызывать один или другой - третьим методом....я могу долго продолжать)) Я, по возможности, привожу способы с наименьшим количеством кода, и более-менее понятные и логичные (по моему мнению)...я не говорю что моё мнение единственное правильное...все могут делать - как будет понятнее для них...благо, что модуль, и логика ООП это позволяют....

На этом думаю всё...пользуйтесь на здоровье)).

Поделитесь в соц сетях

Теги: