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

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

Модератор: immortal

Stor
Сообщения: 133
Зарегистрирован: Ср окт 31, 2018 11:45 pm

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

Сообщение Stor »

fandaymon писал(а): Ср июн 26, 2019 4:38 pm ...
Возможно в этом дело - скорее всего функция callAPI недавно появилась и что-то там отрабатывает не так... Можно попробовать закоментить
...
Да, проблема именно в этой функции. Тоже закоментировал и все заработало.

Нужно чтобы Сергей поправил, иначе многие наткнутся на этот баг при обновлении!!!
Stor
Сообщения: 133
Зарегистрирован: Ср окт 31, 2018 11:45 pm

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

Сообщение Stor »

Кстати, заметил, что также перестали отрабатывать методы объектов, к которым привязано устройство MQTT. То есть значения из топика в свойство объекта записывает, но метод объекта не вызывает. У меня в методах было округление показания температуры и влажности.
Причем если дернуть метод через ссылку test (например, http://192.168.1.160:80/objects/?object ... humChanged&) на странице настройки метода, то он отработает нормально.
Кто-нибудь с таким сталкивался? Из-за чего это может быть?
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

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

Сообщение directman66 »

fandaymon писал(а): Ср июн 26, 2019 4:38 pm
Makcum писал(а): Ср июн 26, 2019 4:33 pm fandaymon, спасибо за попытку помочь.
Посмотрел по коду цикла - там есть такой if

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

    if (function_exists('callAPI')) {
        callAPI('/api/module/mqtt','GET',array('topic'=>$topic,'msg'=>$msg));
    } else {
        global $mqtt;
        $mqtt->processMessage($topic, $msg);
    }
Возможно в этом дело - скорее всего функция callAPI недавно появилась и что-то там отрабатывает не так... Можно попробовать закоментить вызов этой функции и перезапустить цикл MQTT

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

  //  if (function_exists('callAPI')) {
        //callAPI('/api/module/mqtt','GET',array('topic'=>$topic,'msg'=>$msg));
    //} else {
        global $mqtt;
        $mqtt->processMessage($topic, $msg);
    //}

Зачем? Эта функция передает входящие параметры телу модуля. Закоментив ее не будут приходить входящие сообщения.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
Аватара пользователя
nick7zmail
Сообщения: 7573
Зарегистрирован: Пн окт 28, 2013 8:14 am
Откуда: Екатеринбург

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

Сообщение nick7zmail »

Не надо комментить. Попробуйте поправить
/api/module/mqtt на /api.php/module/mqtt
у меня сработало в похожем случае.
Raspberry Pi3+Broadlink+esp8266 (blynk)+AMS
Если вам помогло какое-либо сообщение - не забывайте пользоваться кнопкой "СПАСИБО".
:arrow: Услуги в профиле коннект
>>>>>Мой новый канал на ютутбе, подписывайтесь!<<<<<
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

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

Сообщение fandaymon »

directman66 писал(а): Пт июн 28, 2019 8:09 am
Зачем? Эта функция передает входящие параметры телу модуля. Закоментив ее не будут приходить входящие сообщения.
Затем что старый способ передавать сообщения модулю это $mqtt->processMessage($topic, $msg);
directman66
Сообщения: 2800
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Контактная информация:

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

Сообщение directman66 »

fandaymon писал(а): Пт июн 28, 2019 12:50 pm
directman66 писал(а): Пт июн 28, 2019 8:09 am
Зачем? Эта функция передает входящие параметры телу модуля. Закоментив ее не будут приходить входящие сообщения.
Затем что старый способ передавать сообщения модулю это $mqtt->processMessage($topic, $msg);
Это способ теперь заменен на api
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram
fandaymon
Сообщения: 1576
Зарегистрирован: Сб янв 13, 2018 5:00 pm

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

Сообщение fandaymon »

directman66 писал(а): Пт июн 28, 2019 12:52 pm
fandaymon писал(а): Пт июн 28, 2019 12:50 pm
directman66 писал(а): Пт июн 28, 2019 8:09 am
Зачем? Эта функция передает входящие параметры телу модуля. Закоментив ее не будут приходить входящие сообщения.
Затем что старый способ передавать сообщения модулю это $mqtt->processMessage($topic, $msg);
Это способ теперь заменен на api
Я догадался 8-) Но если новый не работает, то никогда не помешает попробовать вернуться к старому - мало ли, модуль, например, обновлен, а остальная система нет...
Stor
Сообщения: 133
Зарегистрирован: Ср окт 31, 2018 11:45 pm

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

Сообщение Stor »

nick7zmail писал(а): Пт июн 28, 2019 8:38 am Не надо комментить. Попробуйте поправить
/api/module/mqtt на /api.php/module/mqtt
у меня сработало в похожем случае.
Проверил. Раскомментировал и заменил /api/module/mqtt на /api.php/module/mqtt - не помогло. После перезагрузки модуля, данные снова перестали попадать в MQTT.

Пока вернул вариант с закомментированными строками.
Makcum
Сообщения: 10
Зарегистрирован: Чт июл 21, 2016 1:39 am

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

Сообщение Makcum »

Stor писал(а): Пт июн 28, 2019 10:51 pm
nick7zmail писал(а): Пт июн 28, 2019 8:38 am Не надо комментить. Попробуйте поправить
/api/module/mqtt на /api.php/module/mqtt
у меня сработало в похожем случае.
Проверил. Раскомментировал и заменил /api/module/mqtt на /api.php/module/mqtt - не помогло. После перезагрузки модуля, данные снова перестали попадать в MQTT.

Пока вернул вариант с закомментированными строками.
Аналогично.
Stor, а у Вас работают привязанные методы к объекту? У меня например свойства объекта заполняются данными из MQTT, но методы не отрабатывают (Объект Switch, событие switch) (это при условии, что новый метод закомментирован и оставлен только старый).
Stor
Сообщения: 133
Зарегистрирован: Ср окт 31, 2018 11:45 pm

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

Сообщение Stor »

Makcum писал(а): Пт июн 28, 2019 11:36 pm
Stor, а у Вас работают привязанные методы к объекту? У меня например свойства объекта заполняются данными из MQTT, но методы не отрабатывают (Объект Switch, событие switch) (это при условии, что новый метод закомментирован и оставлен только старый).
Нет, не работают. Об этом я написал ещё вчера (27 июня). У меня не отрабатывают методы округления данных температуры и влажности. Причем не отрабатывают методы ни родителя, ни его объектов. Срабатывает только прямой вызов метода через http ,вызов.
Ответить