Страница 29 из 97

Re: [Модуль] MQTT (mqtt)

Добавлено: Сб дек 01, 2018 10:09 pm
Neocivic
Всем, привет!
Нужна помощь в следующей задаче:

Подписал свойство объекта Switch на сообщения MQTT брокера, т.е с помощью протокола MQTT включаю и выключаю выключатель Switch. Включение и выключение работает.

Проблема в следующем: если в каком либо из методов объекта Switch написать код, например:

Код: Выделить всё

say("Включаю свет", 2);
то при включении света на сцене majordomo, нажатием на выключатель, код исполняется и команда озвучивается, а если статус выключателя меняется с помощью сообщения с сервера MQTT, то код не исполняется, озвучки нет.

Прошу помощи, как заставить метод работать при смене статуса, командой от сервера MQTT?!

Re: [Модуль] MQTT (mqtt)

Добавлено: Вс дек 02, 2018 9:37 am
nick7zmail
Свойство свяжите с методом и будет вам счастье.

Re: [Модуль] MQTT (mqtt)

Добавлено: Вс дек 02, 2018 1:35 pm
Neocivic
nick7zmail писал(а):
Вс дек 02, 2018 9:37 am
Свойство свяжите с методом и будет вам счастье.
Я совсем, пока не опытен, подскажите, как это сделать?

Re: [Модуль] MQTT (mqtt)

Добавлено: Вс дек 02, 2018 2:56 pm
ZyaK
nick7zmail писал(а):
Вс дек 02, 2018 9:37 am
Свойство свяжите с методом и будет вам счастье.
Он хочет озвучивание при изменении статуса с физического выключателя. MQTT на прямую привязано к свойству статус. видимо надо услышать если кто то включил свет с железа

Re: [Модуль] MQTT (mqtt)

Добавлено: Вс дек 02, 2018 5:43 pm
nightwind
Neocivic писал(а):
Вс дек 02, 2018 1:35 pm
nick7zmail писал(а):
Вс дек 02, 2018 9:37 am
Свойство свяжите с методом и будет вам счастье.
Я совсем, пока не опытен, подскажите, как это сделать?
Изображение

создаешь метод, и указываешь его. (запускать метод при изменении)
тут при изменении свойства status выполнится statusUpdated

Re: [Модуль] MQTT (mqtt)

Добавлено: Вс дек 02, 2018 7:29 pm
Neocivic
nightwind писал(а):
Вс дек 02, 2018 5:43 pm
Neocivic писал(а):
Вс дек 02, 2018 1:35 pm
nick7zmail писал(а):
Вс дек 02, 2018 9:37 am
Свойство свяжите с методом и будет вам счастье.
Я совсем, пока не опытен, подскажите, как это сделать?
Изображение

создаешь метод, и указываешь его. (запускать метод при изменении)
тут при изменении свойства status выполнится statusUpdated
Спасибо!
Но в таком случае все объекты этого класса будут выполнять этот метод (если я правильно понял), а мне нужен один конкретный объект.

Re: [Модуль] MQTT (mqtt)

Добавлено: Вс дек 02, 2018 7:33 pm
Neocivic
Кажется понял, нужно создать дополнительное свойство, такое же, как статус, только с методом, который запускается при изменении этого статуса. Далее, на тех объектах, которые необходимы, связать новый статус с командами по протоколу MQTT. Сейчас буду пробовать.

Re: [Модуль] MQTT (mqtt)

Добавлено: Пн дек 03, 2018 6:36 am
nick7zmail
Вы можете связать метод, но код в него вписать для конкретного объекта. Для других объектов оставить метод пустой. И тогда в принципе ничего не будет происодить для них.

Re: [Модуль] MQTT (mqtt)

Добавлено: Пн дек 03, 2018 4:58 pm
nightwind
в классовом методе можно сделать так

Код: Выделить всё

if ($this->object_title == "NobodyHomeMode") return;
и тогда для объекта с именем NobodyHomeMode метод просто закончится. по аналогии можно написать что захочешь

Re: [Модуль] MQTT (mqtt)

Добавлено: Вт дек 04, 2018 6:45 am
nick7zmail
return Обычно, чтобы метод вернул что то...выйти можно по exit.