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

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

Модератор: immortal

Аватара пользователя
AE_
Сообщения: 8
Зарегистрирован: Чт окт 01, 2020 11:35 am
Откуда: Msk
Благодарил (а): 1 раз
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение AE_ » Пн окт 05, 2020 11:58 pm

Даже не знаю. Либо вопрос (потому что дурак и не нашел как), либо мысль "на подумать" или попинать ногами.

Методу-обработчику топика в качестве параметров доступны старое и новое значения топика. Но недоступен, собственно сам топик.
В результате я не нашел простого способа написать "универсальный" обработчик для нескольких однотипных модулей в составе комплексного MQTT устройства. Понятно, что workaround'ы придумать всегда можно. Скажем, отдельный метод на каждый топик в группе (+рефакторинг), или даже свой объект на каждый подмодуль - но почему бы не дать цвести всем цветам? :)

Тем более что добавить $params['TOPIC'] из коробки кажется не такой уж сложной задачей
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

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

Сообщение xor » Сб окт 10, 2020 1:43 am

AE_ писал(а):
Пн окт 05, 2020 11:58 pm
Даже не знаю. Либо вопрос (потому что дурак и не нашел как), либо мысль "на подумать" или попинать ногами.

Методу-обработчику топика в качестве параметров доступны старое и новое значения топика. Но недоступен, собственно сам топик.
В результате я не нашел простого способа написать "универсальный" обработчик для нескольких однотипных модулей в составе комплексного MQTT устройства. Понятно, что workaround'ы придумать всегда можно. Скажем, отдельный метод на каждый топик в группе (+рефакторинг), или даже свой объект на каждый подмодуль - но почему бы не дать цвести всем цветам? :)

Тем более что добавить $params['TOPIC'] из коробки кажется не такой уж сложной задачей
добавить передачу топика методу ещё одним параметром?
И автор тут редко бывает( Лучше в коннекте в разделе Идеи это предлагать или в основном чате телеги
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

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

Сообщение Divan » Вс окт 25, 2020 1:44 pm

Убираем символ #.

Что делать, если в топиках перед цветовым значением стоит знак # и как его убрать, чтобы было цветовое значение в формате HEX без #?

Так выглядит топик цветового значения в формате HEX, где перед значением стоит символ #
СпойлерПоказать
Получаем такое значение.jpg
Получаем такое значение.jpg (29.74 КБ) 3079 просмотров

В самом свойстве, где нужно убрать символ #, включаем проверку значений и выбираем расширенный (кодом)
СпойлерПоказать
Убираем символ # - 1.jpg
Убираем символ # - 1.jpg (82.33 КБ) 3079 просмотров
и вставляем такой код

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

$value = str_replace('#','',$value);
В результате будет цветовое значение без символа #
СпойлерПоказать
image_2020-10-25_133916.png
image_2020-10-25_133916.png (8.53 КБ) 3079 просмотров
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
Аватара пользователя
KVN
Сообщения: 89
Зарегистрирован: Ср ноя 14, 2018 12:27 pm
Откуда: UA
Благодарил (а): 25 раз
Поблагодарили: 3 раза

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

Сообщение KVN » Ср окт 28, 2020 9:38 am

Привет.
Подскажите как удалить ненужные устройства из MQTT списка?
Удаляю через "удалить не подключенные устройства" и через phpmyadmin, а через некоторое время они опять появляются в списке.
Мой CONNECT
Ubuntu Linux 16.04.5 LTS, Источник обновлений ядра: Мастер
Acer Aspire One D270
Аватара пользователя
AE_
Сообщения: 8
Зарегистрирован: Чт окт 01, 2020 11:35 am
Откуда: Msk
Благодарил (а): 1 раз
Поблагодарили: 4 раза
Контактная информация:

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

Сообщение AE_ » Ср окт 28, 2020 10:39 am

KVN писал(а):
Ср окт 28, 2020 9:38 am
Удаляю через "удалить не подключенные устройства" и через phpmyadmin, а через некоторое время они опять появляются в списке.
Топики, удаленные в MajorDomo, могут появляться только из-за того, что соответствующие сообщения были снова посланы брокером MQTT. Возможны 2 причины:
  • Устройство все еще включено и шлет сообщения. Выключить устройство :)
  • При отправке топиков был выставлен флажок retained, в результате чего они "залипли" на MQTT брокере и он перепосылает их при каждом новом подключении кликента, того же MD. Убивать такие топики нужно непосредственно на брокере. Если брокер настроен так чтобы не сохранять состояние в бд - достаточно его перезапустить. Иначе нужно либо полностью чистить базу данных (файл mosquitto.db), либо удалять retained топики в MQTT клиенте, который это умеет делать. Например MQTT Explorer, или
    mosquitto_pub -h <host> -t <topic> -n -r -d
Аватара пользователя
Kvantos
Сообщения: 295
Зарегистрирован: Вт окт 31, 2017 1:05 pm
Благодарил (а): 26 раз
Поблагодарили: 49 раз

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

Сообщение Kvantos » Ср окт 28, 2020 12:59 pm

Модуль mqtt MDM тоже умеет удалять retained топики, достаточно в настройках соотв. топика:
1.Retain "Да"
2.Установить чекбокс "установить:" и в поле "значение" - пусто
3.Нажать "Сохранить"
Просто смена Retain "Да"->"Нет" не поможет
MDM живет на 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux
Аватара пользователя
KVN
Сообщения: 89
Зарегистрирован: Ср ноя 14, 2018 12:27 pm
Откуда: UA
Благодарил (а): 25 раз
Поблагодарили: 3 раза

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

Сообщение KVN » Ср окт 28, 2020 4:50 pm

Устройство все еще включено и шлет сообщения. Выключить устройство
Устройства точно нет, оно уже перепрошито 2 раза на другие прошивки (espurna - родной соноф - tasmota(сейчас))
При отправке топиков был выставлен флажок retained
Вообще никогда не пользовался этим и даже не знал для чего оно

Устройства появляются примерно через 6 часов после удаления :cry:
Мой CONNECT
Ubuntu Linux 16.04.5 LTS, Источник обновлений ядра: Мастер
Acer Aspire One D270
Аватара пользователя
andrey040670
Сообщения: 459
Зарегистрирован: Пн июл 31, 2017 10:00 pm
Благодарил (а): 161 раз
Поблагодарили: 85 раз

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

Сообщение andrey040670 » Ср окт 28, 2020 4:55 pm

KVN писал(а):
Ср окт 28, 2020 4:50 pm
Вообще никогда не пользовался этим и даже не знал для чего оно
Однако сделайте так как уже написали выше и всё благополучно удалится.
MJD alfa: Khadas VIM1 Ubuntu 18.04.2 LTS bionic Linux 4.9.40 #2 SMP PREEMPT Tue Oct 30 15:47:54 CST 2018 aarch64 GNU/Linux
MJD alfa: Rpi 3B Debian 11 (bullseye) Linux raspberrypi 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux
Аватара пользователя
Divan
Сообщения: 859
Зарегистрирован: Пн июл 08, 2019 5:04 pm
Благодарил (а): 117 раз
Поблагодарили: 280 раз

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

Сообщение Divan » Ср окт 28, 2020 5:17 pm

KVN писал(а):
Ср окт 28, 2020 9:38 am
Привет.
Подскажите как удалить ненужные устройства из MQTT списка?
Удаляю через "удалить не подключенные устройства" и через phpmyadmin, а через некоторое время они опять появляются в списке.
Смотрим видео
Xpenology DSM 6.2.2 + Ubuntu Server 18.10 + Majordomo + MariaDB
CAHbKA
Сообщения: 39
Зарегистрирован: Сб мар 17, 2018 6:37 am
Благодарил (а): 10 раз
Поблагодарили: 2 раза

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

Сообщение CAHbKA » Пт ноя 06, 2020 3:37 pm

zoz писал(а):
Пт окт 02, 2020 10:12 pm
CAHbKA писал(а):
Ср сен 02, 2020 8:39 am
а у меня с обновлением ядра mjd вообще mqtt модуль отказался работать.

https://connect.smartliving.ru/ideas/839.html
такая же история, cycle_mqtt не запускается.
москито работает.
куда копать?
в прошлый раз помог откат файла 3rdparty/phpmqtt/phpMQTT.php
сегодня очередное обновление, опять отпал mqtt. попробую откатить.
За это сообщение автора CAHbKA поблагодарил:
zoz (Пн ноя 09, 2020 7:07 pm)
Рейтинг: 1.16%
Pi3 + MJD
Ответить