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

IoT Manager - архив обсуждений

Статус
В этой теме нельзя размещать новые ответы.

Victor

Administrator
Команда форума
1449482507: New connection from 192.168.13.58 on port 1883
К стандартному порту 1883, куда подключаются обычные клиенты, подключение из IoT Manager невозможно в принципе, потому что для IoT Manager требуется, чтобы протокол MQTT "был обернут" в протокол WebSockets.
Добавил:
listener 9001
protocol websockets
А вот тут надо разбираться, т.к. должно работать.
Надеюсь, что в IoT Manager вы порт тоже изменили на 9001 ?
Из документации mosquitto следует, что по умолчанию mosquitto собирается без поддержки протокола WebSockets
protocol value
Set the protocol to accept for this listener. Can be mqtt, the default, or websockets if available.
Websockets support is currently disabled by default at compile time. Certificate based TLS may be used with websockets, except that only the cafile, certfile, keyfile and ciphers options are supported.
Еще обратите внимание на имя пользователя (если задано) - Android по умолчанию предлагает его вводить с заглавной буквы и нужно принудительно менять регистр первого символа, если в mosquitto юзер прописан маленькими буквами
 

shaman1010

Member
К стандартному порту 1883, куда подключаются обычные клиенты, подключение из IoT Manager невозможно в принципе, потому что для IoT Manager требуется, чтобы протокол MQTT "был обернут" в протокол WebSockets.
9001-й не завелся, потому что стандартный конфиг берется не из /etc/mosquitto/mosquitto.conf, пока запускаю с явным указанием файла конфигурации (mosquitto -c /etc/mosquitto/mosquitto.conf)
Из документации mosquitto следует, что по умолчанию mosquitto собирается без поддержки протокола WebSockets
А вот это и вторая причина - на кубиктраке mosquitto собран без вебсокетов - не работает, на openwrt - с указанием файла конфигурации - завелось.
Но там вылезли грабли с другой стороны, но они не из этой темы.
В скетче esp8366 надо указать порт 1883, а в андроид приложении 9001
Уже понял. Но скетч я вообще не использую. Датчики с смартхома льют данные.
 

shaman1010

Member
shaman1010, а результат в итоге какой?
Пока никакого, так как в процессе.
Но подключиться к брокеру на openwrt получилось по 9001-му через вебсокеты. mqtt spy тоже туда по 1883 подключен. spy видит HELLO от IoT при переподключении.
Остальное дополню, когда весь комплект нормально заведу, пока все через ...
 

Victor

Administrator
Команда форума
shaman1010, кстати. Если у локального брокера нет возможности настроить WebSockets порт, то можно настроить мост (bridge) на облачный сервис, например CloudMqtt. Это позволит получить доступ к локальному брокеру из интернет без проброски портов на маршрутизаторе и без проблем подключить IoT Manager
 

shaman1010

Member
shaman1010, кстати. Если у локального брокера нет возможности настроить WebSockets порт, то можно настроить мост (bridge) на облачный сервис, например CloudMqtt. Это позволит получить доступ к локальному брокеру из интернет без проброски портов на маршрутизаторе и без проблем подключить IoT Manager
Зато теряются данные, когда нет интернета :) Все-же считаю облачные сервисы логичней использовать как дополнительную функциональность, а не основную.
На кубитрак готовых бинарников пока не нашел, сам собирать еще не пытался, но чувствую придется :)
 

Jon

Member
О, оказывается иностранцы читают наши форумы. А я думал они такие снобы, и кроме надкушенного яблока ни чего не признают. Надо будет почитать о чем они пишут, на досуге....
 

Victor

Administrator
Команда форума
О, оказывается иностранцы читают наши форумы. А я думал они такие снобы, и кроме надкушенного яблока ни чего не признают. Надо будет почитать о чем они пишут, на досуге....
не стоит обольщаться - увы, они не читают наши форумы.
но читают это IOT MANAGER: ANDROID APP FOR DIY DEVICES (ESP8266 AND OTHER)
 

Jon

Member
Вах, на двух языках приходится писать! Тяжелый случай.
Но с другой стороны, всегда полезно сформулировать свою мысль на техническом языке.
 

Victor

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

Minatavrus

New member
А где можно посмотреть какие типы виджетов можно использовать и их визуальные настройки? Например, как поменять иконки на ползунке?
 

Victor

Administrator
Команда форума
Опубликована версия 1.4.3
1. Исправлена ошибка переподключения при потере связи
2. Исправлена ошибка end-user mode
3. Новые иконки и splash скрин
4. Обновлен Ionic Framework до версии v1.2
 

Minatavrus

New member
На новой версии 2 раза возникала ошибка: в приложении переставали переключаться закладки страниц (2 микроконтроллера, управление каждым со своей страницы). Лечилось перезапуском программы.
 

Victor

Administrator
Команда форума
На новой версии 2 раза возникала ошибка: в приложении переставали переключаться закладки страниц (2 микроконтроллера, управление каждым со своей страницы). Лечилось перезапуском программы.
Ionic Framework версии v1.2 еще не обкатан, возможно, что в этом причина. Будем тестить.
 

Victor

Administrator
Команда форума
Сегодня провел тесты скетчей на Arduino IDE 1.6.6 и ESP8266 Community v2.0.0 stable и библиотекой PubSubClient от Imroy версии 1.99.1 https://github.com/Imroy/pubsubclient
пришлось внести минимальные правки в скетчи:
1. Перенес функции [inline]setStatus[/inline] выше, до их первого вызова
2. Перенес функцию [inline]pubConfig[/inline] выше, до ее первого вызова
Остальное без изменений. Скетчи на гисте обновлены.

Процедура обновления Arduino IDE для ESP8266

1. Зайти в старую, до обновления Arduino IDE, Инструменты - Плата - Менеджер плат - отфильтровать по [inline]8266[/inline], кликнуть Удалить
2. Зайти в папку [inline]C:\Users\Victor\AppData\Local\Arduino15\[/inline] (у меня Win7x64) удалить все, кроме [inline]preferences.txt[/inline]
3. Зайти в папку [inline]C:\Users\Victor\Documents\Arduino\libraries\[/inline] удалить папку [inline]PubSubClient[/inline]
4. Скачать последнюю Arduino IDE с https://www.arduino.cc/en/Main/Software (сейчас это 1.6.6), установить или разархивировать
5. Скачать последнюю библиотеку PubSubClient (сейчас это 1.99.1 номер версии прописан в файле [inline]library.properties[/inline]), брать здесь https://github.com/Imroy/pubsubclient скачивать через кнопку Donwload ZIP, распаковать архив в папку библиотек [inline]C:\Users\Victor\Documents\Arduino\libraries\PubSubClient[/inline]
6. В новой Arduino IDE зайти Файл - Настройки, в поле Дополнительные ссылки для менеджера плат вставить [inline]http://arduino.esp8266.com/stable/package_esp8266com_index.json[/inline] (это ссылка на стабильную версию 2.0.0 взято здесь https://github.com/esp8266/Arduino#stable-version-)
7. В новой Arduino IDE зайти Инструменты - Плата - Менеджер плат - отфильтровать по [inline]8266[/inline], выбрать версию 2.0.0, установить. Должно загрузиться около 200Мб
8. Выбрать вашу плату, порт, скорость 115200, открыть скетч с гиста, скомпилировать, залить.
9. При сборке в логе вы должны увидеть
Код:
Используем библиотеку PubSubClient версии 1.99.1 из папки: C:\Users\Victor\Documents\Arduino\libraries\PubSubClient
Используем библиотеку ESP8266WiFi версии 1.0 из папки: C:\Users\Victor\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\ESP8266WiFi
Собственно все.
 

AVL

Member
Всем привет!
Пробую залить скетч номер один и получаю такие ошибки:
Arduino:1.6.7 (Windows 7), Плата:"Generic ESP8266 Module, Serial, 80 MHz, 40MHz, DIO, 115200, 512K (64K SPIFFS), ck"

WARNING: Category '' in library OneWire is not valid. Setting to 'Uncategorized'
IoMQTT:28: error: no matching function for call to 'PubSubClient::pubSubClient(WiFiClient&, IPAddress&, int&)'

PubSubClient client(wclient, server, mqttport);

^

F:\ARDUINO\MY\IoMQTT\IoMQTT.ino:28:46: note: candidates are:

In file included from F:\ARDUINO\MY\IoMQTT\IoMQTT.ino:12:0:

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:103:4: note: PubSubClient::pubSubClient(const char*, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&, Stream&)

PubSubClient(const char*, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:103:4: note: candidate expects 5 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:102:4: note: PubSubClient::pubSubClient(const char*, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&)

PubSubClient(const char*, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:102:4: note: candidate expects 4 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:101:4: note: PubSubClient::pubSubClient(const char*, uint16_t, Client&, Stream&)

PubSubClient(const char*, uint16_t, Client& client, Stream&);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:101:4: note: candidate expects 4 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:100:4: note: PubSubClient::pubSubClient(const char*, uint16_t, Client&)

PubSubClient(const char*, uint16_t, Client& client);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:100:4: note: no known conversion for argument 1 from 'WiFiClient' to 'const char*'

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:99:4: note: PubSubClient::pubSubClient(uint8_t*, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&, Stream&)

PubSubClient(uint8_t *, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:99:4: note: candidate expects 5 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:98:4: note: PubSubClient::pubSubClient(uint8_t*, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&)

PubSubClient(uint8_t *, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:98:4: note: candidate expects 4 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:97:4: note: PubSubClient::pubSubClient(uint8_t*, uint16_t, Client&, Stream&)

PubSubClient(uint8_t *, uint16_t, Client& client, Stream&);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:97:4: note: candidate expects 4 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:96:4: note: PubSubClient::pubSubClient(uint8_t*, uint16_t, Client&)

PubSubClient(uint8_t *, uint16_t, Client& client);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:96:4: note: no known conversion for argument 1 from 'WiFiClient' to 'uint8_t* {aka unsigned char*}'

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:95:4: note: PubSubClient::pubSubClient(IPAddress, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&, Stream&)

PubSubClient(IPAddress, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client, Stream&);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:95:4: note: candidate expects 5 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:94:4: note: PubSubClient::pubSubClient(IPAddress, uint16_t, void (*)(char*, uint8_t*, unsigned int), Client&)

PubSubClient(IPAddress, uint16_t, MQTT_CALLBACK_SIGNATURE,Client& client);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:94:4: note: candidate expects 4 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:93:4: note: PubSubClient::pubSubClient(IPAddress, uint16_t, Client&, Stream&)

PubSubClient(IPAddress, uint16_t, Client& client, Stream&);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:93:4: note: candidate expects 4 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:92:4: note: PubSubClient::pubSubClient(IPAddress, uint16_t, Client&)

PubSubClient(IPAddress, uint16_t, Client& client);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:92:4: note: no known conversion for argument 1 from 'WiFiClient' to 'IPAddress'

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:91:4: note: PubSubClient::pubSubClient(Client&)

PubSubClient(Client& client);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:91:4: note: candidate expects 1 argument, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:90:4: note: PubSubClient::pubSubClient()

PubSubClient();

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:90:4: note: candidate expects 0 arguments, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:70:7: note: constexpr PubSubClient::pubSubClient(const PubSubClient&)

class PubSubClient {

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:70:7: note: candidate expects 1 argument, 3 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:70:7: note: constexpr PubSubClient::pubSubClient(PubSubClient&&)

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:70:7: note: candidate expects 1 argument, 3 provided

F:\ARDUINO\MY\IoMQTT\IoMQTT.ino: In function 'void pubStatus(String, String)':

IoMQTT:199: error: no matching function for call to 'PubSubClient::publish(StringSumHelper&, String&)'

if (client.publish(t + "/status", payload)) {

^

F:\ARDUINO\MY\IoMQTT\IoMQTT.ino:199:46: note: candidates are:

In file included from F:\ARDUINO\MY\IoMQTT\IoMQTT.ino:12:0:

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:117:12: note: boolean PubSubClient::publish(const char*, const char*)

boolean publish(const char* topic, const char* payload);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:117:12: note: no known conversion for argument 1 from 'StringSumHelper' to 'const char*'

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:118:12: note: boolean PubSubClient::publish(const char*, const char*, boolean)

boolean publish(const char* topic, const char* payload, boolean retained);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:118:12: note: candidate expects 3 arguments, 2 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:119:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int)

boolean publish(const char* topic, const uint8_t * payload, unsigned int plength);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:119:12: note: candidate expects 3 arguments, 2 provided

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:120:12: note: boolean PubSubClient::publish(const char*, const uint8_t*, unsigned int, boolean)

boolean publish(const char* topic, const uint8_t * payload, unsigned int plength, boolean retained);

^

F:\ARDUINO\MY\libraries\PubSubClient\src/PubSubClient.h:120:12: note: candidate expects 4 arguments, 2 provided

F:\ARDUINO\MY\IoMQTT\IoMQTT.ino: In function 'void pubConfig()':

IoMQTT:208: error: 'MQTT' has not been declared

MQTT::publish newpub(prefix, deviceID);

^

IoMQTT:208: error: expected ';' before 'newpub'

MQTT::publish newpub(prefix, deviceID);

^

IoMQTT:209: error: 'newpub' was not declared in this scope

success = client.publish(newpub); //.set_retain()

^

IoMQTT:213: error: 'MQTT' has not been declared

MQTT::publish newpub(prefix + "/" + deviceID + "/config", thing_config);

^

IoMQTT:213: error: expected ';' before 'newpub'

MQTT::publish newpub(prefix + "/" + deviceID + "/config", thing_config);

^

F:\ARDUINO\MY\IoMQTT\IoMQTT.ino: At global scope:

IoMQTT:235: error: 'MQTT' does not name a type

void callback(const MQTT::publish& sub) {

^

IoMQTT:235: error: expected unqualified-id before '&' token

void callback(const MQTT::publish& sub) {

^

IoMQTT:235: error: expected ')' before '&' token

IoMQTT:235: error: expected initializer before 'sub'

void callback(const MQTT::publish& sub) {

^

Multiple libraries were found for "EthernetUdp.h"
Використано: F:\ARDUINO\MY\libraries\Ethernet
Не застосовується: C:\Users\Andriy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\Ethernet
Не застосовується: C:\Program Files (x86)\Arduino\libraries\Ethernet
Multiple libraries were found for "OneWire.h"
Використано: F:\ARDUINO\MY\libraries\OneWire
Не застосовується: F:\ARDUINO\MY\libraries\MAX31850_OneWire
Не застосовується: C:\Users\Andriy\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.0.0\libraries\OneWire
exit status 1
no matching function for call to 'PubSubClient::pubSubClient(WiFiClient&, IPAddress&, int&)'

Цей звіт буде містити більше інформації з
"Показувати докладний звіт при компіляції"
увімкнено в Файл > Налаштування


В скетче ничего не меняю.
Подскажите, пожалуйста, в чём может быть проблема?
Скетч под Blynk заливается нормально.
Arduino 1.6.7
Спасибо.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу