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

IoT Manager iOS не подключается к брокеру

rapidshe

Member
Все доброго времени суток!

Судя по картинкам единственное нормальное приложение под iOS но не подключается к брокеру, в отличие от остальных, беспонтовых, mqtt приложений...
ифон 7, ios 10.2.1
в чем может быть проблема?
 

rapidshe

Member
у вас в настройках подключения SSL выключен, а cloudmqtt умеет WebSockets только с SSL.
[inline]Trying connect to ws://m13.cloudmqtt.com:17857/, use SSL/TLS: NO[/inline]
я на самом деле пробовал по всякому. c вкл/выкл SSL/TLS, все 3 порта предлагаемые cloudmqtt
в моем случае это были 17857, 27857, 37857
 

Вложения

rapidshe

Member
ПС: не подскажите веб сайтик, что б через браузер можно было удобно управлять устройством?
 

Victor

Administrator
Команда форума
я на самом деле пробовал по всякому. c вкл/выкл SSL/TLS, все 3 порта предлагаемые cloudmqtt
в моем случае это были 17857, 27857, 37857
по-всякому бессмысленно, пробуйте 37857 с SSL, движок paho или mqtt (если из iOS приложения).
Также важно правильно указать имя пользователя и пароль, выставить пользователю права.
Как настроить аккаунт cloudmqtt описано в этой статье IoT Manager - мобильное приложение для DIY устройств – esp8266
Дополнительно:
1. можно попробовать убивать приложение после новых настроек и запускать заново с чистого листа.
2. можно перезагрузить сервер MQTT (ищите reload в панели управления)
3. проверьте, что ваш интернет провайдер разрешает прямые исходящие подключения (могут быть проблемы, если ваш трафик гоняют через прокси)
4. Между экспериментами делайте паузу не менее минуты (Cloudmqtt блокирует на некоторое время по IP адресу возможность подключения при большом количестве безуспешных коннектов)
5. Приложение тестировалось на iOS 9, и, если у вас более ранняя версия, попробуйте на другом устройстве.

Удачи!
 

rapidshe

Member
Рестартнул брокера, убил приложение, выставил Paho, порт 37857 и SSL.
Ура, подключился.

Не совсем понял по виджетам.... Чтоб появились виджеты нужно использовать ваш скетч с гикхаба как базовый?
 

Victor

Administrator
Команда форума
Чтоб появились виджеты нужно использовать ваш скетч с гикхаба как базовый?
да, практически любой (не уверен что все скетчи будут работать беузкоризненно - некоторые довольно из них довольно старые уже)
обратите внимание на используемые библиотеки - в шапке каждого скетча есть ссылки
 

rapidshe

Member
да, практически любой (не уверен что все скетчи будут работать беузкоризненно - некоторые довольно из них довольно старые уже)
обратите внимание на используемые библиотеки - в шапке каждого скетча есть ссылки
А вшивание виджетов в скетч это необходимость? или просто ваша задумка?

Например на андройде приложение MQTT Dashboard получилось быстро подогнать под своё устройство, а тут придется вносить коррективы в скетч... была бы бОльшая универсальность, если из приложения создавались виджеты для топиков
 

Victor

Administrator
Команда форума
А вшивание виджетов в скетч это необходимость? или просто ваша задумка?

Например на андройде приложение MQTT Dashboard получилось быстро подогнать под своё устройство, а тут придется вносить коррективы в скетч... была бы бОльшая универсальность, если из приложения создавались виджеты для топиков
для этого есть blynk и куча других.
Основная фича IoT Manager - это очень гибкая настройка виджетов с помощью HTML5+CSS. Опций столько, что я сам иногда подглядываю в свою документацию. Плата за высокий уровень кастомизации - высокий порог входа
 

rapidshe

Member
для этого есть blynk и куча других.
Основная фича IoT Manager - это очень гибкая настройка виджетов с помощью HTML5+CSS. Опций столько, что я сам иногда подглядываю в свою документацию. Плата за высокий уровень кастомизации - высокий порог входа
толи я тупой, толи blynk пошел по вашему пути(Getting Started)...
если не сложно, подскажите приложульку что б не нужно было в скетч вносить изменеия....
из апп стора все программы перепробовал по запросам esp8266, Iot, MQTT....
 

Victor

Administrator
Команда форума
что б не нужно было в скетч вносить изменеия
У блинка только подключаете их библиотеку в скетче, а виджеты конфигурите уже в телефоне (MQTT можно вообще не использовать)
Визуализировать MQTT данные из топиков можно (не внося изменений в ваш код на девайсе) только это будет слишком уныло, т.к. непонятно как оформлять данные, нельзя определить факт того, что устройство отключилось и т.д.
 

Victor

Administrator
Команда форума
добрый день! а почему сбор средств закрыт? в конце странички
да что-то они там поменяли в WebMoney, а я так и не перенастроил.
[off]Можете поддержать проект, если есть такое желание (средства пойдут на оплату VDS для сайта esp8266.ru)
Z352838731074 или R128535659463[/off]
 

rapidshe

Member
да что-то они там поменяли в WebMoney, а я так и не перенастроил.
[off]Можете поддержать проект, если есть такое желание (средства пойдут на оплату VDS для сайта esp8266.ru)
Z352838731074 или R128535659463[/off]
а это ваша страничка? Поддержать проект · IoT Manager

и не подскажите название виджета выпадающего списка из которого вибирается 3 значения? (типо on/off/auto)
или может где есть полный список виджетов? или тут Виджеты · IoT Manager указаны все?
 

Victor

Administrator
Команда форума
да, забыл про нее :)
и не подскажите название виджета выпадающего списка из которого вибирается 3 значения? (типо on/off/auto)
или может где есть полный список виджетов? или тут Виджеты · IoT Manager указаны все?
1. нет такого виджета пока нет
2. да там все.
 

rapidshe

Member
ммм есть виджет range.
отображается в приложении со значком проценты.
а как убрать проценты и вообще задать пределы изменения?)

Код:
id    [2] = "2";
  page  [2] = "Kitchen";
  descr [2] = "Dimmer";
  widget[2] = "range";
  pin[2] = 0;                                              // GPIO0 - range
  defaultVal[2] = 1023;                                    // defaultVal status 0%, inverted
  inverted[1] = true;
  sTopic[2]   = prefix + "/" + deviceID + "/dim-light";
  style[2]   = "\"style\":\"range-calm\"";                 
  badge[2]   = "\"badge\":\"badge-assertive\"";

thing_config[2] = "{\"id\":\"" + id[2] + "\",\"page\":\"" + page[2]+"\",\"descr\":\"" + descr[2] + "\",\"widget\":\"" + widget[2] + "\",\"topic\":\"" + sTopic[2] + "\"," + style[2] + "," + badge[2] + ",\"leftIcon\":\"ion-ios-rainy-outline\",\"rightIcon\":\"ion-ios-rainy\"}"; //
 

Victor

Administrator
Команда форума
как убрать проценты
это один из первых виджетов, ожидает глубокого рефакторинга :)
Посмотрел - проценты пока убрать нельзя.
Вот его код (это PUG, можете конвертнуть в HTML)
HTML:
  div.no-padding.text-center(ng-if="item.widget == 'range'")
    div.no-padding
      div(style='{{item.style}}') {{item.descr}}
      span.badge {{item.status/10.23 | number:0}}%
    div.item.range.no-border
      i.icon
      input(type='range', name='{{item.descr}}', ng-model='item.control', min='0', max='1023', value='0', ng-change='doRange2(item)', on-release='doRange(item)')
      i.icon
 

rapidshe

Member
т.е. можно отправить прямиком html код и оно отобразиться?
пробовал отправить
Код:
    <ion-item>
      <ion-range min="1000" max="2000" step="100" snaps="true" [(ngModel)]="warmth" color="danger">
        <ion-icon range-left small color="danger" name="thermometer"></ion-icon>
        <ion-icon range-right color="danger" name="thermometer"></ion-icon>
      </ion-range>
    </ion-item>
(кусок дернул отсюда ionic-preview-app/template.html at master · driftyco/ionic-preview-app · GitHub)
(а попал туда отсюда Ionic Framework)
в виде
Код:
client.publish(prefix + "/" + deviceID + "/config","<item><range dualKnobs=\"true\" pin=\"true\" [(ngModel)]=\"structure\" color=\"dark\"><icon range-left small name=\"brush\"></icon><icon range-right name=\"brush\"></icon></range></item>");
и в виде
Код:
client.publish(prefix + "/" + deviceID + "/config","<ion-item><ion-range min=\"1000\" max=\"2000\" step=\"100\" snaps=\"true\" [(ngModel)]=\"warmth\" color=\"danger\"><ion-icon range-left small color=\"danger\" name=\"thermometer\"></ion-icon><ion-icon range-right color=\"danger\" name=\"thermometer\"></ion-icon></ion-range></ion-item>");
приложение не отреагировало.

это вообще как то возможно преобразовать, что бы отображалось в приложении? или какую вообще можно использовать конструкцию для передачи значений. надо как то устанавливать температуру... моск перегреется скоро :(
 

Victor

Administrator
Команда форума
т.е. можно отправить прямиком html код и оно отобразиться?
нет, это невозможно (в т.ч. в целях безопасности), все данные проходят через sanitize.
Я вам привел код в приложении, чтобы было понятно какие параметры на какие div влияют.
 
Сверху Снизу