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

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

Модератор: immortal

Аватара пользователя
prmres
Сообщения: 428
Зарегистрирован: Пт ноя 24, 2017 2:24 am
Откуда: оттуда
Благодарил (а): 113 раз
Поблагодарили: 123 раза

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

Сообщение prmres » Вт июн 06, 2023 2:13 am

GaiverX писал(а):
Вс май 14, 2023 4:12 am
Какой именно цикл?
Вот как выглядит в модуле....
И вот как выглядит в MQTTX....
для феншуйного порядка имена на клиентах всё-таки должны быть разные (mqttx - один клиент, majordomo - другой клиент)
Не только лишь все!
Аватара пользователя
andrey040670
Сообщения: 458
Зарегистрирован: Пн июл 31, 2017 10:00 pm
Благодарил (а): 161 раз
Поблагодарили: 85 раз

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

Сообщение andrey040670 » Вт июн 06, 2023 10:42 am

prmres писал(а):
Вт июн 06, 2023 2:07 am
andrey040670 писал(а):
Вс май 14, 2023 10:12 am
Если хотите собирать все топики, то укажите путь с слешем впереди: /#
посмотрел у себя - без слеша, данные обновляются (все топики что шлют ESP-шки)
поставил слеш, подождал несколько минут (стало offline и потом снова online) но данные обновляться перестали (с датчиков идут каждые 5 сек)
нова убрал слеш, снова подождал - даные пошли

не нужен там слеш
Проверил и у себя. Работает так и так, без разницы. 4 esp'шки шлют данные. Просто раньше были проблемы с слэшем, сейчас видать исправлено, может в моските дело, корче, надо пробывать с / и без.
У меня проработало с слэшем 6 лет без проблем.
За это сообщение автора andrey040670 поблагодарил:
prmres (Вт июн 06, 2023 4:01 pm)
Рейтинг: 1.16%
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
Аватара пользователя
prmres
Сообщения: 428
Зарегистрирован: Пт ноя 24, 2017 2:24 am
Откуда: оттуда
Благодарил (а): 113 раз
Поблагодарили: 123 раза

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

Сообщение prmres » Вт июн 06, 2023 4:01 pm

andrey040670 писал(а):
Вт июн 06, 2023 10:42 am
Проверил и у себя. Работает так и так, без разницы. 4 esp'шки шлют данные. Просто раньше были проблемы с слэшем, сейчас видать исправлено, может в моските дело, корче, надо пробывать с / и без.
У меня проработало с слэшем 6 лет без проблем.
странно
у меня со слешем не работает

ладно, может вечером на досуге поковыряюсь и чего наковыряю ...
Не только лишь все!
ramsesturi
Сообщения: 8
Зарегистрирован: Вт мар 08, 2022 7:36 pm
Откуда: Мать городов Русских
Благодарил (а): 0
Поблагодарили: 1 раз

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

Сообщение ramsesturi » Вс июн 25, 2023 1:37 pm

Всем доброго времени суток!
Уважаемы, подскажите, вопрос уже всплывал, но ответа я не встретил - есть ограничение в размере MQTT-пакета? У меня MD отправляет пакеты вплоть до 4кБ (может и больше, это то что реально использовал), а вот на прием больше 127 символов не пролазит (в MQTT Explorer пакеты видно, а в модуле MQTT MD их нет). Может кто сталкивался, подскажите. Заранее благодарен.
-----------добавлено спустя ххх минут)))-------------
Наверное сам отвечу на свой вопрос:
function prepareQueueTable()
{
//SQLExec ("DROP TABLE IF EXISTS `mqtt_queue`;");
$sqlQuery = "CREATE TABLE IF NOT EXISTS `mqtt_queue`
(`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`PATH` VARCHAR(255) NOT NULL,
`VALUE` VARCHAR(255) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE = MEMORY DEFAULT CHARSET=utf8;";
SQLExec($sqlQuery);
}
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Вс июн 25, 2023 11:17 pm

ramsesturi писал(а):
Вс июн 25, 2023 1:37 pm
Всем доброго времени суток!
Уважаемы, подскажите, вопрос уже всплывал, но ответа я не встретил - есть ограничение в размере MQTT-пакета? У меня MD отправляет пакеты вплоть до 4кБ (может и больше, это то что реально использовал), а вот на прием больше 127 символов не пролазит (в MQTT Explorer пакеты видно, а в модуле MQTT MD их нет). Может кто сталкивался, подскажите. Заранее благодарен.
-----------добавлено спустя ххх минут)))-------------
Наверное сам отвечу на свой вопрос:
function prepareQueueTable()
{
//SQLExec ("DROP TABLE IF EXISTS `mqtt_queue`;");
$sqlQuery = "CREATE TABLE IF NOT EXISTS `mqtt_queue`
(`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`PATH` VARCHAR(255) NOT NULL,
`VALUE` VARCHAR(255) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE = MEMORY DEFAULT CHARSET=utf8;";
SQLExec($sqlQuery);
}
а вы не используйте очередь тогда, там new connection есть. хотя это, вроде, только на запись(или вам это и надо) ну, у меня по дефолту стоит как раз new connection и таблицы mqtt_queue вообще нету. а в табл. mqtt поле value varchar(1024)
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Вс июн 25, 2023 11:38 pm

ramsesturi писал(а):
Вс июн 25, 2023 1:37 pm
Всем доброго времени суток!
Уважаемы, подскажите, вопрос уже всплывал, но ответа я не встретил - есть ограничение в размере MQTT-пакета? У меня MD отправляет пакеты вплоть до 4кБ (может и больше, это то что реально использовал), а вот на прием больше 127 символов не пролазит (в MQTT Explorer пакеты видно, а в модуле MQTT MD их нет). Может кто сталкивался, подскажите. Заранее благодарен.
-----------добавлено спустя ххх минут)))-------------
Наверное сам отвечу на свой вопрос:
function prepareQueueTable()
{
//SQLExec ("DROP TABLE IF EXISTS `mqtt_queue`;");
$sqlQuery = "CREATE TABLE IF NOT EXISTS `mqtt_queue`
(`ID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
`PATH` VARCHAR(255) NOT NULL,
`VALUE` VARCHAR(255) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE = MEMORY DEFAULT CHARSET=utf8;";
SQLExec($sqlQuery);
}
prepareQueueTable() существует, но вызовов её я не нашёл)
Вы не используйте очередь тогда, там new connection есть. хотя это, вроде, только на запись. ну, у меня по дефолту стоит как раз new connection и таблицы mqtt_queue вообще нету. а в табл. mqtt, куда валятся данные, поле value varchar(1024)
ramsesturi
Сообщения: 8
Зарегистрирован: Вт мар 08, 2022 7:36 pm
Откуда: Мать городов Русских
Благодарил (а): 0
Поблагодарили: 1 раз

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

Сообщение ramsesturi » Пн июн 26, 2023 8:18 am

@xor
Спасибо большое. Попробую. Хотя 1024 тоже "не спасут отца русской демократии" ))) Я принимаю пакет от автономного логера, а там максимальный размер 4К, так что в скуле придется поле править.
Еще раз спасибо!
ramsesturi
Сообщения: 8
Зарегистрирован: Вт мар 08, 2022 7:36 pm
Откуда: Мать городов Русских
Благодарил (а): 0
Поблагодарили: 1 раз

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

Сообщение ramsesturi » Пн июн 26, 2023 9:00 am

Не проконало (( Придется копать глубжее!
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Пн июн 26, 2023 4:45 pm

ramsesturi писал(а):
Пн июн 26, 2023 9:00 am
Не проконало (( Придется копать глубжее!
у меня приходят короткие боевые топики, но тоже постараюсь проверить на чём-то большом. 127 байт - ни в какие ворота, да(
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

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

Сообщение xor » Пн июн 26, 2023 5:39 pm

ramsesturi писал(а):
Пн июн 26, 2023 9:00 am
Не проконало (( Придется копать глубжее!
подтверждаю - 255 символов - предел (у меня сообщение режется, если сильно больше - вообще пропадает)
upd. это при просмотре)
1000 знаков пишется в свойство из москита

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

$s="О книге 'Лекарь. Книга вторая'
Многим кажется, что маг в нашем мире был бы всемогущим. Но и у него могут быть свои слабые стороны. Так что и маг-попаданец вполне может стать мишенью для врагов. Именно это случилось с главным героем книги Андрея Первухина 'Лекарь. Книга вторая'.

Андрей в своём магическом мире был архимагом. Император приговорил его с коллегами по магическому цеху к смерти. Однако благодаря одному ритуалу он сумел перенестись в наш мир. Здесь он сумел занять достойное место благодаря своей магии. Да, вся его сила вместе с магической книгой осталась по ту сторону портала, но остатка магического Дара бывшему архимагу хватило, чтобы в нашем мире стать выдающимся целителем.
";
echo '<pre>';
echo $s;
echo mb_strlen($s);
echo "<br>--------------------------------------------------<br>";
//publish
include_once(DIR_MODULES . 'mqtt/mqtt.class.php');
$mqtt = new mqtt();
$rezult = $mqtt->mqttPublish("tele/test/SENSOR", $s,  0, 0);
sleep(10);
//read from mqtt and save in linked prop
echo gg('mqtt.value');
echo mb_strlen(gg('mqtt.value'));
вот вывод - тут больше 255 - символов 699

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

О книге 'Лекарь. Книга вторая'
Многим кажется, что маг в нашем мире был бы всемогущим. Но и у него могут быть свои слабые стороны. Так что и маг-попаданец вполне может стать мишенью для врагов. Именно это случилось с главным героем книги Андрея Первухина 'Лекарь. Книга вторая'.

Андрей в своём магическом мире был архимагом. Император приговорил его с коллегами по магическому цеху к смерти. Однако благодаря одному ритуалу он сумел перенестись в наш мир. Здесь он сумел занять достойное место благодаря своей магии. Да, вся его сила вместе с магической книгой осталась по ту сторону портала, но остатка магического Дара бывшему архимагу хватило, чтобы в нашем мире стать выдающимся целителем.
699
--------------------------------------------------
О книге 'Лекарь. Книга вторая'
Многим кажется, что маг в нашем мире был бы всемогущим. Но и у него могут быть свои слабые стороны. Так что и маг-попаданец вполне может стать мишенью для врагов. Именно это случилось с главным героем книги Андрея Первухина 'Лекарь. Книга вторая'.

Андрей в своём магическом мире был архимагом. Император приговорил его с коллегами по магическому цеху к смерти. Однако благодаря одному ритуалу он сумел перенестись в наш мир. Здесь он сумел занять достойное место благодаря своей магии. Да, вся его сила вместе с магической книгой осталась по ту сторону портала, но остатка магического Дара бывшему архимагу хватило, чтобы в нашем мире стать выдающимся целителем.
699
Ответить