• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Конфигурация IoT Manager для умного дома на MQTT

lingvo

New member
Здравствуйте.
В поисках подходящего MQTT клиента для iOS для удаленного управления умным домом наткнулся на данное приложение. Установил, подключился к брокеру, но споткнулся на настройке виджетов:
Нигде не нахожу документации о пошаговой настройке и загрузке виджетов для IoT Manager, когда у тебя НЕ ESP8266 и НЕ Arduino.
Т.е. в моем случае у меня есть контроллер УД, который подключен к CloudMQTT и шлет туда текущие состояние в виде топиков(например) "/myhome/in/Temperature_Hall" со значением "20.6".
Как мне отобразить эти значения виджетами в IoT Manager?
И наоборот - УД реагирует на сообщения "ON" "OFF", посланные с топик(например) "/myhome/command/Light_Hall/state". Как мне сделать управление с виджета?

Может я не там ищу, но нигде не могу найти документацию. Пробовал в топик /IoTmanager/exchange/input/ посылать что-то вроде:
{
"id" : "0",
"status" : "My Home",
"widget" : "anydata",
"page" : "Kitchen",
"pageId" : 10,
"topic" : "/myhome/in/Temperature_Hall",
"class1" : "item no-border",
"style2" : "font-size:40px;line-height:3em;",
"class3" : "calm text-center",
"style3" : "font-size:40px;font-weight:bold;"
}
ругается: {"result":500,"obj":"cmd","msg":"No cmd field"}

Помогите пожалуйста. Если будет документация по универсальной настройке для любых MQTT систем - придет огромная популярность.
 

Victor

Administrator
Команда форума
IoT Manager предполагает, что данные будут отправлены в соответствии с его внутренним протоколом. Есть протокол v1 и v2, описание - в официальной документации Протокол обмена · IoT Manager
когда у тебя НЕ ESP8266 и НЕ Arduino
для IoT Manager не важно кто посылает данные - главное, чтобы в правильном формате и в соответствии с протоколом. Есть примеры на NodeJS, bash, python GitHub - 4refr0nt/iot-manager-demo: Demo sketches for IoT Manager https://play.google.com/store/apps/details?id=ru.esp8266.iotmanager
"/myhome/in/Temperature_Hall" со значением "20.6".
Как мне отобразить эти значения виджетами в IoT Manager?
это возможно, но будет трудновато, т.к. в IoT Manager только зачатки протокола Domoticz (поддержка Domoticz оказалась не востребована пользователями, поэтому не получила развития).
Инструкция (на английском) на примере ESPeasy здесь ESPEasy sensors data on your mobile devices without coding - Let's Control It

Ну и в общих чертах описание в этом посте IoT Manager - предложения по расширению функционала
 

lingvo

New member
Вот блин. Думал, нашел подходящее приложение, а тут такой облом с какими-то своими протоколами. Неужели нельзя просто сделать виджет, который отображает все, что приходит в нужный топик? И наборот - виджет кнопка, которая при нажатии публикует нужный текст в нужный топик?
И все, мне больше ничего не нужно. MQTT тут самодостаточен. Неужели это невозможно?

Ладно. Попробую по вашему:
Если использовать протокол v1, то от устройства потребуется отправка данных 2 раза: первый раз нужно отправить JSON строку с HTML классами и стилями (config) каждый раз, когда телефон подключается к брокеру и шлет HELLO и далее периодически отправляем только данные. Данные с устройства отправляем в топик, указанный ранее в config, JSON строкой {"status":xxx}.
Пример конфигурационной строки можно? В какой топик ее слать? Почему надо ждать "HELLO", а не сделать так, чтобы конфиг хранился на брокере, как retain message и IoT Manager получал его автоматически при подключении к брокеру и подписке?
 

Victor

Administrator
Команда форума
Неужели это невозможно?
Возможно, есть куча других приложений с поддержкой MQTT.
Пример конфигурационной строки можно?
поверьте, у меня нет физической возможности пересказывать то, что есть в документации и примерах 20 тысячам пользователей IoT Manager.
Это не упрек в ваш адрес, но если вы не любите что-то делать самостоятельно по документации и примерам, то это приложение вряд ли вам подойдет.

Почему надо ждать "HELLO", а не сделать так, чтобы конфиг хранился на брокере, как retain message и IoT Manager получал его автоматически при подключении к брокеру и подписке?
Эти вопросы уже обсуждались - воспользуйтесь поиском
 

lingvo

New member
Возможно, есть куча других приложений с поддержкой MQTT.
К сожалению для iOS я пока не нашел. Я готов заплатить за такое приложение.
поверьте, у меня нет физической возможности пересказывать то, что есть в документации и примерах 20 тысячам пользователей IoT Manager.
Это не упрек в ваш адрес, но если вы не любите что-то делать самостоятельно по документации и примерам, то это приложение вряд ли вам подойдет.
Я не прошу пересказывать. Я прошу дать ссылки на документацию. Если этого нет в документации, то по-моему, это проблема разработчика. Еще раз, где в документации сказано - в какой топик слать конфигурацию и в каком формате?
 

Victor

Administrator
Команда форума
Я готов заплатить за такое приложение.
Если это реальное предложение, то можем его обсудить в приватной беседе.
Я прошу дать ссылки на документацию.
Все топики даны в описании протокола Протокол обмена · IoT Manager
Обычно, это проще понять на примерах. Посмотрите простые примеры на NodeJS, например этот iot-manager-demo/toggle.js at master · 4refr0nt/iot-manager-demo · GitHub
 

lingvo

New member
Обычно, это проще понять на примерах. Посмотрите простые примеры на NodeJS
Смотря кому. Я не знаю NodeJS.
Все топики даны в описании протокола Протокол обмена · IoT Manager
Делаю по описанию:
Шлю в топик "/IoTmanager/Test_device/config" такую строку:
{ "id" : "0", "status" : "MyHome", "widget" : "anydata", "page" : "Kitchen", "pageId" : 10, "topic" : "Temperature_Hall", "class1" : "item no-border", "style2" : "font-size:40px;line-height:3em;", "class3" : "calm text-center", "style3" : "font-size:40px;font-weight:bold;" }
В приложении появляется текст MyHome .
Шлю в топик "/IoTmanager/Test_device/Temperature_Hall/status" строку: {"status" : "2"}
Ничего не происходит.
 

lingvo

New member
в конфиге поменяйте топик на [inline]/IoTmanager/Test_device/Temperature_Hall[/inline]
т.е. prefix + "/" + deviceID + "/Temperature_Hall"
Так работает. Т.е. получается, что топик должен иметь формат, проходящий через subscribe фильтр. А этот фильтр можно поменять программно? А то он постоянно сбрасывается в исходный. Идеально было бы, чтобы IoT Manager автоматом подписывался на указанный в Widget топик.
 

Victor

Administrator
Команда форума
автоматом подписывался на указанный в Widget топик
IoTmanager при подключении подписывается на все топики /IoTmanager/+/config и /IoTmanager/+/+/status, но парсит и визуализирует только те данные, внешний вид которых описан в конфигах, которые прилетели в ответ на HELLO после подключения.
 

джеки

New member
victor у меня та-же самая проблема с которой столкнулся lingvo...в частности на закупал этих esp8266- модулей научился их прошивать ...вроде разобрался с брокерами.....а вот виджеты эти трудно настраиваемые(да и примеров-то НЕТ на самом деле по настоящему рабочих )......короче полная ЖО....А....я извиняюсь конечно(так хочется громко материться) три дня сижу врубиться не могу(на видео-то видно как кнопочки нажимают на виджетах......а как эти виджеты вообще функционируют обмен данными, настройка и т.д и т.п этого нету ДАЖЕ МАЛЕНЬКОЙ ИНСТРУКЦИ как это всё должно работать нет нигде).....обидно конечно прошёл такой длинный путь , а подключить готовую ESPшку не могу........
 

джеки

New member
и вообще мне не понятно то что примеры IoTmanager.ino эти даже не запускаются на ардуино.....застревает на -- PubSubClient client(wclient, server, mqttport); ....как сие понять???? ответьте пожалуйста
 

Victor

Administrator
Команда форума
три дня сижу врубиться не могу
да, действительно, порог вхождения для использования IoT Manager высокий для начинающих. Подразумевается, что пользователь уже неплохо разбирается с MQTT, JSON, HTML5 и CSS3. Если вы разберетесь с этим, то дальше будет просто. Или начните с какого-нибудь blynkа.
нету ДАЖЕ МАЛЕНЬКОЙ ИНСТРУКЦИ как это всё должно работать
все здесь Главная · IoT Manager, в обсуждениях у нас на форуме и в примерах на гитхабе. Кратко здесь IoT Manager - предложения по расширению функционала
 

Victor

Administrator
Команда форума
и вообще мне не понятно то что примеры IoTmanager.ino эти даже не запускаются на ардуино.....застревает на -- PubSubClient client(wclient, server, mqttport); ....как сие понять???? ответьте пожалуйста
Понять просто. В каждом примере вверху в комментах ссылка на "правильную" библиотеку PubSubClient от Imroy (только она поддерживает достаточный размер payload в MQTT сообщениях). И я об этом писал уже много раз. Но вы ведь не читали, правда? Поэтому я в очередной раз терпеливо отвечаю.
Кстати примеры не для плат Arduino, а для ESP8266 для среды программирования Arduino IDE.
 

джеки

New member
Понять просто. В каждом примере вверху в комментах ссылка на "правильную" библиотеку PubSubClient от Imroy (только она поддерживает достаточный размер payload в MQTT сообщениях). И я об этом писал уже много раз. Но вы ведь не читали, правда? Поэтому я в очередной раз терпеливо отвечаю.
Кстати примеры не для плат Arduino, а для ESP8266 для среды программирования Arduino IDE.

.....ну вот вы мне подсказали теперь буду копать в нужном направлении....
 

джеки

New member
пять скэтчев скачал на ИДЕ с вашего ИТН-хранилища ,все стопоряться на одном и том-же ---PubSubClient client(wclient, server, mqttport);
...не пойму что надо делать????
 
Последнее редактирование:

tretyakov_sa

Moderator
Команда форума
пять скэтчев скачал на ИДЕ с вашего ИТН-хранилища ,все стопоряться на одном и том-же ---PubSubClient client(wclient, server, mqttport);
...не пойму что надо делать????
Библиотеку замените. Все старые сотрите.
GitHub - Imroy/pubsubclient: A client library for the ESP8266 that provides support for MQTT
Только что проверил, работает.
 

lingvo

New member
Если это реальное предложение, то можем его обсудить в приватной беседе.
Не вижу смысла делать это в привате - думаю меня поддержат другие пользователи.
Смысл вот в чем - сейчас уже есть куча opensource систем для Умного дома, кроме Arduino и ESP8266. Помимо известного Вам Domoticz, есть OpenHAB, Fhem, ioBroker, Home Assistant, MajorDomo и другие. И у них сотни тысяч пользователей. Основное отличие таких систем от Arduino и ESP8266 - там нет таких требований к программированию. Все что нужно - это установить дистрибутив и сделать настройку. MQTT данные системы, естественно, тоже поддерживают, поэтому я и писал, что не знаю Nodejs. Многие пользователи этих систем не знают программирования даже на уровне скетчей.
Но вот чего не хватает всем этим системам - хорошего удаленного доступа и клиента для iOS/Android. Так как это в основном OpenSource - у них нет ресурсов для своего "Облака", или оно очень плохое. Пробрасывать порты на встроенный Веб-сервер - не выход. Идеальный вариант: MQTT - Облачный брокер, куда система УД будет коннектиться, скидывать и получать все данные и клиент MQTT с Dashboard мордой, который будет подписываться на топики и отображать всю информацию в приемлемом виде и все.
Клиент должен быть легко настраиваемый и иметь хорошую документацию - чтобы можно было разобраться имея только знания MQTT. Его функциональность должна быть простая: Виджеты должны подписываться на топики(названия топиков настраиваются) и отображать текстовую информацию из них. В случаях с бинарной информацией, типа ON/OFF, виджет должен знать какое сообщение соответствует опции ON, а какое OFF - это тоже должно настраиваться.
Ну и в обратном направлении почти то же самое - виджет, например кнопка, должна просто посылать определенное значение в заданный топик. Слайдеры - увеличивать числовое значение и т.д.
Хорошо, если бы конфигурация виджетов загружалась автоматически при старте с брокера путем подписи на определенный конфигурационный топик. Еще лучше, если бы поддерживались PUSH уведомления и возможность нажимать кнопки с заблокированного экрана(в iOS есть панель виджетов)
Ну и за такую программу, я знаю, многие владельцы Умных Домов, готовы платить по паре евро. Я лазил по разным форумам - везде возникают похожие запросы, но пока ответа нет. Сам готов данную прогу отрекламировать, если она появится.
 
Сверху Снизу