• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

IoT Manager - сообщаем о багах

Mоnk

Member
Для очистки совести зарегистрился на m13.cloudmqtt.com. Не помогло.
Странное ощущение, что косяк в месте if (client.connected()) второго примера.
Ибо с этого места ничего не делается, судя по сериалмонитору.
 

Victor

Administrator
Команда форума
так и не могу разобраться в чем проблема у меня
Мне тоже пришлось немало повозиться, пока нашел причину, а их оказалось две:

1. Скетчи с примерами для Arduino были сделаны давно и не оптимально. Нужно "разгрузить" callback функцию приема сообщений: сохраняем сообщение и взводим флаг, что его нужно обработать и сразу возвращаемся, а в основном цикле смотрим флаг и если он взведен, то забираем сообщение и его обрабатываем. Такие тесты я уже провел успешно, чуть позднее приведу в порядок и выложу примеры. Удалось обойтись без delay - все летает даже на WebSockets и GPRS (хотя конечно с локальным брокером по WiFi и paho native еще быстрее)

2. В предыдущую бета версию 105030 закралась досадная ошибка в PahoNative - все сообщения отправлялись с RETAIN флагом, что приводило к приему на ESP8266 старых сообщений сразу после подписки на топики (они и приводили к зависанию скетча). Выпущена новая бета с багфиксом (билд 105031) - обновляйтесь.

У кого остались на брокере старые RETAIN сообщения - необходимо просто перезагрузить mosquitto.
 

Mоnk

Member
Опять в школу!
Victor, с нетерпением... Пример попробовать.
Где кстати "новая бета"? Что-то я к вечеру пятницы туплю.
 

Mоnk

Member
Тэкс, Гугль мне бету накатил.
Но без "правильных" примеров ну никак...
 

Victor

Administrator
Команда форума
Как и обещал выкладываю примеры: исправленный старый iot-manager-demo/ArduinoIDE/ESP8266/official-demo/IoTmanager2 at master · 4refr0nt/iot-manager-demo · GitHub

И новый: iot-manager-demo/ArduinoIDE/ESP8266/official-demo/AnydataToggle at master · 4refr0nt/iot-manager-demo · GitHub

новый пример интересен тем, что сейчас можно не использовать библиотеку ArduinoJSON и при этом не мучаться с экранированием кавычек и сборкой длинных строк в большой массив конфигов!

Делаете свои конфиги в обычных текстовых файлах, внутри которых JSON конфигурация виджета (в каждом файле свой виджет)
Потом запускаете специальный скрипт, который придумал @AlexSuslov, а я адаптировал его для Win и у вас генерятся .h файлы, которые вы подключаете к скетчу и отправляете на брокер. Все делают linux утилиты, win аналоги которых я положил в папку [inline]bin[/inline] (нужно только их разархивировать).
@AlexSuslov еще и минифицирует JSON, чтобы передавать меньше байт. Я уж не стал лепить сюда [inline]json-minify[/inline] чтобы вам не пришлось еще и [inline]NodeJS[/inline] ставить.
 

Alex403

New member
Не могу добавить подписку. Не приходят уведомления, в других клиентах приходят.
 

Alex403

New member
Когда я добавляю подписку в "MQTT Subscrible", она не добавляется, сначала добавляется в конец списка, а потом если например выйти на главную страницу и вернутся, то подписка пропадает. На главном экране сообщение что соединение с брокером установлено, но данные от устройств отсутствуют. Хотя они видны в других приложениях.
 

Victor

Administrator
Команда форума
Когда я добавляю подписку в "MQTT Subscrible", она не добавляется
Ручная подписка на топики возможна, но вот видеть вы данные от этих топиков сможете только в логах. Это больше для отладки какой-либо, чем для практических применений. Если вы хотите увидеть данные на главном экране, то они должны быть определенным образом оформлены, чтобы IoT Manager мог распарсить эти данные. Вам нужно ознакомится с протоколами обмена, поддерживаемыми в IoTm - Протокол обмена · IoT Manager
с примерами отправки данных GitHub - 4refr0nt/iot-manager-demo: Demo sketches for IoT Manager https://play.google.com/store/apps/details?id=ru.esp8266.iotmanager и отправлять данные в том виде, в котором их понимает IoT Manager.
 

Alex403

New member
Ручная подписка у меня не сохраняется. Но когда поставил подписку, в логах она есть. Использовал пример который этой статье: http://esp8266.ru/iot-manager-for-diy/ Может поменялся протокол с момента написания этой статьи? Я сначала хотел запустить какой-то пример. А потом уже делать интерфейс который мне нужен.
 

Alex403

New member
Спасибо, попробовал. Все равно не заработало. В логах есть, а в главном экране нет. Попробовал на айфоне. Вообще не соединяется с брокером, раз 7 вводил пароли/логины, точно не ошибся. А другое приложение соединилось сразу. И видны сообщения.
 

Victor

Administrator
Команда форума

Alex403

New member
Есть желание продолжать :)
Вот что происходит в терменале:
WiFi connect: Success
IP address: 192.168.1.114
Connecting to MQTT server ...
Connect to MQTT server: Success
Publish config: Success ({"id":"0","page":"Bedroom1","pageId":"1","descr":"Bedroom light-0","widget":"toggle","topic":"/IoTmanager/dev02-bedroom/light0","color":"red"})
Publish new status for /IoTmanager/dev02-bedroom/light0, value: {"status":"0"}
Publish config: Success ({"id":"1","page":"Bedroom1","pageId":"1","descr":"Bedroom light-1","widget":"toggle","topic":"/IoTmanager/dev02-bedroom/light1","color":"yellow"})
Publish new status for /IoTmanager/dev02-bedroom/light1, value: {"status":"0"}
Publish config: Success ({"id":"2","page":"Bedroom1","pageId":"1","descr":"Bedroom light-2","widget":"toggle","topic":"/IoTmanager/dev02-bedroom/light2","color":"green"})
Publish new status for /IoTmanager/dev02-bedroom/light2, value: {"status":"1"}
Publish config: Success ({"id":"3","page":"Bedroom2","pageId":"2","descr":"ADC","widget":"small-badge","topic":"/IoTmanager/dev02-bedroom/ADC","badge":"badge-calm","style":"font-size:150%;"})
Publish new status for /IoTmanager/dev02-bedroom/ADC, value: {"status":"0"}
Publish config: Success ({"id":"4","page":"Bedroom2","pageId":"2","descr":"Bedroom light-4","widget":"toggle","topic":"/IoTmanager/dev02-bedroom/light4","color":"orange"})
Publish new status for /IoTmanager/dev02-bedroom/light4, value: {"status":"0"}
Publish config: Success ({"id":"5","page":"Bedroom3","pageId":"3","descr":"Bedroom RED","widget":"range","topic":"/IoTmanager/dev02-bedroom/red","style":"range-assertive","badge":"badge-assertive"})
Publish new status for /IoTmanager/dev02-bedroom/red, value: {"status":"0"}
Publish config: Success ({"id":"6","page":"Bedroom3","pageId":"3","descr":"Bedroom GREEN","widget":"range","topic":"/IoTmanager/dev02-bedroom/green","style":"range-balanced","badge":"badge-balanced"})
Publish new status for /IoTmanager/dev02-bedroom/green, value: {"status":"0"}
Publish config: Success ({"id":"7","page":"Bedroom3","pageId":"3","descr":"Bedroom BLUE","widget":"range","topic":"/IoTmanager/dev02-bedroom/blue","style":"range-calm","badge":"badge-calm"})
Publish new status for /IoTmanager/dev02-bedroom/blue, value: {"status":"0"}
Subscribe: Success
Publish config: Success ({"id":"0","page":"Bedroom1","pageId":"1","descr":"Bedroom light-0","widget":"toggle","topic":"/IoTmanager/dev02-bedroom/light0","color":"red"})
Publish new status for /IoTmanager/dev02-bedroom/light0, value: {"status":"0"}
Publish config: Success ({"id":"1","page":"Bedroom1","pageId":"1","descr":"Bedroom light-1","widget":"toggle","topic":"/IoTmanager/dev02-bedroom/light1","color":"yellow"})
Publish new status for /IoTmanager/dev02-bedroom/light1, value: {"status":"0"}
Publish config: Success ({"id":"2","page":"Bedroom1","pageId":"1","descr":"Bedroom light-2","widget":"toggle","topic":"/IoTmanager/dev02-bedroom/light2","color":"green"})
Publish new status for /IoTmanager/dev02-bedroom/light2, value: {"status":"1"}
Publish config: Success ({"id":"3","page":"Bedroom2","pageId":"2","descr":"ADC","widget":"small-badge","topic":"/IoTmanager/dev02-bedroom/ADC","badge":"badge-calm","style":"font-size:150%;"})
Publish new status for /IoTmanager/dev02-bedroom/ADC, value: {"status":"0"}
Publish config: Success ({"id":"4","page":"Bedroom2","pageId":"2","descr":"Bedroom light-4","widget":"toggle","topic":"/IoTmanager/dev02-bedroom/light4","color":"orange"})
Publish new status for /IoTmanager/dev02-bedroom/light4, value: {"status":"0"}
Publish config: Success ({"id":"5","page":"Bedroom3","pageId":"3","descr":"Bedroom RED","widget":"range","topic":"/IoTmanager/dev02-bedroom/red","style":"range-assertive","badge":"badge-assertive"})
Publish new status for /IoTmanager/dev02-bedroom/red, value: {"status":"0"}
Publish config: Success ({"id":"6","page":"Bedroom3","pageId":"3","descr":"Bedroom GREEN","widget":"range","topic":"/IoTmanager/dev02-bedroom/green","style":"range-balanced","badge":"badge-balanced"})
Publish new status for /IoTmanager/dev02-bedroom/green, value: {"status":"0"}
Publish config: Success ({"id":"7","page":"Bedroom3","pageId":"3","descr":"Bedroom BLUE","widget":"range","topic":"/IoTmanager/dev02-bedroom/blue","style":"range-calm","badge":"badge-calm"})
Publish new status for /IoTmanager/dev02-bedroom/blue, value: {"status":"0"}
.....
Publish: /IoTmanager/dev02-bedroom/ADC/status => {"status":"0"}
..........
Publish: /IoTmanager/dev02-bedroom/ADC/status => {"status":"0"}
..........
Publish: /IoTmanager/dev02-bedroom/ADC/status => {"status":"0"}
..........
 

Victor

Administrator
Команда форума
Вот что происходит в терменале:
там все ок, данные улетают.
Брокер, как я понял, у вас локальный.
1. Зайдите в IoT Manager в настройки, там Внешний вид - Показывать вкладки страниц - выключить - посмотреть на главной не появились ли виджеты

2. WebSockets есть? Если да, то попробуйте в настройках IoT Manager выбрать движок [inline]paho over websockets[/inline], SSL отключить, если у вас на брокере SSL не сделан.
Если WebSockets нет, тогда только paho native. Порт стандартный.
Попробуйте оба движка. Если соединиятся нормально - идите в логи, там есть кнопочка - можно отправить их себе на почту
 

Alex403

New member
1) Выключил.
2) Я не совсем понимаю что такое WebSockets, SSL у меня отключен. Стандартный порт это какой? У меня в профиле порт 19867. С ним подключался.

Сейчас попробовал разные настройки соединения. Теперь совсем не соединяется с брокером. Что не пробую, ни как(
 

Victor

Administrator
Команда форума
Теперь совсем не соединяется с брокером.
У вас в профиле на cloudmqtt 3 разных порта как на этой картинке Посмотреть вложение 2215

Верхний - "обычный" порт. К нему подключаются ESP8266 (вы этот порт в скетч вставили) и в IoT Manager движок [inline]paho native[/inline].

Нижний порт - WebSockets SSL - к нему можно подключиться только из IoT Manager, движок [inline]paho over WebSockets[/inline] или [inline]mqtt.js over WebSockets[/inline] (должен быть включен SSL).

Подключайтесь, запускайте скетч на ESP8266, и отправляйте сюда логи с телефона
 

Alex403

New member
Переставил приложение. Подключился через обычный порт. Если я добавляю топики в подписке, они не сохраняются.
Вот лог:
0 23:23:28 GMT+0300 (EEST) Paho native: disconnected!
1 23:23:40 GMT+0300 (EEST) Broker: wakeup event.
2 23:23:40 GMT+0300 (EEST) Broker: Trying connect to mqtt://m20.cloudmqtt.com:19867, user:bcwsqumg, pass:<HIDDEN>, engine: "paho native", attempt 1...
3 23:23:40 GMT+0300 (EEST) Paho Native: connecting...
4 23:23:40 GMT+0300 (EEST) Paho native: connect: Success.
5 23:23:40 GMT+0300 (EEST) Broker: onConnect event.
6 23:23:40 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/config"
7 23:23:40 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/config"
8 23:23:40 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/+/status"
9 23:23:40 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/+/status"
10 23:23:40 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/response"
11 23:23:40 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/response"
12 23:23:40 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/exchange/input"
13 23:23:40 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/exchange/input"
14 23:23:40 GMT+0300 (EEST) Broker: Try subscribe to: "domoticz/in"
15 23:23:40 GMT+0300 (EEST) Paho native: Try subscribe "domoticz/in"
16 23:23:40 GMT+0300 (EEST) Broker: Publish: /IoTmanager payload: HELLO
17 23:23:40 GMT+0300 (EEST) Broker: Publish: /IoTmanager/ids payload: 6e519949-c797-4b0c-90e1-2df0e311875f
18 23:23:40 GMT+0300 (EEST) Broker: Publish: /IoTmanager/device payload: {"connection":"WiFi","width":360,"height":378,"platform":"android","platformVersion":6,"uuid":"efbf3a059b8d52a8"}
19 23:23:40 GMT+0300 (EEST) Broker: Publish: /IoTmanager/efbf3a059b8d52a8/request payload: {"command":"getPages","param":""}
20 23:23:40 GMT+0300 (EEST) Profiler: send "pages list" data: {"pages":[]}
21 23:23:40 GMT+0300 (EEST) Response parser: pages added: 0
22 23:23:40 GMT+0300 (EEST) Broker: Publish: /IoTmanager/efbf3a059b8d52a8/request payload: {"command":"getPageById","param":0}
23 23:23:40 GMT+0300 (EEST) Profiler: send "page by id" data, sent 0 widgets config.
24 23:23:40 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=0
25 23:23:40 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=1
26 23:23:40 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=2
27 23:23:41 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=3
28 23:23:41 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=4
29 23:23:41 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=5
30 23:23:42 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=6
31 23:23:43 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=7
32 23:23:45 GMT+0300 (EEST) Broker: doSleep event.
33 23:23:45 GMT+0300 (EEST) Broker: disconnected.
34 23:23:45 GMT+0300 (EEST) Paho native: disconnected!
35 23:23:46 GMT+0300 (EEST) Broker: wakeup event.
36 23:23:46 GMT+0300 (EEST) Broker: Trying connect to mqtt://m20.cloudmqtt.com:19867, user:bcwsqumg, pass:<HIDDEN>, engine: "paho native", attempt 1...
37 23:23:46 GMT+0300 (EEST) Paho Native: connecting...
38 23:23:46 GMT+0300 (EEST) Paho native: connect: Success.
39 23:23:46 GMT+0300 (EEST) Broker: onConnect event.
40 23:23:46 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/config"
41 23:23:46 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/config"
42 23:23:46 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/+/status"
43 23:23:46 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/+/status"
44 23:23:46 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/response"
45 23:23:46 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/response"
46 23:23:46 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/exchange/input"
47 23:23:46 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/exchange/input"
48 23:23:46 GMT+0300 (EEST) Broker: Try subscribe to: "domoticz/in"
49 23:23:46 GMT+0300 (EEST) Paho native: Try subscribe "domoticz/in"
50 23:23:46 GMT+0300 (EEST) Broker: Publish: /IoTmanager payload: HELLO
51 23:23:46 GMT+0300 (EEST) Broker: Publish: /IoTmanager/ids payload: 6e519949-c797-4b0c-90e1-2df0e311875f
52 23:23:46 GMT+0300 (EEST) Broker: Publish: /IoTmanager/device payload: {"connection":"WiFi","width":360,"height":615,"platform":"android","platformVersion":6,"uuid":"efbf3a059b8d52a8"}
53 23:23:46 GMT+0300 (EEST) Broker: Publish: /IoTmanager/efbf3a059b8d52a8/request payload: {"command":"getPages","param":""}
54 23:23:46 GMT+0300 (EEST) Profiler: send "pages list" data: {"pages":[]}
55 23:23:46 GMT+0300 (EEST) Response parser: pages added: 0
56 23:23:46 GMT+0300 (EEST) Broker: Publish: /IoTmanager/efbf3a059b8d52a8/request payload: {"command":"getPageById","param":0}
57 23:23:46 GMT+0300 (EEST) Profiler: send "page by id" data, sent 0 widgets config.
58 23:23:47 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=0
59 23:23:47 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=1
60 23:23:47 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=2
61 23:23:47 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=3
62 23:23:47 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=4
63 23:23:48 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=5
64 23:23:48 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=6
65 23:23:48 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=7
66 23:23:51 GMT+0300 (EEST) Broker: doSleep event.
67 23:23:51 GMT+0300 (EEST) Broker: disconnected.
68 23:23:51 GMT+0300 (EEST) Paho native: disconnected!
69 23:23:53 GMT+0300 (EEST) Broker: wakeup event.
70 23:23:53 GMT+0300 (EEST) Broker: Trying connect to mqtt://m20.cloudmqtt.com:19867, user:bcwsqumg, pass:<HIDDEN>, engine: "paho native", attempt 1...
71 23:23:53 GMT+0300 (EEST) Paho Native: connecting...
72 23:23:54 GMT+0300 (EEST) Paho native: connect: Success.
73 23:23:54 GMT+0300 (EEST) Broker: onConnect event.
74 23:23:54 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/config"
75 23:23:54 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/config"
76 23:23:54 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/+/status"
77 23:23:54 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/+/status"
78 23:23:54 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/+/response"
79 23:23:54 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/+/response"
80 23:23:54 GMT+0300 (EEST) Broker: Try subscribe to: "/IoTmanager/exchange/input"
81 23:23:54 GMT+0300 (EEST) Paho native: Try subscribe "/IoTmanager/exchange/input"
82 23:23:54 GMT+0300 (EEST) Broker: Try subscribe to: "domoticz/in"
83 23:23:54 GMT+0300 (EEST) Paho native: Try subscribe "domoticz/in"
84 23:23:54 GMT+0300 (EEST) Broker: Publish: /IoTmanager payload: HELLO
85 23:23:54 GMT+0300 (EEST) Broker: Publish: /IoTmanager/ids payload: 6e519949-c797-4b0c-90e1-2df0e311875f
86 23:23:54 GMT+0300 (EEST) Broker: Publish: /IoTmanager/device payload: {"connection":"WiFi","width":360,"height":615,"platform":"android","platformVersion":6,"uuid":"efbf3a059b8d52a8"}
87 23:23:54 GMT+0300 (EEST) Broker: Publish: /IoTmanager/efbf3a059b8d52a8/request payload: {"command":"getPages","param":""}
88 23:23:54 GMT+0300 (EEST) Profiler: send "pages list" data: {"pages":[]}
89 23:23:54 GMT+0300 (EEST) Response parser: pages added: 0
90 23:23:54 GMT+0300 (EEST) Broker: Publish: /IoTmanager/efbf3a059b8d52a8/request payload: {"command":"getPageById","param":0}
91 23:23:54 GMT+0300 (EEST) Profiler: send "page by id" data, sent 0 widgets config.
92 23:23:54 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=0
93 23:23:54 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=1
94 23:23:55 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=2
95 23:23:55 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=3
96 23:23:55 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=4
97 23:23:55 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=5
98 23:23:55 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=6
99 23:23:55 GMT+0300 (EEST) Parsing config data from device "dev02-bedroom", widget id=7
 

Victor

Administrator
Команда форума
Вы не даете ему прокачать данные - переключаетесь в другое приложение и он рвет соединение с брокером
[inline]Broker: doSleep event.[/inline]
Зайдите в Настройки - Системные - Отключаться от брокера при переходе в фоновый режим - ВЫКЛ
(потом поставите все обратно, когда разберетесь)
 
Сверху Снизу