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

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

Модератор: immortal

Neocivic
Сообщения: 72
Зарегистрирован: Вс апр 23, 2017 5:27 pm
Благодарил (а): 25 раз
Поблагодарили: 2 раза

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

Сообщение Neocivic » Сб дек 01, 2018 10:09 pm

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

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

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

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

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

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

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

Сообщение nick7zmail » Вс дек 02, 2018 9:37 am

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

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

Сообщение Neocivic » Вс дек 02, 2018 1:35 pm

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

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

Сообщение ZyaK » Вс дек 02, 2018 2:56 pm

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

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

Сообщение nightwind » Вс дек 02, 2018 5:43 pm

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

создаешь метод, и указываешь его. (запускать метод при изменении)
тут при изменении свойства status выполнится statusUpdated
За это сообщение автора nightwind поблагодарил:
Neocivic (Вс дек 02, 2018 7:15 pm)
Рейтинг: 1.16%
Neocivic
Сообщения: 72
Зарегистрирован: Вс апр 23, 2017 5:27 pm
Благодарил (а): 25 раз
Поблагодарили: 2 раза

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

Сообщение Neocivic » Вс дек 02, 2018 7:29 pm

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
Благодарил (а): 25 раз
Поблагодарили: 2 раза

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

Сообщение Neocivic » Вс дек 02, 2018 7:33 pm

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

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

Сообщение nick7zmail » Пн дек 03, 2018 6:36 am

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

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

Сообщение nightwind » Пн дек 03, 2018 4:58 pm

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

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

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

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

Сообщение nick7zmail » Вт дек 04, 2018 6:45 am

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