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

Разработка дополнительных модулей, подключение различных приложений.

Модератор: immortal

Neocivic
Сообщения: 72
Зарегистрирован: Вс апр 23, 2017 5:27 pm

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

Сообщение Neocivic »

Всем, привет!
Нужна помощь в следующей задаче:

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

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

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

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

Прошу помощи, как заставить метод работать при смене статуса, командой от сервера MQTT?!
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

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

Сообщение nick7zmail »

Свойство свяжите с методом и будет вам счастье.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Neocivic
Сообщения: 72
Зарегистрирован: Вс апр 23, 2017 5:27 pm

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

Сообщение Neocivic »

nick7zmail писал(а): Вс дек 02, 2018 9:37 am Свойство свяжите с методом и будет вам счастье.
Я совсем, пока не опытен, подскажите, как это сделать?
ZyaK
Сообщения: 418
Зарегистрирован: Вт окт 24, 2017 2:01 pm
Откуда: Ижевск

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

Сообщение ZyaK »

nick7zmail писал(а): Вс дек 02, 2018 9:37 am Свойство свяжите с методом и будет вам счастье.
Он хочет озвучивание при изменении статуса с физического выключателя. MQTT на прямую привязано к свойству статус. видимо надо услышать если кто то включил свет с железа
PI2 + MQTT + 5 ESP8266 + Atmega16
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Контактная информация:

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

Сообщение nightwind »

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

создаешь метод, и указываешь его. (запускать метод при изменении)
тут при изменении свойства status выполнится statusUpdated
Neocivic
Сообщения: 72
Зарегистрирован: Вс апр 23, 2017 5:27 pm

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

Сообщение Neocivic »

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

создаешь метод, и указываешь его. (запускать метод при изменении)
тут при изменении свойства status выполнится statusUpdated
Спасибо!
Но в таком случае все объекты этого класса будут выполнять этот метод (если я правильно понял), а мне нужен один конкретный объект.
Neocivic
Сообщения: 72
Зарегистрирован: Вс апр 23, 2017 5:27 pm

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

Сообщение Neocivic »

Кажется понял, нужно создать дополнительное свойство, такое же, как статус, только с методом, который запускается при изменении этого статуса. Далее, на тех объектах, которые необходимы, связать новый статус с командами по протоколу MQTT. Сейчас буду пробовать.
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

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

Сообщение nick7zmail »

Вы можете связать метод, но код в него вписать для конкретного объекта. Для других объектов оставить метод пустой. И тогда в принципе ничего не будет происодить для них.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Аватара пользователя
nightwind
Сообщения: 333
Зарегистрирован: Вс июн 26, 2016 4:42 pm
Откуда: Барановичи
Контактная информация:

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

Сообщение nightwind »

в классовом методе можно сделать так

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

if ($this->object_title == "NobodyHomeMode") return;
и тогда для объекта с именем NobodyHomeMode метод просто закончится. по аналогии можно написать что захочешь
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

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

Сообщение nick7zmail »

return Обычно, чтобы метод вернул что то...выйти можно по exit.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
Ответить